/* Stacked Global Media: the "Highlighter" look (Richard's pick C, 2026-10-27).
   White pages, black letters, the logo's yellow used like a highlighter pen. One light theme on purpose. */
@font-face{ font-family:"Sora"; src:url("fonts/sora.woff2") format("woff2"); font-weight:100 800; font-display:swap; }
@font-face{ font-family:"Plus Jakarta Sans"; src:url("fonts/jakarta.woff2") format("woff2"); font-weight:200 800; font-display:swap; }

:root{
  --ink:#0A0A0A; --paper:#FFFFFF; --wash:#FAFAF7; --line:#E7E6E0; --muted:#55554F; --yellow:#FFE000; --yellow-soft:#FFF6B3;
  --f-display:"Sora", "Avenir Next", system-ui, sans-serif;
  --f-body:"Plus Jakarta Sans", "Avenir Next", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap:1200px; --gut:max(20px, env(safe-area-inset-left, 0px)); --gut-r:max(20px, env(safe-area-inset-right, 0px));
  --r:16px; --pill:999px;
  color-scheme:light;
}
*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); color:var(--ink); font:17px/1.6 var(--f-body); -webkit-font-smoothing:antialiased; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3,h4{ font-family:var(--f-display); font-weight:600; letter-spacing:-.03em; line-height:1.08; margin:0; text-wrap:balance; }
h1{ font-size:clamp(40px, 7.2vw, 84px); letter-spacing:-.045em; line-height:1.02; }
h2{ font-size:clamp(30px, 4.4vw, 52px); }
h3, .h3{ font-size:clamp(20px, 2.2vw, 24px); letter-spacing:-.02em; }
p{ margin:0; }
ul, ol{ margin:0; padding:0; }
mark{ background:linear-gradient(transparent 56%, var(--yellow) 56%, var(--yellow) 92%, transparent 92%); color:inherit; padding:0 .06em; }
:focus-visible{ outline:3px solid var(--ink); outline-offset:3px; border-radius:6px; }
.skip{ position:absolute; left:12px; top:-60px; background:var(--ink); color:var(--yellow); padding:10px 16px; border-radius:var(--pill); z-index:100; font-weight:600; text-decoration:none; }
.skip:focus{ top:12px; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut-r); }
.section{ padding-block:clamp(64px, 9vw, 120px); }
.section.tight{ padding-block:clamp(48px, 6vw, 80px); }
.wash{ background:var(--wash); border-block:1px solid var(--line); }
.eyebrow{ font:600 13px/1.4 var(--f-body); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.lede{ font-size:clamp(18px, 1.6vw, 21px); color:var(--muted); max-width:58ch; }
.muted{ color:var(--muted); }
.after{ margin-top:clamp(28px, 4vw, 40px); }
.head{ display:grid; gap:16px; max-width:760px; margin-bottom:clamp(36px, 5vw, 56px); }

/* Buttons */
.btns{ display:flex; flex-wrap:wrap; gap:12px; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 26px; border-radius:var(--pill);
  font:600 16px/1 var(--f-body); text-decoration:none; border:1.5px solid var(--ink); cursor:pointer; transition:transform .15s ease, background .15s ease, color .15s ease; }
.btn-primary{ background:var(--ink); color:var(--yellow); }
.btn-primary:hover{ transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--ink); }
.btn-ghost:hover{ background:var(--yellow); }
.btn-yellow{ background:var(--yellow); color:var(--ink); border-color:var(--yellow); }
.btn-yellow:hover{ transform:translateY(-2px); }
.btn .arr{ transition:transform .15s ease; }
.btn:hover .arr{ transform:translateX(3px); }
.link{ font-weight:600; text-decoration:none; background:linear-gradient(var(--yellow), var(--yellow)) 0 100%/100% 3px no-repeat; padding-bottom:2px; }
.link:hover{ background-size:100% 100%; }

/* Header */
.site-head{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:saturate(1.4) blur(12px); -webkit-backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid transparent; transition:border-color .2s ease; }
.site-head.scrolled{ border-bottom-color:var(--line); }
.head-row{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:76px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex:0 0 auto; }
.brand img{ width:42px; height:42px; border-radius:10px; }
.brand span{ display:grid; line-height:1; }
.brand b{ font:700 17px/1 var(--f-display); letter-spacing:.16em; }
.brand i{ font:600 9px/1 var(--f-body); letter-spacing:.36em; font-style:normal; color:var(--muted); margin-top:5px; }
.nav{ display:flex; align-items:center; gap:6px; }
.nav > a, .nav .drop > a{ font-weight:500; font-size:15.5px; text-decoration:none; padding:10px 14px; border-radius:var(--pill); }
.nav > a:not(.btn):hover, .nav .drop > a:hover{ background:var(--wash); }
.nav > a:not(.btn)[aria-current="page"], .drop > a[aria-current="page"], .drop > a.here{ box-shadow:inset 0 -3px 0 var(--yellow); border-radius:0; background:none; }
.drop-panel a[aria-current="page"]{ background:var(--yellow-soft); }
.nav .btn{ margin-left:10px; min-height:46px; padding:0 22px; font-size:15px; }
.drop{ position:relative; }
.drop-panel{ position:absolute; top:100%; left:-10px; width:320px; padding:10px; background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:0 24px 48px -24px rgba(10,10,10,.25); display:grid; gap:2px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s ease, transform .15s ease, visibility .15s; }
.drop:hover .drop-panel, .drop:focus-within .drop-panel{ opacity:1; visibility:visible; transform:none; }
.drop-panel a{ display:grid; gap:2px; padding:12px 14px; border-radius:12px; text-decoration:none; }
.drop-panel a:hover{ background:var(--wash); }
.drop-panel b{ font-weight:600; }
.drop-panel small{ color:var(--muted); font-size:13.5px; }
.burger{ display:none; width:48px; height:48px; border-radius:50%; border:1.5px solid var(--ink); background:transparent; cursor:pointer; position:relative; }
.burger span{ position:absolute; left:13px; right:13px; height:2px; background:var(--ink); transition:transform .2s ease, opacity .2s ease; }
.burger span:nth-child(1){ top:17px; } .burger span:nth-child(2){ top:23px; } .burger span:nth-child(3){ top:29px; }
.menu-open .burger span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-open .burger span:nth-child(2){ opacity:0; }
.menu-open .burger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:960px){
  .burger{ display:block; }
  .nav{ position:fixed; inset:76px 0 0 0; background:var(--paper); flex-direction:column; align-items:stretch; gap:0;
    padding:16px var(--gut-r) 32px var(--gut); overflow-y:auto; display:none; border-top:1px solid var(--line); }
  .menu-open .nav{ display:flex; }
  .menu-open{ overflow:hidden; }
  .nav > a, .nav .drop > a{ font:600 24px/1.2 var(--f-display); letter-spacing:-.02em; padding:16px 4px; border-radius:0; border-bottom:1px solid var(--line); }
  .nav > a:not(.btn)[aria-current="page"], .drop > a[aria-current="page"], .drop > a.here{ box-shadow:none; background:none; }
  .drop-panel a[aria-current="page"]{ background:none; font-weight:700; }
  .nav > a:not(.btn)[aria-current="page"]::before, .drop > a[aria-current="page"]::before, .drop > a.here::before{ content:""; display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--yellow); margin-right:10px; vertical-align:middle; }
  .drop-panel{ position:static; width:auto; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:4px 0 8px 16px; background:none; }
  .drop-panel small{ display:none; }
  .drop-panel a{ padding:10px 4px; font-size:17px; }
  .nav .btn{ margin:24px 0 0; min-height:56px; font:600 17px/1 var(--f-body); letter-spacing:0; border-radius:var(--pill); border-bottom:1.5px solid var(--ink); padding:0 22px; }
  .nav .drop > a{ display:block; }
}

/* Hero */
.hero{ padding-block:clamp(48px, 8vw, 104px) clamp(56px, 8vw, 112px); }
.hero-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(40px, 6vw, 88px); align-items:end; }
.hero-copy{ display:grid; gap:24px; min-width:0; }
.hero .lede{ max-width:46ch; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }

/* Service link cards */
.svc-list{ display:grid; gap:10px; }
.svc{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--wash); text-decoration:none; transition:border-color .15s ease, transform .15s ease, background .15s ease; }
.svc:hover{ border-color:var(--ink); transform:translateY(-2px); background:var(--paper); }
.svc span{ display:grid; gap:4px; min-width:0; }
.svc strong{ font:600 19px/1.25 var(--f-display); letter-spacing:-.02em; }
.svc small{ font-size:14.5px; color:var(--muted); }
.dot{ flex:0 0 auto; width:40px; height:40px; border-radius:50%; background:var(--yellow); display:grid; place-items:center; font-size:18px; transition:transform .15s ease; }
.svc:hover .dot, .card:hover .dot{ transform:rotate(-45deg); }

/* The stack: three layers, one on top of the other */
.stack{ display:grid; gap:0; max-width:900px; }
.layer{ position:relative; display:grid; grid-template-columns:190px 1fr auto; gap:20px 28px; align-items:center; padding:28px clamp(20px, 3vw, 36px);
  border:1.5px solid var(--ink); border-radius:var(--r); background:var(--paper); text-decoration:none; transition:transform .2s ease, background .2s ease; }
.layer + .layer{ margin-top:-1.5px; }
.layer:nth-child(1){ margin-right:clamp(0px, 8vw, 96px); }
.layer:nth-child(2){ margin-inline:clamp(0px, 4vw, 48px); }
.layer:nth-child(3){ margin-left:clamp(0px, 8vw, 96px); background:var(--ink); color:var(--paper); }
.layer:hover{ transform:translateX(6px); background:var(--yellow); color:var(--ink); }
.layer .tag{ font:600 12px/1 var(--f-body); letter-spacing:.14em; text-transform:uppercase; padding:8px 12px; border-radius:var(--pill); border:1.5px solid currentColor; white-space:nowrap; }
.layer h3{ margin-bottom:4px; }
.layer p{ font-size:15.5px; opacity:.8; }
.layer .dot{ background:var(--yellow); color:var(--ink); }
.layer:hover .dot{ background:var(--ink); color:var(--yellow); }
@media (max-width:640px){ .layer{ grid-template-columns:1fr auto; } .layer .tag{ grid-column:1 / -1; justify-self:start; } .layer:nth-child(n){ margin-inline:0; } }

/* Cards in a grid */
.grid3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.grid2{ display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; }
@media (max-width:900px){ .grid3{ grid-template-columns:1fr; } }
@media (max-width:720px){ .grid2{ grid-template-columns:1fr; } }
.card{ display:flex; flex-direction:column; gap:16px; padding:clamp(24px, 3vw, 32px); border:1px solid var(--line); border-radius:var(--r); background:var(--paper); text-decoration:none; min-width:0;
  transition:border-color .15s ease, transform .15s ease; }
a.card:hover{ border-color:var(--ink); transform:translateY(-3px); }
.card .card-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.card p{ color:var(--muted); font-size:16px; }
.ticks{ list-style:none; display:grid; gap:10px; font-size:15.5px; }
.ticks li{ display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; }
.ticks li::before{ content:""; width:18px; height:18px; margin-top:4px; border-radius:50%; background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.3l2.6 2.6L13 6.5' fill='none' stroke='%230A0A0A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat; }
.card .more{ margin-top:auto; font-weight:600; display:inline-flex; gap:8px; align-items:center; }

/* Steps: a real order, so they are numbered */
.steps{ list-style:none; display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; counter-reset:step; }
.steps li{ counter-increment:step; display:grid; gap:12px; align-content:start; padding-top:24px; border-top:2px solid var(--ink); }
.steps li::before{ content:counter(step, decimal-leading-zero); font:600 14px/1 var(--f-display); background:var(--yellow); justify-self:start; padding:7px 10px; border-radius:var(--pill); }
.steps p{ color:var(--muted); font-size:15.5px; }
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }

/* Pipeline row: the weekly content line */
.pipe{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.pipe li{ display:inline-flex; align-items:center; gap:10px; font-weight:600; }
.pipe li span{ padding:10px 16px; border-radius:var(--pill); border:1.5px solid var(--ink); background:var(--paper); }
.pipe li + li::before{ content:"→"; color:var(--muted); }
.pipe li:last-child span{ background:var(--yellow); border-color:var(--yellow); }

/* Split blocks */
.split{ display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(32px, 6vw, 88px); align-items:start; }
.split > *{ min-width:0; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } }

/* FAQ */
.faq{ display:grid; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px; align-items:center; padding:22px 0; font:600 clamp(17px, 1.6vw, 19px)/1.35 var(--f-display); letter-spacing:-.015em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; flex:0 0 auto; width:34px; height:34px; border-radius:50%; border:1.5px solid var(--ink); display:grid; place-items:center; font:500 20px/1 var(--f-body); transition:transform .2s ease, background .2s ease; }
.faq details[open] summary::after{ transform:rotate(45deg); background:var(--yellow); border-color:var(--yellow); }
.faq summary:hover::after{ background:var(--yellow); border-color:var(--yellow); }
.faq .ans{ padding:0 0 24px; color:var(--muted); max-width:68ch; display:grid; gap:12px; }

/* Call-to-action band */
.cta-band{ background:var(--ink); color:var(--paper); border-radius:calc(var(--r) * 1.5); padding:clamp(36px, 6vw, 72px); display:grid; grid-template-columns:1.4fr auto; gap:28px; align-items:center; }
.cta-band h2 mark{ background:none; color:var(--yellow); }
.cta-band p{ color:#BDBCB4; margin-top:12px; max-width:52ch; }
@media (max-width:760px){ .cta-band{ grid-template-columns:1fr; } }

/* Page heads for inner pages */
.page-head{ padding-block:clamp(48px, 7vw, 96px) clamp(40px, 5vw, 64px); }
.page-head .wrap{ display:grid; gap:20px; }
.crumbs{ display:flex; flex-wrap:wrap; gap:8px; font-size:14px; color:var(--muted); }
.crumbs a{ text-decoration:none; }
.crumbs a:hover{ text-decoration:underline; }
.crumbs span[aria-hidden]{ opacity:.5; }

/* Info tiles (contact) */
.info{ display:grid; gap:14px; }
.tile{ display:grid; gap:6px; padding:22px; border:1px solid var(--line); border-radius:var(--r); background:var(--wash); }
.tile .eyebrow{ font-size:12px; }
.tile a, .tile address{ font-style:normal; font-weight:600; font-size:17px; text-decoration:none; word-break:break-word; }
.tile a:hover{ text-decoration:underline; }

/* Forms */
.form{ display:grid; gap:18px; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:620px){ .row2{ grid-template-columns:1fr; } }
.field{ display:grid; gap:8px; min-width:0; }
.field label, .legend{ font-weight:600; font-size:15px; }
.field .hint{ font-size:13.5px; color:var(--muted); font-weight:400; }
.input, select.input, textarea.input{ width:100%; min-height:54px; padding:14px 16px; font:16px/1.4 var(--f-body); color:var(--ink); background:var(--paper);
  border:1.5px solid var(--line); border-radius:12px; transition:border-color .15s ease, box-shadow .15s ease; appearance:none; -webkit-appearance:none; }
select.input{ background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230A0A0A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 16px center/12px no-repeat; padding-right:44px; }
textarea.input{ min-height:140px; resize:vertical; }
.input:hover{ border-color:#BDBCB4; }
.input:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 4px var(--yellow-soft); }
.input[aria-invalid="true"]{ border-color:#B42318; }
.err{ color:#B42318; font-size:14px; font-weight:500; }
.err:empty{ display:none; }
fieldset{ border:0; margin:0; padding:0; min-width:0; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.chip{ position:relative; }
.chip input{ position:absolute; opacity:0; width:1px; height:1px; }
.chip label{ display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 18px; border:1.5px solid var(--line); border-radius:var(--pill); cursor:pointer; font-weight:500; font-size:15.5px; transition:border-color .15s ease, background .15s ease; }
.chip label:hover{ border-color:var(--ink); }
.chip input:checked + label{ background:var(--yellow); border-color:var(--ink); font-weight:600; }
.chip input:focus-visible + label{ outline:3px solid var(--ink); outline-offset:3px; }
.check{ display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:start; font-size:15px; color:var(--muted); }
.check input{ width:22px; height:22px; margin:2px 0 0; accent-color:var(--ink); }
.hp{ display:none; }
.form-card{ padding:clamp(22px, 4vw, 44px); border:1px solid var(--line); border-radius:calc(var(--r) * 1.25); background:var(--paper); box-shadow:0 30px 60px -40px rgba(10,10,10,.25); min-width:0; }
.form-note{ font-size:13.5px; color:var(--muted); }

/* Questionnaire */
.progress{ display:grid; gap:10px; margin-bottom:28px; }
.progress-top{ display:flex; justify-content:space-between; gap:12px; font-size:14px; font-weight:600; }
.progress-top span:last-child{ color:var(--muted); font-weight:500; }
.bar{ height:8px; border-radius:var(--pill); background:var(--wash); border:1px solid var(--line); overflow:hidden; }
.bar i{ display:block; height:100%; width:25%; background:var(--yellow); border-right:2px solid var(--ink); transition:width .3s ease; }
.step-panel{ display:grid; gap:22px; }
.step-panel h2{ font-size:clamp(26px, 3.4vw, 36px); }
.js .step-panel:not(.on){ display:none; }
.step-nav{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:8px; }
html:not(.js) .progress{ display:none; }

/* Legal pages */
.prose{ max-width:72ch; display:grid; gap:18px; }
.prose h2{ font-size:clamp(22px, 2.6vw, 28px); margin-top:22px; }
.prose ul{ padding-left:22px; display:grid; gap:8px; }
.prose p, .prose li{ color:#2E2E2B; }
.prose a{ font-weight:600; }

/* Footer */
.site-foot{ background:var(--ink); color:#D8D7CF; margin-top:clamp(64px, 9vw, 120px); padding-block:clamp(56px, 7vw, 88px) 32px; }
.site-foot .brand b{ color:var(--paper); }
.site-foot .brand i{ color:#A3A29A; }
.foot-grid{ display:grid; grid-template-columns:1.4fr repeat(3, 1fr); gap:40px; }
.foot-grid .foot-h{ font:600 13px/1 var(--f-body); letter-spacing:.14em; text-transform:uppercase; color:var(--yellow); margin-bottom:16px; }
.foot-grid ul{ list-style:none; display:grid; gap:10px; }
.foot-grid a{ text-decoration:none; color:#D8D7CF; }
.foot-grid a:hover{ color:var(--yellow); }
.site-foot .btn-yellow, .site-foot .btn-yellow:hover{ color:var(--ink); }
.foot-grid address{ font-style:normal; line-height:1.6; }
.foot-about{ display:grid; gap:18px; align-content:start; max-width:340px; }
.foot-about p{ font-size:15px; color:#A3A29A; }
.foot-base{ margin-top:56px; padding-top:24px; border-top:1px solid #2A2A27; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:14px; color:#A3A29A; }
.foot-base a{ color:#A3A29A; text-decoration:none; } .foot-base a:hover{ color:var(--yellow); }
.foot-base nav{ display:flex; gap:20px; }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } .foot-about{ grid-column:1 / -1; } }
@media (max-width:480px){ .foot-grid{ grid-template-columns:1fr; } }

/* Gentle rise-in: content is visible at rest, the motion is only a nudge */
@media (prefers-reduced-motion:no-preference){
  .rise{ animation:rise .6s cubic-bezier(.2,.7,.2,1) both; }
  .rise.d1{ animation-delay:.06s; } .rise.d2{ animation-delay:.12s; } .rise.d3{ animation-delay:.18s; }
  @keyframes rise{ from{ transform:translateY(14px); } to{ transform:none; } }
}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{ transition:none!important; animation:none!important; scroll-behavior:auto!important; } }

/* Small fixes */
section[id]{ scroll-margin-top:90px; }
.step-nav [data-next], .step-nav [data-send]{ margin-left:auto; }
.field .check{ font-weight:400; }
.tile p:not(.eyebrow){ font-size:16px; }
/* The header's blur traps a fixed menu inside the header's own height, so it is switched off while the menu is open. */
.menu-open .site-head{ backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--paper); }
/* Anything scrolled to (a #section, a field with a mistake) stops below the sticky header. */
html{ scroll-padding-top:96px; }
@media (max-width:900px){ .form-first .form-card{ order:-1; } }
.map-list{ list-style:none; display:grid; gap:14px; margin-top:18px; font-size:16.5px; }
.map-list a{ display:inline-block; padding:4px 0; }
