/* ============================================================
   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 }
/* HPT coin — pure-CSS 3D turntable spin (double-sided flat image).
   No WebGL: colour is always exactly the artwork, works on every GPU. */
.feat--token .coin3d{ position:static; width:160px; height:160px; flex:0 0 auto;
  perspective:720px; filter:drop-shadow(0 14px 26px rgba(0,0,0,.55));
  animation:float 5s ease-in-out infinite }
.feat--token .coin3d__inner{ position:relative; width:100%; height:100%;
  transform-style:preserve-3d; animation:coinspin 10s linear infinite; will-change:transform }
.feat--token .coin3d__face{ position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; backface-visibility:hidden; -webkit-backface-visibility:hidden }
.feat--token .coin3d__back{ transform:rotateY(180deg) }
@keyframes coinspin{ from{ transform:rotateY(0deg) } to{ transform:rotateY(360deg) } }
@media (prefers-reduced-motion: reduce){
  .feat--token .coin3d,.feat--token .coin3d__inner{ animation:none }
  .feat--token .coin3d__back{ display:none } }
@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 } }

/* ---------- reservation / pay ---------- */
.rz{ max-width:560px; margin:0 auto }
.rz__card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-2);
  padding:clamp(1.5rem,4vw,2.3rem) }
.rz__unit{ display:flex; align-items:center; gap:.8rem; padding:.9rem 1rem; background:var(--sand);
  border-radius:var(--radius-sm); margin-bottom:1.4rem }
.rz__unit b{ font-family:var(--ff-display) }
.rz__unit .tag{ margin-left:auto; font-family:var(--ff-display); font-weight:700; color:var(--azure) }
.paybox{ text-align:center }
.paybox__amt{ font-family:var(--ff-display); font-weight:700; font-size:clamp(2rem,6vw,2.8rem);
  color:var(--ink); letter-spacing:-.02em; margin:.2rem 0 }
.paybox__amt small{ font-size:.9rem; color:var(--ink-soft); font-weight:600 }
.paybox__thb{ font-size:.9rem; color:var(--ink-soft) }
.paybox__net{ display:inline-flex; align-items:center; gap:.4em; margin:1rem 0 .4rem; font-size:.82rem;
  font-weight:700; color:var(--gold-dim); background:var(--sand); padding:.35em .8em; border-radius:100px }
.copyrow{ display:flex; gap:.5rem; align-items:stretch; margin:.4rem 0 }
.copyrow input{ flex:1; font-family:ui-monospace,monospace; font-size:.82rem; padding:.7em .8em;
  border:1px solid var(--line); border-radius:11px; background:var(--pearl); color:var(--ink); min-width:0 }
.copyrow button{ flex:0 0 auto; padding:0 1.1em; border-radius:11px; border:1px solid var(--azure);
  background:var(--azure); color:#fff; font-family:var(--ff-display); font-weight:600; font-size:.85rem; cursor:pointer }
.copyrow button.copied{ background:#1e7d46; border-color:#1e7d46 }
.paywarn{ font-size:.82rem; color:var(--gold-dim); background:#faedd6; border-radius:var(--radius-sm);
  padding:.8rem 1rem; margin:1rem 0; text-align:left; line-height:1.5 }
.paywarn b{ color:var(--ink) }
.countdown{ font-family:var(--ff-display); font-weight:600; color:var(--ink-soft); font-size:.9rem; margin:.6rem 0 }
.countdown b{ color:var(--ink) }
.rz__ok{ text-align:center }
.rz__ok .big{ width:66px; height:66px; border-radius:50%; margin:0 auto 1rem; display:flex; align-items:center;
  justify-content:center; background:linear-gradient(135deg,#22c55e,#16a34a); color:#fff }
.rz__ok .big svg{ width:34px; height:34px }
.rz__steps{ display:flex; gap:.5rem; margin-bottom:1.5rem; font-size:.8rem; color:var(--ink-soft) }
.rz__steps span{ flex:1; text-align:center; padding:.5rem; border-radius:100px; background:var(--sand); font-weight:600 }
.rz__steps span.on{ background:var(--ink); color:#fff }

/* ---------- 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 }
}
picture{display:contents}

/* ---- connected journey / how it works ---- */
.journey{list-style:none;margin:2.4rem 0 1.4rem;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem;position:relative}
.journey::before{content:"";position:absolute;top:26px;left:9%;right:9%;height:2px;background:linear-gradient(90deg,var(--gold),var(--azure));opacity:.4;z-index:0}
.jstep{position:relative;z-index:1;text-align:center;padding:0 .3rem}
.jstep__n{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid var(--gold);color:#0A1B3A;font-family:var(--ff-display);font-weight:700;font-size:1.05rem;margin-bottom:.7rem;box-shadow:0 6px 18px rgba(10,27,58,.12)}
.jstep h3{font-size:1rem;margin:0 0 .25rem;font-family:var(--ff-display)}
.jstep p{font-size:.84rem;color:var(--ink-soft);margin:0;line-height:1.5}
.journey__cta{text-align:center;margin-top:.4rem}
@media(max-width:820px){.journey{grid-template-columns:1fr;gap:.9rem}.journey::before{display:none}.jstep{display:flex;gap:.9rem;text-align:left;align-items:flex-start}.jstep__n{margin:0;flex:none;width:44px;height:44px;font-size:.95rem}}

/* ---- mega call-to-action (bold, full-bleed invitation) ---- */
.megacta{position:relative;min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff}
.megacta__bg{position:absolute;inset:0;z-index:0}
.megacta__bg img{width:100%;height:100%;object-fit:cover;animation:kenburns 22s ease-in-out infinite alternate}
.megacta__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,27,58,.66),rgba(10,27,58,.9))}
.megacta .wrap{position:relative;z-index:2;max-width:840px;padding:5rem 1.2rem}
.megacta .eyebrow{color:var(--gold-lt,#F4C25A)}
.megacta h2{font-family:var(--ff-display);font-weight:700;font-size:clamp(2.4rem,6.2vw,4.4rem);line-height:1.02;letter-spacing:-.02em;margin:.5rem 0 .9rem}
.megacta p{font-size:clamp(1.02rem,1.6vw,1.2rem);color:rgba(255,255,255,.86);max-width:640px;margin:0 auto 2.2rem;line-height:1.65}
.btn-mega{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--ff-display);font-weight:700;font-size:clamp(1.2rem,2.6vw,1.75rem);color:#0A1B3A;background:linear-gradient(135deg,#F7CE6B,#B9812A);padding:1.05em 2.5em;border-radius:100px;text-decoration:none;position:relative;overflow:hidden;box-shadow:0 18px 50px rgba(185,129,42,.5);animation:megaPulse 2.6s ease-in-out infinite;transition:transform .25s ease,box-shadow .25s ease}
.btn-mega:hover{transform:translateY(-4px) scale(1.045);box-shadow:0 0 0 10px rgba(247,206,107,.16),0 26px 74px rgba(185,129,42,.66)}
.btn-mega::after{content:"";position:absolute;top:0;left:-60%;width:38%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);animation:shimmer 3.4s ease-in-out infinite}
.megacta__feats{margin-top:1.7rem;display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;font-size:.92rem;color:rgba(255,255,255,.78)}
@keyframes megaPulse{0%,100%{box-shadow:0 0 0 0 rgba(247,206,107,.5),0 18px 50px rgba(185,129,42,.5)}50%{box-shadow:0 0 0 16px rgba(247,206,107,0),0 18px 50px rgba(185,129,42,.5)}}
@keyframes shimmer{0%{left:-60%}55%,100%{left:135%}}
@keyframes kenburns{0%{transform:scale(1)}100%{transform:scale(1.13)}}
@media(prefers-reduced-motion:reduce){.btn-mega,.megacta__bg img{animation:none}.btn-mega::after{display:none}}

/* ===== DUO · rent | buy (two big buttons, side by side) ===== */
.duo{display:grid;grid-template-columns:1fr 1fr}
.duo__panel{position:relative;min-height:76vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff}
.duo__bg{position:absolute;inset:0;z-index:0}
.duo__bg img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
.duo__panel:hover .duo__bg img{transform:scale(1.06)}
.duo__scrim{position:absolute;inset:0;z-index:1}
.duo__panel--rent .duo__scrim{background:linear-gradient(180deg,rgba(10,27,58,.5),rgba(10,27,58,.88))}
.duo__panel--buy .duo__scrim{background:linear-gradient(180deg,rgba(58,38,10,.42),rgba(10,27,58,.9))}
.duo__panel--buy::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:rgba(255,255,255,.2);z-index:2}
.duo__in{position:relative;z-index:2;max-width:430px;padding:4rem 1.6rem}
.duo__in .eyebrow{color:var(--gold-lt,#F4C25A)}
.duo__in h2{font-family:var(--ff-display);font-weight:700;font-size:clamp(2rem,3.4vw,3rem);line-height:1.04;letter-spacing:-.015em;margin:.5rem 0 .7rem}
.duo__in p{font-size:1.02rem;color:rgba(255,255,255,.86);margin:0 auto 1.8rem;line-height:1.6}
.duo .btn-mega{font-size:clamp(1.05rem,1.9vw,1.42rem);padding:.92em 1.9em}
.duo__feats{margin-top:1.4rem;display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:rgba(255,255,255,.76)}
@media(max-width:820px){.duo{grid-template-columns:1fr}.duo__panel{min-height:60vh}.duo__panel--buy::before{left:14%;right:14%;top:0;bottom:auto;width:auto;height:1px}}

/* ===== GUIDES · condensed articles ===== */
.guides{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.guide{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.1rem}
.guide__k{font-family:var(--ff-display);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dim,#B9812A)}
.guide h3{font-family:var(--ff-display);font-size:clamp(1.3rem,2.2vw,1.6rem);margin:.5rem 0 .9rem;line-height:1.18}
.guide p{color:var(--ink-soft);line-height:1.72;font-size:1rem;margin:0 0 .85rem}
.guide__fine{font-size:.86rem;color:var(--ink-soft);opacity:.85;border-top:1px solid var(--line);padding-top:.8rem;margin-top:.2rem}
@media(max-width:820px){.guides{grid-template-columns:1fr;gap:1.1rem}}

/* ===== /units/ interactive floor plan ===== */
.fp-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.fp-sumline{font-size:.9rem;color:var(--ink-soft);display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin:0}
.fp-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:1.6rem;align-items:start}
.fp-stackcol{position:sticky;top:86px}
.fp-stack__hint{font-size:.78rem;color:var(--ink-soft);margin:0 0 .6rem;letter-spacing:.02em}
.fp-stack{display:flex;flex-direction:column;padding:.4rem .2rem}
/* one floor plate in the isometric stack */
.fp-layer{position:relative;display:block;height:22px;margin:0;padding:0;border:0;background:none;cursor:pointer;text-align:left}
.fp-layer__plate{position:absolute;left:34px;top:2px;width:150px;height:16px;background:linear-gradient(120deg,#e8f0fb,#cfdcf0);border:1px solid #b9c9e2;border-radius:3px;transform:skewX(-38deg);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.fp-layer__f{position:absolute;left:0;top:0;width:26px;font:600 .74rem/22px 'Space Grotesk',sans-serif;color:var(--ink-soft);text-align:right;transition:color .15s}
.fp-layer__n{position:absolute;right:0;top:1px;min-width:20px;padding:0 5px;border-radius:9px;background:#e7f6e9;color:#1c7c34;font:700 .68rem/18px Manrope,sans-serif;text-align:center}
.fp-layer:hover .fp-layer__plate,.fp-layer.is-hot .fp-layer__plate{transform:skewX(-38deg) translateX(12px);background:linear-gradient(120deg,#dbe9fc,#b8d2f4);box-shadow:0 3px 10px rgba(46,107,230,.25)}
.fp-layer:hover .fp-layer__f{color:var(--azure-dk)}
.fp-layer.is-sel .fp-layer__plate{transform:skewX(-38deg) translateX(18px);background:linear-gradient(120deg,var(--gold-lt),#f3d488);border-color:var(--gold);box-shadow:0 4px 14px rgba(185,129,42,.35)}
.fp-layer.is-sel .fp-layer__f{color:var(--gold-dim);font-weight:700}
.fp-layer:focus-visible .fp-layer__plate{outline:2px solid var(--azure);outline-offset:2px}
/* stage — the pulled-out plate */
.fp-stage-title{font:600 1.05rem/1.3 'Space Grotesk',sans-serif;color:var(--ink);margin:0 0 .7rem}
.fp-stage{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:.8rem;box-shadow:0 10px 30px rgba(10,27,58,.08);overflow-x:auto}
.fp-svg{display:block;width:100%;min-width:680px;height:auto}
@keyframes fp-pop{from{opacity:.25;transform:translateX(-6%) scale(.86) skewX(-8deg)}to{opacity:1;transform:none}}
.fp-stage.fp-pop .fp-svg{animation:fp-pop .45s cubic-bezier(.2,.8,.25,1)}
.fp-corr{fill:#efe9dc}
.fp-core rect{fill:#e3decf;stroke:#cfc7b2}
.fp-core text{font:600 12px 'Space Grotesk',sans-serif;fill:#8d8467}
.fp-cell rect{stroke-width:1.2;transition:filter .15s,opacity .15s}
.fp-cell{cursor:pointer}
.fp-cell:hover rect,.fp-cell:focus-visible rect{filter:brightness(.93) saturate(1.15)}
.fp-cell:focus-visible rect{stroke:var(--azure);stroke-width:2.5}
.fp-cell.is-open rect{stroke:var(--azure-dk);stroke-width:2.5}
.fp-cell--off{cursor:not-allowed}
.fp-cell--off:hover rect{filter:none}
.fp-cell__no{font:600 14px 'Space Grotesk',sans-serif;fill:#22314e;pointer-events:none}
.fp-cell__t{font:500 10.5px Manrope,sans-serif;fill:#5a6a86;pointer-events:none}
.fp-cell--av rect{fill:#DFF3E1;stroke:#79c68a}
.fp-cell--sale rect{fill:#F7E9C8;stroke:var(--gold-lt)}
.fp-cell--alsosale rect{stroke:var(--gold);stroke-width:2;stroke-dasharray:5 3}
.fp-cell--reserved rect{fill:#FBEFC9;stroke:#d9b24a}
.fp-cell--rented rect{fill:#F6DBD7;stroke:#d98d80}
.fp-cell--rented .fp-cell__no{fill:#7c3a2f}
.fp-cell--sold rect{fill:#dfe3ea;stroke:#aab3c2}
.fp-cell--sold .fp-cell__no{fill:#8b95a6;text-decoration:line-through}
.fp-cell--na rect{fill:#f1f2f4;stroke:#d7dae0}
.fp-cell--na .fp-cell__no{fill:#b3bac6}

/* real floor-plan image + clickable unit hotspots */
.fp-plan{position:relative;width:100%;min-width:760px;line-height:0}
.fp-plan__img{width:100%;height:auto;display:block;border-radius:10px;user-select:none;-webkit-user-drag:none}
.fp-hot{position:absolute;margin:0;padding:0;border:1.5px solid transparent;border-radius:5px;background:transparent;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;transition:background .15s,border-color .15s,box-shadow .15s}
.fp-hot__no{font:700 clamp(8px,.95vw,12px)/1 'Space Grotesk',sans-serif;color:#22314e;background:rgba(255,255,255,.84);border-radius:3px;padding:1px 3px;margin-bottom:3px;pointer-events:none;letter-spacing:-.02em;white-space:nowrap}
button.fp-hot:hover,button.fp-hot:focus-visible{background:rgba(46,107,230,.16);box-shadow:0 5px 16px rgba(10,27,58,.22);outline:none}
button.fp-hot:focus-visible{border-color:var(--azure)}
.fp-hot.is-open{border-color:var(--azure-dk);background:rgba(46,107,230,.18)}
.fp-hot--av{background:rgba(121,198,138,.34);border-color:#5fb374}
.fp-hot--sale{background:rgba(228,181,78,.36);border-color:var(--gold)}
.fp-hot--alsosale{border-style:dashed;border-width:2px;border-color:var(--gold)}
.fp-hot--reserved{background:rgba(217,178,74,.36);border-color:#d9b24a}
.fp-hot--rented{background:rgba(217,141,128,.36);border-color:#d98d80}
.fp-hot--sold{background:rgba(150,160,175,.42);border-color:#aab3c2}
.fp-hot--na{background:transparent;border-color:transparent;cursor:default}
.fp-hot--av .fp-hot__no,.fp-hot--sale .fp-hot__no{color:#1c4a2b}
.fp-hot--sold .fp-hot__no{color:#6b7688;text-decoration:line-through}
.fp-hot--na .fp-hot__no{display:none}
.fp-hot--off{cursor:not-allowed}
.fp-stage.fp-pop .fp-plan{animation:fp-pop .45s cubic-bezier(.2,.8,.25,1)}

/* legend */
.fp-legend{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:.9rem;font-size:.82rem;color:var(--ink-soft)}
.fp-legend>span{display:inline-flex;align-items:center;gap:.4rem}
.fp-key{display:inline-block;width:13px;height:13px;border-radius:3px;border:1px solid transparent}
.fp-key--av{background:#DFF3E1;border-color:#79c68a}
.fp-key--sale{background:#F7E9C8;border-color:var(--gold)}
.fp-key--reserved{background:#FBEFC9;border-color:#d9b24a}
.fp-key--rented{background:#F6DBD7;border-color:#d98d80}
.fp-key--sold{background:#dfe3ea;border-color:#aab3c2}
.fp-key--na{background:#f1f2f4;border-color:#d7dae0}
/* unit detail panel */
.fp-stagecol{position:relative}
.fp-flex{display:flex;gap:1.1rem;align-items:flex-start}
.fp-stageinner{flex:1 1 auto;min-width:0}
.fp-panel{flex:0 0 0px;width:0;align-self:stretch;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(10,27,58,.18);opacity:0;visibility:hidden;transform:translateX(14px);transition:opacity .22s,transform .22s,visibility .22s,flex-basis .25s ease;overflow:hidden}
.fp-panel.is-open{flex-basis:320px;width:auto;min-width:280px;opacity:1;visibility:visible;transform:none;position:relative}
.fp-panel img{width:100%;height:150px;object-fit:cover;display:block}
.fp-panel__x{position:absolute;top:.5rem;right:.6rem;width:30px;height:30px;border-radius:50%;border:0;background:rgba(10,27,58,.55);color:#fff;font-size:1.05rem;line-height:1;cursor:pointer;z-index:2}
.fp-panel__x:hover{background:rgba(10,27,58,.8)}
.fp-panel__body{padding:1rem 1.1rem 1.2rem}
.fp-panel__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}
.fp-panel__head h3{font:700 1.25rem/1 'Space Grotesk',sans-serif;color:var(--ink);margin:0}
.fp-badge{font:700 .68rem/1 Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:.32em .7em;border-radius:99px}
.fp-badge--av{background:#e7f6e9;color:#1c7c34}
.fp-badge--sale{background:#f7e9c8;color:var(--gold-dim)}
.fp-badge--reserved{background:#fbefc9;color:#8a6d1a}
.fp-badge--rented{background:#f6dbd7;color:#a03d2d}
.fp-badge--sold{background:#dfe3ea;color:#5a6577}
.fp-facts{margin:0 0 .9rem;display:grid;gap:.35rem}
.fp-facts>div{display:flex;justify-content:space-between;gap:.8rem;font-size:.9rem;border-bottom:1px dashed var(--line);padding-bottom:.35rem}
.fp-facts dt{color:var(--ink-soft)}
.fp-facts dd{margin:0;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.fp-panel__cta{display:flex;gap:.6rem;flex-wrap:wrap}
.fp-panel__cta .btn{flex:1;text-align:center;padding:.65em 1em;font-size:.92rem}
.fp-note{font-size:.8rem;color:var(--ink-soft);margin:.7rem 0 0}
@media (max-width:900px){
  .fp-wrap{grid-template-columns:1fr}
  .fp-stackcol{position:static}
  .fp-stack{flex-direction:row;flex-wrap:wrap;gap:2px}
  .fp-layer{height:30px;width:52px}
  .fp-layer__plate{left:20px;top:6px;width:26px;height:14px}
  .fp-layer__f{width:16px;font-size:.7rem;line-height:30px}
  .fp-layer__n{display:none}
  .fp-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(16px)}
  .fp-panel.is-open{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .fp-layer__plate,.fp-panel,.fp-cell rect{transition:none}
  .fp-stage.fp-pop .fp-svg{animation:none}
}

/* ============ master site plan (/units/) ============ */
.phead--tight{padding-bottom:1rem}
.mp-app{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1.4rem;align-items:start}
.mp-side{display:flex;flex-direction:column;gap:1rem;position:sticky;top:86px}
.mp-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(10,27,58,.06)}
.mp-card__h{font:700 .74rem/1 'Space Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .8rem}
.mp-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.mp-status li{display:flex;align-items:center;gap:.6rem;font-size:.92rem;color:var(--ink)}
.mp-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}
.mp-status__k{flex:1}
.mp-status b{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}
.mp-fld{display:block;margin-bottom:.7rem}
.mp-fld span{display:block;font-size:.78rem;color:var(--ink-soft);margin-bottom:.25rem;font-weight:600}
.mp-fld select{width:100%;padding:.55em .7em;border:1px solid var(--line);border-radius:9px;background:var(--white);font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer}
.mp-fld select:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 3px rgba(46,107,230,.15)}
.mp-reset{width:100%;justify-content:center;margin-top:.3rem;font-size:.86rem}
.mp-hint{font-size:.82rem;color:var(--ink-soft);text-align:center;margin:0;padding:0 .5rem;line-height:1.5}

.mp-main{position:relative}
.mp-stagewrap{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:0 12px 34px rgba(10,27,58,.09);overflow-x:auto}
.mp-stage{min-width:820px}
.mp-svg{display:block;width:100%;height:auto}

/* svg building + cells */
.mp-slab{fill:#f6f4ee;stroke:#e6e1d4;stroke-width:1}
.mp-corr{fill:#efe9dc}
.mp-pill rect{fill:var(--ink);filter:drop-shadow(0 3px 8px rgba(10,27,58,.28))}
.mp-pill text{fill:#fff;font:700 17px 'Space Grotesk',sans-serif;letter-spacing:.14em;text-anchor:middle;text-transform:uppercase}
.mp-core rect{fill:#e3decf;stroke:#cfc7b2;stroke-width:1}
.mp-core text{fill:#8d8467;font:600 13px 'Space Grotesk',sans-serif;text-anchor:middle}
.mp-cell rect{stroke:#fff;stroke-width:1.4;transition:filter .14s,opacity .14s}
.mp-cell__no{fill:#22314e;font:700 15px 'Space Grotesk',sans-serif;text-anchor:middle;pointer-events:none}
.mp-cell__sq{fill:#3a4a63;font:500 10px Manrope,sans-serif;text-anchor:middle;opacity:.75;pointer-events:none}
.mp-cell--sold .mp-cell__no,.mp-cell--occupied .mp-cell__no,.mp-cell--locked .mp-cell__no{fill:#fff}
.mp-cell--sold .mp-cell__sq,.mp-cell--occupied .mp-cell__sq,.mp-cell--locked .mp-cell__sq{fill:#fff;opacity:.8}
.mp-cell[role="button"]{cursor:pointer}
.mp-cell[role="button"]:hover rect{filter:brightness(1.06) saturate(1.1)}
.mp-cell[role="button"]:focus-visible rect{stroke:var(--azure);stroke-width:2.5;outline:none}
.mp-cell.is-open rect{stroke:var(--ink);stroke-width:2.5}
.mp-cell--noclick{cursor:default}
.mp-cell--dim{opacity:.25}

/* amenity deck */
.mp-deck{fill:#eef0ec;stroke:#e0e3dc;stroke-width:1}
.mp-pool__w{fill:#8fd0e8}
.mp-pool__i{fill:#a9dcef}
.mp-lounge{fill:#fff;stroke:#d7d2c4;stroke-width:.6}
.mp-tree{fill:#8bbf7c;stroke:#6fa861;stroke-width:1}
.mp-fit rect{fill:#e7dcc4;stroke:#d5c7a6;stroke-width:1}
.mp-amen__t{fill:#3f4a3a;font:700 13px 'Space Grotesk',sans-serif;text-anchor:middle;letter-spacing:.06em}
.mp-amen__s{fill:#6b7566;font:500 8.5px Manrope,sans-serif;text-anchor:middle;letter-spacing:.04em}
.mp-brand circle{fill:#fff;stroke:#dfe3ea;stroke-width:1.4}
.mp-brand__t{fill:var(--azure-dk);font:700 12px 'Space Grotesk',sans-serif;text-anchor:middle;letter-spacing:.08em}
.mp-brand__s{fill:#8a93a3;font:600 7px Manrope,sans-serif;text-anchor:middle;letter-spacing:.06em}

/* detail panel — centred, draggable modal with click-outside backdrop */
.mp-backdrop{position:fixed;inset:0;background:rgba(10,27,58,.42);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:60}
.mp-backdrop.is-open{opacity:1;visibility:visible}
.mp-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);width:360px;max-width:92vw;max-height:86vh;overflow:auto;background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px rgba(10,27,58,.34);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:61}
.mp-panel.is-open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.mp-panel img{width:100%;height:168px;object-fit:cover;display:block;border-radius:18px 18px 0 0}
.mp-panel__x{position:absolute;top:.55rem;right:.6rem;width:34px;height:34px;border-radius:50%;border:0;background:rgba(10,27,58,.55);color:#fff;font-size:1.2rem;line-height:1;cursor:pointer;z-index:2}
.mp-panel__x:hover{background:rgba(10,27,58,.82)}
.mp-panel__body{padding:1.1rem 1.25rem 1.35rem}
.mp-panel__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem;flex-wrap:wrap;cursor:move;touch-action:none;user-select:none}
.mp-panel__head h3{font:700 1.45rem/1 'Space Grotesk',sans-serif;color:var(--ink);margin:0}
.mp-badge{font:700 .66rem/1 Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:.34em .7em;border-radius:99px}
.mp-badge--available{background:#e7f6e9;color:#3b7a25}
.mp-badge--reserved{background:#fbefc9;color:#8a6d1a}
.mp-badge--sold{background:#fbe0dc;color:#a63d31}
.mp-badge--occupied{background:#eceff2;color:#556170}
.mp-badge--locked{background:#e4e8ee;color:#3b4859}
.mp-facts{margin:0 0 1rem;display:grid;gap:.45rem}
.mp-facts>div{display:flex;justify-content:space-between;gap:.8rem;font-size:1rem;border-bottom:1px dashed var(--line);padding-bottom:.45rem}
.mp-facts dt{color:var(--ink-soft)}
.mp-facts dd{margin:0;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.mp-panel__cta{display:flex;gap:.6rem;flex-wrap:wrap}
.mp-panel__cta .btn{flex:1;text-align:center;padding:.7em 1em;font-size:1rem}

/* legend */
.mp-legend{display:flex;gap:1.3rem;flex-wrap:wrap;align-items:center;margin-top:1.1rem;padding:.9rem 1.1rem;background:var(--white);border:1px solid var(--line);border-radius:12px;font-size:.85rem;color:var(--ink)}
.mp-legend>span{display:inline-flex;align-items:center;gap:.45rem}
.mp-key{width:14px;height:14px;border-radius:4px;display:inline-block}
.mp-legend__note{margin-left:auto;color:var(--ink-soft);font-size:.78rem;font-style:italic}

@media (max-width:900px){
  .mp-app{grid-template-columns:1fr}
  .mp-side{position:static;flex-direction:row;flex-wrap:wrap}
  .mp-card{flex:1 1 220px}
  .mp-hint{flex-basis:100%}
  .mp-panel{width:94vw}
  .mp-legend__note{margin-left:0;flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){ .mp-panel,.mp-cell rect{transition:none} }
