@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,500&display=swap');

:root{
  color-scheme: only light;
  --bg:#F7F9FC;
  --bg-raised:#FFFFFF;
  --bg-tint:#E8EEF5;
  --bg-tint-deep:#DFE8F2;
  --bg-navy-wash:#EDF2F8;
  --ink:#0E1726;
  --ink-soft:#3A4658;
  --line:#D3DCE8;
  --line-soft:rgba(31,58,92,.08);
  --navy:#1F3A5C;
  --navy-mid:#2A4A73;
  --navy-deep:#173049;
  --surface-navy:#173049;
  --navy-action:#1F3A5C;
  --on-navy:#F4F6F9;
  --gold:#C9A24A;
  --gold-bright:#D4B45C;
  --header-bg:rgba(247,249,252,.94);
  --overlay:rgba(23,48,73,.45);
  --shadow:rgba(13,27,42,.08);
  --radius:2px;
  --font:'Archivo', system-ui, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;color-scheme:only light;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:18.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  /* No overflow-x here: it makes body its own scroll container and breaks the
     sticky header. html above already guards against horizontal scroll. */
}
@media (prefers-reduced-motion: no-preference){
  .reveal{animation:fadeUp .65s ease both;}
  .btn,.text-link,.practice-row,.practice-item,.brand .mark{transition:color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, opacity .18s ease;}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

h1,h2,h3,h4{
  font-family:var(--font);
  color:var(--ink);
  text-wrap:balance;
  margin:0;
  line-height:1.12;
  font-weight:800;
  letter-spacing:-.02em;
}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:1120px;margin:0 auto;padding:0 28px;}
.narrow{max-width:720px;margin-left:0;margin-right:auto;}
.rule{border:none;border-top:2px solid var(--gold);width:48px;margin:0 0 24px;}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:12px;}
.prose{max-width:42rem;margin-left:0;margin-right:auto;}
.prose p{margin:0 0 1.15em;color:var(--ink-soft);font-size:1.05rem;line-height:1.7;max-width:none;}
.prose h2{font-size:clamp(22px,2.6vw,28px);margin:1.6em 0 .55em;line-height:1.2;}
.prose h3{font-size:clamp(18px,2vw,22px);margin:1.35em 0 .45em;line-height:1.25;}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.25em;color:var(--ink-soft);line-height:1.65;}
.prose li{margin-bottom:.45em;}
.prose a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.prose a:hover{color:var(--gold);}
.prose img{margin:1.4em 0;border-radius:0;width:100%;height:auto;}

/* Consistent readable measure for body copy sitewide */
.page-hero .narrow > p,
.page-hero p,
section .narrow > p,
section .container > p:not(.tagline),
.section-head p,
.split > div > p,
.pullquote blockquote{
  max-width:38rem;
  line-height:1.7;
}
.section-head{
  max-width:42rem;
  margin-left:0;
  margin-right:auto;
}

/* `.narrow` is applied to the same element as `.container`, so keep the
   container's centered gutters and constrain the text column instead —
   otherwise the column pins to the viewport edge on wide screens. */
.container.narrow{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}
.container.narrow > *{max-width:44rem;}
.page-hero .container.narrow > *{max-width:42rem;}
.page-hero h1{
  max-width:16ch;
  text-wrap:balance;
}
.section-head h2{
  max-width:18ch;
  text-wrap:balance;
}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font);font-weight:700;font-size:14px;
  text-transform:uppercase;letter-spacing:.07em;
  padding:16px 32px;border-radius:var(--radius);
  cursor:pointer;border:1px solid var(--ink);
}
.btn-primary{background:var(--surface-navy);color:var(--on-navy);border-color:var(--surface-navy);}
.btn-primary:hover{background:var(--navy-action);border-color:var(--navy-action);transform:translateY(-1px);}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-line:hover{background:var(--ink);color:var(--bg);}
.btn-on-navy{background:transparent;color:var(--on-navy);border-color:rgba(244,246,249,.5);}
.btn-on-navy:hover{background:rgba(244,246,249,.1);border-color:var(--on-navy);}
.btn-gold{background:var(--gold);color:#12263A;border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-bright);border-color:var(--gold-bright);color:#12263A;}
/* Plain ampersand, same type as the surrounding text */
.amp{
  font-family:inherit;
  font-style:normal;
  font-weight:inherit;
  font-size:1em;
  line-height:inherit;
  letter-spacing:0;
  text-transform:none;
}
.text-link{font-size:16.5px;font-weight:700;letter-spacing:.01em;border-bottom:2px solid var(--gold);padding-bottom:2px;color:var(--navy);}
.text-link:hover{color:var(--gold-bright);}

/* Single sticky navy header (hours bar merged in; phone stays on scroll) */
header.site{
  background:var(--surface-navy);
  border-top:3px solid #fff;
  border-bottom:none;
  position:sticky;top:0;z-index:40;
}
.header-row{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;max-width:1240px;margin:0 auto;gap:20px;}
.brand{display:flex;align-items:center;gap:14px;}
.brand .mark{
  width:46px;height:46px;flex:none;
  background:transparent;border:2px solid var(--gold);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.brand .mark span{font-weight:800;font-size:14px;letter-spacing:.04em;color:var(--gold);}
.brand .wordmark{display:flex;flex-direction:column;line-height:1.25;}
.brand .wordmark .n1{font-weight:800;font-size:18px;letter-spacing:-.015em;color:#fff;}
.brand .wordmark .n2{font-size:10.5px;color:rgba(255,255,255,.72);text-transform:uppercase;letter-spacing:.16em;margin-top:3px;font-weight:600;}

nav.primary{display:flex;align-items:center;gap:22px;}
nav.primary > a, nav.primary .has-menu > a{font-size:15px;font-weight:650;letter-spacing:.01em;color:#fff;}
nav.primary > a:hover, nav.primary .has-menu > a:hover{color:var(--gold-bright);}
.has-menu{position:relative;}
.has-menu > a{display:inline-flex;align-items:center;gap:6px;padding:10px 0;}
.has-menu > a::after{
  content:"";
  width:0;height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid currentColor;
  opacity:.55;
  margin-top:1px;
}
.dropdown{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  background:var(--bg-raised);
  border:1px solid var(--line);
  box-shadow:0 20px 48px var(--shadow);
  padding:0;
  width:max-content;
  min-width:560px;
  display:none;
  grid-template-columns:repeat(3, minmax(160px, 1fr));
  gap:0;
  z-index:50;
}
/* Invisible hover bridge so menu doesn't flicker */
.has-menu::before{
  content:"";
  position:absolute;
  left:0;right:0;top:100%;
  height:14px;
}
.has-menu:hover .dropdown,
.has-menu:focus-within .dropdown{display:grid;}
.dropdown > div{
  padding:22px 24px 24px;
  border-right:1px solid var(--line);
  min-width:0;
}
.dropdown > div:last-child{border-right:none;}
.dropdown .small-caps{
  font-size:11px;
  font-weight:750;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
  padding:0 0 12px;
  margin:0 0 4px;
  border-bottom:1px solid var(--line);
}
.dropdown a{
  display:block;
  padding:9px 0;
  font-size:14.5px;
  font-weight:550;
  color:var(--ink);
  line-height:1.35;
  white-space:nowrap;
}
.dropdown a:hover{color:var(--navy);}
.header-cta{display:flex;align-items:center;gap:16px;flex:none;}
.header-phone{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#fff;
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
  white-space:nowrap;
  border-bottom:2px solid var(--gold);
  padding-bottom:1px;
  line-height:1.2;
}
.header-phone::before{
  content:"";
  width:13px;
  height:13px;
  flex:none;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.header-phone:hover{color:var(--gold-bright);}
.header-consult{
  padding:11px 16px;
  font-size:12px;
  letter-spacing:.05em;
  white-space:nowrap;
}
.phone-link{font-weight:700;font-size:16px;white-space:nowrap;color:var(--ink);}

/* Mobile nav */
.nav-toggle{
  display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);background:transparent;
  border-radius:var(--radius);align-items:center;justify-content:center;gap:5px;flex-direction:column;cursor:pointer;
}
.nav-toggle span{display:block;width:18px;height:2px;background:#fff;}
.nav-overlay{position:fixed;inset:0;background:var(--overlay);z-index:50;}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(92vw,360px);background:var(--bg-raised);
  z-index:60;padding:28px 22px 40px;overflow:auto;transform:translateX(100%);
  transition:transform .28s ease;border-left:1px solid var(--line);
}
body.nav-open .nav-drawer{transform:none;}
body.nav-open{overflow:hidden;}
.nav-drawer .drawer-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px;}
.nav-drawer nav{display:grid;gap:4px;}
.nav-drawer a{display:block;padding:12px 8px;font-weight:650;font-size:16.5px;border-bottom:1px solid var(--line);}
.drawer-accordion > button{
  width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);
  padding:12px 8px;font:inherit;font-weight:650;font-size:16.5px;cursor:pointer;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;
}
.drawer-accordion > button::after{content:"+";color:var(--gold);font-weight:800;}
.drawer-accordion > button[aria-expanded="true"]::after{content:"\2212";}
.drawer-panel{padding:6px 8px 14px 16px;display:grid;gap:2px;}
.drawer-panel a{font-weight:500;font-size:15px;border:none;padding:8px 0;}
.drawer-cta{margin-top:24px;display:grid;gap:12px;}

@media (max-width:1100px){
  nav.primary{gap:14px;}
  nav.primary > a, nav.primary .has-menu > a{font-size:14px;}
  .header-consult{padding:10px 12px;}
}
@media (max-width:980px){
  nav.primary,.header-cta .header-consult{display:none;}
  .nav-toggle{display:inline-flex;}
  .header-row{padding:12px 16px;gap:12px;}
  .header-phone{font-size:14px;}
}
@media (max-width:520px){
  .brand .wordmark .n2{display:none;}
  .brand .wordmark .n1{font-size:15px;}
  .brand .mark{width:38px;height:38px;}
  .brand .mark span{font-size:12px;}
  .header-phone{font-size:13px;}
  .header-phone::before{width:12px;height:12px;}
}
@media (max-width:400px){
  .header-row{padding:10px 12px;gap:8px;}
  .brand{gap:8px;min-width:0;}
  .brand .mark{width:34px;height:34px;}
  .brand .wordmark .n1{font-size:13px;line-height:1.15;}
  .header-phone{font-size:12px;}
}

/* Hero — text left, large photo right */
/* Hero — copy left aligned to the page container, photo right */
body.home section.hero-edit,
.hero-edit{
  display:grid;
  /* right column is sized by the photo itself (see .frame height below) */
  grid-template-columns:minmax(0, 1fr) auto;
  /* stretch, so the photo stays flush with the hero's full depth even when the
     copy column is the taller of the two */
  align-items:stretch;
  background:var(--bg);
  overflow:hidden;
  padding:0;
}
.hero-edit .copy{
  position:relative;
  z-index:2;
  padding:clamp(56px,7vh,92px) clamp(32px,3.5vw,60px) clamp(56px,7vh,92px) clamp(24px,5vw,96px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--bg);
}
.hero-edit h1{
  font-size:clamp(34px,3.6vw,46px);
  color:var(--navy-deep);
  max-width:22ch;
  line-height:1.12;
  letter-spacing:-.025em;
}
.hero-edit .lede{
  margin-top:22px;
  font-size:1.15rem;
  color:var(--ink-soft);
  max-width:30rem;
  line-height:1.75;
}
.hero-edit .actions{
  margin-top:34px;
  display:flex;
  gap:22px;
  align-items:center;
  flex-wrap:wrap;
}
/* Frame matches the photo's 3:2 ratio so the whole team stays in shot.
   Height drives the hero's overall depth; width follows from the ratio. */
.hero-edit .frame{
  position:relative;
  /* The photo drives the hero's depth, so size it to fill the first screen —
     that keeps the next section's copy below the fold on load. The vw term
     stops a narrow, tall window from cropping the team to a portrait. */
  min-height:clamp(480px, min(calc(100vh - 132px), 72vw), 1100px);
  min-height:clamp(480px, min(calc(100svh - 132px), 72vw), 1100px);
  aspect-ratio:3/2;
  width:auto;
  max-width:60vw;
  background:var(--bg-tint);
}
.hero-edit .frame::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:3px;
  z-index:2;
  background:var(--gold);
}
body.home .hero-edit .frame{
  border:3px solid var(--gold);
}
body.home .hero-edit .frame::after{content:none;}
.hero-edit .frame img,.hero-edit .frame .placeholder{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:none;
}
@media (max-width:880px){
  body.home section.hero-edit,
  .hero-edit{
    grid-template-columns:1fr;
    min-height:0;
  }
  .hero-edit .frame{
    /* Show the full still — no object-fit crop on stacked mobile heroes */
    height:auto;
    min-height:0;
    width:100%;
    max-width:none;
    aspect-ratio:auto;
    order:-1;
  }
  .hero-edit .frame img,
  .hero-edit .frame .placeholder{
    position:static;
    width:100%;
    height:auto;
    object-fit:unset;
    display:block;
  }
  .hero-edit .copy{
    padding:28px 20px 40px;
    background:var(--bg);
  }
  .hero-edit h1{max-width:none;font-size:clamp(28px,7.5vw,38px);line-height:1.15;}
  .hero-edit .lede{font-size:1.05rem;margin-top:16px;}
  .hero-edit .actions{
    margin-top:24px;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .hero-edit .actions .btn{width:100%;text-align:center;}
  .hero-edit .actions .text-link{align-self:center;}
  .header-row,.util-row{padding-left:16px;padding-right:16px;}
  .container{padding:0 18px;}
  .header-row{gap:12px;}
  .brand .n1{font-size:15px;}
  .brand .n2{font-size:9.5px;}
}

/* Practice-area opening — same measurements as the homepage hero so the
   first screen is one block and the next section stays below the fold. */
.practice-hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:stretch;
  background:var(--bg);
  overflow:hidden;
  padding:0;
}
.practice-hero .copy{
  position:relative;
  z-index:2;
  padding:clamp(56px,7vh,92px) clamp(32px,3.5vw,60px) clamp(56px,7vh,92px) clamp(24px,5vw,96px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--bg);
}
.practice-hero h1{
  font-size:clamp(34px,3.6vw,46px);
  color:var(--navy-deep);
  max-width:22ch;
  line-height:1.12;
  letter-spacing:-.025em;
}
.practice-hero .lede{
  margin-top:22px;
  font-size:1.15rem;
  color:var(--ink-soft);
  max-width:30rem;
  line-height:1.75;
}
.practice-hero .actions{
  margin-top:34px;
  display:flex;
  gap:22px;
  align-items:center;
  flex-wrap:wrap;
}
.practice-hero .frame{
  position:relative;
  min-height:clamp(480px, min(calc(100vh - 132px), 72vw), 1100px);
  min-height:clamp(480px, min(calc(100svh - 132px), 72vw), 1100px);
  aspect-ratio:3/2;
  width:auto;
  max-width:60vw;
  background:var(--bg-tint);
}
.practice-hero .frame::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:3px;
  z-index:2;
  background:var(--gold);
}
.practice-hero .frame img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 22%;
}
.practice-hero .frame.focus-right img{object-position:72% center;}
.practice-hero .frame.focus-top img{object-position:center 12%;}
.practice-hero .frame.focus-mid img{object-position:center 42%;}
/* Flip so the photo leads on the left — used on every other practice page
   so openings don't all stack the same way. */
.practice-hero.photo-left{
  grid-template-columns:auto minmax(0, 1fr);
}
.practice-hero.photo-left .frame{order:-1;}
.practice-hero.photo-left .copy{
  padding-left:clamp(32px,3.5vw,60px);
  padding-right:clamp(24px,5vw,96px);
}
@media (max-width:880px){
  .practice-hero,
  .practice-hero.photo-left{grid-template-columns:1fr;}
  .practice-hero .frame,
  .practice-hero.photo-left .frame{
    order:-1;
    min-height:0;
    height:auto;
    width:100%;
    max-width:none;
    aspect-ratio:auto;
  }
  .practice-hero .frame img{
    position:static;
    width:100%;
    height:auto;
    object-fit:unset;
    display:block;
  }
  .practice-hero .copy,
  .practice-hero.photo-left .copy{padding:28px 20px 40px;}
  .practice-hero h1{max-width:none;font-size:clamp(28px,7.5vw,38px);line-height:1.15;}
  .practice-hero .lede{font-size:1.05rem;margin-top:16px;}
  .practice-hero .actions{
    margin-top:24px;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .practice-hero .actions .btn{width:100%;text-align:center;}
}

.featured-strip{
  padding:40px 0 28px;
  /* logos are supplied on white, so the strip stays white to match */
  background:var(--bg-raised);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}
/* the logo row runs wider than the text container so seven logos stay legible */
.featured-strip .container{max-width:1400px;}
/* the selector carries enough specificity to clear the sitewide
   `section .container > p` reading measure, which would otherwise cap the
   label at 38rem and knock it off centre */
section.featured-strip .container > .label,
section.credential-strip .container > .label{
  max-width:none;
  text-align:center;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--ink-soft);
  margin-bottom:22px;
  opacity:.8;
}
/* Logos share the row evenly and any wrapped row stays centred, so they
   never bunch up in the middle. */
.featured-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:26px clamp(20px,2vw,32px);
}
.featured-row .logo-chip{
  flex:1 1 140px;
  /* keeps a lone wrapped logo the same size as the rest of the row */
  max-width:172px;
  background:transparent;
  border:none;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
/* Each logo sits on an identical canvas, so a shared width renders them
   at a consistent visual weight. */
.featured-row .logo-chip img{
  width:100%;
  height:auto;
}

/* Awards & recognition seals — sized by height since the shapes differ */
.credential-strip{
  padding:60px 0;
  background:var(--bg-raised);
  border-top:1px solid var(--line-soft);
}
.credential-strip .container{max-width:1400px;}
.credential-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:28px clamp(56px,8vw,140px);
}
/* Equal fixed cells keep the seals evenly spaced as a centered group */
.badge-chip{
  flex:0 0 clamp(96px,10vw,140px);
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
/* auto on both axes lets the seal shrink to fit its cell without distorting */
.badge-chip img{
  width:auto;
  height:auto;
  max-height:clamp(60px,6.5vw,88px);
  max-width:100%;
}
/* wordmarks are far wider than the seals, so trim their height to keep the
   row's visual weight even */
.badge-chip.badge-wide img{max-height:clamp(40px,4.3vw,58px);}
/* Official embed is ~200px tall; scale it to the same height as the other seals */
.badge-chip.sl-official{
  position:relative;
  height:clamp(60px,6.5vw,88px);
}
.badge-chip.sl-official .slbadge{
  position:absolute;
  left:50%;
  top:50%;
  line-height:normal;
  transform:translate(-50%, -50%) scale(0.42);
  transform-origin:center center;
}

@media (max-width:900px){
  /* a real flex-basis lets the row wrap instead of squeezing five tiny cells */
  .credential-row{gap:26px 32px;}
  .badge-chip{flex:0 0 120px;max-width:none;min-width:0;}
}
@media (max-width:640px){
  .credential-row{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:22px 16px;
    align-items:center;
    justify-items:center;
  }
  .badge-chip{
    flex:none;
    max-width:none;
    width:100%;
    min-width:0;
    height:auto;
  }
  .badge-chip img{
    max-height:64px;
    max-width:100%;
    width:auto;
    height:auto;
  }
  .badge-chip.badge-wide img{
    max-height:34px;
    max-width:100%;
  }
  .badge-chip.sl-official{
    height:60px;
    position:relative;
    overflow:hidden;
  }
  .badge-chip.sl-official .slbadge{
    transform:translate(-50%, -50%) scale(0.28);
  }
}

/* Section rhythm — subtle professional contrast */
body.home section{padding:40px 0;}
body.home section.hero-edit + section{padding-top:40px;}
body.home section.featured-strip{padding:32px 0 20px;}
body.home section.credential-strip{padding:40px 0 36px;}
body.home section.hero-edit + section.credential-strip{padding-top:40px;}
body.home section.credential-strip .container > .label{
  margin-top:0;
  margin-bottom:20px;
}
body.home .practice-list{border-top:none;}
body.home .practice-grid{
  margin-top:8px;
  border-top:1px solid var(--line-soft);
  column-gap:0;
}
body.home .practice-item{
  padding:28px 32px 28px 0;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:100%;
}
body.home .practice-item:nth-child(odd){
  padding-right:40px;
}
body.home .practice-item:nth-child(even){
  padding-left:40px;
}
body.home .practice-item h3{
  color:var(--navy-deep);
}
body.home .practice-item:hover h3{
  color:var(--navy);
}
body.home .practice-item .desc{
  max-width:34ch;
}
body.home .pullquote blockquote{
  font-size:clamp(22px,2.4vw,28px);
  font-weight:600;
  line-height:1.55;
  max-width:38rem;
}
body.home .section-head{margin-bottom:36px;}
body.home .section-head h2{max-width:16ch;}

section{
  padding:40px 0;
  position:relative;
}
section.practice-hero{padding:0;}
section + section{border-top:none;}

/* Default plain sections = clean white */
body > section:not([class]),
body > section[class=""],
body > section.band-white{
  background:var(--bg-raised);
}

/* Tinted bands — soft blue-gray */
section.band-tint,
section.raised{
  background:var(--bg-navy-wash);
}
section.band-tint::before,
section.raised::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:rgba(176,138,62,.28);
  pointer-events:none;
}

/* Accent band — one step deeper than .band-tint for quotes / highlights */
section.band-accent{
  background:var(--bg-tint);
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}

section.navy{
  background:var(--surface-navy);
  color:var(--on-navy);
  border-top:none;
  position:relative;
}
section.navy::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:var(--gold);
}
section.navy h2,section.navy h3{color:var(--on-navy);}
.section-head{max-width:640px;margin:0 0 44px;}
.section-head h2{font-size:clamp(26px,3vw,34px);}
.section-head p{margin-top:14px;color:var(--ink-soft);font-size:17.5px;}

.split{display:grid;grid-template-columns:1.2fr .8fr;gap:64px;align-items:start;}
.intro-consult{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(260px,0.9fr);
  gap:clamp(32px,4.5vw,60px);
  align-items:start;
}
.intro-consult .media-copy h2{font-size:clamp(25px,2.9vw,33px);letter-spacing:-.02em;}
/* clears the sticky header when the hero CTA jumps to the form */
#consultation{scroll-margin-top:88px;}
/* Keep the form compact beside the copy so it doesn't read as a full-page block */
.intro-consult .form-card{
  padding:clamp(18px,2vw,26px);
  box-shadow:0 8px 22px rgba(13,27,42,.045);
}
.intro-consult .form-card h2{font-size:clamp(19px,2vw,23px);}
.intro-consult .form-card > p{font-size:0.95rem !important;line-height:1.55;margin-top:8px !important;}
.intro-consult form.consult{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:16px !important;
}
.intro-consult form.consult label{gap:5px;}
.intro-consult form.consult textarea{min-height:56px;}
.intro-consult form.consult > label:has([name="phone"]),
.intro-consult form.consult > label:has([name="message"]),
.intro-consult form.consult > .consult-checks,
.intro-consult form.consult > .btn,
.intro-consult form.consult > .honeypot,
.intro-consult form.consult > .consult-error,
.intro-consult form.consult > input[type="hidden"]{grid-column:1 / -1;}
.intro-consult .consult-checks{gap:4px 14px;}
.intro-consult .consult-checks .cc-label{margin-bottom:2px;}
.intro-consult .btn{padding:12px 20px;font-size:12.5px;}
@media (max-width:560px){
  .intro-consult form.consult{grid-template-columns:1fr;}
}
@media (max-width:880px){
  .intro-consult{grid-template-columns:1fr;}
}
.facts{display:grid;gap:0;}
.fact{padding:22px 0;border-top:1px solid var(--line);display:flex;gap:18px;align-items:baseline;}
.fact:last-child{border-bottom:1px solid var(--line);}
.fact .fv{font-weight:800;font-size:28px;letter-spacing:-.02em;color:var(--navy);min-width:2.4ch;}
.fact .fl{font-size:15px;color:var(--ink-soft);}
section.band-tint .fact .fv,
section.raised .fact .fv{color:var(--navy-mid);}

/* Homepage trust graphics — large scan-friendly credentials */
.trust-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:0;
  margin-top:clamp(36px,5vw,56px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.trust-item{
  padding:28px 20px 28px 0;
  border-right:1px solid var(--line-soft);
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.trust-item:last-child{border-right:none;padding-right:0;}
.trust-item .tv{
  font-weight:800;
  font-size:clamp(28px,2.6vw,34px);
  letter-spacing:-.03em;
  line-height:1.05;
  color:var(--navy);
}
.trust-item .tv-text{
  font-size:clamp(15px,1.35vw,18px);
  letter-spacing:.02em;
  text-transform:uppercase;
  line-height:1.2;
}
.trust-item .tl{
  font-size:14px;
  line-height:1.45;
  color:var(--ink-soft);
  max-width:18ch;
}
section.band-tint .trust-item .tv{color:var(--navy-mid);}
@media (max-width:1100px){
  .trust-grid{grid-template-columns:repeat(3, minmax(0,1fr));}
  .trust-item:nth-child(3){border-right:none;}
  .trust-item:nth-child(n+4){border-top:1px solid var(--line-soft);}
}
@media (max-width:700px){
  .trust-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .trust-item{padding:22px 16px 22px 0;}
  .trust-item:nth-child(odd){border-right:1px solid var(--line-soft);}
  .trust-item:nth-child(even){border-right:none;padding-right:0;padding-left:16px;}
  .trust-item:nth-child(n+3){border-top:1px solid var(--line-soft);}
  .trust-item .tl{max-width:none;}
}

/* Credentials shown beside the consultation form: single tidy list so rows
   align and no cell is left orphaned at the end. */
.intro-consult .trust-grid-compact{
  grid-template-columns:1fr;
  margin-top:28px;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  max-width:34rem;
}
.intro-consult .trust-grid-compact .trust-item{
  display:grid;
  grid-template-columns:minmax(0,13.5rem) minmax(0,1fr);
  align-items:baseline;
  gap:6px 22px;
  padding:15px 0;
  border-right:none;
  border-top:1px solid var(--line-soft);
}
.intro-consult .trust-grid-compact .trust-item:first-child{border-top:none;}
/* One type treatment for all five credentials. The numeric values ("20+") and
   the worded ones ("Board-Certified") inherit different global styles, so this
   list previously mixed 27px numerals with 13.5px uppercase text and the rows
   read as five different sizes. */
.intro-consult .trust-grid-compact .trust-item .tv,
.intro-consult .trust-grid-compact .trust-item .tv-text{
  font-size:clamp(16.5px,1.5vw,18.5px);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.35;
  text-transform:none;
}
.intro-consult .trust-grid-compact .trust-item .tl{
  max-width:none;
  font-size:14.5px;
  line-height:1.5;
}
@media (max-width:560px){
  .intro-consult .trust-grid-compact .trust-item{
    grid-template-columns:1fr;
    gap:4px;
    padding:16px 0;
  }
}

.home-intro{max-width:42rem;margin-top:8px;}
.home-consult{
  display:grid;
  justify-items:center;
}
.home-consult .form-card{
  width:min(560px, 100%);
  margin:0;
}
.home-consult .form-card h2{
  font-size:clamp(24px,2.8vw,30px);
  margin:0;
}
.home-consult .form-card > p{
  margin-top:14px;
  color:var(--ink-soft);
  font-size:1.05rem;
  line-height:1.65;
}
.home-consult form.consult{margin-top:28px;}

.message-name{
  margin-top:8px;
  font-size:15px;
  font-weight:700;
  color:var(--navy-deep);
  letter-spacing:.01em;
}

.hero-edit .lede-support{
  margin-top:16px;
  font-size:1.05rem;
  max-width:38rem;
}
@media (max-width:880px){
  .hero-edit .lede-support{font-size:1rem;}
}

.video-head{margin:0 auto 32px;text-align:center;max-width:28rem;}
.video-head h2{margin-left:auto;margin-right:auto;}
.video-solo{
  width:min(920px, 100%);
  margin:0 auto;
}
.video-transcript{
  width:min(920px, 100%);
  margin:22px auto 0;
  color:rgba(255,255,255,.78);
  font-size:14.5px;
  line-height:1.6;
}
.video-transcript summary{
  cursor:pointer;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(255,255,255,.7);
  list-style:none;
}
.video-transcript summary::-webkit-details-marker{display:none;}
.video-transcript summary::before{
  content:"+ ";
  color:var(--gold-bright);
  font-weight:800;
}
.video-transcript[open] summary::before{content:"– ";}
.video-transcript .transcript-body{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
}
.video-transcript .transcript-body p{margin:0 0 1em;color:rgba(255,255,255,.78);}
.video-transcript .transcript-body p:last-child{margin-bottom:0;}

/* Closing CTA. This was a full-bleed navy band sitting directly on top of the
   navy footer, so the two merged into a single slab and the CTA read as footer
   chrome. The section now uses the same tint as the other content sections and
   keeps the navy as an inset panel, so it ends visibly before the footer. */
.final-cta-band{
  background:var(--bg-tint);
  border-top:1px solid var(--line-soft);
  padding:40px 0;
}
.final-cta{
  background:var(--surface-navy);
  border-top:3px solid var(--gold);
  padding:clamp(30px,3.4vw,46px) clamp(24px,2.6vw,36px);
}
.final-cta h2{font-size:clamp(24px,3vw,32px);color:var(--on-navy);max-width:34rem;}
.final-cta p{
  margin-top:14px;
  color:var(--on-navy);
  opacity:.78;
  font-size:1.05rem;
  line-height:1.65;
  max-width:36rem;
}
.final-cta .actions{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px 28px;
}
/* On navy, the primary action should read as primary rather than a ghost box */
.final-cta-band .btn-on-navy{
  background:var(--gold);
  color:#fff;
  border-color:var(--gold);
}
.final-cta-band .btn-on-navy:hover{
  background:var(--gold-bright);
  border-color:var(--gold-bright);
  transform:translateY(-1px);
}
.final-cta .text-link.on-navy{
  color:var(--on-navy);
  border-bottom-color:var(--gold);
}
.final-cta .text-link.on-navy:hover{color:var(--gold-bright);}
@media (max-width:520px){
  .final-cta .actions{gap:16px;}
  .final-cta .actions .btn{width:100%;justify-content:center;}
}

section.band-accent .pullquote .qmark{color:var(--gold-bright);}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:32px;}}

.practice-list{border-top:1px solid var(--line);}
.practice-row{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:22px;padding:28px 0;border-bottom:1px solid var(--line);}
.practice-row .num{font-weight:800;color:var(--gold);font-size:15px;}
.practice-row h3{font-size:20.5px;font-weight:750;}
.practice-row .desc{display:block;margin-top:5px;color:var(--ink-soft);font-size:15.5px;}
.practice-row .go{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;opacity:0;}
.practice-row:hover .go{opacity:1;}
.practice-row:hover h3{color:var(--navy);}
@media (max-width:640px){.practice-row{grid-template-columns:36px 1fr;}.practice-row .go{display:none;}}

.practice-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:0;
  border-top:1px solid var(--line);
}
.practice-item{
  display:block;
  padding:28px 32px 28px 0;
  border-bottom:1px solid var(--line-soft);
  text-decoration:none;
  color:inherit;
  position:relative;
  transition:background .18s ease;
}
.practice-item:nth-child(odd){
  padding-right:40px;
  border-right:1px solid var(--line-soft);
}
.practice-item:nth-child(even){
  padding-left:40px;
}
.practice-item h3{
  margin:0;
  font-size:clamp(18px,1.5vw,20px);
  font-weight:750;
  letter-spacing:-.015em;
  color:var(--navy-deep);
  line-height:1.25;
}
.practice-item .desc{
  margin:10px 0 0;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.55;
  max-width:36ch;
}
.practice-item::after{
  content:"→";
  position:absolute;
  top:28px;right:16px;
  font-size:14px;
  font-weight:700;
  color:var(--gold);
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .18s ease, transform .18s ease;
}
.practice-item:nth-child(odd)::after{right:24px;}
.practice-item:hover h3{color:var(--navy);}
.practice-item:hover::after{opacity:1;transform:translateX(0);}
@media (max-width:760px){
  .practice-grid{grid-template-columns:1fr;}
  .practice-item,
  .practice-item:nth-child(odd),
  .practice-item:nth-child(even),
  body.home .practice-item,
  body.home .practice-item:nth-child(odd),
  body.home .practice-item:nth-child(even){
    padding:22px 4px 22px 0;
    border-right:0;
  }
  .practice-item::after,
  .practice-item:nth-child(odd)::after{right:0;}
  .practice-item .desc{max-width:none;}
}

.pullquote{max-width:760px;}
.pullquote .qmark{font-weight:800;font-size:56px;color:var(--gold);line-height:.5;display:block;margin-bottom:8px;}
.pullquote blockquote{margin:0;font-weight:650;font-size:24px;line-height:1.5;letter-spacing:-.01em;color:var(--ink);}
.pullquote .attribution{margin-top:22px;font-size:13.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;font-weight:700;}

/* Intro prose */
.prose-block{max-width:40rem;}
.prose-block p{margin-top:1.1em;color:var(--ink-soft);font-size:1.06rem;line-height:1.75;}
.prose-block p:first-child{margin-top:0;}
.prose-block a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;}
.prose-block a:hover{color:var(--gold-bright);}
.prose-block strong,.prose-block b{color:var(--ink);font-weight:650;}
.prose-block img,.article-body img{max-width:100%;height:auto;display:block;margin:0;}
.article-body h2,.article-body h3,.article-body h4{margin-top:2.1em;margin-bottom:.55em;color:var(--navy-deep);line-height:1.28;letter-spacing:-.015em;}
.article-body h2{font-size:clamp(22px,2.2vw,28px);}
.article-body h3{font-size:clamp(18px,1.7vw,22px);margin-top:1.75em;}
.article-body h4{font-size:1.05rem;margin-top:1.5em;}
.article-body ul,.article-body ol{margin:1.25em 0 1.5em 1.25em;color:var(--ink-soft);line-height:1.8;}
.article-body li{margin:.55em 0;}
.article-body p{margin:0 0 1.45em;color:var(--ink-soft);font-size:1.08rem;line-height:1.85;max-width:40rem;}
.article-body p:last-child{margin-bottom:0;}
.article-body a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;}
.article-body a:hover{color:var(--gold-bright);}
.article-body strong,.article-body b{color:var(--ink);font-weight:650;}
.article-body > *:first-child{margin-top:0;}
.article-body h2 + p,
.article-body h3 + p,
.article-body h4 + p{margin-top:.15em;}

/* ---- Article / blog post layout --------------------------------------- */
.article-hero.page-hero{
  position:relative;
  padding:40px 0 28px;
}
.article-kicker{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--ink-soft);margin-bottom:18px;
}
.article-kicker a{color:var(--navy);text-decoration:none;}
.article-kicker a:hover{color:var(--gold-bright);}
.article-section{
  padding:40px 0 48px;
  background:var(--bg-raised);
}
.article-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  gap:clamp(36px,4.5vw,64px);
  align-items:start;
}
.article-main{min-width:0;}
.article-featured{
  margin:0 0 36px;
  overflow:hidden;
  background:var(--bg-tint);
  border:1px solid var(--line-soft);
}
.article-featured img{
  display:block;width:100%;height:auto;
  aspect-ratio:16/10;object-fit:cover;object-position:center 18%;
}
.article-featured.focus-top img,
.article-featured img.focus-top{
  object-position:center top;
}
.article-featured.focus-face img{
  aspect-ratio:auto;
  max-height:170px;
  width:auto;
  max-width:min(100%,280px);
  height:auto;
  object-fit:contain;
  object-position:center top;
  margin:0 auto;
  display:block;
}
.article-featured.focus-face{
  background:transparent;
  border:none;
  text-align:left;
  max-width:min(100%,280px);
  margin:0 0 28px;
}
.article-figure{
  margin:2em 0 2.15em;
  overflow:hidden;
  background:var(--bg-tint);
  border:1px solid var(--line-soft);
}
.article-figure img{
  width:100%;height:auto;display:block;
  max-height:560px;object-fit:cover;object-position:center;
}
.article-body .article-figure:has(img[src*="stephen-portrait"]),
.article-body .article-figure:has(img[src*="Stephen_Cawelti"]),
.article-body .article-figure:has(img[alt*="Stephen" i]){
  max-width:220px;
  border-radius:2px;
}
.article-body .article-figure:has(img[src*="stephen-portrait"]) img,
.article-body .article-figure:has(img[src*="Stephen_Cawelti"]) img,
.article-body .article-figure:has(img[alt*="Stephen" i]) img{
  aspect-ratio:1;object-fit:cover;
}
.article-footer-cta{
  margin-top:40px;padding-top:28px;border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.article-footer-cta p{
  margin:0;font-weight:650;color:var(--navy-deep);font-size:1.05rem;
}

.article-aside{
  position:sticky;top:96px;
  display:grid;gap:18px;
}
.aside-box{
  background:var(--bg);
  border:1px solid var(--line-soft);
  padding:22px 20px 20px;
}
.aside-box h2{
  margin:0 0 16px;
  font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  font-weight:750;color:var(--navy);
}
.aside-cta p{
  margin:0 0 16px;font-size:15px;line-height:1.55;color:var(--ink-soft);
}
.aside-more{
  display:inline-block;margin-top:14px;
  font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:750;color:var(--gold-bright);text-decoration:none;
}
.aside-more:hover{color:var(--navy);}

.more-posts-list{display:grid;gap:14px;}
.more-post-item{
  display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;
  text-decoration:none;color:inherit;align-items:start;
  padding-bottom:14px;border-bottom:1px solid var(--line-soft);
}
.more-post-item:last-child{border-bottom:0;padding-bottom:0;}
.more-post-thumb{
  display:block;width:72px;height:72px;overflow:hidden;background:var(--bg-tint);
  border:1px solid var(--line-soft);
}
.more-post-thumb img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.more-post-title{
  display:block;font-size:14.5px;line-height:1.35;font-weight:700;
  color:var(--navy-deep);letter-spacing:-.01em;
}
.more-post-excerpt{
  display:block;margin-top:5px;font-size:13px;line-height:1.45;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.more-post-item:hover .more-post-title{color:var(--gold-bright);}

.more-posts-strip{
  padding:40px 0;
  background:var(--bg);
  border-top:1px solid var(--line-soft);
}
.more-strip-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  margin-top:28px;
}
.more-strip-card{
  display:flex;flex-direction:column;gap:12px;
  text-decoration:none;color:inherit;
}
.more-strip-thumb{
  display:block;aspect-ratio:16/10;overflow:hidden;
  background:var(--bg-tint);border:1px solid var(--line-soft);
}
.more-strip-thumb img{
  width:100%;height:100%;object-fit:cover;object-position:center top;display:block;
  transition:transform .35s ease;
}
.more-strip-card:hover .more-strip-thumb img{transform:scale(1.03);}
.more-strip-title{
  font-size:16.5px;line-height:1.3;font-weight:750;
  color:var(--navy-deep);letter-spacing:-.015em;
}
.more-strip-excerpt{
  font-size:14px;line-height:1.55;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.more-strip-card:hover .more-strip-title{color:var(--gold-bright);}

@media (max-width:980px){
  .article-layout{grid-template-columns:1fr;gap:40px;}
  .article-aside{position:static;}
  .more-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .more-strip-grid{grid-template-columns:1fr;}
  .article-featured img{aspect-ratio:4/3;}
}

/* ---- Media + copy rows -------------------------------------------------
   Three compositions used across the homepage:
   .media-row.media-left   photo left,  copy right
   .media-row.media-right  copy left,   photo right
   .media-center           photo centered, copy below
   Photos are always ratio-capped so they never overpower the text. */
.media-row{
  display:grid;
  gap:clamp(30px,4.5vw,68px);
  align-items:center;
}
.media-row.media-left{grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);}
.media-row.media-right{grid-template-columns:minmax(0,1.08fr) minmax(0,0.92fr);}
.media-row.media-left .media-figure,
.media-row.media-left .graphic-figure{order:-1;}

/* ---- Reference graphics ------------------------------------------------
   Charts, timelines and factor lists carried over from the old site. They
   arrive with their own background colours baked in, so a light frame plus a
   caption keeps them contained and reading as deliberate insets. Unlike
   .media-figure these are never cropped — the whole graphic has to stay
   legible. */
.graphic-figure{
  margin:0;
  background:var(--bg-raised);
  border:1px solid var(--line-soft);
  padding:clamp(14px,1.8vw,24px);
  box-shadow:0 14px 40px rgba(13,27,42,.06);
}
.graphic-figure img{
  display:block;
  width:100%;
  height:auto;
}
.graphic-figure figcaption{
  margin-top:14px;
  font-size:13px;
  line-height:1.6;
  color:var(--ink-soft);
}
/* narrow graphics (icon rows, charts) shouldn't stretch edge to edge alone */
.graphic-figure.figure-center{
  max-width:820px;
  margin-inline:auto;
}
.graphic-figure.figure-center figcaption{text-align:center;}

.media-figure{
  position:relative;
  overflow:hidden;
  background:var(--bg-tint);
  width:100%;
  margin:0; /* reset UA figure margin */
}
.media-figure img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-figure.ratio-wide{aspect-ratio:3/2;}
.media-figure.ratio-square{aspect-ratio:1/1;}
.media-figure.ratio-portrait{aspect-ratio:4/5;max-width:420px;}
.media-figure.frame-accent::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:3px;
  background:var(--gold);
}
.media-copy .eyebrow{margin-bottom:10px;}
.media-copy h2{font-size:clamp(25px,2.9vw,33px);letter-spacing:-.02em;}
.media-copy .prose-block{margin-top:18px;max-width:34rem;}
.media-copy .actions{margin-top:28px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
@media (max-width:880px){
  .media-row.media-left,
  .media-row.media-right{grid-template-columns:1fr;}
  .media-row .media-figure,
  .media-row .graphic-figure{order:-1;max-width:100%;}
  /* Keep heading/copy first when the photo is supporting, not leading */
  .media-row.media-copy-first .media-figure,
  .media-row.media-copy-first .graphic-figure,
  .media-row.media-copy-first .media-aside,
  .media-row.media-copy-first .quote-panel{order:0;}
  .media-row.media-copy-first{gap:clamp(22px,4vw,32px);}
  .media-copy h2{max-width:none;font-size:clamp(24px,6.2vw,30px);}
  .media-copy .prose-block{max-width:none;}
  /* Keep stacked photos from dominating the first screen */
  .media-row .media-figure.ratio-wide{
    max-width:min(100%, 560px);
    margin-inline:0;
  }
  /* Keep portrait photos as portraits — do NOT force 3/2 (that chops heads) */
  .media-figure.ratio-portrait{
    aspect-ratio:auto;
    max-width:min(320px, 88%);
    margin-inline:auto;
  }
  .media-figure.ratio-portrait img{
    position:static;
    width:100%;
    height:auto;
    object-fit:unset;
    display:block;
  }
  .media-copy .actions{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .media-copy .actions .btn{width:100%;text-align:center;}
  .media-center .actions{align-items:stretch;}
  .media-center .actions .btn{width:100%;}
}

/* Centered media, copy below */
.media-center{
  max-width:940px;
  margin:0 auto;
  text-align:center;
}
.media-center .media-figure{margin:0 auto;}
.media-center .media-copy{margin-top:clamp(28px,3.5vw,44px);}
.media-center .media-copy h2{margin:0 auto;max-width:22ch;}
.media-center .media-copy p{
  margin:16px auto 0;
  max-width:44rem;
  font-size:1.06rem;
  line-height:1.75;
}
.media-center .actions{margin-top:28px;justify-content:center;}

/* Video */
.video-frame{
  position:relative;
  aspect-ratio:16/9;
  background:var(--surface-navy);
  overflow:hidden;
  box-shadow:0 18px 50px rgba(13,27,42,.18);
}
.video-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}
.video-frame .video-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.video-play{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;justify-content:center;
  background:transparent;
  border:0;cursor:pointer;padding:0;
  transition:background .2s ease;
}
/* Branded poster stills already include a play mark — keep our
   hit-target full-frame, and only show a light hover veil. */
.video-play span{display:none;}
.video-play:hover,
.video-play:focus-visible{
  background:rgba(13,27,42,.18);
  outline:none;
}
section.video-band{
  background:var(--surface-navy);
  color:var(--on-navy);
}
section.video-band::before{
  content:"";
  position:absolute;top:0;left:0;right:0;height:1px;
  background:rgba(176,138,62,.4);
}
section.video-band .eyebrow{color:rgba(255,255,255,.6);}
section.video-band h2{color:var(--on-navy);}
section.video-band p{color:rgba(255,255,255,.82);}

/* Video beside copy — same left / right rhythm as .media-row, used so
   practice pages aren't a stack of centered navy blocks. */
.video-split{
  display:grid;
  gap:clamp(28px,4vw,64px);
  align-items:center;
}
.video-split.media-left{grid-template-columns:minmax(0,1.12fr) minmax(0,0.88fr);}
.video-split.media-right{grid-template-columns:minmax(0,0.88fr) minmax(0,1.12fr);}
.video-split.media-left .video-frame{order:-1;}
section.video-band .video-split .media-copy{text-align:left;}
section.video-band .video-split h2{max-width:16ch;margin:0;}
section.video-band .video-split p{
  margin:16px 0 0;
  max-width:34rem;
  text-align:left;
}
section.video-band .video-split .actions{justify-content:flex-start;margin-top:28px;}
@media (max-width:880px){
  .video-split.media-left,
  .video-split.media-right{grid-template-columns:1fr;}
  .video-split .video-frame{order:-1;}
}

/* Practice pages use the same section rhythm as the homepage */
body.practice section{padding:40px 0;}
body.practice section.practice-hero{padding:0;}
body.practice section.practice-hero + section{padding-top:40px;}
body.practice section.navy{padding:40px 0;}
body.practice .section-head{margin-bottom:36px;}
body.practice .section-head h2{max-width:16ch;}
body.practice .form-card{margin-top:8px;}
body.practice .intro-consult .form-card{margin-top:0;}

.message-sig{margin-top:24px;display:block;height:48px;width:auto;}

/* Interactive review carousel — one review at a time */
.review-carousel{
  position:relative;
  max-width:820px;
  padding:clamp(30px,4vw,48px) clamp(26px,4vw,52px);
  background:var(--bg-raised);
  border:1px solid var(--line-soft);
  box-shadow:0 18px 50px rgba(13,27,42,.06);
}
.review-carousel::before{
  content:"";
  position:absolute;top:0;left:0;width:100%;height:3px;
  background:var(--gold);
}
/* All slides share one grid area, so the card height is set by the longest
   review and never jumps when clicking through. */
.review-viewport{
  display:grid;
  align-items:start;
}
.review-carousel .review-slide{
  grid-area:1/1;
  visibility:hidden;
  opacity:0;
  transition:opacity .3s ease, transform .3s ease;
  transform:translateY(6px);
  pointer-events:none;
}
.review-carousel .review-slide.is-active{
  visibility:visible;
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.review-carousel .stars{
  color:var(--gold);letter-spacing:.18em;font-size:15px;margin-bottom:16px;
}
.review-carousel blockquote{
  margin:0;font-weight:600;font-size:clamp(17.5px,1.9vw,21px);
  line-height:1.65;letter-spacing:-.005em;color:var(--ink);
}
.review-carousel blockquote::before{content:"\201C";}
.review-carousel blockquote::after{content:"\201D";}
.review-carousel cite{
  display:block;margin-top:22px;font-style:normal;font-size:12.5px;
  color:var(--ink-soft);text-transform:uppercase;letter-spacing:.12em;font-weight:750;
}
.review-nav{
  margin-top:30px;padding-top:24px;
  border-top:1px solid var(--line-soft);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
@media (max-width:560px){
  .review-count{display:none;}
}
.review-nav button{
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:var(--bg-raised);
  color:var(--navy);cursor:pointer;font-size:18px;line-height:1;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.review-nav button:hover{
  border-color:var(--navy);background:var(--navy);color:var(--on-navy);
}
.review-dots{display:flex;gap:8px;align-items:center;}
.review-dots button{
  width:9px;height:9px;border-radius:50%;padding:0;
  border:0;background:var(--line);cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.review-dots button[aria-selected="true"]{
  background:var(--gold);transform:scale(1.15);
}
.review-count{
  margin-left:auto;font-size:12.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft);font-weight:700;
}

/* Resources card grid (old-site style, modernized) */
.resources-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 240px;
  gap:clamp(32px,4vw,56px);
  align-items:start;
}
.resource-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:28px 24px;
}
.resource-card{
  display:flex;flex-direction:column;
  background:var(--bg-raised);
  border:1px solid var(--line-soft);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
  color:inherit;text-decoration:none;height:100%;
}
.resource-card:hover{
  border-color:rgba(31,58,92,.28);
  transform:translateY(-2px);
  box-shadow:0 14px 36px rgba(13,27,42,.08);
}
.resource-card .thumb{
  aspect-ratio:16/10;overflow:hidden;background:var(--bg-tint);
}
.resource-card .thumb img{
  width:100%;height:100%;object-fit:cover;object-position:center top;display:block;
  transition:transform .35s ease;
}
.resource-card:hover .thumb img{transform:scale(1.03);}
.resource-card .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.resource-card .meta{
  font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--ink-soft);margin-bottom:10px;
}
.resource-card h2{
  font-size:clamp(18px,1.6vw,21px);line-height:1.3;color:var(--navy-deep);
  letter-spacing:-.015em;
}
.resource-card .excerpt{
  margin-top:12px;font-size:15px;line-height:1.6;color:var(--ink-soft);flex:1;
}
.resource-card .more{
  margin-top:16px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:750;color:var(--gold-bright);
}
.resources-aside .aside-box{
  padding:22px 20px;
  background:var(--bg-navy-wash);
  border:1px solid var(--line-soft);
}
.resources-aside h2{
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--navy);margin-bottom:14px;
}
.resources-aside a{
  display:block;padding:8px 0;border-bottom:1px solid var(--line-soft);
  font-size:14.5px;color:var(--ink-soft);
}
.resources-aside a:hover{color:var(--navy);}
.resources-aside a:last-child{border-bottom:0;}
@media (max-width:920px){
  .resources-layout{grid-template-columns:1fr;}
  .resource-grid{grid-template-columns:1fr;}
}

.steps{border-top:1px solid var(--line);}
.step{display:grid;grid-template-columns:52px 1fr;gap:22px;padding:26px 0;border-bottom:1px solid var(--line);}
.step .sn{font-weight:800;font-size:20px;color:var(--gold);}
.step h3,.step h4{font-size:17.5px;margin-bottom:6px;font-weight:700;color:var(--ink);}
.step p{color:var(--ink-soft);font-size:16px;}
.step a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.step a:hover{color:var(--gold);}
.process-steps{
  max-width:46rem;
}
.process-steps .step h3{
  font-size:clamp(16px,1.4vw,18px);
}

.faq{border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);padding:20px 0;}
.faq summary{cursor:pointer;list-style:none;font-weight:750;font-size:17.5px;letter-spacing:-.005em;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-weight:800;font-size:20px;color:var(--gold);flex:none;}
.faq details[open] summary::after{content:"\2212";}
.faq .faq-a{margin-top:14px;color:var(--ink-soft);font-size:16px;max-width:66ch;line-height:1.65;}
.faq .faq-a p{margin:0 0 1em;color:inherit;font-size:inherit;line-height:inherit;max-width:none;}
.faq .faq-a p:last-child{margin-bottom:0;}
.faq .faq-a ul{
  margin:0 0 1em;
  padding-left:1.15em;
  color:inherit;
}
.faq .faq-a ul:last-child{margin-bottom:0;}
.faq .faq-a li{margin:0.35em 0;}
.faq .faq-a a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.faq .faq-a a:hover{color:var(--gold);}

/* Practice hero authority strip */
/* Lead-in above the hero credential list on practice pages. */
.authority-label{
  margin:22px 0 0;
  padding:14px 0 0;
  border-top:1px solid var(--line-soft);
  font-size:14px;
  font-weight:650;
  line-height:1.4;
  color:var(--navy-deep);
  max-width:40rem;
}
/* The hero copy column is roughly 40vw, so these four credentials never fit on
   one line. A grid that drops to a single column on its own keeps them aligned
   at every width, and dropping the per-item dividers means no rule can be left
   hanging at the end of a wrapped row. */
.authority-bar{
  list-style:none;
  margin:8px 0 0;
  padding:0;
  border-top:none;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(18rem, 1fr));
  gap:9px 30px;
  max-width:40rem;
}
.authority-bar li{
  font-size:13px;
  line-height:1.35;
  color:var(--ink-soft);
  margin:0;
  padding:0;
  border:0;
}
.authority-bar strong{color:var(--navy-deep);font-weight:750;}
.practice-hero .lede-support{
  margin-top:14px;
  font-size:1.02rem;
  color:var(--ink-soft);
  max-width:38rem;
  line-height:1.65;
}
/* When stacked as body copy with .lede, keep the same type size (lede-support
   alone is for quieter supporting lines under a short punchline). */
.practice-hero .lede.lede-support{
  font-size:1.15rem;
  line-height:1.75;
}
.practice-hero .lede-support a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.practice-hero .lede-support a:hover{color:var(--gold);}
.practice-hero .hero-note{
  margin-top:12px;
  font-size:.92rem;
  color:var(--ink-soft);
  max-width:36rem;
  line-height:1.55;
  opacity:.9;
}
.video-band-solo .video-kicker{
  width:min(920px, 100%);
  margin:0 auto 22px;
  font-size:1.05rem;
  line-height:1.65;
  color:rgba(255,255,255,.82);
  text-align:center;
  max-width:40rem;
}
.final-cta .cta-note{
  margin-top:10px;
  font-size:.95rem;
  opacity:.7;
}

.trust-grid.trust-grid-6{
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(28px,3.5vw,40px) clamp(24px,3vw,36px);
  border-top:none;
  border-bottom:none;
}
.trust-grid.trust-grid-6 .trust-item{
  border-right:none;
  border-top:none;
  padding:0;
}
.trust-grid.trust-grid-6 .trust-item:nth-child(3),
.trust-grid.trust-grid-6 .trust-item:nth-child(6){border-right:none;}
.trust-grid.trust-grid-6 .trust-item:nth-child(n+4){border-top:none;}
.trust-grid.trust-grid-6 .trust-item .tl{max-width:22ch;}
/* Same size for numeric and worded credential titles in this six-up grid. */
.trust-grid.trust-grid-6 .trust-item .tv,
.trust-grid.trust-grid-6 .trust-item .tv-text{
  font-size:clamp(17px,1.6vw,20px);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.25;
  text-transform:none;
}
@media (max-width:900px){
  .trust-grid.trust-grid-6{grid-template-columns:repeat(2, minmax(0,1fr));}
  .trust-grid.trust-grid-6 .trust-item:nth-child(3){border-right:none;border-top:none;}
  .trust-grid.trust-grid-6 .trust-item:nth-child(even){border-right:none;padding-left:0;}
  .trust-grid.trust-grid-6 .trust-item:nth-child(odd){padding-left:0;}
}
@media (max-width:560px){
  .authority-bar{grid-template-columns:1fr;gap:8px;}
}

.video-head .video-support{
  margin:14px auto 0;
  max-width:38rem;
  color:rgba(255,255,255,.78);
  font-size:1.02rem;
  line-height:1.65;
  text-align:center;
}
.video-head.options-head{
  width:min(920px, 100%);
  max-width:none;
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}
.video-head.options-head h2,
.video-head.options-head .video-support{
  margin-left:0;
  margin-right:0;
  text-align:left;
}
.video-head.options-head .video-support{max-width:none;}

.video-band-solo{padding:40px 0;}
.video-band-solo .video-solo{margin-top:0;}

.subhead-scan{
  margin:clamp(36px,5vw,52px) 0 22px;
  font-size:clamp(20px,2.2vw,24px);
  letter-spacing:-.02em;
  color:var(--navy-deep);
  max-width:28ch;
  text-wrap:balance;
}
@media (max-width:560px){
  .subhead-scan{
    max-width:none;
    margin:clamp(28px,6vw,40px) 0 18px;
    font-size:clamp(19px,5.5vw,22px);
  }
}

.factor-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(28px,3.5vw,40px) clamp(24px,3vw,36px);
  border-top:none;
}
.factor-card{
  padding:0;
  border-bottom:none;
  border-right:none;
  min-width:0; /* prevent long titles from forcing overflow */
}
.factor-card:nth-child(3n){border-right:none;padding-right:0;}
.factor-card h4{
  margin:0;
  font-size:16px;
  font-weight:750;
  color:var(--navy-deep);
  letter-spacing:-.01em;
}
.factor-grid.factor-titles-underline .factor-card h4{
  display:inline;
  border-bottom:1px solid var(--gold);
  padding-bottom:2px;
}
.term-mark{
  font-weight:750;
  color:var(--navy-deep);
  border-bottom:1px solid var(--gold);
}
.factor-card h3{
  margin:0;
  font-size:clamp(16px,1.35vw,18px);
  font-weight:750;
  color:var(--navy-deep);
  letter-spacing:-.015em;
  line-height:1.25;
  text-wrap:balance;
}
.factor-card p{
  margin:10px 0 0;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.55;
  max-width:28ch;
}
.factor-card a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.factor-card a:hover{color:var(--gold);}
.factor-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  margin:0 0 14px;
  color:var(--gold);
}
.factor-icon svg{
  width:28px;
  height:28px;
  display:block;
}
.factor-grid-icons .factor-card p{max-width:32ch;}
@media (max-width:900px){
  .factor-grid:not(.factor-grid-4){grid-template-columns:repeat(2, minmax(0,1fr));}
  .factor-grid:not(.factor-grid-4) .factor-card:nth-child(3n){border-right:none;padding-right:0;}
  .factor-grid:not(.factor-grid-4) .factor-card:nth-child(2n){border-right:none;padding-right:0;padding-left:0;}
  .factor-grid:not(.factor-grid-4) .factor-card:nth-child(odd){padding-left:0;}
  .factor-grid-icons{
    gap:clamp(24px,4vw,32px) clamp(18px,3vw,28px);
  }
  .factor-grid-icons .factor-card p{max-width:none;}
}
@media (max-width:640px){
  /* Single column once titles get long — avoids cramped 2-up cards.
     Need equal/higher specificity than the 900px 2-col rule. */
  .factor-grid.factor-grid-icons,
  .factor-grid:not(.factor-grid-4).factor-grid-icons{
    grid-template-columns:1fr;
    gap:26px;
  }
  .factor-grid-icons .factor-card,
  .factor-grid-icons .factor-card:nth-child(2n),
  .factor-grid-icons .factor-card:nth-child(3n),
  .factor-grid-icons .factor-card:nth-child(odd){
    border-right:none;
    padding:0;
  }
  .factor-grid-icons .factor-card p{max-width:none;font-size:15px;}
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons){grid-template-columns:1fr;}
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons) .factor-card,
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons) .factor-card:nth-child(2n),
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons) .factor-card:nth-child(3n),
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons) .factor-card:nth-child(odd){
    border-right:none;
    padding:0;
  }
  .factor-grid:not(.factor-grid-4):not(.factor-grid-icons) .factor-card p{max-width:none;}
}
@media (max-width:380px){
  .factor-grid.factor-grid-icons,
  .factor-grid:not(.factor-grid-4).factor-grid-icons{grid-template-columns:1fr;}
}

.factor-grid-4{
  grid-template-columns:repeat(2, minmax(0,1fr));
  margin-top:clamp(28px,4vw,44px);
}
.factor-grid-4 .factor-card{
  padding:0;
}
.factor-grid-4 .factor-card:nth-child(2n){
  border-right:none;
  padding-right:0;
  padding-left:0;
}
.factor-grid-4 .factor-card:nth-child(3n){
  border-right:none;
  padding-right:0;
}
.factor-grid-4 .factor-card p{max-width:36ch;}
@media (max-width:760px){
  .factor-grid-4{grid-template-columns:1fr;}
  .factor-grid-4 .factor-card,
  .factor-grid-4 .factor-card:nth-child(2n),
  .factor-grid-4 .factor-card:nth-child(3n){
    border-right:none;
    padding:0;
  }
  .factor-grid-4 .factor-card p{max-width:none;}
}

.attorney-quote{
  margin-top:clamp(36px,5vw,52px);
  max-width:46rem;
}
/* Attorney quote as the right column in a media-row (LGBTQ+ page). */
.media-row .quote-panel{
  margin-top:0;
  max-width:none;
  padding:clamp(22px,2.8vw,34px);
  background:var(--bg-tint);
  border-top:3px solid var(--gold);
}
.media-row .quote-panel blockquote{
  font-size:clamp(17px,1.9vw,21px);
  line-height:1.55;
}
/* Photo + quote stacked in the right column */
.media-row .media-aside{
  display:grid;
  gap:22px;
  align-content:start;
}
.media-row .media-aside .quote-panel{
  background:var(--bg-tint);
}
.media-row .media-aside .attorney-quote{margin-top:0;}
@media (max-width:880px){
  .media-row .quote-panel{order:-1;}
  .media-row .media-aside{order:-1;}
}
.statute-callout blockquote{
  font-size:clamp(18px,2.1vw,22px);
}
.statute-after-media{
  margin-top:clamp(36px,5vw,56px);
}
.media-row + .factor-grid{
  margin-top:clamp(40px,5vw,64px);
}
.media-row + .subhead-scan{
  margin-top:clamp(40px,5vw,64px);
}
@media (max-width:880px){
  .media-row + .subhead-scan,
  .media-row + .factor-grid{
    margin-top:clamp(28px,5vw,40px);
  }
}

.case-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--line);
}
.case-card{
  padding:26px 32px 28px 0;
  border-bottom:1px solid var(--line-soft);
  border-right:1px solid var(--line-soft);
}
.case-card:nth-child(even){
  border-right:none;
  padding-right:0;
  padding-left:32px;
}
.case-card h3{
  margin:0;
  font-size:clamp(17px,1.4vw,19px);
  font-weight:750;
  letter-spacing:-.015em;
  color:var(--navy-deep);
  line-height:1.25;
}
.case-card p{
  margin:10px 0 0;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.55;
  max-width:36ch;
}
.case-card a{color:var(--navy);border-bottom:1px solid var(--gold);font-weight:600;}
.case-card a:hover{color:var(--gold);}
.case-card .factor-icon{margin-bottom:12px;}
.case-card-note{
  margin:8px 0 0;
  font-size:13.5px;
  font-weight:650;
  letter-spacing:.01em;
  color:var(--gold);
  max-width:none;
}
.case-card .case-card-note + p{margin-top:12px;}
.section-more-link{
  margin:clamp(28px,4vw,40px) 0 0;
  font-size:15.5px;
  line-height:1.5;
}
.section-more-link a{
  color:var(--navy);
  font-weight:650;
  border-bottom:1px solid var(--gold);
  display:inline;
  overflow-wrap:anywhere;
}
.section-more-link a:hover{color:var(--gold);}
@media (max-width:560px){
  .section-more-link{font-size:15px;line-height:1.55;}
}
.compare-bridge{
  margin-top:clamp(28px,4vw,40px);
  padding:18px 22px;
  border-left:3px solid var(--gold);
  background:var(--bg-tint);
  max-width:48rem;
}
.compare-bridge p{
  margin:0;
  color:var(--ink-soft);
  font-size:1.02rem;
  line-height:1.65;
}
.safety-resource{
  margin-top:clamp(28px,4vw,40px);
  padding-top:20px;
  border-top:1px solid var(--line-soft);
  max-width:40rem;
}
.safety-resource p{
  margin:0 0 8px;
  color:var(--ink-soft);
  font-size:1.06rem;
  line-height:1.75;
}
.safety-resource p:last-child{margin-bottom:0;}
.safety-resource a{
  color:var(--navy);
  font-weight:650;
  border-bottom:1px solid var(--gold);
}
.safety-resource a:hover{color:var(--gold);}
.factor-scan{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--line);
}
.factor-scan li{
  position:relative;
  margin:0;
  padding:16px 20px 16px 28px;
  border-bottom:1px solid var(--line-soft);
  border-right:1px solid var(--line-soft);
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.45;
}
.factor-scan li:nth-child(2n){
  border-right:none;
}
.factor-scan li::before{
  content:"";
  position:absolute;
  left:8px;
  top:1.35em;
  width:8px;
  height:8px;
  border:1.5px solid var(--gold);
  border-radius:50%;
  transform:translateY(-50%);
}
.result-callout{
  margin:22px 0;
  padding:18px 22px;
  border-left:3px solid var(--gold);
  background:var(--bg-raised);
  border:1px solid var(--line-soft);
  border-left:3px solid var(--gold);
  max-width:42rem;
}
.result-callout p{
  margin:0;
  color:var(--ink);
  font-size:1.02rem;
  line-height:1.65;
}
.result-callout strong{
  color:var(--navy-deep);
  font-weight:750;
}
@media (max-width:700px){
  .factor-scan{grid-template-columns:1fr;}
  .factor-scan li,
  .factor-scan li:nth-child(2n){
    border-right:none;
    padding-left:28px;
    padding-right:0;
  }
}
@media (max-width:760px){
  .case-grid{grid-template-columns:1fr;}
  .case-card,
  .case-card:nth-child(even){
    border-right:none;
    padding:22px 0;
  }
  .case-card p{max-width:none;}
}

/* Practice intro form card (custody/divorce-style side form) */
.intro-consult .form-card > h2{
  font-size:clamp(22px,2.5vw,28px);
  margin:0;
}
.intro-consult .form-card > p{
  margin-top:12px;
  color:var(--ink-soft);
  font-size:1.02rem;
  line-height:1.6;
}
.intro-consult .form-card form.consult{margin-top:24px;}


/* Our Team — 2×2 (2-col) grid: photo on top, copy underneath */
section.raised:has(.team-grid){
  padding-top:40px;
  padding-bottom:64px;
}
.team-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(28px,4vw,56px);
  row-gap:clamp(36px,4.5vw,56px);
}
.team-member{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:10px;
  align-content:start;
  min-width:0;
}
.team-photo{
  width:100%;
  max-width:320px;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:var(--bg-tint);
  border:1px solid var(--line-soft);
}
.team-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 12%;
  filter:grayscale(.12) contrast(1.04);
}
.team-copy h2{font-size:clamp(20px,2.2vw,24px);}
.team-copy .role{
  color:var(--gold);
  font-weight:700;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:4px 0 8px;
}
.btn-gold-box{
  background:transparent;
  color:var(--gold);
  border:2px solid var(--gold);
}
.btn-gold-box:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:#12263A;
}
.team-copy p{
  color:var(--ink-soft);
  font-size:16px;
  line-height:1.55;
  max-width:42ch;
}
@media (max-width:720px){
  .team-grid{grid-template-columns:1fr;row-gap:40px;}
  .team-photo{max-width:min(280px,100%);aspect-ratio:4 / 5;}
  .team-copy p{max-width:none;}
}

/* Contact intro — shorter photo so phone, email, and address clear the fold */
/* Inset to the 1064px content width of .container so copy and photo line up with the grid below */
.contact-hero{
  align-items:center;
  column-gap:48px;
  padding:28px max(28px, calc((100% - 1064px) / 2));
}
.contact-hero .copy{
  padding:0;
}
.contact-hero .copy h1{
  max-width:20ch;
  font-size:clamp(28px,2.4vw,36px);
}
.contact-hero .lede{
  margin-top:10px;
  font-size:1rem;
  line-height:1.5;
}
.contact-hero .frame{
  align-self:center;
  min-height:0;
  height:clamp(180px,26vh,240px);
  aspect-ratio:3 / 2;
  width:auto;
  max-width:min(360px,38vw);
  border:3px solid var(--gold);
}
.contact-hero .frame::after{content:none;}
.contact-hero .frame img{object-position:center 40%;}
.contact-hero + section{padding-top:12px;padding-bottom:32px;}
.contact-grid{gap:48px;}
.contact-grid .info-line{padding:10px 0;}
.contact-grid .map-wrap{margin-top:16px;}
@media (max-width:880px){
  .contact-hero{padding:0;}
  .contact-hero .frame::after{content:"";}
  .contact-hero .frame{
    border:0;
    order:0;
    align-self:stretch;
    aspect-ratio:auto;
    min-height:0;
    height:108px;
    width:100%;
    max-width:none;
    overflow:hidden;
  }
  .contact-hero .frame img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 40%;
    display:block;
  }
  .contact-hero .copy{order:-1;padding:14px 20px 10px;}
  .contact-hero + section{padding-top:8px;}
  .contact-hero .lede{font-size:.98rem;}
  .contact-grid .info-line{padding:8px 0;}
}

.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start;}
.info-line{padding:18px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:92px 1fr;gap:14px;}
.info-line:last-of-type{border-bottom:1px solid var(--line);}
.info-line .il-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;padding-top:2px;}
.info-line .il-val{font-size:16.5px;font-weight:650;}
.map-wrap{margin-top:26px;border:1px solid var(--line);}
.map-wrap iframe{width:100%;height:230px;border:0;display:block;filter:grayscale(.35) contrast(1.05);}

form.consult{display:grid;gap:22px;}
form.consult label{display:grid;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;}
form.consult input,form.consult select,form.consult textarea{
  font:17px var(--font);padding:14px 2px;border:none;border-bottom:1.5px solid var(--line);
  background:transparent;color:var(--ink);border-radius:0;
  color-scheme:inherit;
}
form.consult input::placeholder,
form.consult textarea::placeholder{color:var(--ink-soft);opacity:.7;}
form.consult textarea{min-height:110px;resize:vertical;}
form.consult input:focus,form.consult select:focus,form.consult textarea:focus{outline:none;border-bottom-color:var(--navy);}
/* Autofill can force a light yellow/white field in dark mode — keep text readable */
form.consult input:-webkit-autofill,
form.consult input:-webkit-autofill:hover,
form.consult input:-webkit-autofill:focus,
form.consult textarea:-webkit-autofill{
  -webkit-text-fill-color:var(--ink);
  caret-color:var(--ink);
  box-shadow:0 0 0 1000px var(--bg-raised) inset;
  transition:background-color 99999s ease-out;
}
.consult-checks{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;}
.consult-checks .cc-label{flex-basis:100%;font-size:12.5px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;}
.consult-checks .cc-note{font-weight:500;text-transform:none;letter-spacing:0;}
.consult-checks .cc-opt{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:550;color:var(--ink);text-transform:none;letter-spacing:0;}
.consult-checks .cc-opt input{width:16px;height:16px;accent-color:var(--navy);}
.honeypot{position:absolute;left:-9999px;height:0;overflow:hidden;}
.consult-error{
  margin:0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  background:var(--bg-tint);
  color:var(--navy);
  font-size:15px;
  font-weight:650;
  line-height:1.45;
  letter-spacing:0;
  text-transform:none;
}

/* White card for the consultation form so it lifts off a tinted band */
.form-card{
  background:var(--bg-raised);
  border:1px solid var(--line-soft);
  padding:clamp(28px,3.5vw,48px);
  box-shadow:0 18px 50px rgba(13,27,42,.07);
}

.page-hero{
  position:relative;
  padding:40px 0 32px;
  /* one step deeper than .band-tint so the hero reads as its own block */
  background:var(--bg-tint);
  border-bottom:1px solid var(--line-soft);
}
.page-hero::after{
  content:"";
  position:absolute;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:min(1064px, calc(100% - 56px));
  height:2px;
  background:var(--gold);
  pointer-events:none;
}
.page-hero h1{font-size:clamp(30px,3.6vw,42px);color:var(--navy-deep);line-height:1.15;}
.page-hero .lede,
.page-hero p{font-size:1.1rem;line-height:1.7;color:var(--ink-soft);}

footer.site{background:var(--surface-navy);color:var(--on-navy);padding:64px 0 28px;border-top:3px solid var(--gold);}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:44px;align-items:start;}
footer.site h2{color:var(--on-navy);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:16px;opacity:.7;}
footer.site a{color:var(--on-navy);font-size:15px;opacity:.9;}
footer.site a:hover{opacity:1;color:var(--gold-bright);}
footer.site .flinks{display:grid;gap:10px;}
footer.site .flinks-practice{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:24px;
  row-gap:10px;
}
footer.site .flinks-practice h2{grid-column:1 / -1;margin-bottom:6px;}
footer.site p.tagline{color:var(--on-navy);opacity:.72;font-size:15px;max-width:34ch;margin-top:14px;font-weight:500;}
.footer-brand{display:flex;align-items:center;gap:12px;}
.footer-brand .mark{width:42px;height:42px;border:2px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;}
.footer-brand .mark span{font-weight:800;font-size:13px;color:var(--gold);}
.footer-brand .n1{font-weight:800;font-size:17px;letter-spacing:-.01em;color:var(--on-navy);}
.footer-social{display:flex;align-items:center;gap:12px;margin-top:22px;}
.footer-social a{
  width:40px;height:40px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  opacity:1;flex:0 0 auto;
  transition:transform .15s ease, box-shadow .15s ease;
}
.footer-social a:hover{transform:translateY(-2px);color:inherit;}
.footer-social a svg{width:18px;height:18px;display:block;fill:#fff;}
.footer-social .social-facebook{background:#1F3A5C;}
.footer-social .social-linkedin{background:#0A66C2;}
.footer-social .social-instagram{background:#C13584;}
.footer-bottom{margin-top:48px;padding-top:22px;border-top:1px solid rgba(244,246,249,.14);font-size:13px;color:var(--on-navy);opacity:.55;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.footer-meta{display:inline-flex;align-items:center;gap:14px;}
.footer-login{color:inherit;opacity:1;font-size:12px;letter-spacing:.04em;text-decoration:none;border:0;font-weight:500;}
.footer-login:hover{color:var(--gold-bright);}
@media (max-width:880px){
  .footer-grid{grid-template-columns:1fr;gap:36px;}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr;}
  footer.site .flinks-practice{grid-template-columns:1fr;}
}

/* Mobile sticky call bar removed — it covered footer/links. Phone stays in the top util bar. */
.sticky-call{display:none !important;}

.to-top{
  position:fixed;
  right:16px;
  bottom:max(16px, env(safe-area-inset-bottom));
  z-index:45;
  width:46px;
  height:46px;
  padding:0;
  border-radius:50%;
  border:1px solid var(--gold);
  background:var(--surface-navy);
  color:var(--gold);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  box-shadow:0 8px 22px rgba(13,27,42,.2);
}
.to-top svg{width:22px;height:22px;display:block;}
.to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.to-top:hover{color:var(--gold-bright);}
body.nav-open .to-top,
body.consult-modal-open .to-top{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

@media (max-width:640px){
  body{font-size:17px;}
  section{padding:40px 0;}
  .page-hero{padding:36px 0 28px;}
  .contact-grid{grid-template-columns:1fr;gap:36px;}
  .info-line{grid-template-columns:1fr;gap:6px;padding:16px 0;}
  .featured-strip{padding:28px 0 22px;}
  .featured-row{gap:16px 14px;}
  .featured-row .logo-chip{flex:1 1 100px;max-width:130px;}
  .credential-strip{padding:40px 0;}
  .credential-row{gap:18px 16px;}
  .badge-chip img{max-height:56px;width:auto;}
  .form-card{padding:22px 18px;}
  .video-split .actions{flex-direction:column;align-items:stretch;}
  .video-split .actions .btn{width:100%;text-align:center;}
  .page-hero h1{font-size:clamp(26px,7vw,36px);}
}

/* Consultation modal — opened by the consultation CTAs on every page */
body.consult-modal-open{overflow:hidden;}
.consult-modal{
  position:fixed;
  inset:0;
  z-index:1200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
}
.consult-modal[hidden]{display:none !important;}
.consult-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(23,48,73,.55);
  border:0;
  cursor:pointer;
}
.consult-modal-dialog{
  position:relative;
  z-index:1;
  width:min(480px, 100%);
  max-height:min(92vh, 720px);
  overflow:auto;
  margin:0;
  -webkit-overflow-scrolling:touch;
}
.consult-modal-dialog > h2{
  margin:0;
  font-size:clamp(20px,2.4vw,24px);
  letter-spacing:-.02em;
  color:var(--navy-deep);
  padding-right:36px;
}
.consult-modal-dialog > p{
  margin:10px 0 0;
  color:var(--ink-soft);
  font-size:0.95rem;
  line-height:1.55;
}
.consult-modal-dialog form.consult{margin-top:22px;}
.consult-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border:0;
  background:transparent;
  color:var(--ink-soft);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:4px;
}
.consult-modal-close:hover{color:var(--navy-deep);background:var(--bg-tint);}
.consult-modal-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media (max-width:560px){
  .consult-modal{align-items:flex-end;padding:0;}
  .consult-modal-dialog{
    width:100%;
    max-height:92vh;
    border-radius:16px 16px 0 0;
    padding:24px 18px calc(24px + env(safe-area-inset-bottom));
  }
}
