:root{
  --bg:#FAF8F3;
  --bg-2:#F3EEE5;
  --white:#FFFFFF;
  --gold:#B88A36;
  --champagne:#D5B36A;
  --ink:#171717;
  --ink-soft:#67615A;
  --border:rgba(184,138,54,0.25);
  --shadow:0 30px 70px -35px rgba(23,23,23,0.25);
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ background:var(--bg); color:var(--ink); font-family:'Plus Jakarta Sans',sans-serif; font-weight:400; overflow-x:hidden; }
h1,h2,h3,h4{ font-family:'Instrument Serif',serif; font-weight:400; color:var(--ink); letter-spacing:-.01em; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; background:none; border:none; cursor:pointer; color:inherit; }
.wrap{ max-width:1240px; margin:0 auto; padding:0 6vw; }
.kicker{ font-size:.78rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.gold-line{ width:64px; height:1px; background:linear-gradient(90deg, var(--gold), var(--champagne)); margin:1rem auto; }
.gold-line.left{ margin:1rem 0; }

/* ---------- nav ---------- */
nav{ position:fixed; top:0; left:0; right:0; z-index:600; display:flex; align-items:center; justify-content:space-between; padding:1.6rem 6vw; transition:background .5s ease, padding .5s ease, box-shadow .5s ease; }
nav.scrolled{ background:rgba(250,248,243,0.88); backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%); padding:1.05rem 6vw; box-shadow:0 10px 30px -20px rgba(23,23,23,0.18); }
.brand-block{ line-height:1.15; }
.brand-block .b1{ font-family:'Instrument Serif',serif; font-size:1.65rem; font-weight:400; letter-spacing:.03em; color:var(--white); transition:color .5s ease; }
.brand-block .b2{ font-size:.62rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(255,255,255,.75); transition:color .5s ease; }
nav.scrolled .brand-block .b1{ color:var(--ink); }
nav.scrolled .brand-block .b2{ color:var(--ink-soft); }
.navlinks{ display:flex; gap:2.1rem; align-items:center; }
.navlinks a{ font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.92); position:relative; padding-bottom:4px; transition:color .3s ease; }
nav.scrolled .navlinks a{ color:var(--ink-soft); }
.navlinks a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.navlinks a:hover{ color:var(--gold); }
.navlinks a:hover::after{ transform:scaleX(1); }
.nav-book{ background:linear-gradient(135deg, var(--champagne), var(--gold)); color:#2A1D06; padding:.65rem 1.5rem; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; transition:transform .3s ease, box-shadow .3s ease; }
.nav-book:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -14px rgba(184,138,54,.55); }
.hamburger{ display:none; width:26px; height:18px; position:relative; }
.hamburger span{ position:absolute; left:0; right:0; height:2px; background:var(--white); transition:background .3s ease; }
nav.scrolled .hamburger span{ background:var(--ink); }
.hamburger span:nth-child(1){ top:0; } .hamburger span:nth-child(2){ top:8px; } .hamburger span:nth-child(3){ top:16px; }
@media (max-width:900px){
  .navlinks{ display:none; }
  .nav-book{ display:none; }
  .hamburger{ display:block; }
}

/* ---------- mobile menu ---------- */
.mobile-menu{ position:fixed; inset:0; z-index:900; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6rem; transform:translateY(-100%); transition:transform .5s cubic-bezier(.65,0,.35,1); }
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{ font-family:'Instrument Serif',serif; font-size:1.7rem; color:var(--ink); }
.mobile-menu .mm-book{ font-family:'Plus Jakarta Sans',sans-serif; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; background:linear-gradient(135deg, var(--champagne), var(--gold)); color:#2A1D06; padding:.8rem 2rem; border-radius:2px; margin-top:.6rem; }
.mobile-menu .mm-close{ position:absolute; top:1.7rem; right:6vw; width:26px; height:26px; }
.mobile-menu .mm-social{ display:flex; gap:1.4rem; margin-top:1.6rem; }
.mobile-menu .mm-social a{ font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }

/* ---------- hero ---------- */
.hero{ position:relative; height:96vh; min-height:640px; overflow:hidden; }
.hero-media{ position:absolute; inset:0; }
.hero-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
.hero-media img:nth-child(1){ animation:kb0 24s infinite; }
.hero-media img:nth-child(2){ animation:kb1 24s infinite; }
.hero-media img:nth-child(3){ animation:kb2 24s infinite; }
.hero-media img:nth-child(4){ animation:kb3 24s infinite; }
.hero-media img:nth-child(5){ animation:kb4 24s infinite; }
@keyframes kb0{ 0%{opacity:1;transform:scale(1)} 17%{opacity:1;transform:scale(1.09)} 20%{opacity:0;transform:scale(1.1)} 100%{opacity:0;transform:scale(1)} }
@keyframes kb1{ 0%,20%{opacity:0;transform:scale(1)} 23%{opacity:1;transform:scale(1.02)} 37%{opacity:1;transform:scale(1.09)} 40%{opacity:0;transform:scale(1.1)} 100%{opacity:0;transform:scale(1)} }
@keyframes kb2{ 0%,40%{opacity:0;transform:scale(1)} 43%{opacity:1;transform:scale(1.02)} 57%{opacity:1;transform:scale(1.09)} 60%{opacity:0;transform:scale(1.1)} 100%{opacity:0;transform:scale(1)} }
@keyframes kb3{ 0%,60%{opacity:0;transform:scale(1)} 63%{opacity:1;transform:scale(1.02)} 77%{opacity:1;transform:scale(1.09)} 80%{opacity:0;transform:scale(1.1)} 100%{opacity:0;transform:scale(1)} }
@keyframes kb4{ 0%,80%{opacity:0;transform:scale(1)} 83%{opacity:1;transform:scale(1.02)} 97%{opacity:1;transform:scale(1.09)} 100%{opacity:0;transform:scale(1.1)} }
.hero-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(23,17,8,0.38) 0%, rgba(23,17,8,0.12) 35%, rgba(23,17,8,0.15) 60%, rgba(23,17,8,0.55) 100%); }
.hero-slide-indicator{ position:absolute; z-index:6; left:6vw; bottom:6vh; display:flex; gap:8px; }
.hero-slide-indicator .bar{ width:26px; height:2px; background:rgba(255,255,255,.35); position:relative; overflow:hidden; }
.hero-slide-indicator .bar::after{ content:""; position:absolute; inset:0; background:var(--champagne); transform:scaleX(0); transform-origin:left; animation:barfill 24s linear infinite; }
.hero-slide-indicator .bar:nth-child(1)::after{ animation-delay:0s; }
.hero-slide-indicator .bar:nth-child(2)::after{ animation-delay:-19.2s; }
.hero-slide-indicator .bar:nth-child(3)::after{ animation-delay:-14.4s; }
.hero-slide-indicator .bar:nth-child(4)::after{ animation-delay:-9.6s; }
.hero-slide-indicator .bar:nth-child(5)::after{ animation-delay:-4.8s; }
@keyframes barfill{ 0%{transform:scaleX(0);} 4%{transform:scaleX(1);} 20%{transform:scaleX(1);} 20.01%{transform:scaleX(0);} 100%{transform:scaleX(0);} }
.hero-content{ position:relative; z-index:5; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 6vw; }
.hero-content .kicker{ color:var(--champagne); opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.2s; }
.hero-title{ color:var(--white); font-size:clamp(2.8rem,7.4vw,6rem); line-height:1.02; margin-top:.5rem; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.45s; }
.hero-sub{ color:var(--champagne); font-size:clamp(1.1rem,2.2vw,1.6rem); letter-spacing:.28em; text-transform:uppercase; font-family:'Plus Jakarta Sans',sans-serif; font-weight:300; margin-top:.3rem; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.65s; }
.hero-tagline{ margin-top:1.4rem; color:rgba(255,255,255,.88); font-family:'Instrument Serif',serif; font-style:italic; font-size:1.3rem; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:.85s; }
.hero-ctas{ margin-top:2.1rem; display:flex; align-items:center; gap:1.4rem; opacity:0; animation:fadeUp .9s ease forwards; animation-delay:1.05s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
.btn{ display:inline-flex; align-items:center; gap:8px; padding:.9rem 2rem; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease; border-radius:2px; }
.btn-gold{ background:linear-gradient(135deg, var(--champagne), var(--gold)); color:#2A1D06; box-shadow:0 14px 30px -14px rgba(184,138,54,.6); }
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 18px 36px -14px rgba(184,138,54,.75); }
.btn-line{ border:1px solid rgba(255,255,255,.55); color:var(--white); }
.btn-line:hover{ border-color:var(--champagne); color:var(--champagne); transform:translateY(-3px); }
.btn-dark{ border:1px solid rgba(23,23,23,.25); color:var(--ink); }
.btn-dark:hover{ border-color:var(--gold); color:var(--gold); transform:translateY(-3px); }

/* ---------- booking widget ---------- */
.booking-widget{ position:relative; z-index:20; max-width:1040px; margin:-52px auto 0; background:var(--white); border-radius:6px; box-shadow:var(--shadow); border-top:3px solid var(--gold); display:flex; align-items:stretch; }
.promo-badge{ position:absolute; top:-13px; right:1.6rem; background:linear-gradient(135deg, var(--champagne), var(--gold)); color:#2A1D06; font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:.4rem .9rem; border-radius:999px; box-shadow:0 8px 18px -8px rgba(184,138,54,.6); z-index:21; }
@media (max-width:860px){ .promo-badge{ top:-11px; right:.9rem; font-size:.62rem; padding:.32rem .7rem; } }
.bw-field{ flex:1; padding:1.1rem 1.5rem; border-right:1px solid var(--border); }
.bw-field:last-child{ border-right:none; }
.bw-field label{ display:block; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.35rem; font-weight:500; }
.bw-field input, .bw-field select{ border:none; font-family:'Plus Jakarta Sans',sans-serif; font-size:.95rem; color:var(--ink); width:100%; background:transparent; }
.bw-field input:focus, .bw-field select:focus{ outline:none; }
.bw-submit{ flex:0 0 auto; background:linear-gradient(135deg, var(--champagne), var(--gold)); color:#2A1D06; padding:0 2.2rem; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; border-radius:0 5px 5px 0; transition:opacity .3s ease; }
.bw-submit:hover{ opacity:.9; }
@media (max-width:860px){
  .hero{ height:74vh; min-height:520px; }
  .booking-widget{ display:grid; grid-template-columns:1fr 1fr; margin:-58px 6vw 0; border-radius:12px; overflow:hidden; }
  .bw-field{ border-right:1px solid var(--border); border-bottom:1px solid var(--border); padding:.85rem 1rem; }
  .bw-field:nth-child(2n){ border-right:none; }
  .bw-field:nth-child(3){ grid-column:1 / -1; border-right:none; }
  .bw-submit{ grid-column:1 / -1; border-radius:0; padding:.9rem; text-align:center; }
}

section{ position:relative; padding:8rem 0 6rem; }
.section-head{ text-align:center; max-width:640px; margin:0 auto 3.6rem; }
.section-head .kicker{ display:block; margin-bottom:.6rem; }
.section-head h2{ font-size:clamp(2.1rem,4vw,3.1rem); line-height:1.1; }
.section-head p{ color:var(--ink-soft); font-size:1rem; margin-top:1.2rem; line-height:1.7; }

/* ---------- suites ---------- */
.suites{ background:var(--white); padding-top:9rem; }
.suite-block{ margin-bottom:5.5rem; }
.suite-block:last-child{ margin-bottom:0; }
.suite-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:3.2rem; align-items:center; }
.suite-block.reverse .suite-grid{ grid-template-columns:.95fr 1.05fr; }
.suite-block.reverse .suite-media{ order:2; }
@media (max-width:900px){
  .suite-grid{ grid-template-columns:1fr; gap:1.8rem; }
  .suite-block.reverse .suite-grid{ grid-template-columns:1fr; }
  .suite-block.reverse .suite-media{ order:0; }
}
.carousel{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:4px; box-shadow:var(--shadow); }
.slides{ display:flex; height:100%; transition:transform .6s cubic-bezier(.65,0,.35,1); }
.slide{ flex:0 0 100%; height:100%; }
.slide img{ width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.carousel:hover .slide img{ transform:scale(1.04); }
.car-btn{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.85); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:1.2rem; z-index:5; transition:background .3s ease; }
.car-btn:hover{ background:var(--gold); color:#fff; }
.car-btn.prev{ left:1rem; } .car-btn.next{ right:1rem; }
.car-dots{ position:absolute; left:0; right:0; bottom:1rem; display:flex; gap:6px; justify-content:center; z-index:5; }
.car-dots .dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.6); cursor:pointer; transition:background .3s ease, transform .3s ease; }
.car-dots .dot.active{ background:var(--gold); transform:scale(1.3); }
.suite-info .num{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.suite-info h3{ font-size:clamp(1.8rem,3vw,2.4rem); margin-top:.4rem; }
.suite-info p.desc{ color:var(--ink-soft); margin-top:1rem; line-height:1.75; font-size:1rem; }
.suite-facts{ display:flex; flex-wrap:wrap; gap:.5rem 1.1rem; margin-top:1.2rem; font-size:.82rem; color:var(--ink-soft); }
.suite-facts span::before{ content:"—"; color:var(--gold); margin-right:6px; }
.suite-info .btn{ margin-top:1.6rem; }

/* ---------- experience ---------- */
.experience{ background:var(--bg-2); }
.exp-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; }
@media (max-width:900px){ .exp-grid{ grid-template-columns:repeat(2,1fr); } }
.exp-card{ background:var(--white); padding:2.4rem 1.6rem; text-align:center; border:1px solid var(--border); transition:transform .35s ease, box-shadow .35s ease; }
.exp-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.exp-card svg{ width:34px; height:34px; color:var(--gold); margin:0 auto 1.1rem; transition:transform .35s ease; }
.exp-card:hover svg{ transform:scale(1.12) rotate(-4deg); }
.exp-card h3{ font-size:1.25rem; }
.exp-card p{ color:var(--ink-soft); font-size:.88rem; margin-top:.5rem; line-height:1.5; }

/* ---------- cinematic feature ---------- */
.cinematic{ padding:0; height:56vh; min-height:360px; position:relative; overflow:hidden; }
.cinematic img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.cinematic:hover img{ transform:scale(1.04); }
.cinematic-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(23,17,8,0.1), rgba(23,17,8,0.4)); }
.cinematic-inner{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.cinematic-inner .cap{ color:var(--white); font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(1.6rem,3.4vw,2.6rem); text-align:center; padding:0 6vw; }

/* ---------- gallery ---------- */
.gallery{ background:var(--white); }
.gallery-stage{ position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:4px; box-shadow:var(--shadow); }
@media (max-width:700px){ .gallery-stage{ aspect-ratio:4/5; } }
.gallery-slides{ display:flex; height:100%; transition:transform .6s cubic-bezier(.65,0,.35,1); }
.gallery-slide{ flex:0 0 100%; height:100%; position:relative; }
.gallery-slide img{ width:100%; height:100%; object-fit:cover; }
.gallery-slide-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(23,17,8,.55), transparent 45%); pointer-events:none; }
.gallery-cap{ position:absolute; left:2rem; bottom:1.6rem; z-index:3; color:var(--white); font-family:'Instrument Serif',serif; font-size:1.5rem; }
.gallery-nav-btn{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.85); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:1.3rem; z-index:5; transition:background .3s ease; }
.gallery-nav-btn:hover{ background:var(--gold); color:#fff; }
.gallery-nav-btn.prev{ left:1.2rem; } .gallery-nav-btn.next{ right:1.2rem; }
.gallery-thumbs{ display:flex; gap:.8rem; margin-top:1.2rem; overflow-x:auto; padding-bottom:.3rem; scrollbar-width:none; }
.gallery-thumbs::-webkit-scrollbar{ display:none; }
.gallery-thumb{ flex:0 0 auto; width:92px; aspect-ratio:4/3; overflow:hidden; cursor:pointer; opacity:.5; border-radius:3px; transition:opacity .3s ease, box-shadow .3s ease; box-shadow:0 0 0 2px transparent; }
.gallery-thumb.active{ opacity:1; box-shadow:0 0 0 2px var(--gold); }
.gallery-thumb img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:600px){ .gallery-thumb{ width:72px; } }

/* ---------- location ---------- */
.octo-section{ background:var(--white); padding:6rem 0; }
.octo-wrap{ max-width:900px; margin:0 auto; background:var(--white); color:var(--ink); padding:1rem; border-radius:8px; }
.octo-wrap, .octo-wrap *{ color:var(--ink) !important; }
.octo-wrap input, .octo-wrap select, .octo-wrap button{ font-family:'Plus Jakarta Sans',sans-serif !important; }

.location{ background:var(--bg-2); }
.loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
@media (max-width:900px){ .loc-grid{ grid-template-columns:1fr; gap:2.4rem; } }
.loc-copy p{ color:var(--ink-soft); line-height:1.75; font-size:1rem; margin-top:1rem; }
.steps{ background:var(--white); border:1px solid var(--border); }
.step{ display:flex; gap:1.2rem; padding:1.2rem 1.6rem; border-bottom:1px solid var(--border); align-items:baseline; }
.step:last-child{ border-bottom:none; }
.step-num{ font-family:'Instrument Serif',serif; font-style:italic; color:var(--gold); font-size:1.3rem; flex-shrink:0; width:1.8rem; }
.step-title{ color:var(--ink); font-weight:500; }
.step-sub{ color:var(--ink-soft); font-size:.85rem; margin-top:.15rem; }

/* ---------- sisters ---------- */
.sisters{ background:var(--white); }
.sister-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; }
@media (max-width:800px){ .sister-grid{ grid-template-columns:1fr; } }
.sister-card{ padding:2.6rem; border:1px solid var(--border); transition:transform .35s ease, box-shadow .35s ease; }
.sister-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.sister-card .kicker{ display:block; margin-bottom:.5rem; }
.sister-card h3{ font-size:1.7rem; }
.sister-card p{ color:var(--ink-soft); font-size:.92rem; line-height:1.6; margin-top:.8rem; }
.sister-link{ display:inline-flex; gap:8px; margin-top:1.3rem; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); border-bottom:1px solid var(--gold); padding-bottom:3px; }

/* ---------- booking CTA ---------- */
.cta{ position:relative; height:56vh; min-height:400px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.cta img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cta-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(23,17,8,0.3), rgba(23,17,8,0.55)); }
.cta-inner{ position:relative; z-index:2; color:var(--white); }
.cta-inner h2{ color:var(--white); font-size:clamp(2rem,4.4vw,3.2rem); }
.cta-inner .btn{ margin-top:1.8rem; }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:rgba(255,255,255,.72); padding:5rem 0 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.4fr .8fr .8fr 1fr; gap:2.4rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.12); }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-brand .b1{ font-family:'Instrument Serif',serif; color:var(--white); font-size:1.5rem; }
.foot-brand .b2{ font-size:.62rem; letter-spacing:.32em; text-transform:uppercase; color:var(--champagne); margin-top:.2rem; }
.foot-brand p{ margin-top:1.2rem; font-size:.88rem; line-height:1.6; max-width:260px; }
.foot-col h4{ font-family:'Plus Jakarta Sans',sans-serif; color:var(--white); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1rem; font-weight:600; }
.foot-col a, .foot-col span{ display:block; font-size:.88rem; margin-bottom:.65rem; color:rgba(255,255,255,.65); }
.foot-col a:hover{ color:var(--champagne); }
.foot-social{ display:flex; gap:1.2rem; margin-top:1.4rem; }
.foot-social a{ width:34px; height:34px; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.foot-social a:hover{ border-color:var(--champagne); }
.foot-social svg{ width:15px; height:15px; }
.foot-bottom{ padding-top:1.6rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.8rem; color:rgba(255,255,255,.5); }
.foot-bottom a{ color:rgba(255,255,255,.75); }

/* ---------- video modal ---------- */

/* ---------- floating WhatsApp button ---------- */
.wa-float{ position:fixed; right:1.3rem; bottom:1.3rem; z-index:500; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 16px 32px -12px rgba(23,23,23,.45); transition:transform .3s ease, box-shadow .3s ease; }
.wa-float:hover{ transform:scale(1.08); box-shadow:0 20px 38px -12px rgba(23,23,23,.55); }
.wa-float svg{ width:28px; height:28px; color:#fff; }
@media (max-width:860px){ .wa-float{ right:1rem; bottom:1rem; width:52px; height:52px; } .wa-float svg{ width:25px; height:25px; } }

[data-reveal]{ opacity:1; transform:none; }
html.js-reveal-ready [data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
html.js-reveal-ready [data-reveal].in{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html.js-reveal-ready [data-reveal]{ opacity:1; transform:none; transition:none; }
  .hero-media img{ animation:none !important; opacity:1 !important; }
  .hero-media img:not(:first-child){ display:none; }
  .hero-slide-indicator .bar::after{ animation:none; }
  .hero-content .kicker, .hero-title, .hero-sub, .hero-tagline, .hero-ctas{ opacity:1; animation:none; }
}
a:focus-visible, button:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
 .bw-field input,.bw-field select{height:52px;font-size:.95rem;font-weight:600;appearance:none;-webkit-appearance:none;cursor:pointer;} .bw-field input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;}
 @media (max-width:860px){.bw-field:nth-child(1 of .bw-field){border-right:1px solid var(--border);}.bw-field:nth-child(2 of .bw-field){grid-column:auto;}.bw-field:nth-child(2n of .bw-field){border-right:medium none currentcolor;}.bw-field:nth-child(3 of .bw-field){grid-column:1 / -1;border-right:medium none currentcolor;}.promo-badge{position:static;top:auto;right:auto;grid-column:1 / -1;justify-self:center;margin:.5rem 0 0;}}