.custom_page {
  --c-bold: #1f1f1f;
  --c-text: #3c3c3c;
  --t50: 2.604vw;
  --t48: 2.5vw;
  --t36: 1.875vw;
}

/* Banner 1 */
.full-banner {
  position: relative;
  width: 100%;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.full-banner img{
  max-width:100%;
  width:100%;
  height:auto;
}
.full-banner span{
	display:block;
}	
.banner-center {
  height: 56.25vw;
  align-items: center;
  justify-content: center;
}
.banner-center .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0));
}
.banner-center .banner-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
}
.banner-center h2 {
  text-shadow: 0 0 1.042vw rgba(0, 0, 0, 0.25);
  font-weight:600;
  font-size: 3.75vw;
  margin: 0 0 0.625vw;
  line-height: 1.35;
  letter-spacing:0.052vw;
}
.banner-center .slogan {
	display: inline-block;
    padding: 0.833vw 3.125vw;
    border-radius: 2.917vw;
    border: 0.104vw solid rgba(255, 255, 255, 0.45);
    background: transparent;
    color: #fff;
    text-decoration: none;
    margin-top: 3.75vw;
    font-size: 2.083vw;
    font-weight: 400;
	letter-spacing:0.104vw;
}
.banner-3 {
  height: 56.25vw;
  align-items: center;
  justify-content: flex-start;
}
.banner-3 .col-txt {
    position: relative;
    z-index: 2;
    margin-top:0;
    margin-left: 5.208vw;
    font-size: var(--t36);
	font-weight:400;
	color:var(--c-text);
}
.banner-3 h2 {
  color:#fff;
  font-weight:bold;
  margin: 0 0 0.521vw;
  font-size: 3.75vw;
    text-shadow: 0 0 1.042vw rgba(0, 0, 0, 0.25);
    line-height: 1.35;
}
.banner-3 p {
  padding:2.604vw 0 2.604vw;
}
.banner-3 h3 {
    font-weight:bold;
    font-size:var(--t36);
}

.banner-1 {
  height: 57.292vw;
  align-items: flex-start;
  justify-content: flex-start;
}
.banner-1 .col-txt {
    position: relative;
    z-index: 2;
    margin-top:10.938vw;
    margin-left: 11.458vw;
}
.banner-1 .col-txt h1{
  max-width:36.25vw;
}
.banner-1 p {
  color:#00a94f;
  margin: 0;
}
.banner-1 p.txt-en {
    font-size: 2.396vw;
    letter-spacing: 0.021vw;
    margin-top: -0.833vw;
}
.banner-1 p.txt {
  font-size: 2.083vw;
  letter-spacing:0.052vw;
  padding-top:2.604vw;
}

/*Two Box*/
.block-twoBox {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5.729vw 0;
}
.block-twoBox img {
  width: 100%;
  height: auto;
}
.block-twoBox span {
  display:block;
}
.block-twoBox span.bold {
  font-weight:bold;
}
.block-twoBox span.bold.inline {
  display:inline-block;
}
.block-twoBox .inner {
  width: 100%;
  max-width: 100%;
  padding: 0 6.25vw;
  display: flex;
  align-items: center;
  gap: 1.563vw;
}
.block-twoBox .col-text {
	flex: 1;
    padding-left: 2.083vw;
    color: var(--c-text);
}
.block-twoBox.txt-left .col-text {
  padding-left:0;
  padding-right:0;
}
.block-twoBox .col-image {
  width:48%;
}
.block-twoBox .title {
  font-size:var(--t48);
  font-weight:500;
  margin-bottom: 2.292vw;
  line-height: 1.3;
  letter-spacing:0;
}
.block-twoBox .info p{
  font-size:var(--t36);
  line-height: 1.56;
  margin-bottom: 2.292vw;
  letter-spacing:0.026vw;
}
.block-twoBox .info p:last-child {
  margin-bottom: 0;
}

.block-twoBox.box1 .col-image {
  width:45%;
}
.block-twoBox.box1 .inner{
  padding: 0 7.292vw;
}
.block-twoBox.box1 .title {
  font-size:var(--t50);
  line-height: 1.1;
  font-weight:bold;
}
.block-twoBox.box1 .col-text {
    padding-left: 2.083vw;
}

/*====RWD====*/
@media (max-width:576px){
.full-banner {	
    background-position: center bottom;
}
.banner-center {
  height: 100vw;
  align-items: center;
  justify-content: center;
}
.banner-center h2 {
	text-shadow: 0 0px 4.831vw rgba(0, 0, 0, 0.25);
	font-size: 6.763vw;
	margin: 0 0 2.899vw;
	line-height: 1.35;
	letter-spacing: 0;
}
.banner-center .slogan {
	padding: 1.932vw 7.246vw;
	border-radius: 13.527vw;
	border: 0.483vw solid rgba(255, 255, 255, 0.45);
	margin-top: 5.072vw;
	font-size: 4.348vw;
	letter-spacing: 0.483vw;
}
.banner-3 {
  height: 168vw;
  align-items: flex-start;
  justify-content: center;
}
.banner-3 .col-txt {
	margin-left: 0;
	font-size: 4.106vw;
	padding: 14vw 7.2vw 0;
}
.banner-3 h2 {
  margin: 0 0 2.415vw;
  font-size: 7.246vw;
    line-height: 1.35;
}
.banner-3 p {
	padding: 2.415vw 0 2.415vw;
}
.banner-3 h3 {
    font-size: 4.106vw;
}
.banner-1 {
  height: 140vw;
  align-items: flex-start;
  justify-content: center;
}
.banner-1 .col-txt {
	margin-top: 0;
	margin-left: 0;
	padding: 14vw 10vw 0;
}
.banner-1 .col-txt h1{
  max-width:100%;
}
.banner-1 p.txt-en {
	font-size: 5.072vw;
	letter-spacing: 0.097vw;
	margin-top: -1.932vw;
}
.banner-1 p.txt {
	font-size: 5.797vw;
	letter-spacing: 0.242vw;
	padding-top: 9.662vw;
}

/*Two Box*/
.block-twoBox {
  padding: 14vw 0;
}
.block-twoBox .inner {
  flex-direction: column;
  padding: 0 6vw;
  gap: 6.763vw;
}
.block-twoBox .col-text {
    padding-left: 0px;
}
.block-twoBox .col-image {
  width:100%;
}
.block-twoBox .title {
  font-size:7.246vw;
  margin-bottom: 7.246vw;
  line-height: 1.3;
}
.block-twoBox .info p{
  line-height: 1.56;
  margin-bottom: 7.246vw;
  letter-spacing:0px;
    font-size: 4.348vw;
}
.block-twoBox .info p:last-child {
  margin-bottom: 0;
}

.block-twoBox.box1 .inner {
	padding: 0 8vw;
}
.block-twoBox.box1 .col-image {
  width:100%;
}
.block-twoBox.box1 .inner{
  padding: 0 8vw;
}
.block-twoBox.box1 .title {
  line-height: 1.1;
    font-size: 8.213vw;
}
.block-twoBox.box1 .col-text {
    padding-left: 0px;
}
	
.block-twoBox.box2 .title {
    font-size: 6.039vw;
}
.block-twoBox.box2 .info p{
    font-size: 3.986vw;
}
}

/* Effect */
.fade-in-effect {
	opacity: 0;
    transform: translateY(60px);
    visibility: hidden;
    transition: opacity 0.8s ease-out, transform 0.8s ease-out, visibility 0.8s;
}
.fade-in-effect.visible {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}
.visible{
    visibility: visible !important;
}
@media (max-width: 991px) {
.fade-in-effect {
    transition: opacity 0.6s ease-out, transform 0.6s ease-out, visibility 0.6s;
}
}