:root{--ease-travel:cubic-bezier(.22,1,.36,1)}
.hero h1,html[lang=ru] .hero h1{font-size:clamp(40px,4.6vw,73px);line-height:1.09;letter-spacing:-.052em;max-width:1160px;margin:0 auto;text-wrap:balance}
.hero h1 .offer-accent{color:var(--lime)}
.hero .hero-in{max-width:1200px}
.hero .hero-sub{font-size:clamp(16px,1.35vw,20px);max-width:680px;margin-top:24px;font-weight:400;line-height:1.5}
.hero-m::after{background:linear-gradient(180deg,rgba(7,22,28,.3),rgba(7,22,28,.43) 35%,rgba(7,22,28,.48) 65%,rgba(7,22,28,.94))}
.motion-pending{opacity:0;transform:translateY(22px)}
.motion-pending.motion-visible{opacity:1;transform:none;transition:opacity .65s var(--ease-travel),transform .65s var(--ease-travel);transition-delay:var(--reveal-delay,0ms)}
.btn,.lang button,.price-tabs button,.villa-tabs button,.slider-controls button,.lightbox button,.menu-toggle{transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,transform 180ms var(--ease-travel),box-shadow 180ms ease}
.btn:active,.slider-controls button:active,.lightbox button:active,.menu-toggle:active{transform:scale(.97)}
.btn-p:hover{box-shadow:0 6px 28px rgba(215,235,166,.12)}
.btn>span:last-child,.highlight i{transition:transform 220ms var(--ease-travel)}
.btn:hover>span:last-child,.highlight:hover i{transform:translate(2px,-2px)}
.program-item summary::after,summary::after{transition:transform 240ms var(--ease-travel),background 180ms ease}
.program-item{transition:border-color 180ms ease,background-color 180ms ease}
.program-item:hover{border-color:var(--line)}
.villa-tabs img{transition:opacity 220ms ease,transform 300ms var(--ease-travel)}
.villa-tabs button:hover img{transform:translateY(-3px)}
.menu-inner>a{transition:color 180ms ease,transform 220ms var(--ease-travel)}
.menu-inner>a:hover{transform:translateX(7px)}
.qstep{animation:travel-step 230ms var(--ease-travel)}
@keyframes travel-step{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:860px){
 .hero{min-height:900px;padding-top:100px;padding-bottom:305px}
 .hero h1,html[lang=ru] .hero h1{font-size:clamp(32px,5.3vw,46px);max-width:700px}
 .hero .hero-sub{font-size:16px;max-width:500px;margin-top:23px}
 .hero .hero-tag{margin-bottom:22px}
 .hero .hero-in{transform:none}
}
@media(max-width:600px){
 .hero{min-height:860px;height:100svh;padding:110px 20px 300px}
 .hero h1,html[lang=ru] .hero h1{font-size:clamp(29px,8.2vw,43px);line-height:1.12;letter-spacing:-.045em}
 .hero .hero-sub{font-size:15px;line-height:1.5;max-width:340px;margin-top:23px}
 .hero .hero-sub br{display:none}
 .hero .hero-tag{margin-bottom:21px}
 .hero .location-link{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){
 .motion-pending,.motion-pending.motion-visible{opacity:1!important;transform:none!important;transition:none!important}
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media(max-width:600px){.hero-meta strong{white-space:normal;line-height:1.4}}
@media(max-width:360px){.hero-meta strong{font-size:11px}.hero-meta span{font-size:8px}}
