/* ============================================================
   CAPE Advisory v2 — pages built by the general transformer
   (build-v2/build_pages.py). These parts keep their v1 class
   names; only their appearance is v2's. When one moves into a
   bespoke builder, its rules move with it.
   Order: shared bands · hubs · sectors · Customs sub-pages ·
          Client Impact · Doing Business · About · People ·
          Insights · publications · Careers · Contact · Legal
   ============================================================ */

/* ---------- hero extras (article meta, legal meta, job links) ---------- */
.hero--solid{min-height:clamp(400px,52vh,560px)}
.hero--solid.hero--tall{min-height:clamp(520px,70vh,720px)}
.hero__extra{margin-top:var(--s6);color:var(--on-dark-2);font-size:15px;line-height:1.5}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;max-width:900px;padding-top:var(--s5);
  border-top:1px solid var(--line-dark)}
.art-meta__cat{display:inline-flex;padding:4px 14px;border-radius:var(--r-chip);background:rgba(255,255,255,.12);
  color:#fff;font-size:13px;font-weight:700}
.art-meta__by a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45)}
.art-meta__role{margin-left:8px;color:var(--on-dark-2)}
.legal-meta{padding-top:var(--s4);border-top:1px solid var(--line-dark)}
.car-jump{display:flex;flex-wrap:wrap;gap:4px var(--s6);margin:0;padding:0;list-style:none}

/* ---------- shared bands ---------- */
/* copy beside a photograph; the flipped variant puts the image first */
.split__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s8);align-items:center}
.split--flip .split__media{order:-1}
.split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-card)}
.split__grid>div>h2{margin-bottom:var(--s5)}
.split__grid>div>p{max-width:60ch;color:var(--fg)}
.split__grid>div>p+p{margin-top:1em}
@media (max-width:880px){
  .split__grid{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
  .split--flip .split__media{order:0}
}

.sechead--v1{margin-bottom:var(--s5)}
.sechead--v1+p,.ins-stand,.dbb-stand,p.wwd-stand,.ind-caps__lede,.sechead__intro{max-width:62ch;margin-bottom:var(--s6);
  color:var(--fg-2);font-size:var(--fs-body-lg);line-height:1.5}
.band>.wrap>h2.t-lg,.band>.wrap>h2.t-sm{margin-bottom:var(--s5)}
.band>.wrap>p{max-width:66ch}
.band>.wrap>.eyebrow+h2{margin-bottom:var(--s5)}

.quote .eyebrow{color:#fff}

/* ---------- hub cards (What We Do, Industries) ---------- */
.hubcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5);margin:0;padding:0;list-style:none}
.hubcard{position:relative;display:flex;flex-direction:column;gap:var(--s3);min-height:280px;padding:28px;
  border-radius:var(--r-card);background:var(--canvas-soft);color:var(--ink)}
.hubcard__n{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.hubcard__h{font-size:var(--fs-xs);font-weight:700;line-height:1.25}
.hubcard__h a{color:inherit;text-decoration:none}
.hubcard__h a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.hubcard__meta{color:var(--text-2);font-size:16px;line-height:1.55}
.wwd-deeper{align-self:flex-start;padding:3px 12px;border-radius:var(--r-chip);background:#fff;font-size:13px;font-weight:700}
.hubcard__go{display:inline-flex;align-items:center;gap:12px;margin-top:auto;padding-top:var(--s3);font-size:16px;font-weight:700}
.hubcard:hover .hubcard__h a{text-decoration:underline 2px;text-underline-offset:5px}
.hubcard:hover .arr{background:var(--red);border-color:var(--red);color:#fff}
.hubcard:focus-within{outline:3px solid var(--red);outline-offset:3px}
.hubcard__h a:focus-visible{outline:none}
@media (max-width:1024px){ .hubcards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .hubcards{grid-template-columns:minmax(0,1fr)} .hubcard{min-height:0} }

.dbb-next{display:flex;flex-wrap:wrap;gap:0 var(--s6);margin-top:var(--s5)}

/* ---------- Industries: hub and sector pages ---------- */
.ind-caps__list,.art-rel__list{margin:var(--s5) 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.ind-caps__list li,.art-rel__list li{border-bottom:1px solid var(--rule)}
.ind-caps__list .textlink,.art-rel__list .textlink{display:flex;justify-content:space-between;width:100%;min-height:58px}

.ind-points{margin:var(--s5) 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.ind-point{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--rule)}
.ind-point>*:not(.ind-point__n){grid-column:2}
.ind-point__n{grid-row:1 / span 3;padding-top:4px;color:var(--accent-text);font-size:14px;font-weight:800}
.ind-point__h{font-size:20px;font-weight:700;line-height:1.3}
.ind-point__p{margin-top:6px;color:var(--fg-2);font-size:16px;line-height:1.55}
.ind-point__go{margin-top:6px}

.ind-capcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s4);margin:0;padding:0;list-style:none}
.ind-capcard a{display:flex;flex-direction:column;gap:var(--s4);height:100%;min-height:170px;padding:24px;
  border-radius:var(--r-card);background:var(--canvas-soft);color:var(--ink);text-decoration:none}
.ind-capcard__t{font-size:20px;font-weight:700;line-height:1.3}
.ind-capcard__s{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;
  color:var(--text-2);font-size:15px;font-weight:600;line-height:1.35}
.ind-capcard a:hover .ind-capcard__t{text-decoration:underline 2px;text-underline-offset:5px}
.ind-capcard a:hover .arr{background:var(--red);border-color:var(--red);color:#fff}

/* ---------- Customs sub-pages ---------- */
.ssub-p{max-width:62ch;font-size:17px;line-height:1.65}
.ssub-p+.ssub-p{margin-top:1em}
.ssub-p--lead{margin-bottom:var(--s4);color:var(--fg-2);font-size:var(--fs-body-lg);line-height:1.5}
.ssub-h3{margin:var(--s6) 0 var(--s3);font-size:var(--fs-xs);font-weight:700}
.ssub-sub{margin:var(--s7) 0 var(--s4);color:var(--fg-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.svc-subs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.svc-sub{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:160px;padding:24px;
  border-radius:var(--r-card);background:var(--canvas-soft);color:var(--ink);text-decoration:none}
.svc-sub__name{font-size:18px;font-weight:700;line-height:1.3}
.svc-sub__tag{padding:3px 12px;border-radius:var(--r-chip);background:var(--red);color:#fff;font-size:12px;font-weight:700}
.svc-sub .arr{margin-top:auto}
.svc-sub:hover .svc-sub__name{text-decoration:underline 2px;text-underline-offset:5px}
.svc-sub:hover .arr{background:var(--red);border-color:var(--red);color:#fff}
@media (max-width:1024px){ .svc-subs{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ---------- Client Impact ---------- */
.ci-intro__note,.dbb-intro__note{margin-top:var(--s5);padding-left:var(--s4);border-left:3px solid var(--red);
  color:var(--fg-2);font-size:16px}
.ci-cases{display:grid;gap:var(--s5);margin:0;padding:0;list-style:none}
.ci-case{padding:clamp(24px,4vw,48px);border-radius:var(--r-card);background:var(--canvas-soft);scroll-margin-top:calc(var(--mast-h) + 24px)}
.ci-case__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s4);margin-bottom:var(--s6)}
.ci-case__n{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ci-case__sector{padding:4px 14px;border-radius:var(--r-chip);background:#fff;font-size:14px;font-weight:700}
.ci-case__h{flex:0 0 100%;font-size:var(--fs-sm);font-weight:700;line-height:1.2}
.ci-case__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.ci-part__h{margin-bottom:var(--s3);color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ci-part__p{font-size:16px;line-height:1.6}
.ci-steps{margin:0;padding-left:1.3em;font-size:16px;line-height:1.7}
.ci-part--value{padding-left:var(--s4);border-left:3px solid var(--red)}
.ci-case__links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s7);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line)}
.ci-case__links p{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.ci-case__k{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:880px){ .ci-case__grid{grid-template-columns:minmax(0,1fr)} }

/* ---------- Doing Business in Bangladesh ---------- */
.dbb-stages{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.dbb-stage{display:grid;grid-template-columns:minmax(72px,180px) minmax(0,1fr);gap:var(--s6);padding:var(--s7) 0;border-bottom:1px solid var(--rule)}
/* the stage number is the shout */
.dbb-stage__n{font-size:clamp(48px,6.4vw,96px);font-weight:800;line-height:.82;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.dbb-stage__h{font-size:var(--fs-sm);font-weight:800;line-height:1.1;text-transform:uppercase}
.dbb-stage__sub{margin-top:6px;color:var(--fg-2);font-size:var(--fs-body-lg)}
.dbb-stage__p{max-width:66ch;margin-top:var(--s4);font-size:17px;line-height:1.65}
.dbb-stage__caps{display:flex;flex-wrap:wrap;gap:0 var(--s6);margin:var(--s3) 0 0;padding:0;list-style:none}
@media (max-width:600px){ .dbb-stage{grid-template-columns:minmax(0,1fr);gap:var(--s3)} }

/* ---------- About ---------- */
.abt-lead{margin:0 0 var(--s4);font-size:var(--fs-body-lg);line-height:1.5}
.abt-narrative>p{max-width:62ch}
.abt-narrative>p+p{margin-top:1em}
.abt-trust{margin-top:var(--s6)!important;font-size:clamp(20px,1.9vw,26px);font-weight:800;line-height:1.12;text-transform:uppercase}
.abt-persp__top h2{max-width:26ch}
.abt-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);margin-top:var(--s7)}
.abt-pillar{padding-top:var(--s5);border-top:1px solid var(--line-dark)}
.abt-pillar__num{margin-bottom:var(--s4);font-size:14px;font-weight:800}
.abt-pillar__h{margin-bottom:var(--s2);font-size:var(--fs-xs);font-weight:700}
.abt-pillar__p{color:var(--on-dark-2);font-size:17px;line-height:1.55}
.abt-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:var(--s5);border-top:1px solid var(--line)}
.abt-stat{padding:var(--s5) var(--s5) 0 0}
.abt-stat+.abt-stat{padding-left:var(--s5);border-left:1px solid var(--line)}
.abt-stat__n{font-size:clamp(22px,2.3vw,34px);font-weight:800;line-height:1;text-transform:uppercase}
.abt-stat__l{margin-top:var(--s3);color:var(--text-2);font-size:16px}
.abt-statement{max-width:62ch;font-size:17px;line-height:1.65}
.abt-statement+.abt-statement{margin-top:1em}
.abt-statement--lead{font-size:clamp(20px,1.9vw,26px);font-weight:300;line-height:1.45}
.abt-conduct{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--s8)}
.abt-conduct h2{margin-bottom:var(--s5)}
.abt-sub{margin-bottom:var(--s4);color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.abt-offices{display:grid;gap:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line)}
.abt-office__city{font-size:20px;font-weight:700}
.abt-office__addr{margin-top:4px;color:var(--text-2);font-size:16px}
@media (max-width:1024px){
  .abt-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .abt-stat:nth-child(3){padding-left:0;border-left:0}
  .abt-conduct,.abt-pillars{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Our People ---------- */
.person__body{display:flex;flex:1;flex-direction:column}
.person__body .textlink{margin-top:auto}
.ppl-delivery__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6);margin-top:var(--s4)}
.ppl-delivery__cols p{color:var(--text-2);font-size:17px}
.ppl-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s6) var(--s5);margin:var(--s7) 0 0;padding:0;list-style:none}
.ppl-team__photo,.ppl-team__initials{width:100%;aspect-ratio:4/5;border-radius:var(--r-card);background:var(--canvas-soft);object-fit:cover}
.ppl-team__initials{display:grid;place-items:center;background:var(--dark);color:#fff;font-size:40px;font-weight:800}
.ppl-team__name{margin-top:var(--s3);font-size:17px;font-weight:700;line-height:1.3}
.ppl-team__cred{color:var(--text-2);font-size:13px}
.ppl-team__role{margin-top:2px;color:var(--text-2);font-size:14px}

.ppl-profile{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--s8);align-items:start}
.ppl-profile__portrait{margin:0}
.ppl-profile__portrait img{width:100%;border-radius:var(--r-card)}
.ppl-profile__body>h2{margin-bottom:var(--s4)}
.ppl-profile__creds{margin-bottom:var(--s5);color:var(--text-2);font-size:15px;font-weight:600}
.ppl-profile__copy{max-width:62ch;font-size:var(--fs-body-lg);line-height:1.55}
.ppl-profile__copy+.ppl-profile__copy{margin-top:1em}
.ppl-sub{margin:var(--s6) 0 var(--s3);color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ppl-tags{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0;list-style:none}
.ppl-tags li{padding:4px 14px;border-radius:var(--r-chip);background:var(--canvas-soft);font-size:14px;font-weight:700}
.ppl-book h2{margin-bottom:var(--s4)}
.ppl-book p{max-width:60ch}
.ppl-book p+p{margin-top:1em}
.ppl-book__covers{display:flex;justify-content:center;padding:var(--s7);border-radius:var(--r-card);background:var(--canvas-soft)}
.ppl-book__cover{width:60%;max-width:260px;height:auto}
.ppl-others{margin:var(--s5) 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.ppl-others li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px var(--s5);padding:8px 0;border-bottom:1px solid var(--line)}
.ppl-others__role{color:var(--text-2);font-size:14px}
@media (max-width:880px){
  .ppl-profile{grid-template-columns:minmax(0,1fr)}
  .ppl-profile__portrait{max-width:340px}
  .ppl-delivery__cols{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Insights ---------- */
.insights,.cards,.pubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.insight{position:relative;display:flex;flex-direction:column;gap:var(--s3);min-height:260px;padding:28px;
  border-radius:var(--r-card);background:var(--canvas-soft);color:var(--ink);text-decoration:none}
.insight__cat{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.insight__title{font-size:var(--fs-xs);font-weight:700;line-height:1.25}
.insight__meta{color:var(--text-2);font-size:14px}
.insight .textlink{margin-top:auto}
.insight:hover .insight__title{text-decoration:underline 2px;text-underline-offset:5px}
.insight:hover .arr{background:var(--red);border-color:var(--red);color:#fff}
@media (max-width:1024px){ .insights,.cards,.pubs{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .insights,.cards,.pubs{grid-template-columns:minmax(0,1fr)} }

.vidcard__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3)}

/* the article: a reading measure on the children, never on the .wrap */
.art-body>*{max-width:72ch}
.art-intro{margin-bottom:var(--s6);font-size:var(--fs-body-lg);line-height:1.55}
.art-h2{margin:var(--s7) 0 var(--s4);font-size:clamp(24px,2.4vw,32px);font-weight:700;line-height:1.2}
.art-body>.art-h2:first-child,.art-part:first-child .art-h2{margin-top:0}
.art-p{font-size:18px;line-height:1.7}
.art-p+.art-p{margin-top:1em}
.art-part__n{display:block;margin-bottom:6px;color:var(--red);font-size:14px;font-weight:800;letter-spacing:.06em}
.art-rule{margin-bottom:var(--s6);padding-left:var(--s4);border-left:3px solid var(--red);color:var(--fg-2);font-size:16px}
.art-check{margin-top:var(--s7);padding:clamp(24px,3vw,40px);border-radius:var(--r-card);background:var(--canvas-soft)}
.art-check .art-h2{margin-top:0}
.art-check__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.art-check__list li{position:relative;padding:12px 0 12px 22px;border-bottom:1px solid var(--line);font-size:17px;line-height:1.55}
.art-check__list li::before{content:"";position:absolute;left:0;top:20px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.art-rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.art-rel__h{color:var(--fg-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:880px){ .art-rel{grid-template-columns:minmax(0,1fr)} }

.ru-parts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4);margin:var(--s5) 0 var(--s6);padding:0;list-style:none}
.ru-parts li{padding:20px;border-radius:var(--r-card);background:var(--canvas-soft);font-size:17px;font-weight:700;line-height:1.3}
.ru-parts__n{display:block;margin-bottom:8px;color:var(--red);font-size:13px;font-weight:800}
@media (max-width:1024px){ .ru-parts{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ---------- publications ---------- */
.pub{display:flex;flex-direction:column;gap:var(--s3)}
.pub>img.pub__cover{width:100%;height:auto;aspect-ratio:5/4;padding:var(--s6) 22%;border-radius:var(--r-card);
  background:var(--canvas-soft);object-fit:contain}
.pub>div{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:var(--s3)}
.pub__tag{padding:4px 14px;border-radius:var(--r-chip);background:var(--canvas-soft);font-size:14px;font-weight:700}

.publ{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s8);align-items:start}
.publ__cover{display:grid;place-items:center;padding:var(--s7);border-radius:var(--r-card);background:var(--canvas-soft)}
.publ__cover-img{width:100%;max-width:300px;height:auto}
.publ__copy{font-size:var(--fs-body-lg);line-height:1.5}
.publ__origin{margin-top:var(--s4);color:var(--text-2)}
.publ__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s6);margin:var(--s6) 0;border-top:1px solid var(--line)}
.publ__fact{padding:12px 0;border-bottom:1px solid var(--line)}
.publ__fact dt{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.publ__fact dd{margin:4px 0 0;font-weight:600}
.publ__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5)}
@media (max-width:880px){ .publ{grid-template-columns:minmax(0,1fr)} .publ__cover{padding:var(--s6)} .publ__cover-img{max-width:200px} }

/* ---------- Careers ---------- */
.car-copy>p{max-width:60ch}
.car-copy>p+p{margin-top:1em}
.jobs{display:grid;gap:var(--s5)}
.job{padding:clamp(24px,4vw,48px);border-radius:var(--r-card);background:var(--canvas-soft);scroll-margin-top:calc(var(--mast-h) + 24px)}
.job__head{display:grid;gap:var(--s2);margin-bottom:var(--s5);padding-bottom:var(--s5);border-bottom:1px solid var(--line)}
.job__team{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.job__title{font-size:var(--fs-sm);font-weight:700;line-height:1.2}
.job__facts{display:flex;flex-wrap:wrap;gap:var(--s2);margin:4px 0 0;padding:0;list-style:none}
.job__facts li{padding:4px 14px;border-radius:var(--r-chip);background:#fff;font-size:14px;font-weight:700}
.job__summary{max-width:62ch;margin-bottom:var(--s6);font-size:var(--fs-body-lg);line-height:1.5}
.job__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s7)}
.job__h{margin-bottom:var(--s3);color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.job__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.job__list li{position:relative;padding:10px 0 10px 22px;border-bottom:1px solid var(--line);font-size:16px;line-height:1.5}
.job__list li::before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.job__apply{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s6);margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}
.job__how{max-width:60ch;color:var(--text-2);font-size:14px}
.car-spec>*{max-width:62ch}
.car-spec__p{margin:var(--s4) 0 var(--s3);font-size:var(--fs-body-lg)}
@media (max-width:880px){ .job__cols{grid-template-columns:minmax(0,1fr)} }

/* ---------- Contact ---------- */
.cf-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s8);align-items:start}
.cf-form__intro{max-width:56ch;margin:var(--s4) 0 var(--s6);color:var(--text-2);font-size:var(--fs-body-lg);line-height:1.5}
.cf-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.cf-legend,.cf-actions,.cf-privacy,.cf-field:has(textarea),.cf-field:has(select){grid-column:1 / -1}
.cf-legend{color:var(--text-2);font-size:14px}
.cf-field{display:flex;flex-direction:column;gap:8px}
.cf-label{font-size:15px;font-weight:700}
.cf-star{color:var(--red)}
.cf-input,.cf-select,.cf-textarea{width:100%;min-height:52px;padding:12px 16px;border:1px solid var(--ink);border-radius:var(--r-card);
  background:#fff;color:var(--ink);font:400 17px/1.4 var(--font)}
.cf-textarea{min-height:180px;resize:vertical}
.cf-input:focus-visible,.cf-select:focus-visible,.cf-textarea:focus-visible{outline:3px solid var(--red);outline-offset:1px}
.cf-hint{color:var(--text-2);font-size:14px}
.cf-privacy{color:var(--text-2);font-size:14px}
.cf-done{padding:var(--s6);border-left:4px solid var(--red);border-radius:var(--r-card);background:var(--canvas-soft)}
.cf-done h3{margin-bottom:var(--s2);font-size:var(--fs-xs);font-weight:700}
.cf-aside{padding:28px;border-radius:var(--r-card);background:var(--canvas-soft)}
.cf-aside+.cf-aside{margin-top:var(--s4)}
.cf-aside h2,.cf-aside h3{margin-bottom:var(--s2);font-size:20px;font-weight:700;line-height:1.3}
.cf-aside p{font-size:16px}
.cf-aside p+p{margin-top:8px}
/* the direct line is the one polarity-flipped card on the page */
.cf-direct{background:var(--dark);color:#fff;--focus:#fff}
.cf-direct p{color:var(--on-dark-2)}
.cf-email,.cf-tel{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:20px;font-weight:700;
  text-decoration:underline 1.5px;text-underline-offset:5px;text-decoration-color:rgba(255,255,255,.45)}
.cf-email:hover,.cf-tel:hover{text-decoration-color:#fff}
.cf-steps{margin:var(--s2) 0 0;padding-left:1.3em;font-size:15px;line-height:1.6}
.cf-steps li+li{margin-top:6px}
.cf-offices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6);margin-top:var(--s6)}
.cf-office h3{font-size:var(--fs-xs);font-weight:700}
.cf-office__addr{margin:8px 0 var(--s4);color:var(--text-2);font-size:16px;font-style:normal;line-height:1.55}
.cf-map{overflow:hidden;aspect-ratio:16/10;border-radius:var(--r-card);background:var(--canvas-soft)}
.cf-map iframe{display:block;width:100%;height:100%;border:0}
.cf-directions{margin-top:var(--s2)}
@media (max-width:1024px){ .cf-grid{grid-template-columns:minmax(0,1fr)} }
@media (max-width:760px){ .cf-form,.cf-offices{grid-template-columns:minmax(0,1fr)} }

/* ---------- Legal ---------- */
.legal-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--s8);align-items:start}
.legal-toc{position:sticky;top:calc(var(--mast-h) + 24px)}
.legal-toc__h{margin-bottom:var(--s3);color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.legal-toc__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);counter-reset:toc}
.legal-toc__list li{border-bottom:1px solid var(--line);counter-increment:toc}
.legal-toc__list a{display:flex;gap:10px;padding:8px 0;color:var(--ink);font-size:14px;line-height:1.35;text-decoration:none}
.legal-toc__list a::before{content:counter(toc,decimal-leading-zero);min-width:2ch;padding-top:1px;color:var(--red);font-size:12px;font-weight:800}
.legal-toc__list a:hover{text-decoration:underline}
.legal-body{max-width:74ch}
.legal-sec{scroll-margin-top:calc(var(--mast-h) + 24px)}
.legal-sec+.legal-sec{margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--line)}
.legal-h{margin-bottom:var(--s4);font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.25}
.legal-n{display:block;margin-bottom:6px;color:var(--red);font-size:13px;font-weight:800;letter-spacing:.06em}
.legal-sec p{font-size:17px;line-height:1.7}
.legal-sec p+p{margin-top:1em}
.legal-list{margin:var(--s4) 0;padding-left:1.3em}
.legal-list li{margin:.5em 0;font-size:17px;line-height:1.65}
.legal-tablewrap{overflow-x:auto;margin:var(--s5) 0;border:1px solid var(--line);border-radius:var(--r-card)}
.legal-table{width:100%;border-collapse:collapse;font-size:15px}
.legal-table th,.legal-table td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.legal-table thead th{background:var(--canvas-soft);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.legal-offices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5);margin:var(--s4) 0}
.legal-office__k{color:var(--text-2);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.legal-office__a{font-size:16px!important}
@media (max-width:1024px){ .legal-grid{grid-template-columns:minmax(0,1fr)} .legal-toc{position:static} }
@media (max-width:600px){ .legal-offices{grid-template-columns:minmax(0,1fr)} }
