@import url("/fonts/fonts.css");

:root{
  --red:#99170a;
  --red-hot:#c22a15;
  --ink:#15171b;
  --ink-2:#23262c;
  --slate:#5a6068;
  --line:#e2ded9;
  --paper:#ffffff;
  --paper-2:#f7f4f1;
  --wrap:1180px;
  --display:'Oswald',Impact,'Haettenschweiler','Arial Narrow Bold',sans-serif;
  --body:'SourceSans3',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--body);color:var(--ink);background:var(--paper);
  font-size:17px;line-height:1.68;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:.005em;margin:0 0 .5em;text-transform:uppercase}
h1{font-size:clamp(2.1rem,5.2vw,3.7rem)}
h2{font-size:clamp(1.65rem,3.4vw,2.5rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1.15em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:10px 16px;z-index:999;border:2px solid var(--red)}
:focus-visible{outline:3px solid var(--red-hot);outline-offset:2px}

/* ---------- top bar ---------- */
.topbar{background:var(--ink);color:#cfd3d8;font-size:.86rem;letter-spacing:.03em}
.topbar .wrap{display:flex;gap:22px;align-items:center;justify-content:flex-end;min-height:40px;flex-wrap:wrap}
.topbar a{color:#e9ecef}
.topbar .sep{opacity:.35}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.6) blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:24px;min-height:78px}
.brand{flex:0 0 auto;display:block;max-width:330px}
.brand img{width:100%;display:block}
/* The tagline used to be baked into logo.png as WHITE pixels — invisible on
   the white header. It's now real text inside an SVG whose viewBox matches
   the logo's 900-unit width, so it scales 1:1 with the logo at every screen
   size (exactly like the baked-in original did) and can never vanish against
   its background again. textLength pins it edge-to-edge under the wordmark. */
.brand-tag{display:block;width:100%;height:auto;margin-top:2px}
.brand-tag text{
  font-family:var(--display);font-weight:600;font-size:27px;
  letter-spacing:1.5px;fill:var(--red)
}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a{
  font-family:var(--display);text-transform:uppercase;font-weight:600;font-size:.92rem;
  letter-spacing:.05em;color:var(--ink);padding:10px 12px;border-radius:3px
}
.nav a:hover{background:var(--paper-2);text-decoration:none;color:var(--red)}
.nav a[aria-current]{color:var(--red);box-shadow:inset 0 -3px 0 var(--red)}
.btn{
  display:inline-block;font-family:var(--display);text-transform:uppercase;font-weight:700;
  letter-spacing:.06em;background:var(--red);color:#fff;padding:14px 26px;border-radius:3px;
  border:2px solid var(--red);transition:.15s;font-size:1rem;text-align:center;cursor:pointer
}
.btn:hover{background:var(--red-hot);border-color:var(--red-hot);color:#fff;text-decoration:none}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-sm{padding:10px 18px;font-size:.88rem}
.nav-cta{margin-left:10px}

/* mobile nav */
.menu-toggle{display:none;margin-left:auto;background:none;border:2px solid var(--line);border-radius:3px;padding:9px 12px;font:600 .85rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
@media (max-width:1000px){
  .menu-toggle{display:block}
  .nav{
    display:none;position:absolute;left:0;right:0;top:100%;background:#fff;
    border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 24px 20px;
    box-shadow:0 18px 30px -18px rgba(0,0,0,.35)
  }
  .nav.open{display:flex}
  .nav a{padding:13px 4px;border-bottom:1px solid var(--line)}
  .nav a[aria-current]{box-shadow:none}
  .nav-cta{margin:14px 0 0}
  .brand{max-width:240px}
}

/* ---------- hero ---------- */
/* .hero is a <section>, so it was picking up the generic section padding
   (89.6px) on top of .hero-inner's own 124px — 214px of dead space above and
   below the hero copy. The hero owns its spacing; drop the inherited padding. */
.hero{position:relative;color:#fff;background:var(--ink);padding:0}
.hero picture,.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(10,11,13,.94) 0%,rgba(10,11,13,.86) 42%,rgba(10,11,13,.5) 100%)
}
.hero-inner{position:relative;z-index:2;padding:clamp(48px,6vw,84px) 24px}
.hero .eyebrow{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.22em;font-size:.82rem;
  color:#ff8a72;font-weight:600;margin:0 0 18px
}
.hero h1{max-width:16ch;margin-bottom:.35em}
.hero h1 em{font-style:normal;color:#ff5f42;display:block}
.hero .lede{font-size:clamp(1.05rem,1.7vw,1.28rem);max-width:52ch;color:#e6e8ea;margin-bottom:2em}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- stats ---------- */
.stats{background:var(--red);color:#fff}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.22)}
.stat{background:var(--red);padding:30px 20px;text-align:center}
.stat b{display:block;font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1}
.stat span{display:block;margin-top:8px;font-size:.9rem;letter-spacing:.02em;color:#ffd9d2}
@media (max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- sections ---------- */
section{padding:clamp(56px,7vw,92px) 0}
.alt{background:var(--paper-2)}
.dark{background:var(--ink);color:#e7e9ec}
.dark h2,.dark h3{color:#fff}
.section-head{max-width:720px;margin-bottom:46px}
.section-head p{color:var(--slate);font-size:1.06rem;margin:0}
.dark .section-head p{color:#aab0b8}
.kicker{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;
  color:var(--red);font-weight:600;margin:0 0 12px;display:block
}
.dark .kicker{color:#ff7a5e}

/* ---------- practice grid ---------- */
.grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(285px,1fr))}
.card{
  position:relative;
  background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;transition:.18s
}
/* "Learn more" / "Read the story" are spans styled to look like links, so they
   were never clickable. Rather than add a second link to the same URL, stretch
   the heading's link across the whole card — clicking anywhere on the card now
   navigates, which is what a card UI implies anyway. */
.card h3 a::after{content:"";position:absolute;inset:0}
.card:focus-within{border-color:var(--red)}
.card h3 a:focus-visible{outline:none}
.card:focus-within{outline:2px solid var(--red);outline-offset:2px}
.card:hover{transform:translateY(-3px);box-shadow:0 20px 34px -22px rgba(0,0,0,.5);border-color:#cfc8c1}
.card .thumb{aspect-ratio:16/10;overflow:hidden;background:var(--ink-2)}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}
.card:hover .thumb img{transform:scale(1.05)}
.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:.45em;font-size:1.18rem}
.card h3 a{color:var(--ink)}
.card:hover h3 a{color:var(--red);text-decoration:none}
.card p{color:var(--slate);font-size:.98rem;margin-bottom:1.2em}
.card .more{
  margin-top:auto;font-family:var(--display);text-transform:uppercase;font-size:.84rem;
  letter-spacing:.09em;font-weight:600;color:var(--red);transition:.18s
}
.card:hover .more{text-decoration:underline;text-underline-offset:3px}

/* Case cards crop 4:3 photos into a 16:10 thumb. Centring that crop shaves the
   tops of heads off the courtroom photos, so bias it toward the top. */
.case-card .thumb img{object-position:center 22%}

/* ---------- case page hero photo ---------- */
.case-hero{margin:0 0 34px;padding:0}
.case-hero picture{display:block}
.case-hero img{
  width:100%;height:auto;display:block;border-radius:5px;
  box-shadow:0 22px 38px -28px rgba(0,0,0,.55)
}
.case-hero figcaption{
  margin-top:10px;font-size:.88rem;color:var(--slate);line-height:1.5
}
.dark .case-hero figcaption{color:#a6adb6}

/* ---------- attorney "at a glance" ---------- */
.facts{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--line)}
.facts li{
  display:flex;gap:18px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line)
}
.fact-k{
  flex:0 0 34%;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;
  font-weight:700;font-size:.92rem;color:var(--red)
}
.fact-v{color:var(--slate);font-size:.97rem}
@media (max-width:480px){
  .facts li{flex-direction:column;gap:2px}
  .fact-k{flex:none}
}
.dark .facts{border-top-color:#2c3038}
.dark .facts li{border-bottom-color:#2c3038}
.dark .fact-v{color:#a6adb6}

/* ---------- career timeline ---------- */
.timeline{list-style:none;margin:0;padding:0;position:relative;max-width:920px}
/* the rail: fades in at the top, saturates toward "Today" at the bottom */
.timeline::before{
  content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;
  background:linear-gradient(180deg,var(--line),var(--red) 55%,var(--red));
}
.tl-item{position:relative;padding:0 0 34px 34px}
.tl-item:last-child{padding-bottom:0}
/* node marker on the rail */
.tl-item::before{
  content:"";position:absolute;left:-5px;top:7px;width:12px;height:12px;border-radius:50%;
  background:#fff;border:2px solid var(--red);z-index:1
}
.tl-era{margin-bottom:8px}
.tl-era span{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;
  font-weight:700;font-size:.82rem;color:var(--red)
}
.tl-card{
  background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);
  border-radius:4px;padding:20px 22px 22px;transition:.18s
}
.tl-card:hover{border-left-color:var(--red);box-shadow:0 18px 30px -24px rgba(0,0,0,.45)}
.tl-kicker{
  display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;
  font-size:.76rem;font-weight:600;color:var(--slate);margin-bottom:6px
}
.tl-card h3{font-size:1.12rem;margin-bottom:.5em;color:var(--ink)}
.tl-card p{color:var(--slate);font-size:1rem;margin:0}
/* the "why this matters to your defense" line */
.tl-tie{
  margin-top:14px !important;padding-top:13px;border-top:1px dashed var(--line);
  color:var(--ink) !important;font-weight:600
}
.tl-tie::before{content:"→ ";color:var(--red);font-weight:700}
/* final node — the payoff */
.tl-item.now::before{background:var(--red);box-shadow:0 0 0 5px rgba(153,23,10,.16)}
.tl-item.now .tl-card{
  background:var(--ink);border-color:var(--ink);border-left-color:var(--red);color:#fff
}
.tl-item.now .tl-card h3{color:#fff}
.tl-item.now .tl-card p{color:#c9ced6}
.tl-item.now .tl-kicker{color:var(--red-hot)}
@media (max-width:600px){
  .tl-item{padding-left:26px}
  .tl-card{padding:17px 18px 19px}
}
.dark .tl-card{background:#1d2026;border-color:#2c3038;border-left-color:#2c3038}
.dark .tl-card h3{color:#f2f3f5}
.dark .tl-card p{color:#a6adb6}
.dark .tl-tie{color:#f2f3f5 !important;border-top-color:#343a44}
.dark .tl-item::before{background:#1d2026}

/* ---------- case pages ---------- */
.verdict-chip{
  display:inline-block;align-self:flex-start;font-family:var(--display);text-transform:uppercase;
  letter-spacing:.1em;font-weight:700;font-size:.78rem;color:#fff;background:var(--red);
  padding:5px 12px;border-radius:3px;margin-bottom:14px
}
.verdict-chip.news{background:var(--ink-2);color:#e8eaee}
.dark .card .verdict-chip{background:var(--red-hot)}
.dark .card .verdict-chip.news{background:#343a44;color:#cfd4db}
.verdict-banner{
  border:2px solid var(--red);border-radius:6px;padding:26px 30px;margin:0 0 34px;
  background:linear-gradient(105deg,#fdf3f1,#fff)
}
.verdict-banner b{
  display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;
  font-size:clamp(1.7rem,3.4vw,2.4rem);line-height:1.05;color:var(--red)
}
.verdict-banner span{display:block;margin-top:8px;color:var(--slate);font-size:.98rem}
.press-list{list-style:none;padding:0;margin:0 0 1.6em}
.press-list li{
  border:1px solid var(--line);border-left:4px solid var(--red);border-radius:0 4px 4px 0;
  background:#fff;margin-bottom:10px
}
.press-list a{
  display:block;padding:13px 17px;color:var(--ink);font-weight:600;font-size:.98rem
}
.press-list a::before{content:"↗  ";color:var(--red);font-weight:700}
.press-list a:hover{color:var(--red);text-decoration:none}
.results-note{font-size:.86rem;color:var(--slate);font-style:italic}
.dark .card{background:#1d2026;border-color:#2c3038}
.dark .card h3 a{color:#f2f3f5}
.dark .card p{color:#a6adb6}
.dark .card:hover{border-color:#3a3f49}

/* ---------- case explorer ---------- */
.explorer-sec{padding-top:clamp(44px,5vw,64px)}
.explorer{display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);gap:22px;align-items:start}
.ctabs{display:flex;flex-direction:column;gap:10px}
.ctab{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:#1d2026;border:1px solid #2c3038;border-radius:6px;padding:15px 16px;
  color:#e8eaee;font:inherit;transition:.15s
}
.ctab:hover{border-color:#4a505b;background:#22262d}
.ctab[aria-selected="true"]{
  background:#22262d;border-color:var(--red-hot);box-shadow:inset 3px 0 0 var(--red-hot)
}
.ctab-chip{
  flex:0 0 auto;font-family:var(--display);text-transform:uppercase;font-weight:700;
  letter-spacing:.07em;font-size:.66rem;color:#fff;background:var(--red);
  padding:4px 8px;border-radius:3px;white-space:nowrap
}
.ctab-chip.news{background:#343a44;color:#cfd4db}
.ctab-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:.95rem;line-height:1.25}
.ctab-arrow{margin-left:auto;opacity:0;transition:.15s;color:var(--red-hot);font-weight:700}
.ctab[aria-selected="true"] .ctab-arrow{opacity:1}
.cpanels{min-width:0}
.cpanel{
  display:grid;grid-template-columns:minmax(0,44%) minmax(0,1fr);gap:26px;
  background:#1d2026;border:1px solid #2c3038;border-radius:8px;padding:26px;align-items:center
}
.cpanel[hidden]{display:none}
.cpanel+.cpanel{margin-top:18px}   /* no-JS: stacked panels breathe */
.explorer.js .cpanel+.cpanel{margin-top:0}
.cpanel.anim{animation:panelIn .32s ease both}
@keyframes panelIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cpanel-media{position:relative;border-radius:6px;overflow:hidden}
.cpanel-media img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.stamp{
  position:absolute;left:12px;bottom:12px;transform:rotate(-5deg);
  font-family:var(--display);text-transform:uppercase;font-weight:700;letter-spacing:.06em;
  font-size:clamp(1.05rem,1.8vw,1.45rem);color:#ff5f42;border:3px solid #ff5f42;
  border-radius:5px;padding:5px 13px;background:rgba(12,13,15,.55);backdrop-filter:blur(2px)
}
.cpanel.anim .stamp{animation:stampIn .4s .18s cubic-bezier(.2,1.6,.4,1) both}
@keyframes stampIn{from{opacity:0;transform:rotate(-5deg) scale(1.7)}to{opacity:1;transform:rotate(-5deg) scale(1)}}
.cpanel-body h3{font-size:clamp(1.15rem,2vw,1.55rem);color:#fff;margin-bottom:.35em}
.cpanel-detail{color:#ff8a72;font-size:.88rem;font-weight:600;letter-spacing:.02em;margin-bottom:.9em}
.cpanel-body>p{color:#b9bfc8}
.cpanel-press{margin:0 0 1.4em}
.cpanel-press>span{
  display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;
  font-size:.68rem;color:#8b939e;margin-bottom:8px
}
.cpanel-press ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.cpanel-press a{
  display:inline-block;border:1px solid #3a3f49;border-radius:999px;padding:5px 13px;
  font-size:.82rem;font-weight:600;color:#d5d9df;transition:.15s
}
.cpanel-press a:hover{border-color:var(--red-hot);color:#fff;text-decoration:none}
@media (max-width:940px){
  .explorer{grid-template-columns:1fr}
  .ctabs{flex-direction:row;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .ctab{flex:0 0 auto;width:auto;flex-direction:column;align-items:flex-start;gap:8px;min-width:172px}
  .ctab-arrow{display:none}
  .cpanel{grid-template-columns:1fr;padding:18px;gap:18px}
}
@media (prefers-reduced-motion:reduce){
  .cpanel.anim,.cpanel.anim .stamp{animation:none}
}

/* ---------- split / bio ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(30px,5vw,64px);align-items:center}
.split.rev{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.split.top{align-items:start}
.split.top .portrait{position:sticky;top:100px}
/* Bio pages open with a full-height portrait against the dark page-head band.
   The standard section padding leaves a slab of dead space above that photo,
   so tighten the top only — the bottom keeps the normal rhythm. */
section.bio{padding-top:clamp(28px,3vw,40px)}
@media (max-width:900px){.split,.split.rev{grid-template-columns:1fr}.split.top .portrait{position:static}}
.portrait{border-radius:4px;overflow:hidden;background:var(--ink-2);box-shadow:0 26px 44px -30px rgba(0,0,0,.6)}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 18%}
.portrait.sq img{aspect-ratio:1/1;object-position:center}

.pull{
  border-left:4px solid var(--red);padding:6px 0 6px 24px;margin:34px 0;
  font-size:1.22rem;line-height:1.5;font-style:italic;color:var(--ink-2)
}

/* ---------- expertise chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips li{
  border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:9px 18px;
  font-size:.94rem;color:#dfe2e6
}

/* ---------- testimonial ---------- */
.quote{max-width:840px;margin:0 auto;text-align:center}
.quote blockquote{margin:0;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.5;font-style:italic}
.quote .stars{color:#f0a500;letter-spacing:.22em;font-size:1.15rem;margin-bottom:22px}
.quote cite{
  display:block;margin-top:22px;font-family:var(--display);font-style:normal;text-transform:uppercase;
  letter-spacing:.16em;font-size:.85rem;color:#a9afb7
}

/* ---------- badges ---------- */
.badges{display:flex;flex-wrap:wrap;gap:clamp(24px,5vw,56px);align-items:center;justify-content:center}
.badges img{max-height:88px;width:auto;filter:saturate(.15) opacity(.72);transition:.2s}
.badges img:hover{filter:none}

/* ---------- page header ---------- */
.page-head{background:var(--ink);color:#fff;padding:clamp(46px,6vw,74px) 0 clamp(40px,5vw,60px);position:relative;overflow:hidden}
.page-head::before{
  content:"";position:absolute;right:-60px;top:-40px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(153,23,10,.55),transparent 68%)
}
.page-head .wrap{position:relative;z-index:2}
.page-head h1{margin:0}
/* A .dark section straight after the page-head shares its background, so the
   two read as a single band — but their paddings stack into a ~150px void
   under the h1. Collapse the seam; the h1's own bottom padding is enough. */
.page-head + section.dark{padding-top:clamp(16px,2vw,28px)}
.crumbs{font-size:.85rem;color:#9aa1aa;margin:0 0 14px;letter-spacing:.04em}
.crumbs a{color:#c9ced5}
.crumbs span{opacity:.5;padding:0 7px}

/* ---------- prose ---------- */
.prose{font-size:1.06rem}
.prose h3{margin-top:1.9em;color:var(--ink)}
.prose ul{padding-left:1.15em;margin:0 0 1.4em}
.prose li{margin-bottom:.6em}
.prose dl{margin:0 0 1.4em}
.prose dt{font-family:var(--display);text-transform:uppercase;font-size:1.02rem;letter-spacing:.03em;color:var(--red);margin-top:1.5em}
.prose dd{margin:.35em 0 0}
.prose .lead{font-size:1.2rem;color:var(--ink-2)}

.callout{
  background:var(--paper-2);border:1px solid var(--line);border-left:4px solid var(--red);
  border-radius:0 4px 4px 0;padding:26px 28px;margin:38px 0
}
.callout h3{margin:0 0 .4em;font-size:1.1rem}
.callout p{margin:0 0 1em;color:var(--slate)}
.callout p:last-of-type{margin-bottom:0}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,60px)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.info-list{list-style:none;padding:0;margin:0}
.info-list li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.info-list li:first-child{padding-top:0}
.info-list .lbl{
  font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;
  color:var(--slate);min-width:78px;padding-top:3px
}
.info-list .val{font-size:1.08rem;font-weight:600}
.info-list .val a{color:var(--ink)}
.info-list .val a:hover{color:var(--red)}

form .field{margin-bottom:18px}
form label{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;margin-bottom:7px;color:var(--ink-2)}
form input,form select,form textarea{
  width:100%;padding:13px 14px;border:1px solid #cfc9c3;border-radius:3px;font:inherit;
  background:#fff;color:var(--ink)
}
form input:focus,form select,form textarea:focus{border-color:var(--red)}
form textarea{min-height:150px;resize:vertical}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:600px){form .row{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px}
.form-note{font-size:.86rem;color:var(--slate);margin-top:14px}
.form-status{margin-top:16px;padding:14px 16px;border-radius:3px;display:none;font-size:.96rem}
.form-status.ok{display:block;background:#e8f4ea;border:1px solid #a9cdb3;color:#1d5c2e}
.form-status.err{display:block;background:#fdecea;border:1px solid #e2b0aa;color:#8a1c10}

/* ---------- CTA band ---------- */
.cta-band{position:relative;background:var(--ink);color:#fff;text-align:center;overflow:hidden}
.cta-band img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}
.cta-band::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,13,15,.72),rgba(12,13,15,.86))}
.cta-band .wrap{position:relative;z-index:2}
.cta-band h2{margin-bottom:.35em}
.cta-band p{max-width:56ch;margin:0 auto 2em;color:#d5d8dc;font-size:1.08rem}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.site-footer{background:#0e0f12;color:#98a0a9;font-size:.95rem;padding:60px 0 0}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr;gap:32px}}
.site-footer h4{font-size:.86rem;letter-spacing:.16em;color:#fff;margin-bottom:1.2em}
.site-footer a{color:#c3c9d0}
.site-footer a:hover{color:#fff}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.65em}
.foot-logo{max-width:270px;margin-bottom:20px}
.foot-bottom{margin-top:52px;border-top:1px solid #23262b;padding:22px 0 30px;font-size:.85rem;color:#6d757e}
.foot-bottom .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.disclaimer{max-width:70ch;line-height:1.6}

/* ---------- sticky mobile call bar ---------- */
.callbar{display:none}
@media (max-width:760px){
  .callbar{
    display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:80;
    box-shadow:0 -8px 24px -14px rgba(0,0,0,.6)
  }
  .callbar a{
    padding:15px 8px;text-align:center;font-family:var(--display);text-transform:uppercase;
    letter-spacing:.07em;font-weight:600;font-size:.95rem;color:#fff;background:var(--red)
  }
  .callbar a+a{background:var(--ink)}
  .callbar a:hover{text-decoration:none;color:#fff}
  body{padding-bottom:54px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
