@font-face{font-family:TsonEnvironmentJP;src:url('../assets/noto-sans-jp.woff') format('woff');font-weight:100 900;font-display:swap;}

.swiper-pagination{transform:translateY(50%);}

#fv.tson-env-carousel{position:relative;overflow:hidden;touch-action:pan-y;isolation:isolate;display:grid;}

#fv.tson-env-carousel .tson-env-original{grid-area:1 / 1;position:relative;opacity:1;z-index:1;transition:opacity var(--tson-fade-duration,1000ms) ease-in-out;}
#fv.tson-env-carousel .tson-env-original.tson-env-inactive{opacity:0;pointer-events:none;}

#fv.tson-env-carousel .tson-env-slide{grid-area:1 / 1;position:absolute;inset:10px;display:block;overflow:hidden;border-radius:50px;background:#075cbd;color:#fff;text-decoration:none;opacity:0;z-index:2;pointer-events:none;transition:opacity var(--tson-fade-duration,1000ms) ease-in-out;top:0;left:0;margin-bottom: 31px;}
#fv.tson-env-carousel .tson-env-slide.is-active{opacity:1;pointer-events:auto;}

#fv.tson-env-carousel .tson-env-slide picture{position:absolute;inset:0;display:block;}
#fv.tson-env-carousel .tson-env-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;margin:0;}

#fv.tson-env-carousel .tson-env-copy{position:absolute;top:37%;left:5%;right:5%;text-align:center;font-family:TsonEnvironmentJP,sans-serif;color:#fff;}
#fv.tson-env-carousel .tson-env-title{padding:0;margin:0 0 18px;font-family:inherit;font-size:clamp(34px,6.15vw,96px);font-weight:600;line-height:1.35;letter-spacing:.025em;white-space:nowrap;text-shadow:0 2px 22px #123d7280;color:inherit;}
#fv.tson-env-carousel .tson-env-title span{display:inline-block;}
#fv.tson-env-carousel .tson-env-copy p{margin:0 0 28px;padding:0;font:400 clamp(15px,1.8vw,27px)/1.9 TsonEnvironmentJP,sans-serif;letter-spacing:.055em;text-shadow:0 1px 8px #123d7270;color:#fff;}
#fv.tson-env-carousel .tson-env-cta{display:inline-flex;gap:22px;align-items:center;padding:15px 35px;background:#fff;color:#24582f;border-radius:99px;font-size:15px;font-weight:600;line-height:1.6;text-shadow:none;box-shadow:0 4px 20px #123c342e;}

#fv.tson-env-carousel .tson-env-controls{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;justify-content:center;gap:5px;background:#fff;border-radius:99px;padding:3px 6px;}

#fv.tson-env-carousel .tson-env-controls button{appearance:none;border:0;margin:0;padding:0;width:10px;height:10px;display:flex;align-items:center;justify-content:center;background:#ccc;color:#24582f;font:600 15px/1 TsonEnvironmentJP,sans-serif;cursor:pointer;border-radius:50%;transition:background .3s ease,transform .3s ease;}

#fv.tson-env-carousel .tson-env-controls button[aria-current=true]{background:#2e8034;}
#fv.tson-env-carousel .tson-env-controls button:hover{background:#e7f0e1;}
#fv.tson-env-carousel .tson-env-controls button[aria-current=true]:hover{background:#24582f;}
#fv.tson-env-carousel .tson-env-controls button:focus-visible{outline:3px solid #24582f;outline-offset:2px;}

#fv.tson-env-carousel .tson-env-dot.is-active{background:#2e8034;}
#fv.tson-env-carousel .tson-env-dot:focus-visible{outline:2px solid #24582f;outline-offset:4px;}

#fv.tson-env-carousel .tson-env-slide:focus-visible{outline:4px solid #fff;outline-offset:-8px;}

@keyframes tson-env-emerge{
	from{opacity:0;transform:translateY(16px);filter:blur(5px);}
	to{opacity:1;transform:translateY(0);filter:blur(0);}
}

@media(prefers-reduced-motion:no-preference){
	#fv.tson-env-carousel .tson-env-slide.is-active .tson-env-title span{animation:tson-env-emerge 1.35s cubic-bezier(.2,.75,.2,1) both;}
	#fv.tson-env-carousel .tson-env-slide.is-active .tson-env-title span:first-child{animation-delay:.35s;}
	#fv.tson-env-carousel .tson-env-slide.is-active .tson-env-title span:last-child{animation-delay:.8s;}
	#fv.tson-env-carousel .tson-env-slide.is-active .tson-env-copy p{animation:tson-env-emerge 1s ease 1.6s both;}
	#fv.tson-env-carousel .tson-env-slide.is-active .tson-env-cta{animation:tson-env-emerge 1s ease 1.95s both;}
}

@media(max-width:768px){
	#fv.tson-env-carousel .tson-env-slide{border-radius:25px;}
	#fv.tson-env-carousel .tson-env-title{font-size:clamp(29px,8.5vw,48px);letter-spacing:0;margin-bottom:18px;}
	#fv.tson-env-carousel .tson-env-copy p{font-size:13px;margin-bottom:22px;letter-spacing:.025em;}
	#fv.tson-env-carousel .tson-env-cta{font-size:12px;padding:13px 24px;gap:15px;}
	#fv.tson-env-carousel .tson-env-controls{bottom:0;top:auto;right:auto;left:50%;transform:translateX(-50%);}
	#fv.tson-env-carousel .tson-env-controls button{width:10px;height:10px;font-size:0;}
	#fv.tson-env-carousel .tson-env-dot{width:10px;height:10px;}
}

@media(max-width:768px) and (orientation:portrait){
	#fv.tson-env-carousel .tson-env-slide img{object-fit:contain;object-position:center bottom;}
	#fv.tson-env-carousel .tson-env-copy{top:40%;}
}

@media(prefers-reduced-motion:reduce){
	#fv.tson-env-carousel .tson-env-original,#fv.tson-env-carousel .tson-env-slide{transition:none;}
}