/* ============================================================
   AUREA DEVELOPMENTS — design system
   Palette & type carried over from the print brochure.
   ============================================================ */

:root{
  --cream:#FFF9F0;
  --paper:#FCF6EC;
  --ink:#1C1A16;
  --ink-soft:#33302A;
  --gold:#CA9636;
  --gold-deep:#A97E52;
  --bronze:#B8915C;
  --body:#5F584F;
  --muted:#8A8178;
  --hair:#E2D8C6;
  --hair-2:#EFE7D7;

  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --maxw:1180px;
  --gutter:clamp(22px, 6vw, 90px);
  --section-y:clamp(64px, 9vw, 132px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--sans);
  color:var(--body);
  background:var(--cream);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);font-weight:600;margin:0;line-height:1.12}
h1{font-size:clamp(2.6rem, 6vw, 4.5rem)}
h2{font-size:clamp(2rem, 4vw, 3.1rem)}
h3{font-size:clamp(1.35rem,2.2vw,1.7rem)}
p{margin:0 0 1.1em}
.lead{font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--body)}
.italic{font-style:italic;font-family:var(--serif);color:var(--bronze)}

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 1.2rem;
  display:inline-block;
}
.eyebrow--light{color:var(--bronze)}

.rule{width:54px;height:0;border-top:1.5px solid var(--gold);margin:1.6rem 0}
.rule.center{margin-left:auto;margin-right:auto}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--paper{background:var(--paper)}
.section--ink{background:var(--ink);color:#CFC6B8}
.section--ink h2,.section--ink h3{color:var(--cream)}
.center{text-align:center}
.measure{max-width:60ch}
.measure.center{margin-inline:auto}

.grid{display:grid;gap:clamp(28px,4vw,56px)}
.split{grid-template-columns:1fr 1fr;align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  padding:.95em 1.9em;border:1px solid var(--gold);
  color:var(--ink);background:transparent;cursor:pointer;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
}
.btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn--solid{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.btn--solid:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.btn--ghost{border-color:rgba(255,255,255,.45);color:var(--cream)}
.btn--ghost:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}

/* ---------- Header / nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-solid{
  background:rgba(255,249,240,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding-block:12px;border-bottom-color:var(--hair-2);
}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:38px;width:auto}
.brand .wordmark{
  font-family:var(--sans);font-weight:600;letter-spacing:.26em;
  font-size:.78rem;text-transform:uppercase;color:var(--cream);
  line-height:1.1;transition:color .4s var(--ease);
}
.brand .wordmark small{display:block;font-weight:400;letter-spacing:.3em;font-size:.6rem;color:var(--gold)}
.nav.is-solid .brand .wordmark{color:var(--ink)}

.nav-links{display:flex;align-items:center;gap:34px;list-style:none;margin:0;padding:0}
.nav-links a:not(.btn){
  font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cream);position:relative;padding-block:4px;transition:color .4s var(--ease);
}
.nav.is-solid .nav-links a:not(.btn){color:var(--ink-soft)}
.nav-links a:not(.btn)::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);
  transition:width .3s var(--ease);
}
.nav-links a:not(.btn):hover::after,.nav-links a:not(.btn).active::after{width:100%}
.nav-links a:not(.btn):hover{color:var(--gold)}

.nav-cta{margin-left:6px}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:30px;height:22px;position:relative}
.nav-toggle span{position:absolute;left:0;width:100%;height:1.5px;background:var(--cream);transition:.3s var(--ease)}
.nav.is-solid .nav-toggle span{background:var(--ink)}
.nav-toggle span:nth-child(1){top:0}
.nav-toggle span:nth-child(2){top:10px}
.nav-toggle span:nth-child(3){top:20px}

@media (max-width:880px){
  .nav-toggle{display:block}
  .nav-links{
    position:fixed;inset:0 0 0 auto;width:min(78vw,340px);
    flex-direction:column;align-items:flex-start;justify-content:center;gap:26px;
    background:var(--ink);padding:0 40px;
    transform:translateX(100%);transition:transform .45s var(--ease);
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links a,.nav.is-solid .nav-links a{color:var(--cream);font-size:.95rem}
  .nav-links .btn{color:var(--cream);border-color:var(--gold)}
  body.menu-open{overflow:hidden}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--cream);overflow:hidden;
}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04)}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,18,14,.55) 0%,rgba(20,18,14,.25) 38%,rgba(20,18,14,.62) 100%);
}
.hero__inner{position:relative;z-index:2;padding:120px var(--gutter) 90px;max-width:880px}
.hero__mono{height:64px;margin:0 auto 26px;filter:drop-shadow(0 2px 14px rgba(0,0,0,.35))}
.hero h1{color:#fff;letter-spacing:.02em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero .italic{color:#E9D9B6}
.hero__sub{
  font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:#F0E7D6;margin-top:1.4rem;
}
.hero__dot{color:var(--gold);margin:0 .7em}
.scroll-cue{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;
  font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:#E9E0D0;opacity:.8;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.scroll-cue::after{content:"";width:1px;height:42px;background:linear-gradient(var(--gold),transparent);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{opacity:0;transform:scaleY(.3)}40%{opacity:1}100%{opacity:0;transform:translateY(8px) scaleY(1)}}

/* hero variant for inner project pages (shorter) */
.hero--page{min-height:78svh}

/* On wide screens, show the full render (letterboxed over a soft blur) instead of cropping it */
@media (min-aspect-ratio:19/10){
  .hero__bg{transform:none}
  .hero__bg::before,.hero__bg::after{content:"";position:absolute;inset:0;background:inherit}
  .hero__bg::before{background-size:cover;filter:blur(22px) brightness(.92);transform:scale(1.12)}
  .hero__bg::after{background-size:contain;background-repeat:no-repeat;background-position:center}
  /* the panoramic views band crops gracefully — keep classic full-bleed there */
  #views .hero__bg::before,#views .hero__bg::after{content:none}
}

/* ---------- Section heading block ---------- */
.sec-head{max-width:680px}
.sec-head.center{margin-inline:auto}
.sec-head .num{
  font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.4rem);color:var(--hair);
  line-height:1;display:block;margin-bottom:.2em;
}

/* ---------- Project cards ---------- */
.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:clamp(26px,3vw,42px)}
.card{
  position:relative;display:block;background:#fff;border:1px solid var(--hair-2);
  overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 60px -30px rgba(28,26,22,.45)}
.card__img{aspect-ratio:4/3;overflow:hidden}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.card:hover .card__img img{transform:scale(1.06)}
.card__body{padding:26px 28px 30px}
.card__status{
  font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:600;
}
.card h3{margin:.5rem 0 .2rem}
.card__loc{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.card__link{margin-top:1.1rem;display:inline-flex;gap:.5em;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:600}
.card__link span{color:var(--gold);transition:transform .35s var(--ease)}
.card:hover .card__link span{transform:translateX(5px)}

.card--soon{
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:transparent;border:1px dashed var(--hair);min-height:220px;color:var(--muted);
}
.card--soon .eyebrow{color:var(--muted)}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(28px,3vw,48px)}
.pillar .plus{color:var(--gold);font-family:var(--sans);font-weight:600;letter-spacing:.2em;font-size:.72rem;text-transform:uppercase}
.pillar h3{margin:.6rem 0 .5rem;font-size:1.3rem}
.pillar p{font-size:.95rem;margin:0}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:30px;text-align:center}
.stat .n{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3rem);color:var(--ink)}
.section--ink .stat .n{color:var(--cream)}
.stat .l{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}

/* ---------- Spec / distance lists with dotted leaders ---------- */
.spec-group{margin-bottom:2.2rem;break-inside:avoid}
.spec-group__title{
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;
  display:flex;align-items:center;gap:.7em;margin-bottom:.9rem;
}
.spec-group__title::before{content:"+";color:var(--gold)}
.spec{display:flex;align-items:baseline;gap:.6rem;padding:.42rem 0}
.spec .name{font-family:var(--serif);color:var(--ink-soft);font-size:1.02rem}
.spec .dots{flex:1 1 auto;border-bottom:1.5px dotted var(--hair);transform:translateY(-.32em)}
.spec .val{font-family:var(--serif);color:var(--muted);font-size:.98rem;white-space:nowrap}
.spec-cols{columns:2;column-gap:clamp(40px,6vw,90px)}
@media (max-width:680px){.spec-cols{columns:1}}

/* ---------- Feature tags ---------- */
.tags{display:flex;flex-wrap:wrap;gap:.5em 1.4em;list-style:none;margin:1.4rem 0 0;padding:0}
.tags li{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--body);position:relative}
.tags li+li::before{content:"·";color:var(--gold);position:absolute;left:-.9em}

/* media figure */
.figure{position:relative;overflow:hidden;border:1px solid var(--hair-2)}
.figure img{width:100%;height:100%;object-fit:cover}
.figure--plan{background:#fff;padding:6px}
.figure--plan img{object-fit:contain}
.caption{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:.92rem;margin-top:.9rem;text-align:center}

/* ---------- Contact ---------- */
.contact-lines{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.contact-lines a:hover{color:var(--gold)}
.form{display:grid;gap:18px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:620px){.form .row{grid-template-columns:1fr}}
.field label{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.field input,.field textarea{
  width:100%;font-family:var(--sans);font-size:.95rem;color:var(--ink);
  background:#fff;border:1px solid var(--hair);padding:.85em 1em;transition:border-color .3s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field textarea{resize:vertical;min-height:130px}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:#A89F90;padding-block:clamp(54px,7vw,84px)}
.footer a{color:#CFC6B8}
.footer a:hover{color:var(--gold)}
.footer__top{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;align-items:flex-start}
.footer__brand img{height:54px;margin-bottom:16px}
.footer__brand .wordmark{font-family:var(--sans);letter-spacing:.26em;text-transform:uppercase;font-size:.78rem;color:var(--cream)}
.footer__brand .tag{font-family:var(--serif);font-style:italic;color:var(--bronze);margin-top:.4rem}
.footer-nav{display:flex;gap:60px;flex-wrap:wrap}
.footer-col h4{font-family:var(--sans);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:.9rem}
.footer__bottom{
  margin-top:clamp(40px,5vw,64px);padding-top:24px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;
  font-size:.72rem;letter-spacing:.12em;color:#776F62;text-transform:uppercase;
}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}
  .hero__bg{transform:none}.scroll-cue::after{animation:none}}

/* ---------- Accessibility ---------- */
.skip-link{
  position:fixed;top:-60px;left:16px;z-index:200;
  background:var(--ink);color:var(--cream);padding:.7em 1.2em;
  font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  transition:top .25s var(--ease);
}
.skip-link:focus{top:16px;outline:2px solid var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
[id]{scroll-margin-top:96px}

/* ---------- Map ---------- */
.map-figure{position:relative;border:1px solid var(--hair-2);overflow:hidden;background:var(--paper)}
.map-figure iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.18) contrast(1.02)}
.map-figure .pin{
  position:absolute;left:16px;bottom:16px;z-index:2;background:rgba(255,249,240,.94);
  padding:.6em 1em;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  border-left:2px solid var(--gold);
}

/* ---------- Gallery + lightbox ---------- */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.4vw,18px)}
.gallery a{position:relative;overflow:hidden;display:block;cursor:pointer;background:var(--ink);aspect-ratio:3/2}
.gallery a.feature{grid-column:1 / -1;aspect-ratio:16/9}
.gallery a img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.gallery a:hover img{transform:scale(1.05)}
.gallery a.contain{background:#fff}
.gallery a.contain img{object-fit:contain}
.gallery a::after{content:"";position:absolute;inset:0;background:rgba(28,26,22,0);transition:background .4s var(--ease)}
.gallery a:hover::after{background:rgba(28,26,22,.12)}
@media (max-width:680px){.gallery{grid-template-columns:1fr}.gallery a,.gallery a.feature{aspect-ratio:3/2}}

.lightbox{
  position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  background:rgba(16,14,11,.94);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:90vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox button{
  position:absolute;background:none;border:0;color:#EBE3D4;cursor:pointer;
  font-size:2.4rem;line-height:1;padding:.3em .5em;transition:color .2s;
}
.lightbox button:hover{color:var(--gold)}
.lb-close{top:14px;right:18px;font-size:2rem}
.lb-prev{left:2vw}.lb-next{right:2vw}
.lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#B7AE9E;font-size:.74rem;letter-spacing:.2em}
@media (max-width:680px){.lb-prev,.lb-next{font-size:1.8rem}}

/* ---------- Floating contact buttons ---------- */
.fab{position:fixed;right:clamp(16px,3vw,30px);bottom:clamp(16px,3vw,30px);z-index:90;display:flex;flex-direction:column;gap:12px}
.fab a{
  width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -8px rgba(28,26,22,.5);transition:transform .3s var(--ease),box-shadow .3s;
}
.fab a:hover{transform:translateY(-3px) scale(1.04)}
.fab .wa{background:#25D366}
.fab .call{background:var(--ink)}
.fab svg{width:26px;height:26px;display:block}
@media print{.fab{display:none}}

/* download chip */
.dl{display:inline-flex;align-items:center;gap:.6em}
.dl svg{width:15px;height:15px}

/* ---------- Interactive floor plan ---------- */
.plan__bar{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;margin-bottom:16px}
.plan__tabs,.plan__zoom{display:flex;gap:8px}
.plan__tab,.plan__zoom button{
  font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.62em 1.05em;border:1px solid var(--hair);background:#fff;color:var(--ink-soft);cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.plan__zoom button{min-width:44px;letter-spacing:0;font-size:1rem;padding:.5em .7em;line-height:1}
.plan__tab.is-active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.plan__tab:hover,.plan__zoom button:hover{border-color:var(--gold);color:var(--gold)}
.plan__tab.is-active:hover{color:var(--cream)}

.plan__viewer{
  position:relative;width:100%;max-width:960px;margin-inline:auto;
  aspect-ratio:1600/1333;background:#fff;border:1px solid var(--hair-2);overflow:hidden;
  cursor:grab;touch-action:none;
}
.plan__viewer.grabbing{cursor:grabbing}
.plan__viewer:fullscreen{max-width:none;width:100vw;height:100vh;aspect-ratio:auto;background:var(--ink);border:0}
.plan__stage{position:absolute;top:0;left:0;width:100%;transform-origin:0 0;will-change:transform}
.plan__stage img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none;pointer-events:none}
.plan__hint{
  position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;
  background:rgba(255,249,240,.92);color:var(--ink-soft);font-size:.64rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.45em .9em;pointer-events:none;transition:opacity .4s;white-space:nowrap;
}
.plan__viewer.zoomed .plan__hint{opacity:0}

/* room render overlay (opened from a hotspot) */
.roombox{
  position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(16,14,11,.94);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;
}
.roombox.open{opacity:1;visibility:visible}
.roombox figure{margin:0;max-width:1040px;width:100%;display:flex;flex-direction:column;align-items:center}
.roombox img{max-width:100%;max-height:76vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5);display:block}
.roombox figcaption{color:var(--cream);font-family:var(--serif);margin-top:18px;font-size:1.12rem;text-align:center}
.roombox figcaption .v{color:var(--gold)}
.roombox figcaption .side{color:#C9BFAE;font-size:.95rem}
.roombox figcaption .room-note{display:block;margin-top:.45rem;color:#C9BFAE;font-family:var(--sans);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.rb-close{position:absolute;top:14px;right:20px;background:none;border:0;color:#EBE3D4;font-size:2rem;line-height:1;cursor:pointer;transition:color .2s}
.rb-close:hover{color:var(--gold)}

/* clickable room hotspots (live inside the transformed stage, glued to rooms) */
.hot{
  position:absolute;transform:translate(-50%,-50%) scale(var(--inv,1));
  width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;z-index:3;
}
.hot__d{
  display:block;width:13px;height:13px;margin:7.5px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 4px rgba(202,150,54,.26),0 1px 4px rgba(0,0,0,.35);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.hot:hover .hot__d,.hot.is-active .hot__d{transform:scale(1.3);box-shadow:0 0 0 7px rgba(202,150,54,.34),0 1px 6px rgba(0,0,0,.4)}
.hot:focus-visible{outline:none}
.hot:focus-visible .hot__d{box-shadow:0 0 0 7px rgba(202,150,54,.55)}
.plan__stage[data-side="a"] .hot[data-side="b"],
.plan__stage[data-side="b"] .hot[data-side="a"]{opacity:.12;pointer-events:none}
.plan__cap{
  position:absolute;left:14px;bottom:14px;z-index:4;max-width:74%;
  background:rgba(28,26,22,.92);color:var(--cream);padding:.62em 1.1em;
  font-size:.82rem;letter-spacing:.03em;pointer-events:none;opacity:0;transform:translateY(8px);
  transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.plan__cap.show{opacity:1;transform:none}
.plan__cap b{font-family:var(--serif);font-weight:600;color:#fff}
.plan__cap .side{color:#C9BFAE;font-size:.74rem}
.plan__cap .v{color:var(--gold);font-family:var(--serif);font-weight:600}

.plan-sched{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,60px);margin-top:clamp(34px,4vw,58px)}
@media (max-width:760px){.plan-sched{grid-template-columns:1fr;gap:8px}}
.plan-sched table{width:100%;border-collapse:collapse;font-family:var(--sans)}
.plan-sched th{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;padding:0 0 .7em;text-align:left;border-bottom:1px solid var(--hair)}
.plan-sched th.ca,.plan-sched th.cb,.plan-sched td.ca,.plan-sched td.cb{text-align:right;width:84px;white-space:nowrap}
.plan-sched td{padding:.55em 0;border-bottom:1px solid var(--hair-2);font-size:.92rem;color:var(--ink-soft)}
.plan-sched td.ca,.plan-sched td.cb{font-family:var(--serif);color:var(--body);transition:opacity .3s}
.plan-sched tr.grp td{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:1.5em 0 .4em;border-bottom:0}
.plan-sched tr.tot td{font-family:var(--serif);color:var(--ink);font-weight:600;border-top:1.5px solid var(--gold);border-bottom:0;padding-top:.7em}
.plan-sched[data-active="a"] .cb{opacity:.26}
.plan-sched[data-active="b"] .ca{opacity:.26}
.plan-note{font-size:.78rem;color:var(--muted);margin-top:1rem}

/* ---------- Key facts ---------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair-2);border:1px solid var(--hair-2)}
@media (max-width:860px){.facts{grid-template-columns:repeat(2,1fr)}}
.fact{background:#fff;padding:clamp(18px,2.2vw,30px)}
.fact .k{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.fact .v{font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.45rem);color:var(--ink);margin-top:.55rem;line-height:1.18}
.fact .s{font-size:.78rem;color:var(--muted);margin-top:.25rem}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px}

/* ---------- FAQ ---------- */
.faq{max-width:840px}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{
  list-style:none;cursor:pointer;padding:1.15em 0;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;
  font-family:var(--serif);font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-family:var(--sans);font-size:1.4rem;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:-.2em 0 1.4em;color:var(--body);max-width:72ch}
.faq details a{color:var(--bronze);text-decoration:underline;text-underline-offset:2px}

/* select styled like inputs */
.field select{
  width:100%;font-family:var(--sans);font-size:.95rem;color:var(--ink);background:#fff;
  border:1px solid var(--hair);padding:.85em 1em;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23CA9636' stroke-width='1.6' d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1em center;
}
.field select:focus{outline:none;border-color:var(--gold)}

/* ---------- Testimonial / quote ---------- */
.quote{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:clamp(1.4rem,3vw,2.25rem);line-height:1.35;color:var(--ink);
  max-width:26ch;margin:1.2rem auto 0;position:relative;
}
.section--ink .quote{color:var(--cream)}
.quote-by{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:1.6rem}
.quote-by span{color:var(--muted);display:block;margin-top:.3rem;letter-spacing:.14em}

/* placeholder token for scaffolded content awaiting client copy */
.todo{color:var(--bronze);font-style:normal}

/* small helpers */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.tan{color:var(--bronze)}
