/* ============================================================
   HYBRITEL PATTAYA — design system
   Palette derived from brand collateral: Pattaya sunset over sea,
   azure HPT band, silver/gold coin. Sibling to The Twin Tower
   (sales) but distinct: hospitality + fintech, not editorial serif.
   ============================================================ */

:root{
  /* marine navy — deep bands in brand slides */
  --ink:      #0A1B3A;
  --ink-2:    #10294f;
  --ink-3:    #1a3a68;
  /* azure — bright HPT brand blue (primary interactive) */
  --azure:    #2E6BE6;
  --azure-dk: #1f52bd;
  --azure-lt: #6ba8f5;
  /* brass/gold — coin accent (premium / value) */
  --gold:     #B9812A;
  --gold-lt:  #E4B54E;
  --gold-dim: #8a5f14;
  /* neutrals */
  --sand:     #F4EFE6;
  --pearl:    #FCFBF8;
  --sea-mist: #DCE7F3;
  --line:     #E2DBCE;
  --ink-soft: #52627e;   /* muted text on light — WCAG AA on pearl */
  --white:    #ffffff;

  --maxw: 1240px;
  --gut: clamp(18px, 4vw, 56px);
  --radius: 20px;
  --radius-sm: 13px;

  --shadow-1: 0 2px 10px rgba(10,27,58,.06), 0 12px 34px rgba(10,27,58,.09);
  --shadow-2: 0 8px 24px rgba(10,27,58,.10), 0 30px 70px rgba(10,27,58,.16);
  --glass-brd: 1px solid rgba(255,255,255,.35);

  --ff-display: "Space Grotesk", "IBM Plex Sans Thai", system-ui, sans-serif;
  --ff-body: "Manrope", "IBM Plex Sans Thai", system-ui, sans-serif;
  --ff-thai: "IBM Plex Sans Thai", "Manrope", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body{
  margin:0; font-family:var(--ff-body); color:var(--ink);
  background:var(--pearl); line-height:1.6; font-size:17px;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block }
a{ color:inherit; text-decoration:none }
h1,h2,h3,h4{ font-family:var(--ff-display); font-weight:600; line-height:1.08;
  letter-spacing:-.02em; margin:0 }
:lang(th) h1,:lang(th) h2,:lang(th) h3{ letter-spacing:0; line-height:1.25 }
p{ margin:0 }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut) }
.eyebrow{ font-family:var(--ff-display); font-weight:600; font-size:.74rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dim);
  display:inline-flex; align-items:center; gap:.6em }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold) }
section{ position:relative }

/* ---------- buttons ---------- */
.btn{ --bg:var(--azure); --fg:#fff;
  display:inline-flex; align-items:center; gap:.5em; justify-content:center;
  font-family:var(--ff-display); font-weight:600; font-size:.98rem;
  padding:.85em 1.5em; border-radius:100px; background:var(--bg); color:var(--fg);
  border:1px solid transparent; cursor:pointer; transition:transform .18s, box-shadow .18s, background .18s;
  box-shadow:0 6px 18px rgba(46,107,230,.28); position:relative; overflow:hidden }
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(46,107,230,.36) }
.btn:active{ transform:translateY(0) }
.btn--gold{ --bg:linear-gradient(135deg,var(--gold-lt),var(--gold));
  --fg:var(--ink); box-shadow:0 6px 18px rgba(185,129,42,.32) }
.btn--gold:hover{ box-shadow:0 10px 26px rgba(185,129,42,.42) }
.btn--ghost{ --bg:transparent; --fg:var(--ink); border-color:rgba(10,27,58,.22);
  box-shadow:none }
.btn--ghost:hover{ background:rgba(10,27,58,.05); box-shadow:none }
.btn--light{ --bg:rgba(255,255,255,.14); --fg:#fff; border-color:rgba(255,255,255,.4);
  backdrop-filter:blur(8px); box-shadow:none }
.btn--light:hover{ background:rgba(255,255,255,.24); box-shadow:none }

/* ---------- header ---------- */
.hdr{ position:fixed; inset:0 0 auto 0; z-index:60; transition:background .3s, box-shadow .3s, border-color .3s;
  border-bottom:1px solid transparent }
.hdr__in{ display:flex; align-items:center; gap:1.4rem; height:74px }
.hdr.scrolled{ background:rgba(252,251,248,.82); backdrop-filter:blur(16px) saturate(1.4);
  border-color:var(--line); box-shadow:0 4px 24px rgba(10,27,58,.06) }
.brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--ff-display);
  font-weight:700; font-size:1.28rem; letter-spacing:-.01em; color:#fff; transition:color .3s }
.hdr.scrolled .brand{ color:var(--ink) }
.brand__mark{ width:34px; height:34px; border-radius:9px; flex:0 0 auto;
  background:linear-gradient(135deg,var(--azure),var(--ink-2)); position:relative;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2) }
.brand__mark::after{ content:""; position:absolute; inset:0; border-radius:9px;
  background:radial-gradient(circle at 30% 25%, rgba(228,181,78,.9), transparent 55%) }
.brand small{ display:block; font-family:var(--ff-body); font-weight:500; font-size:.56rem;
  letter-spacing:.28em; opacity:.7; text-transform:uppercase; margin-top:1px }
.nav{ display:flex; gap:.3rem; margin-left:auto }
.nav a{ font-weight:600; font-size:.94rem; padding:.5rem .8rem; border-radius:9px;
  color:rgba(255,255,255,.9); transition:color .25s, background .25s }
.hdr.scrolled .nav a{ color:var(--ink-soft) }
.nav a:hover{ color:#fff; background:rgba(255,255,255,.12) }
.hdr.scrolled .nav a:hover{ color:var(--azure); background:rgba(46,107,230,.08) }
.hdr__act{ display:flex; align-items:center; gap:.7rem }
.lang{ position:relative }
.lang__btn{ display:flex; align-items:center; gap:.35em; font-family:var(--ff-display);
  font-weight:600; font-size:.86rem; color:#fff; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3); padding:.5em .8em; border-radius:100px;
  cursor:pointer; transition:color .3s, background .3s, border-color .3s }
.hdr.scrolled .lang__btn{ color:var(--ink); background:rgba(10,27,58,.05); border-color:var(--line) }
.lang__menu{ position:absolute; right:0; top:calc(100% + 8px); background:#fff;
  border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-2);
  padding:.4rem; min-width:150px; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:.2s }
.lang.open .lang__menu{ opacity:1; visibility:visible; transform:none }
.lang__menu a{ display:flex; gap:.6em; align-items:center; padding:.55em .7em; border-radius:8px;
  font-weight:600; font-size:.9rem }
.lang__menu a:hover{ background:var(--sea-mist) }
.burger{ display:none; width:44px; height:44px; border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12); border-radius:11px; cursor:pointer; align-items:center;
  justify-content:center; flex-direction:column; gap:4px }
.hdr.scrolled .burger{ border-color:var(--line); background:rgba(10,27,58,.05) }
.burger span{ width:19px; height:2px; background:#fff; border-radius:2px; transition:.3s }
.hdr.scrolled .burger span{ background:var(--ink) }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:74px; overflow:hidden; color:#fff }
.hero__bg{ position:absolute; inset:0; z-index:-2 }
.hero__bg img{ width:100%; height:100%; object-fit:cover; animation:kb 26s ease-in-out infinite alternate }
@keyframes kb{ from{ transform:scale(1.06) } to{ transform:scale(1.14) translateY(-1.5%) } }
.hero__scrim{ position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(105deg, rgba(6,17,38,.9) 0%, rgba(8,22,48,.72) 40%, rgba(10,27,58,.28) 72%, rgba(10,27,58,.12) 100%),
    linear-gradient(0deg, rgba(6,15,34,.55), transparent 45%) }
.hero .wrap{ position:relative; z-index:1; width:100% }
.hero__card{ max-width:640px }
.hero h1{ font-size:clamp(2.5rem, 6.2vw, 4.6rem); font-weight:700; letter-spacing:-.03em;
  margin:.5rem 0 0 }
.hero h1 .accent{ color:transparent; background:linear-gradient(120deg,var(--gold-lt),#fff 80%);
  -webkit-background-clip:text; background-clip:text }
.hero__sub{ font-size:clamp(1.05rem,1.7vw,1.28rem); color:rgba(255,255,255,.9);
  max-width:33em; margin:1.3rem 0 0; font-weight:400 }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem }
.hero .eyebrow{ color:var(--gold-lt) }
.hero .eyebrow::before{ background:var(--gold-lt) }

/* convert-flow signature — the Zero-Risk key */
.flow{ display:flex; align-items:stretch; gap:0; margin-top:2.6rem; max-width:660px;
  background:rgba(255,255,255,.09); border:var(--glass-brd); border-radius:var(--radius);
  backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 20px 50px rgba(4,12,30,.4); overflow:hidden }
.flow__step{ flex:1; padding:1.15rem 1.1rem; position:relative; min-width:0 }
.flow__step + .flow__step{ border-left:1px solid rgba(255,255,255,.16) }
.flow__k{ font-family:var(--ff-display); font-size:.72rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold-lt); display:flex; align-items:center; gap:.4em }
.flow__t{ display:block; font-family:var(--ff-display); font-weight:600; font-size:1.02rem; margin-top:.35rem }
.flow__d{ display:block; font-size:.82rem; color:rgba(255,255,255,.78); margin-top:.15rem; line-height:1.4 }
.flow__arrow{ position:absolute; right:-9px; top:50%; transform:translateY(-50%); z-index:2;
  width:18px; height:18px; color:var(--gold-lt) }
.flow__step:last-child .flow__arrow{ display:none }

.hero__trust{ display:flex; flex-wrap:wrap; gap:.8rem 1.7rem; margin-top:2rem; align-items:center }
.hero__trust span{ display:inline-flex; align-items:center; gap:.5em; font-size:.9rem;
  color:rgba(255,255,255,.85); font-weight:500; white-space:nowrap }
.hero__trust svg{ width:18px; height:18px; color:var(--gold-lt); flex:0 0 auto }
.scrolldown{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:1;
  color:rgba(255,255,255,.6); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.5rem }
.scrolldown::after{ content:""; width:1px; height:34px; background:linear-gradient(rgba(255,255,255,.6),transparent);
  animation:sd 1.8s ease-in-out infinite }
@keyframes sd{ 0%,100%{ opacity:.3; transform:scaleY(.6) } 50%{ opacity:1; transform:scaleY(1) } }

/* ---------- generic section head ---------- */
.sec{ padding:clamp(4rem,9vw,7.5rem) 0 }
.sec--tint{ background:linear-gradient(180deg,var(--sand),var(--pearl)) }
.sec--ink{ background:radial-gradient(120% 100% at 80% 0%, var(--ink-3), var(--ink) 60%); color:#fff }
.sec__head{ max-width:640px; margin-bottom:2.8rem }
.sec--center .sec__head{ margin-inline:auto; text-align:center }
.sec__head h2{ font-size:clamp(1.9rem,4vw,2.9rem); margin:.7rem 0 0 }
.sec__head p{ color:var(--ink-soft); font-size:1.08rem; margin-top:.9rem }
.sec--ink .sec__head p{ color:rgba(255,255,255,.75) }
.sec--ink .eyebrow{ color:var(--gold-lt) } .sec--ink .eyebrow::before{ background:var(--gold-lt) }

/* ---------- stats strip ---------- */
.strip{ background:var(--ink); color:#fff; padding:1.6rem 0 }
.strip__in{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; text-align:center }
.strip__n{ font-family:var(--ff-display); font-weight:700; font-size:clamp(1.5rem,3vw,2.15rem);
  color:var(--gold-lt); letter-spacing:-.02em }
.strip__l{ font-size:.82rem; color:rgba(255,255,255,.72); margin-top:.15rem }
.strip__div{ }

/* ---------- advantage / zero-risk ---------- */
.zr{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center }
.zr__visual{ position:relative }

/* --- the convertible-key mechanism (dark fintech panel) --- */
.zrx{ position:relative; border-radius:var(--radius); padding:2rem 1.7rem 1.8rem;
  background:radial-gradient(130% 90% at 50% -10%, var(--ink-3), var(--ink) 62%);
  box-shadow:var(--shadow-2), inset 0 0 0 1px rgba(255,255,255,.06);
  color:#fff; overflow:hidden; text-align:center }
.zrx::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 40% at 50% 0%, rgba(228,181,78,.16), transparent 70%) }
.zrx > *{ position:relative }
/* top: the reserved amount */
.zrx__amt{ font-family:var(--ff-display); font-weight:700; letter-spacing:-.03em; line-height:1;
  font-size:clamp(2.4rem,6vw,3.2rem);
  background:linear-gradient(120deg,#fff, var(--gold-lt) 90%); -webkit-background-clip:text;
  background-clip:text; color:transparent }
.zrx__amtlbl{ display:block; font-family:var(--ff-display); font-size:.7rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-lt); margin-top:.5rem }
.zrx__amtsub{ font-size:.86rem; color:rgba(255,255,255,.7); margin-top:.35rem }
/* glowing branch connector */
.zrx__fork{ position:relative; height:46px; margin:.2rem auto 0; width:74% }
.zrx__fork::before{ content:""; position:absolute; left:50%; top:0; width:2px; height:22px;
  transform:translateX(-50%); background:linear-gradient(var(--gold-lt),var(--gold));
  box-shadow:0 0 10px rgba(228,181,78,.6) }
.zrx__fork::after{ content:""; position:absolute; left:25%; right:25%; top:22px; height:22px;
  border:2px solid var(--gold); border-bottom:0; border-radius:14px 14px 0 0;
  box-shadow:0 0 10px rgba(228,181,78,.4) }
.zrx__dot{ position:absolute; left:50%; top:-4px; width:10px; height:10px; border-radius:50%;
  transform:translateX(-50%); background:var(--gold-lt); box-shadow:0 0 0 4px rgba(228,181,78,.25);
  animation:pulseDot 2.2s ease-in-out infinite }
@keyframes pulseDot{ 0%,100%{ box-shadow:0 0 0 3px rgba(228,181,78,.28) } 50%{ box-shadow:0 0 0 8px rgba(228,181,78,.08) } }
/* two outcome tiles */
.zrx__paths{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-top:.2rem }
.zrx__path{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-sm); padding:1.15rem 1rem 1.2rem; text-align:left;
  backdrop-filter:blur(6px); transition:transform .2s, border-color .2s }
.zrx__path:hover{ transform:translateY(-3px); border-color:rgba(228,181,78,.4) }
.zrx__pico{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  background:rgba(46,107,230,.22); color:var(--azure-lt) }
.zrx__pico svg{ width:21px; height:21px }
.zrx__path--gold .zrx__pico{ background:linear-gradient(135deg,var(--gold-lt),var(--gold)); color:var(--ink) }
.zrx__pk{ font-family:var(--ff-display); font-size:.68rem; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(255,255,255,.55); margin-top:.7rem }
.zrx__pt{ font-family:var(--ff-display); font-weight:600; font-size:1.02rem; margin-top:.15rem }
.zrx__pd{ font-size:.82rem; color:rgba(255,255,255,.72); margin-top:.3rem; line-height:1.4 }
.zrx__kept{ display:inline-flex; align-items:center; gap:.35em; margin-top:.7rem; font-size:.72rem;
  font-weight:600; color:var(--gold-lt) }
.zrx__kept svg{ width:14px; height:14px }
.zrx__foot{ margin-top:1.3rem; font-family:var(--ff-display); font-weight:600; font-size:.9rem;
  color:rgba(255,255,255,.9) }
.zrx__foot b{ color:var(--gold-lt) }
.zr__list{ list-style:none; padding:0; margin:1.6rem 0 0 }
.zr__list li{ display:flex; gap:.7rem; align-items:flex-start; padding:.5rem 0; font-size:1rem }
.zr__list svg{ width:22px; height:22px; color:var(--azure); flex:0 0 auto; margin-top:1px }
.note{ font-size:.82rem; color:var(--ink-soft); margin-top:1.4rem; padding:.8rem 1rem;
  background:var(--sand); border-radius:var(--radius-sm); border-left:3px solid var(--gold) }

/* ---------- rooms ---------- */
.rooms{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem }
.rcard{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-1); transition:transform .25s, box-shadow .25s; display:flex; flex-direction:column }
.rcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-2) }
.rcard__img{ aspect-ratio:4/3; overflow:hidden; position:relative }
.rcard__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s }
.rcard:hover .rcard__img img{ transform:scale(1.06) }
.rcard__tag{ position:absolute; top:.7rem; left:.7rem; background:rgba(10,27,58,.8);
  backdrop-filter:blur(6px); color:#fff; font-family:var(--ff-display); font-weight:600;
  font-size:.78rem; padding:.3em .7em; border-radius:100px }
.rcard__b{ padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; flex:1 }
.rcard__b h3{ font-size:1.15rem }
.rcard__meta{ font-size:.85rem; color:var(--ink-soft); margin-top:.3rem }
.rcard__price{ margin-top:auto; padding-top:.9rem; font-family:var(--ff-display) }
.rcard__price b{ font-size:1.4rem; color:var(--azure); font-weight:700 }
.rcard__price small{ color:var(--ink-soft); font-weight:500; font-size:.8rem }

/* ---------- split feature (buy / token) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem }
.feat{ border-radius:var(--radius); overflow:hidden; position:relative; min-height:380px; isolation:isolate;
  display:flex; align-items:flex-end; color:#fff; box-shadow:var(--shadow-1) }
.feat img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2 }
.feat__scrim{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(0deg, rgba(6,15,34,.92) 5%, rgba(8,20,44,.5) 45%, rgba(10,27,58,.15) 100%) }
.feat__b{ padding:1.8rem 1.8rem 2rem }
.feat__b h3{ font-size:1.5rem } .feat__b p{ color:rgba(255,255,255,.84); margin-top:.5rem; font-size:.98rem }
.feat__b .btn{ margin-top:1.2rem }
.feat--token{ background:radial-gradient(120% 90% at 80% 10%, var(--ink-3), var(--ink)) }
.feat--token .feat__inner{ display:flex; gap:1.5rem; align-items:center; padding:1.8rem;
  position:relative; z-index:1 }
.feat--token img.coin{ position:static; width:130px; height:auto; filter:drop-shadow(0 12px 24px rgba(0,0,0,.5));
  animation:float 5s ease-in-out infinite }
@keyframes float{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-10px) } }

/* ---------- facilities ---------- */
.facts{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem }
.fcell{ border-radius:var(--radius-sm); overflow:hidden; position:relative; color:#fff }
.fcell img{ width:100%; height:100%; object-fit:cover; transition:transform .5s }
.fcell:hover img{ transform:scale(1.07) }
.fcell::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,15,34,.75),transparent 60%) }
.fcell span{ position:absolute; left:1rem; bottom:.85rem; z-index:1; font-family:var(--ff-display);
  font-weight:600; font-size:1rem; text-shadow:0 1px 8px rgba(0,0,0,.4) }
.fcell--wide{ grid-column:span 2 } .fcell--tall{ grid-row:span 2 }

/* ---------- location ---------- */
.loc{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center }
.loc__pins{ list-style:none; padding:0; margin:1.6rem 0 0; display:grid; gap:.7rem }
.loc__pins li{ display:flex; gap:.9rem; align-items:center; font-size:1rem }
.loc__dist{ font-family:var(--ff-display); font-weight:700; color:var(--azure); min-width:74px; font-size:1.05rem }
.loc__img{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-2); aspect-ratio:4/5 }
.loc__img img{ width:100%; height:100%; object-fit:cover }

/* ---------- pay ---------- */
.pay{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem }
.pcard{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius);
  padding:1.4rem; backdrop-filter:blur(6px) }
.pcard__flag{ font-size:1.7rem; line-height:1 }
.pcard h4{ margin-top:.7rem; font-size:1.1rem } .pcard p{ font-size:.85rem; color:rgba(255,255,255,.72); margin-top:.35rem }
.pcard__m{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.9rem }
.pcard__m span{ font-size:.72rem; font-weight:600; padding:.25em .65em; border-radius:100px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16) }
.pay__note{ text-align:center; margin-top:1.8rem; font-size:.86rem; color:rgba(255,255,255,.6) }

/* ---------- CTA band ---------- */
.cta{ background:linear-gradient(120deg,var(--azure-dk),var(--ink)); color:#fff; text-align:center;
  border-radius:var(--radius); padding:clamp(2.6rem,6vw,4.5rem) var(--gut); position:relative; overflow:hidden }
.cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 120% at 50% -10%, rgba(228,181,78,.22), transparent 60%) }
.cta > *{ position:relative }
.cta h2{ font-size:clamp(1.8rem,4vw,2.7rem) } .cta p{ color:rgba(255,255,255,.82); margin:.8rem auto 0; max-width:32em }
.cta__btns{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:1.8rem }
.chat{ display:flex; gap:.7rem; justify-content:center; margin-top:1.4rem; flex-wrap:wrap }
.chat a{ display:flex; align-items:center; gap:.45em; font-weight:600; font-size:.88rem;
  padding:.55em 1em; border-radius:100px; background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22); transition:background .2s }
.chat a:hover{ background:rgba(255,255,255,.22) }

/* ---------- reservation form ---------- */
.book{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(2rem,5vw,4rem); align-items:start }
.book__aside .eyebrow{ color:var(--gold-dim) }
.book__aside h2{ font-size:clamp(1.9rem,4vw,2.7rem); margin:.7rem 0 0 }
.book__aside p{ color:var(--ink-soft); font-size:1.06rem; margin-top:.9rem }
.book__assure{ list-style:none; padding:0; margin:1.6rem 0 0; display:grid; gap:.7rem }
.book__assure li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.98rem }
.book__assure svg{ width:20px; height:20px; color:var(--azure); flex:0 0 auto; margin-top:2px }
.book__chat{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem }
.book__chat a{ display:flex; align-items:center; gap:.45em; font-weight:600; font-size:.9rem;
  padding:.55em 1em; border-radius:100px; background:#fff; border:1px solid var(--line);
  box-shadow:var(--shadow-1); transition:transform .18s, border-color .18s }
.book__chat a:hover{ transform:translateY(-2px); border-color:var(--azure) }
.book__phone{ margin-top:1.6rem; font-family:var(--ff-display); font-weight:700; font-size:1.35rem }
.book__phone a{ color:var(--azure) }

.form{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,3vw,2.1rem);
  box-shadow:var(--shadow-2); position:relative }
.form__grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.field{ display:flex; flex-direction:column; gap:.4rem }
.field--full{ grid-column:1 / -1 }
.field label{ font-family:var(--ff-display); font-weight:600; font-size:.82rem; color:var(--ink);
  letter-spacing:.01em }
.field label .req{ color:var(--gold-dim) }
.field input, .field select, .field textarea{ font-family:var(--ff-body); font-size:.98rem; color:var(--ink);
  background:var(--pearl); border:1px solid var(--line); border-radius:11px; padding:.72em .9em;
  transition:border-color .18s, box-shadow .18s; width:100% }
.field textarea{ resize:vertical; min-height:84px }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--azure);
  box-shadow:0 0 0 3px rgba(46,107,230,.14) }
.field--split{ display:grid; grid-template-columns:auto 1fr; gap:.5rem; align-items:end }
.field--split select{ width:auto }
/* intent chips */
.intent{ display:flex; flex-wrap:wrap; gap:.5rem }
.intent label{ cursor:pointer }
.intent input{ position:absolute; opacity:0; width:0; height:0 }
.intent span{ display:inline-block; padding:.5em 1em; border-radius:100px; border:1px solid var(--line);
  font-family:var(--ff-display); font-weight:600; font-size:.86rem; background:var(--pearl); transition:.15s }
.intent input:checked + span{ background:var(--ink); color:#fff; border-color:var(--ink) }
.intent input:focus-visible + span{ outline:3px solid var(--gold-lt); outline-offset:2px }
/* honeypot — visually gone, still focusable-off for bots */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
.consent{ display:flex; gap:.6rem; align-items:flex-start; font-size:.84rem; color:var(--ink-soft); margin-top:.2rem }
.consent input{ margin-top:3px; width:17px; height:17px; flex:0 0 auto; accent-color:var(--azure) }
.consent a{ color:var(--azure); font-weight:600 }
.form .btn{ width:100%; margin-top:.4rem }
.leadbanner{ display:flex; gap:.6rem; align-items:flex-start; margin:0 0 1.3rem; padding:.8rem 1rem;
  border-radius:var(--radius-sm); font-size:.92rem; line-height:1.45; color:var(--ink);
  background:linear-gradient(180deg, rgba(228,181,78,.16), rgba(228,181,78,.07));
  border:1px solid rgba(185,129,42,.34) }
.leadbanner svg{ width:19px; height:19px; color:var(--gold-dim); flex:0 0 auto; margin-top:2px }
.leadbanner b{ color:var(--gold-dim); font-weight:700 }

/* ---------- official appointment / credential ---------- */
.cred{ max-width:960px; margin-inline:auto }
.cred__head{ text-align:center; max-width:730px; margin-inline:auto }
.cred__head h2{ font-size:clamp(1.9rem,4vw,2.9rem) }
.cred__head p{ color:var(--ink-soft); font-size:1.08rem; margin-top:1rem }
.lockup{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(1rem,3vw,2.4rem);
  margin:2.4rem auto 0; padding:clamp(1.5rem,3.4vw,2.2rem) clamp(1.2rem,3vw,2.6rem);
  background:linear-gradient(180deg,#fff,#fdfbf5); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-1); position:relative; overflow:hidden }
.lockup::before{ content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg,transparent,var(--gold-lt),var(--gold),var(--gold-lt),transparent) }
.lockup__side{ text-align:center; display:flex; flex-direction:column; gap:.28rem }
.lockup__role{ font-family:var(--ff-display); font-weight:600; font-size:.7rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold-dim) }
.lockup__name{ font-family:var(--ff-display); font-weight:700; font-size:clamp(1.35rem,3vw,2rem);
  letter-spacing:-.01em; color:var(--ink) }
.lockup__note{ font-size:.85rem; color:var(--ink-soft) }
.lockup__link{ display:flex; flex-direction:column; align-items:center; gap:.45rem; color:var(--gold-dim) }
.lockup__seal{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
  background:radial-gradient(circle at 34% 28%,var(--gold-lt),var(--gold)); color:#fff;
  box-shadow:0 6px 16px rgba(185,129,42,.34), inset 0 0 0 3px rgba(255,255,255,.35) }
.lockup__seal svg{ width:26px; height:26px }
.lockup__tie{ font-family:var(--ff-display); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600 }
.cred__facts{ list-style:none; padding:0; margin:2rem auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem }
.cred__facts li{ position:relative; padding-left:1.7rem; font-size:.95rem; color:var(--ink); line-height:1.5 }
.cred__facts li svg{ position:absolute; left:0; top:2px; width:18px; height:18px; color:var(--azure) }
@media(max-width:760px){
  .lockup{ grid-template-columns:1fr; gap:1.1rem }
  .lockup__link{ flex-direction:row; gap:.6rem; justify-content:center }
  .cred__facts{ grid-template-columns:1fr; gap:.8rem; max-width:420px }
}
.form__status{ font-size:.9rem; font-weight:600; margin-top:.2rem; min-height:1.2em; text-align:center }
.form__status.err{ color:#c0392b } .form__status.ok{ color:#1e7d46 }
.btn.is-loading{ pointer-events:none; opacity:.75 }
.btn.is-loading::after{ content:""; width:16px; height:16px; border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite }
@keyframes spin{ to{ transform:rotate(360deg) } }

/* ---------- footer ---------- */
.ft{ background:var(--ink); color:rgba(255,255,255,.7); padding:3.5rem 0 2rem }
.ft__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2rem }
.ft h5{ font-family:var(--ff-display); color:#fff; font-size:.9rem; letter-spacing:.05em;
  text-transform:uppercase; margin:0 0 1rem }
.ft a{ display:block; padding:.28rem 0; font-size:.92rem; transition:color .2s }
.ft a:hover{ color:var(--gold-lt) }
.ft__brand{ display:flex; align-items:center; gap:.6rem; color:#fff; font-family:var(--ff-display);
  font-weight:700; font-size:1.3rem; margin-bottom:.8rem }
.ft__legal{ border-top:1px solid rgba(255,255,255,.12); margin-top:2.5rem; padding-top:1.5rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem }
.ft__dis{ font-size:.76rem; color:rgba(255,255,255,.45); margin-top:1rem; max-width:60ch; line-height:1.5 }

/* ---------- subpage header (no hero → solid from start) ---------- */
.hdr--solid{ position:sticky; background:rgba(252,251,248,.9); backdrop-filter:blur(16px) saturate(1.4);
  border-color:var(--line); box-shadow:0 4px 24px rgba(10,27,58,.06) }
.hdr--solid .brand{ color:var(--ink) }
.hdr--solid .nav a{ color:var(--ink-soft) }
.hdr--solid .lang__btn{ color:var(--ink); background:rgba(10,27,58,.05); border-color:var(--line) }
.hdr--solid .burger{ border-color:var(--line); background:rgba(10,27,58,.05) }
.hdr--solid .burger span{ background:var(--ink) }

/* ---------- page head band ---------- */
.phead{ background:radial-gradient(120% 130% at 85% -10%, var(--ink-3), var(--ink) 62%); color:#fff;
  padding:clamp(2.6rem,7vw,4.4rem) 0 clamp(2.2rem,6vw,3.6rem) }
.phead .eyebrow{ color:var(--gold-lt) } .phead .eyebrow::before{ background:var(--gold-lt) }
.phead h1{ font-size:clamp(2rem,5vw,3.2rem); margin:.7rem 0 0 }
.phead p{ color:rgba(255,255,255,.8); font-size:1.08rem; margin:1rem 0 0; max-width:44em }
.phead__crumb{ font-size:.86rem; color:rgba(255,255,255,.6); margin-bottom:.3rem }
.phead__crumb a:hover{ color:#fff }

/* ---------- buy: filters + grid ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.8rem }
.filters button{ font-family:var(--ff-display); font-weight:600; font-size:.88rem; padding:.5em 1.1em;
  border-radius:100px; border:1px solid var(--line); background:#fff; color:var(--ink-soft); cursor:pointer;
  transition:.15s }
.filters button:hover{ border-color:var(--azure) }
.filters button.active{ background:var(--ink); color:#fff; border-color:var(--ink) }
.ugrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem }
.ucard{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-1); display:flex; flex-direction:column; transition:transform .22s, box-shadow .22s }
.ucard:hover{ transform:translateY(-5px); box-shadow:var(--shadow-2) }
.ucard__img{ aspect-ratio:16/11; position:relative; overflow:hidden; background:var(--sea-mist) }
.ucard__img img{ width:100%; height:100%; object-fit:cover }
.ucard__badge{ position:absolute; top:.7rem; left:.7rem; display:flex; gap:.4rem }
.ucard__badge span{ background:rgba(10,27,58,.82); backdrop-filter:blur(6px); color:#fff;
  font-family:var(--ff-display); font-weight:600; font-size:.74rem; padding:.3em .7em; border-radius:100px }
.ucard__status{ position:absolute; top:.7rem; right:.7rem; font-size:.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; padding:.3em .7em; border-radius:100px;
  background:rgba(30,125,70,.92); color:#fff }
.ucard__status.is-reserved{ background:rgba(185,129,42,.95) }
.ucard__b{ padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; flex:1 }
.ucard__t{ display:flex; justify-content:space-between; align-items:baseline; gap:.5rem }
.ucard__t h3{ font-size:1.2rem } .ucard__t .sz{ font-size:.85rem; color:var(--ink-soft); font-weight:600 }
.ucard__meta{ font-size:.85rem; color:var(--ink-soft); margin-top:.25rem }
.ucard__prices{ display:flex; gap:1.2rem; margin:.9rem 0 0; padding-top:.9rem; border-top:1px solid var(--line) }
.ucard__pr small{ display:block; font-size:.72rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em }
.ucard__pr b{ font-family:var(--ff-display); font-size:1.15rem; color:var(--azure) }
.ucard__pr.buy b{ color:var(--ink) }
.ucard .btn{ margin-top:1.1rem; width:100% }
.ustate{ text-align:center; padding:3rem 0; color:var(--ink-soft) }

/* ---------- account / portal ---------- */
.auth{ max-width:440px; margin:0 auto; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow-2); padding:clamp(1.6rem,4vw,2.4rem) }
.auth h2{ font-size:1.5rem } .auth p{ color:var(--ink-soft); font-size:.96rem; margin-top:.5rem }
.auth .field{ margin-top:1.1rem }
.auth .btn{ width:100%; margin-top:1.1rem }
.auth__alt{ text-align:center; font-size:.85rem; color:var(--ink-soft); margin-top:1.1rem }
.auth__alt a{ color:var(--azure); font-weight:600; cursor:pointer }
.portal{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.2rem }
.pcard2{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem;
  box-shadow:var(--shadow-1) }
.pcard2 h3{ font-size:1.05rem; display:flex; align-items:center; gap:.5rem }
.pcard2 .big{ font-family:var(--ff-display); font-weight:700; font-size:2rem; color:var(--azure); margin-top:.4rem }
.pcard2 .muted{ color:var(--ink-soft); font-size:.9rem; margin-top:.3rem }
.plist{ list-style:none; padding:0; margin:0 }
.plist li{ display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--line);
  font-size:.92rem; align-items:center }
.plist li:last-child{ border-bottom:0 }
.chip{ font-size:.72rem; font-weight:700; padding:.25em .6em; border-radius:100px; background:var(--sea-mist);
  color:var(--azure-dk); text-transform:uppercase; letter-spacing:.04em }
.chip.ok{ background:#dff3e6; color:#1e7d46 } .chip.warn{ background:#faedd6; color:var(--gold-dim) }
.portal__top{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.6rem; flex-wrap:wrap }
.portal__top .btn{ box-shadow:none }
/* admin table */
.atable{ width:100%; border-collapse:collapse; font-size:.9rem; background:#fff; border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-1) }
.atable th, .atable td{ text-align:left; padding:.8rem 1rem; border-bottom:1px solid var(--line) }
.atable th{ font-family:var(--ff-display); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;
  color:var(--ink-soft); background:var(--sand) }
.atable tr:last-child td{ border-bottom:0 }
.atable__wrap{ overflow-x:auto }

@media(max-width:900px){ .ugrid{ grid-template-columns:repeat(2,1fr) } }
@media(max-width:560px){ .ugrid{ grid-template-columns:1fr } }

/* ---------- legal / prose ---------- */
.prose{ max-width:760px; margin:0 auto; padding:clamp(2.4rem,6vw,4rem) 0 }
.prose h2{ font-size:1.4rem; margin:2.2rem 0 .7rem } .prose h2:first-child{ margin-top:0 }
.prose h3{ font-size:1.05rem; margin:1.4rem 0 .4rem }
.prose p, .prose li{ color:var(--ink-soft); font-size:1rem; line-height:1.7 }
.prose ul{ padding-left:1.3rem; margin:.5rem 0 }
.prose li{ margin:.3rem 0 }
.prose .lead{ font-size:1.1rem; color:var(--ink) }
.prose .divider{ height:1px; background:var(--line); margin:3rem 0 }
.prose .updated{ font-size:.85rem; color:var(--ink-soft); margin-bottom:2rem }
.prose a{ color:var(--azure); font-weight:600 }
.prose strong{ color:var(--ink) }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease }
.reveal.in{ opacity:1; transform:none }

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .zr,.loc{ grid-template-columns:1fr } .loc__img{ aspect-ratio:16/10; order:-1 }
  .rooms,.pay{ grid-template-columns:repeat(2,1fr) }
  .facts{ grid-template-columns:repeat(2,1fr) }
  .split{ grid-template-columns:1fr }
}
@media(max-width:760px){
  .nav,.hdr__act .btn{ display:none } .burger{ display:flex }
  .flow{ flex-direction:column } .flow__step + .flow__step{ border-left:0; border-top:1px solid rgba(255,255,255,.16) }
  .flow__arrow{ right:50%; top:auto; bottom:-9px; transform:translateX(50%) rotate(90deg) }
  .strip__in{ grid-template-columns:repeat(2,1fr); gap:1.4rem 1rem }
  .ft__grid{ grid-template-columns:1fr 1fr } .ft__brand{ grid-column:1/-1 }
  body{ font-size:16px }
  /* mobile nav drawer */
  .nav.open{ display:flex; position:fixed; inset:74px 0 auto 0; flex-direction:column;
    background:rgba(252,251,248,.98); backdrop-filter:blur(20px); padding:1rem var(--gut) 1.6rem;
    box-shadow:var(--shadow-2); gap:.2rem }
  .nav.open a{ color:var(--ink); font-size:1.05rem; padding:.8rem .4rem; border-bottom:1px solid var(--line) }
}
@media(max-width:440px){
  .rooms,.pay,.facts{ grid-template-columns:1fr }
  .facts{ grid-auto-rows:180px } .fcell--wide{ grid-column:span 1 }
}

/* accessibility */
:focus-visible{ outline:3px solid var(--gold-lt); outline-offset:2px; border-radius:4px }
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important }
  .reveal{ opacity:1; transform:none }
}
