/* ===========================================================
   TORR PROPERTY GROUP  ·  dark-first design system v2
   Display: Jost (geometric, echoes the wordmark)
   Body:    Source Serif 4
   =========================================================== */

:root{
  --ground:#0A0F0E;
  --raise:#121A18;
  --raise-2:#18211F;
  --paper:#F2F0E9;
  --paper-2:#E7E4DA;
  --text:#F2F0E9;
  --text-mut:#8D9793;
  --ink:#0A0F0E;
  --ink-mut:#57625E;
  --brass:#C9A76B;
  --brass-deep:#8A6E37;
  --moss:#2E9C82;
  --line:rgba(242,240,233,.13);
  --line-2:rgba(242,240,233,.28);
  --line-ink:rgba(10,15,14,.14);
  --line-ink-2:rgba(10,15,14,.30);

  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --ui:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;

  --fs-hero:clamp(2.55rem,1.3rem + 4.4vw,4.6rem);
  --fs-h2:clamp(1.9rem,1.15rem + 2.5vw,3.1rem);
  --fs-h3:clamp(1.15rem,1.05rem + .5vw,1.4rem);
  --fs-lead:clamp(1.08rem,1.01rem + .32vw,1.28rem);
  --fs-body:clamp(1.01rem,.98rem + .15vw,1.08rem);
  --fs-label:.72rem;

  --gutter:clamp(20px,5vw,52px);
  --sect:clamp(4.5rem,8vw,8.5rem);
  --wrap:1200px;
  --r:2px;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ground); color:var(--text);
  font-family:var(--body); font-size:var(--fs-body); line-height:1.65;
  font-optical-sizing:auto; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0; font-family:var(--display); font-weight:400;
  line-height:1.06; letter-spacing:-.018em; text-wrap:balance}
:focus-visible{outline:2px solid var(--brass); outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter)}
.sect{padding-block:var(--sect)}

/* --- the signature device: wide-tracked caps, taken from the wordmark --- */
.label{
  font-family:var(--ui); font-size:var(--fs-label); font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; color:var(--brass);
  margin:0 0 1.8rem; line-height:1.4;
}
.sect-light .label{color:var(--brass-deep)}

.lead{font-size:var(--fs-lead); line-height:1.6; color:var(--text-mut); max-width:54ch}
.sect-light .lead{color:var(--ink-mut)}

/* --- light section (the ledger) --- */
.sect-light{background:var(--paper); color:var(--ink)}
.sect-light h2{color:var(--ink)}

/* --- buttons --- */
.btn{
  font-family:var(--ui); font-size:.95rem; font-weight:500; letter-spacing:.02em;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.75rem; border-radius:var(--r); border:1px solid transparent;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn-solid{background:var(--paper); color:var(--ink); border-color:var(--paper)}
.btn-solid:hover{background:#fff; border-color:#fff}
.btn-line{background:transparent; color:var(--text); border-color:var(--line-2)}
.btn-line:hover{border-color:var(--text); background:rgba(242,240,233,.06)}
.btn-guest{background:transparent; color:var(--brass); border-color:var(--brass)}
.btn-guest:hover{background:var(--brass); color:#14100A}
.btn-brass{background:var(--brass); color:#14100A; border-color:var(--brass)}
.btn-brass:hover{background:#D8B87F; border-color:#D8B87F}
.sect-light .btn-solid{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.sect-light .btn-solid:hover{background:#000; border-color:#000}
.sect-light .btn-line{color:var(--ink); border-color:var(--line-ink-2)}
.sect-light .btn-line:hover{border-color:var(--ink); background:rgba(10,15,14,.05)}
.btn-sm{padding:.66rem 1.15rem; font-size:.86rem}
.btn-row{display:flex; flex-wrap:wrap; gap:.7rem}
.wa{width:17px;height:17px;flex:none;fill:currentColor}

/* --- header --- */
.head{position:sticky; top:env(safe-area-inset-top,0px); z-index:60;
  background:rgba(10,15,14,.82); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line)}
.head-in{display:flex; align-items:center; gap:1.25rem; height:78px}
.head-logo{flex:none; display:block}
.head-logo img{height:34px; width:auto}
.nav{display:flex; align-items:center; gap:1.7rem; margin-left:auto}
.nav > a,.nav-btn{font-family:var(--ui); font-size:.9rem; font-weight:400;
  color:var(--text-mut); text-decoration:none; white-space:nowrap;
  background:none; border:0; padding:0; cursor:pointer;
  display:inline-flex; align-items:center; gap:.42rem}
.nav > a:hover,.nav-btn:hover,.nav-btn[aria-expanded=true]{color:var(--text)}
.nav-btn:focus-visible,.burger:focus-visible{outline:2px solid var(--brass); outline-offset:4px}
.chev{width:11px; height:7px; flex:none; transition:transform .18s ease}
.nav-btn[aria-expanded=true] .chev{transform:rotate(180deg)}
.nav-item{position:static}
.head-cta{display:flex; align-items:center; gap:.55rem; margin-left:auto}
.nav + .head-cta{margin-left:1.6rem}

/* --- mega panels --- */
.panel{position:absolute; left:0; right:0; top:100%;
  background:var(--raise); border-top:1px solid var(--line);
  border-bottom:1px solid var(--line); box-shadow:0 30px 60px -30px rgba(0,0,0,.9)}
.panel-in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);
  gap:clamp(2rem,4vw,4.5rem); padding-block:clamp(2rem,3vw,2.8rem)}
.panel-in-guests{grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr)}
.panel-h{font-family:var(--ui); font-size:var(--fs-label); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--brass);
  margin-bottom:1.15rem}
.panel-col > a{display:block; text-decoration:none; padding:.6rem 0}
.panel-col > a b{display:block; font-family:var(--ui); font-weight:500;
  font-size:1rem; color:var(--text)}
.panel-col > a span{display:block; font-size:.85rem; color:var(--text-mut);
  margin-top:.18rem; line-height:1.45}
.panel-col > a:hover b{color:var(--brass)}
.panel-areas{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:.55rem 1.4rem}
.panel-areas a,.panel-areas span{font-family:var(--ui); font-size:.93rem;
  text-decoration:none; padding:.2rem 0}
.panel-areas a{color:var(--text)}
.panel-areas a:hover{color:var(--brass)}
.panel-areas span{color:rgba(141,151,147,.55)}
.panel-more{display:inline-block; margin-top:1.5rem; font-family:var(--ui);
  font-size:.86rem; color:var(--brass); text-decoration:none}
.panel-more:hover{text-decoration:underline}
.guest-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
  gap:1.6rem 1.8rem}
.guest-area{font-family:var(--ui); font-size:.93rem; font-weight:600;
  color:var(--text); margin-bottom:.5rem}
.guest-block a,.guest-block span{display:block; font-family:var(--ui);
  font-size:.86rem; color:var(--text-mut); text-decoration:none; padding:.2rem 0}
.guest-block a:hover{color:var(--brass)}

/* --- burger and mobile menu --- */
.burger{display:none; width:40px; height:36px; background:none; border:0;
  cursor:pointer; padding:9px 7px; flex-direction:column; justify-content:space-between}
.burger span{display:block; height:1.6px; background:var(--text); border-radius:2px;
  transition:transform .2s ease, opacity .2s ease}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
/* .head sets backdrop-filter, which makes it the containing block for any
   fixed-position child. So this is positioned against the header box, not the
   viewport: top:100% puts it directly under the header, and the height is set
   explicitly because bottom:0 would resolve against the 66px header. */
.mnav{position:fixed; top:100%; left:0; right:0;
  height:calc(100vh - 66px); height:calc(100dvh - 66px);
  background:var(--ground); z-index:59; overflow-y:auto;
  -webkit-overflow-scrolling:touch}
.mnav-in{padding:1.4rem var(--gutter) 6rem}
.mnav details{border-bottom:1px solid var(--line)}
.mnav summary{display:flex; align-items:center; justify-content:space-between;
  font-family:var(--ui); font-size:1.05rem; color:var(--text);
  padding:1.1rem 0; cursor:pointer; list-style:none}
.mnav summary::-webkit-details-marker{display:none}
.mnav details[open] summary .chev{transform:rotate(180deg)}
.mnav-links{display:flex; flex-direction:column; gap:.1rem; padding-bottom:1rem}
.mnav-links a{font-family:var(--ui); font-size:.95rem; color:var(--text-mut);
  text-decoration:none; padding:.55rem 0}
.mnav-links a:hover{color:var(--brass)}
.mnav-flat{padding-top:1rem; border-bottom:1px solid var(--line)}
.mnav .btn{margin-top:1.6rem; width:100%; justify-content:center}

@media (max-width:1100px){
  .nav{display:none}
  .burger{display:flex}
  .head-in{height:66px}
  .head-logo img{height:27px}
}
@media (min-width:1101px){ .mnav{display:none} }
@media (max-width:620px){ .head-cta .btn-solid{display:none}
  .head-cta, .nav + .head-cta{margin-left:auto} }
@media (max-width:1340px){ .panel-in{padding-inline:0} }

/* --- hero --- */
.hero{position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:flex-end; min-height:clamp(520px,72vh,760px)}
.hero-bg{position:absolute; inset:0; z-index:-2}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:50% 58%;
  filter:brightness(.60) saturate(.82) contrast(1.02)}
.hero::before{content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(100deg,rgba(10,15,14,.90) 0%,rgba(10,15,14,.66) 48%,rgba(10,15,14,.22) 100%),
    linear-gradient(180deg,rgba(10,15,14,.50) 0%,rgba(10,15,14,.18) 38%,rgba(10,15,14,.86) 84%,var(--ground) 100%)}
.hero-in{width:100%; padding-block:clamp(3rem,6vw,5rem) clamp(2.5rem,4vw,3.5rem)}
.hero h1{font-size:var(--fs-hero); font-weight:300; letter-spacing:-.028em; max-width:17ch;
  text-shadow:0 1px 40px rgba(10,15,14,.5)}
.hero .lead{margin-top:1.5rem; max-width:46ch; color:#D7D9D3}
.hero .btn-row{margin-top:2.3rem}

/* --- split hero: copy left, capture card right (location pages) --- */
.hero-split{align-items:center; min-height:0}
.hero-split .hero-in{padding-block:clamp(3.2rem,6vw,5.2rem) clamp(3.2rem,6vw,5.2rem)}
.hero-split .hero-bg img{filter:brightness(.78) saturate(.88) contrast(1.02)}
.hero-split::before{background:
  linear-gradient(100deg,rgba(10,15,14,.94) 0%,rgba(10,15,14,.78) 30%,rgba(10,15,14,.30) 62%,rgba(10,15,14,.16) 100%),
  linear-gradient(180deg,rgba(10,15,14,.42) 0%,rgba(10,15,14,.06) 34%,rgba(10,15,14,.62) 84%,var(--ground) 100%)}
.hero-split-in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,405px);
  gap:clamp(2.4rem,4vw,4rem); align-items:center}
.hero-split-in .hero-copy h1{max-width:14ch}
.hero-split-in .hero-copy .lead{max-width:42ch}

.hf-card{background:rgba(14,20,19,.88); backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line-2); border-radius:var(--r);
  padding:clamp(1.6rem,2.4vw,2.1rem); box-shadow:0 30px 70px -30px rgba(0,0,0,.85)}
.hf-card .label{margin-bottom:.7rem}
.hf-h{font-family:var(--display); font-size:1.45rem; font-weight:300; line-height:1.25;
  letter-spacing:-.02em; margin-bottom:.5rem}
.hf-sub{font-size:.95rem; color:var(--text-mut); line-height:1.55; margin-bottom:1.5rem}
.lead-form-sm{gap:.85rem}
.lead-form-sm .lf input,.lead-form-sm .lf select{padding:.72rem .8rem; font-size:.97rem}
.lead-form-sm .lf label{font-size:.6rem}
.lead-form-sm .btn{width:100%; justify-content:center}
.hf-card .lf-note{font-size:.78rem; margin-top:.1rem}
.hf-card .lf-done{padding:1.5rem 1.4rem; margin-top:0}
.hf-card .lf-done h3{font-size:1.15rem}
.hf-card .lf-done p{font-size:.95rem}
@media (max-width:980px){
  .hero-split::before{background:
    linear-gradient(180deg,rgba(10,15,14,.62) 0%,rgba(10,15,14,.40) 26%,rgba(10,15,14,.86) 70%,var(--ground) 100%)}
  .hero-split-in{grid-template-columns:1fr; gap:2.4rem}
  .hero-split-in .hero-copy h1{max-width:16ch}
  .hero-split-in .hero-copy .lead{max-width:48ch}
}

/* --- guest hero: booking-led, lighter overlay than the landlord heroes --- */
.hero-guest{min-height:clamp(480px,62vh,640px)}
.hero-guest .hero-bg img{filter:brightness(.72) saturate(.9) contrast(1.02)}
.hero-guest::before{background:
  linear-gradient(100deg,rgba(10,15,14,.92) 0%,rgba(10,15,14,.70) 38%,rgba(10,15,14,.26) 78%),
  linear-gradient(180deg,rgba(10,15,14,.46) 0%,rgba(10,15,14,.10) 34%,rgba(10,15,14,.72) 86%,var(--ground) 100%)}
.hero-tel{margin-top:1.5rem; font-family:var(--ui); font-size:.92rem; color:var(--text-mut)}
.hero-tel a{color:var(--text); text-decoration:none; border-bottom:1px solid var(--line-2)}
.hero-tel a:hover{color:var(--brass); border-bottom-color:var(--brass)}

/* --- trust strip --- */
.strip{border-block:1px solid var(--line); background:var(--raise)}
.strip-in{display:flex; flex-wrap:wrap; gap:0}
.strip-in > div{flex:1 1 200px; padding:1.5rem 1.5rem 1.5rem 0; min-width:0}
.strip-in > div + div{padding-left:1.8rem; border-left:1px solid var(--line)}
.strip b{display:block; font-family:var(--display); font-weight:400; font-size:1.66rem;
  letter-spacing:-.01em; color:var(--text); font-variant-numeric:tabular-nums}
.strip span{font-family:var(--ui); font-size:.78rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase; color:var(--text-mut)}
@media (max-width:760px){
  .strip-in > div{flex:1 1 50%; padding:1.15rem 1rem 1.15rem 0}
  .strip-in > div:nth-child(odd){padding-left:0; border-left:0}
  .strip-in > div:nth-child(even){padding-left:1.2rem; border-left:1px solid var(--line)}
  .strip-in > div:nth-child(n+3){border-top:1px solid var(--line)}
  .strip b{font-size:1.3rem}
}

/* --- the ledger --- */
.ledger{margin-top:3.4rem; border-top:1px solid var(--line-ink-2)}
.row{display:grid; grid-template-columns:12.5rem minmax(0,1fr) 7rem;
  gap:1.6rem; align-items:center; padding-block:1.8rem;
  border-bottom:1px solid var(--line-ink)}
.row-place{font-family:var(--ui); font-weight:500; font-size:1.05rem; line-height:1.3}
.row-place span{display:block; font-weight:400; font-size:.82rem; color:var(--ink-mut);
  letter-spacing:.06em; margin-top:.25rem}
.bars{display:flex; flex-direction:column; gap:.55rem; min-width:0}
.bar{display:flex; align-items:center; gap:.85rem}
.bar-key{font-family:var(--ui); font-size:.68rem; font-weight:500;
  letter-spacing:.17em; text-transform:uppercase; color:var(--ink-mut);
  width:5.4rem; flex:none; text-align:right}
.bar-track{flex:1; min-width:0; height:24px;
  background:linear-gradient(var(--line-ink),var(--line-ink)) left center/100% 1px no-repeat}
.bar-fill{height:100%; min-width:3px}
.bar-ast .bar-fill{background:var(--line-ink-2)}
.bar-tpg .bar-fill{background:var(--ink)}
.bar-val{font-family:var(--ui); font-weight:500; font-size:.94rem; width:4.2rem;
  flex:none; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.bar-ast .bar-val{font-weight:400; color:var(--ink-mut)}
.row-delta{font-family:var(--ui); font-weight:500; font-size:1.3rem;
  color:var(--brass-deep); text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.row-delta span{display:block; font-size:.66rem; font-weight:500; letter-spacing:.17em;
  text-transform:uppercase; color:var(--ink-mut); margin-top:.25rem}
.foot-note{margin-top:2rem; font-size:.89rem; color:var(--ink-mut); max-width:72ch}
@media (max-width:820px){
  .row{grid-template-columns:1fr auto; gap:.2rem 1rem}
  .row-place{grid-row:1; grid-column:1}
  .row-delta{grid-row:1; grid-column:2; font-size:1.1rem}
  .bars{grid-row:2; grid-column:1/-1; margin-top:1rem}
  .bar-key{width:4.5rem; font-size:.62rem}
  .bar-val{width:3.8rem; font-size:.87rem}
}

/* --- comparison table --- */
.cmp{width:100%; border-collapse:collapse; margin-top:3rem;
  font-size:.98rem; text-align:left}
.cmp th,.cmp td{padding:1.2rem 1.2rem; border-bottom:1px solid var(--line); vertical-align:top}
.cmp thead th{font-family:var(--ui); font-size:var(--fs-label); font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--text-mut);
  border-bottom:1px solid var(--line-2); padding-bottom:1rem}
.cmp tbody th{font-family:var(--ui); font-weight:400; font-size:1rem;
  color:var(--text); width:12rem}
.cmp td{color:var(--text-mut)}
.cmp .col-us{background:var(--raise); color:var(--text)}
.cmp thead .col-us{color:var(--brass)}
.cmp-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch}
@media (max-width:700px){ .cmp{min-width:620px} }

/* --- steps --- */
.steps{display:grid; grid-template-columns:1fr 1fr;
  column-gap:clamp(2rem,4vw,4.5rem); margin-top:3.2rem}
.step{display:grid; grid-template-columns:3.2rem minmax(0,1fr); gap:1.3rem;
  padding-block:2.2rem; border-top:1px solid var(--line); align-items:start}
.step-n{font-family:var(--ui); font-size:.78rem; font-weight:500;
  letter-spacing:.2em; color:var(--brass); padding-top:.45rem}
.step h3{font-size:var(--fs-h3); margin-bottom:.65rem; font-weight:400}
.step p{color:var(--text-mut); max-width:46ch}
@media (max-width:860px){ .steps{grid-template-columns:1fr} }

/* --- included --- */
.incl{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:0 3rem; margin-top:3rem}
.incl div{min-height:3.5rem; border-bottom:1px solid var(--line);
  font-family:var(--ui); font-size:1rem; font-weight:300; line-height:1.35;
  display:flex; align-items:center; gap:.9rem; color:var(--text)}
.incl div::before{content:""; width:16px; height:1px; background:var(--brass); flex:none}

/* --- gallery --- */
.gal{display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.5rem,1vw,.8rem); margin-top:3rem}
.gal figure{margin:0; aspect-ratio:4/3; overflow:hidden; background:var(--raise)}
.gal img{width:100%; height:100%; object-fit:cover}
@media (max-width:820px){ .gal{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .gal{grid-template-columns:1fr} }

/* --- guest band --- */
.guest{position:relative; isolation:isolate; overflow:hidden; background:var(--raise)}
.guest-bg{position:absolute; inset:0; z-index:-2}
.guest-bg img{width:100%; height:100%; object-fit:cover; object-position:50% 62%}
.guest::before{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(10,15,14,.94) 0%,rgba(10,15,14,.86) 46%,rgba(10,15,14,.45) 100%)}
.guest-in{padding-block:clamp(4rem,7vw,6.5rem)}
.guest-in > *{max-width:37rem}
.guest h2{font-size:clamp(1.7rem,1.1rem + 2vw,2.6rem); font-weight:300}
.guest .lead{margin-top:1.2rem}
.guest .btn-row{margin-top:2rem}

/* --- areas --- */
.areas{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:0 2.8rem; margin-top:3rem}
.areas a,.areas span{display:flex; align-items:baseline; justify-content:space-between;
  gap:1rem; padding-block:1.1rem; border-bottom:1px solid var(--line);
  font-family:var(--ui); font-size:1.05rem; font-weight:400; text-decoration:none}
.areas a:hover{color:var(--brass)}
.areas em{font-style:normal; font-size:.66rem; font-weight:500; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text-mut)}
.areas a em{color:var(--brass)}

/* --- faq --- */
.faq{margin-top:3rem; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding-block:1.45rem; padding-right:2.5rem;
  position:relative; font-family:var(--display); font-weight:500;
  font-size:clamp(1.05rem,1rem + .35vw,1.25rem); line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; position:absolute; right:0; top:1.95rem;
  width:13px; height:1px; background:var(--brass)}
.faq summary::before{content:""; position:absolute; right:6px; top:calc(1.95rem - 6px);
  width:1px; height:13px; background:var(--brass); transition:opacity .18s ease}
.faq details[open] summary::before{opacity:0}
.faq .ans{padding-bottom:1.8rem; color:var(--text-mut); max-width:70ch}
.faq .ans p + p{margin-top:.95em}
.faq .ans em{color:var(--text-mut); font-style:italic}

/* --- closing cta --- */
.close-in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(2.5rem,5vw,5rem); align-items:start}
@media (max-width:880px){ .close-in{grid-template-columns:1fr} }
.numbers{display:grid; gap:1.6rem; margin-top:.4rem}
.num-card{border:1px solid var(--line); padding:1.5rem 1.6rem; border-radius:var(--r)}
.num-card .label{margin-bottom:.7rem}
.num-card a{font-family:var(--ui); font-size:1.55rem; font-weight:300;
  letter-spacing:.01em; text-decoration:none; color:var(--text);
  font-variant-numeric:tabular-nums; display:block}
.num-card a:hover{color:var(--brass)}
.num-card p{font-size:.88rem; color:var(--text-mut); margin-top:.5rem}

/* --- footer --- */
.foot{border-top:1px solid var(--line); padding-block:4.5rem 2.5rem; color:var(--text-mut)}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:2.5rem;
  padding-bottom:3rem; border-bottom:1px solid var(--line)}
@media (max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr} }
@media (max-width:480px){ .foot-grid{grid-template-columns:1fr} }
.foot img{height:28px; width:auto}
.foot h4{font-family:var(--ui); font-size:var(--fs-label); font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--text); margin-bottom:1.2rem}
.foot ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.65rem}
.foot a{text-decoration:none; font-family:var(--ui); font-size:.93rem; font-weight:300}
.foot a:hover{color:var(--text)}
.foot-tel{font-family:var(--ui); font-size:1.05rem; font-weight:400;
  color:var(--text); text-decoration:none; font-variant-numeric:tabular-nums; display:block}
.foot-lbl{display:block; font-family:var(--ui); font-size:.68rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--brass); margin-bottom:.3rem}
.foot-base{display:flex; flex-wrap:wrap; gap:.6rem 2rem; padding-top:2rem;
  font-size:.82rem; align-items:center}
.foot-base a{font-size:.82rem}
.foot-base p{max-width:64ch}

/* --- sticky mobile action bar --- */
.mobar{display:none}
@media (max-width:760px){
  .mobar{display:grid; grid-template-columns:1fr 1fr; gap:.5rem;
    position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:rgba(10,15,14,.94); backdrop-filter:blur(16px);
    border-top:1px solid var(--line);
    padding:.65rem 16px calc(.65rem + env(safe-area-inset-bottom,0px))}
  .mobar .btn{padding:.85rem 1rem; font-size:.88rem; width:100%}
  body{padding-bottom:5.2rem}
}

/* --- fee tiers --- */
.tiers{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px;
  margin-top:3.4rem; background:var(--line-ink); border:1px solid var(--line-ink)}
.tier{background:var(--paper); padding:2.2rem 1.9rem 2.4rem; position:relative}
.tier-best{background:var(--paper-2)}
.tier-flag{font-family:var(--ui); font-size:.64rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--brass-deep); margin:0 0 .5rem}
.tier-flag{min-height:1.4em}
.tier:not(.tier-best)::before{content:""; display:block; min-height:1.4em; margin-bottom:.5rem}
.tier-term{font-family:var(--ui); font-size:.72rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-mut); margin:0 0 1.1rem}
.tier-rate{font-family:var(--display); font-size:clamp(3rem,2rem + 3.6vw,4.6rem);
  font-weight:300; line-height:.95; letter-spacing:-.02em; color:var(--ink); margin:0}
.tier-rate span{font-size:.42em; letter-spacing:0; margin-left:.08em; vertical-align:super}
.tier-note{font-size:.95rem; color:var(--ink-mut); margin-top:1.3rem; line-height:1.55}
@media (max-width:820px){ .tiers{grid-template-columns:1fr} }

/* --- lead form --- */
.lead-form{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.lf{display:flex; flex-direction:column; gap:.45rem; min-width:0}
.lf.full{grid-column:1/-1}
.lf label{font-family:var(--ui); font-size:var(--fs-label); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--text-mut)}
.lf input,.lf select{font-family:var(--ui); font-size:1rem; color:var(--text);
  background:var(--ground); border:1px solid var(--line-2); border-radius:var(--r);
  padding:.85rem .9rem; width:100%}
.lf input::placeholder{color:rgba(141,151,147,.65)}
.lf input:focus,.lf select:focus{border-color:var(--brass); outline:none}
.lead-form .btn{grid-column:1/-1; margin-top:.4rem}
.lf-note{grid-column:1/-1; font-size:.82rem; color:var(--text-mut); line-height:1.5}
@media (max-width:560px){ .lead-form{grid-template-columns:1fr} }
.lf-error{grid-column:1/-1; margin-top:.2rem; padding:.85rem .95rem; border-radius:var(--r);
  border:1px solid #C2564B; background:rgba(194,86,75,.10); color:#F0C9C4;
  font-size:.9rem; line-height:1.5}
.lead-form .btn[disabled]{opacity:.55; cursor:progress}
.lf-done{border:1px solid var(--brass); border-radius:var(--r);
  padding:2rem 1.9rem; background:rgba(201,167,107,.06)}
.lf-done h3{font-size:1.35rem; font-weight:400; margin-bottom:.8rem}
.lf-done p{color:var(--text-mut)}

/* --- location hub cards --- */
.locs{display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  gap:1px; margin-top:3rem; background:var(--line); border:1px solid var(--line)}
.loc{background:var(--ground); padding:1.9rem 1.6rem 1.7rem; text-decoration:none; display:block;
  transition:background .18s ease}
a.loc:hover{background:var(--raise-2)}
.loc h3{font-size:1.3rem; font-weight:400; margin-bottom:.8rem}
.loc p{color:var(--text-mut); font-size:.97rem; line-height:1.55}
.loc-go{display:block; margin-top:1.4rem; font-family:var(--ui); font-size:.72rem;
  font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--brass)}
.loc-soon{background:var(--raise)}
.loc-soon .loc-go{color:var(--text-mut)}
