/* Minimal, film-led. Motion enhances an otherwise complete static layout. */
body[data-page="general"] .hero{grid-template-columns:1.1fr 1fr;background:#ffffff;min-height:640px;padding:35px 5vw 55px;gap:6vw;align-items:center}
body[data-page="general"] .hero-copy{padding:30px 0}
body[data-page="general"] h1{font-size:clamp(44px,4.7vw,72px);line-height:1.08;letter-spacing:-.055em}
.hero-film{position:relative;height:560px;overflow:hidden}
.film-card{height:100%;position:relative;overflow:hidden;background:#242429}
.film-open{display:block;position:relative;width:100%;height:100%;padding:0;border:0;overflow:hidden;background:#242429;cursor:pointer;color:white;text-align:left}
.film-preview{display:block;width:100%;height:100%;object-fit:cover;transform:translateY(var(--film-shift,0px)) scale(1.18)}
.film-caption{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:32px 25px 22px;background:linear-gradient(transparent,#1e1e24c9);font-size:14px}
.film-caption small{margin-left:auto;font-size:12px}
.film-play{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffffa0;border-radius:50%;font-size:23px}
.film-toggle{position:absolute;right:14px;top:14px;min-height:40px;border:1px solid #ffffff80;color:white;background:#242429a6;padding:8px 13px;font-size:12px;cursor:pointer}
.treatment-grid{gap:50px}
.treatment-grid .treatment-card{padding:30px 0 0;border:0;border-top:1px solid #dfcbd5;border-radius:0;background:transparent}
.treatment-content{padding:0}
.service-number{display:block;font-size:12px;letter-spacing:.13em;color:var(--muted);margin-bottom:25px}
.treatment-content h3{font-size:clamp(32px,3.7vw,50px);line-height:1.12}
.treatment-content .actions{margin-top:30px}
.about-band{background:#faf5f8}
.about-layout{gap:80px}
.spa-composition{height:400px;overflow:hidden}
.spa-photo{width:100%;height:100%;object-fit:cover;transform:translateY(var(--photo-y,0px)) scale(1.13)}
.about-layout h2{font-size:clamp(40px,4.8vw,64px)}
.about-link{margin-left:0}
.booking-options{margin-bottom:0}
.film-dialog{padding:45px 12px 12px;border:0;border-radius:4px;background:#232329;max-width:95vw;max-height:92dvh;overflow:auto}
.film-dialog::backdrop{background:#1e1e24e8;backdrop-filter:blur(9px)}
.film-dialog video{display:block;max-height:79dvh;max-width:84vw;width:auto}
.film-close{position:absolute;right:14px;top:6px;min-height:34px;border:0;color:white;background:transparent;cursor:pointer}
body:has(.film-dialog[open]){overflow:hidden}
@media(prefers-reduced-motion:no-preference){
.button span,.booking-options b{display:inline-block;transition:transform .3s}
.button:hover span,.booking-options a:hover b{transform:translate(3px,-3px)}
.treatment-card{transition:border-color .4s}
.treatment-card:hover{border-color:var(--navy)}
}
@media(max-width:800px){
body[data-page="general"] .hero{grid-template-columns:1fr;padding:30px 6vw 40px;gap:28px;min-height:0}
body[data-page="general"] .hero-copy{padding:0}
body[data-page="general"] h1{font-size:clamp(40px,8vw,62px)}
body[data-page="general"] .hero .eyebrow{margin-bottom:15px}
body[data-page="general"] .hero .lead{margin:18px 0 22px}
.hero-film{height:390px}
.film-preview{object-position:center 40%}
.treatment-grid{gap:40px}
.about-layout{gap:30px}
.spa-composition{height:310px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.spa-photo,.film-preview,.hero-image>img{transform:none!important}}

/* Champagne accents support, rather than replace, readable text. */
h1 em{color:#86566c}
.eyebrow{color:#86566c}
.booking-options>a{border-color:#e3d6de}
.booking-options>a:hover{border-color:#86566c}

/* Rose booking actions; white text has AA contrast on both states. */
:root{--booking-rose:#aa5c7b;--booking-hover:#984c6c}
.button:not(.secondary),.mobile-actions a:last-child{background:var(--booking-rose);border-color:var(--booking-rose);color:#fff}
.button:not(.secondary):hover,.mobile-actions a:last-child:hover{background:var(--booking-hover);border-color:var(--booking-hover);color:#fff}

/* Softer neutral typography and a light footer. */
:root{--navy:#55515a;--ink:#55515a;--muted:#706a73}
footer{background:#faf3f7;color:#706a73;border-top:1px solid #eadfe6}
footer .brand{color:#55515a}
.footer-bottom{border-top-color:#e5d7e0}
.mobile-actions{background:#fffafd;border-top-color:#eadfe6}
.mobile-actions a:first-child{color:#665e68;border-color:#d9c8d2;background:#fffafd}

@media(prefers-reduced-motion:no-preference){
body[data-page="general"] .hero-copy h1 em{position:relative;display:inline-block}
body[data-page="general"] .hero-copy h1 em::after{content:"";position:absolute;left:0;right:0;bottom:-.08em;height:2px;background:#dfb5c7;transform-origin:left;animation:rose-line 1s .6s both}
@keyframes rose-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
body[data-page="general"] .treatment-content .text-link{display:inline-block;transition:transform .3s}
body[data-page="general"] .treatment-card:hover .text-link{transform:translateX(5px)}
.film-play{transition:background .3s,transform .3s}
.film-open:hover .film-play{background:#ffffff26;transform:scale(1.1)}
}
