:root{
  /* --- brand color, used as specified --- */
  --navy:        #15294E;
  --navy-light:  #22386A;
  --navy-deep:   #0B1830;
  --ink:         #0F1E3C;
  --crimson:     #8C2A33;
  --red:         #D4303F;
  --red-light:   #F04252;
  --forest:      #2E5A38;
  --sage:        #A8C0A8;
  --gold:        #B99A5B;
  --gold-bright: #D9BC7E;
  --white:       #FFFFFF;
  --mist:        #EEF1F7;
  --line:        #D8DDE8;
  --slate:       #41506B;
  --on-navy:     #D7DEEC;
  --on-navy-dim: #A9B4CC;

  /* --- type --- */
  --serif: "Literata", "Iowan Old Style", Georgia, serif;
  --sans: "Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* --- rhythm --- */
  --edge: clamp(24px, 6vw, 88px);
  --max: 1240px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  position:relative;
}

/* fine paper grain — applied globally, extremely subtle, adds texture without touching brand color */
body::before{
  content:"";
  position:fixed; inset:0; z-index:2000; pointer-events:none;
  opacity:.035;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

/* =========================================================
   TYPOGRAPHY
   ========================================================= */
.eyebrow{
  font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--crimson);
}
.eyebrow.on-navy{ color:var(--sage); }

h1,h2,h3{ font-family:var(--serif); font-weight:700; color:var(--navy); margin:0; letter-spacing:-.01em; }
.h1{ font-size:clamp(2.5rem,4.4vw,4.1rem); line-height:1.06; }
.h2{ font-size:clamp(1.9rem,3vw,2.6rem); line-height:1.14; }
.h3{ font-size:clamp(1.25rem,1.6vw,1.5rem); line-height:1.25; }

.serif-italic{ font-family:var(--serif); font-style:italic; font-weight:400; }

p{ margin:0; }
.lede{ font-size:clamp(1.05rem,1.4vw,1.2rem); line-height:1.6; color:var(--slate); max-width:52ch; }
.body-text{ font-size:1rem; line-height:1.7; color:var(--slate); }
.body-sm{ font-size:.92rem; line-height:1.65; color:var(--slate); }
.on-navy-text{ color:var(--on-navy-dim); }

.rule{ height:1px; background:var(--line); border:none; margin:0; }

/* =========================================================
   BUTTONS / LINKS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-weight:700; font-size:.95rem;
  padding:16px 30px; border-radius:2px; text-decoration:none; cursor:pointer;
  transition:transform .2s var(--ease), box-shadow .25s var(--ease), background .25s ease, filter .2s ease;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px) scale(.985); transition-duration:.08s; }
.btn-fill{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, #9c313b 0%, var(--crimson) 55%, #7a2129 100%);
  color:var(--white);
  box-shadow:
    inset 0 0 0 1.5px rgba(217,188,126,.75),
    inset 0 1px 0 rgba(255,255,255,.25),
    0 1px 2px rgba(15,30,60,.08),
    0 14px 28px -12px rgba(140,42,51,.6);
}
.btn-fill::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.22) 46%, rgba(255,255,255,.02) 58%, transparent 72%);
}
.btn-fill:hover{
  background:linear-gradient(180deg, #a8363f 0%, #8c2a33 55%, #6e2028 100%);
  transform:translateY(-3px);
  box-shadow:
    inset 0 0 0 1.5px rgba(217,188,126,.9),
    inset 0 1px 0 rgba(255,255,255,.3),
    0 0 0 5px rgba(140,42,51,.14),
    0 6px 14px rgba(15,30,60,.12),
    0 22px 38px -14px rgba(140,42,51,.65);
}
.btn-fill:active{
  transform:translateY(0) scale(.98);
  box-shadow:
    inset 0 0 0 1.5px rgba(217,188,126,.8),
    inset 0 3px 8px rgba(0,0,0,.25),
    0 4px 10px -6px rgba(140,42,51,.5);
}
.btn-outline{
  position:relative; background:var(--navy); color:var(--on-navy); border:none; border-radius:0;
  padding-bottom:13px;
}
.btn-outline::after{
  content:""; position:absolute; left:30px; right:30px; bottom:0; height:2px; background:var(--gold-bright);
}
.btn-outline:hover{ background:var(--navy-light); color:var(--white); transform:translateY(-3px); box-shadow:0 18px 32px -14px rgba(15,30,60,.45); }
.btn-outline:active{ transform:translateY(0) scale(.98); box-shadow:inset 0 2px 6px rgba(0,0,0,.2); }
.btn-outline.on-navy{ border-color:var(--on-navy-dim); color:var(--on-navy); background:rgba(255,255,255,.04); }
.btn-outline.on-navy:hover{ background:var(--on-navy); color:var(--navy-deep); }
.btn .glyph{ position:relative; z-index:2; font-size:1.05em; line-height:1; }
.btn span:not(.glyph){ position:relative; z-index:2; }

.header-call-icon{
  position:relative; padding:0; width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:var(--navy);
  color:var(--on-navy);
  box-shadow:inset 0 0 0 1.5px var(--gold-bright);
  transition:transform .2s var(--ease), box-shadow .2s ease, background .2s ease;
}
.header-call-icon:hover{ transform:scale(1.1); background:var(--navy-light); box-shadow:inset 0 0 0 1.5px var(--gold-bright), 0 6px 14px -6px rgba(11,24,48,.5); }
.header-call-icon:active{ transform:scale(.96); box-shadow:inset 0 2px 6px rgba(0,0,0,.3); }
.header-call-icon svg{ width:16px; height:16px; position:relative; z-index:1; }

.text-link{
  font-family:var(--sans); font-weight:600; font-size:.9rem; color:var(--navy);
  text-decoration:none; position:relative; display:inline-flex; align-items:center; gap:6px;
  padding-bottom:2px; border-bottom:1px solid var(--navy);
}
.text-link:hover{ color:var(--crimson); border-color:var(--crimson); }

/* =========================================================
   LAYOUT SHELL
   ========================================================= */
.wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--edge); }
section{ position:relative; }
.pad-lg{ padding:clamp(64px,9vw,128px) 0; }
.pad-md{ padding:clamp(48px,6vw,84px) 0; }
.on-mist{ background:var(--mist); }
.on-navy-bg{ background:linear-gradient(180deg,var(--navy) 0%, var(--navy-deep) 100%); color:var(--on-navy); }

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

/* text-specific reveal: a quieter, more considered arrival for headings and
   copy — resolving into focus rather than sliding up, since a page about
   precision should have its own words arrive with some. */
.reveal-text{
  opacity:0; transform:translateY(16px); filter:blur(4px);
  transition:opacity 1.1s var(--ease), transform 1.1s var(--ease), filter 1s var(--ease);
}
.reveal-text.in{ opacity:1; transform:translateY(0); filter:blur(0); }

/* =========================================================
   HEADER — "quiet opulence": guilloché-textured credentials
   strip over a hairline-gilt sticky nav. Restraint over ornament.
   ========================================================= */
.header-utility{
  display:none; position:relative; overflow:hidden;
  background:var(--navy-deep); color:var(--on-navy-dim);
  border-bottom:1px solid rgba(185,154,91,.28);
}
.header-utility::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.24;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='34'/%3E%3Ccircle cx='48' cy='0' r='34'/%3E%3Ccircle cx='0' cy='48' r='34'/%3E%3Ccircle cx='48' cy='48' r='34'/%3E%3Ccircle cx='24' cy='24' r='15'/%3E%3C/g%3E%3C/svg%3E");
  background-size:48px 48px;
}
.header-utility-inner{
  position:relative; z-index:1;
  max-width:var(--max); margin:0 auto; padding:10px var(--edge);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.header-credentials{ display:flex; align-items:center; gap:9px; }
.header-credentials span{
  font-family:var(--sans); font-weight:600; font-size:.7rem; letter-spacing:.05em; color:var(--on-navy-dim);
}
.header-credentials .sep{ color:var(--gold); font-size:.55rem; opacity:.8; }
.header-utility-note{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.03em; color:var(--gold-bright);
}

header.site{
  position:sticky; top:0; z-index:500;
  background:rgba(255,255,255,.94); backdrop-filter:blur(10px);
  border-top:1px solid rgba(185,154,91,.55);
  border-bottom:1px solid transparent;
  box-shadow:0 1px 0 rgba(185,154,91,.2);
  transition:border-color .3s ease, box-shadow .3s ease;
}
header.site.scrolled{ border-color:var(--line); box-shadow:0 8px 24px -20px rgba(15,30,60,.4); }
.header-inner{
  position:relative; display:flex; align-items:center; gap:24px;
  padding:16px var(--edge); max-width:var(--max); margin:0 auto;
  transition:padding .3s var(--ease);
}
header.site.scrolled .header-inner{ padding:10px var(--edge); }
.brand{ display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.brand img{ height:38px; width:auto; display:block; transition:height .3s var(--ease); }
header.site.scrolled .brand img{ height:30px; }
.brand-divider{ display:none; width:1px; height:24px; background:linear-gradient(180deg, transparent, rgba(185,154,91,.5), transparent); flex-shrink:0; }

.nav-desktop{
  display:none; align-items:center; gap:2px;
  background:transparent; border:1px solid rgba(185,154,91,.3); border-radius:100px; padding:4px;
}
.header-spacer{ flex:1; }
.header-cta{ display:none; }
@media(min-width:900px){
  .header-cta{
    position:relative; padding:12px 22px; font-size:.86rem;
    background:var(--crimson);
    box-shadow:
      inset 0 0 0 1.5px var(--gold-bright),
      inset 0 0 0 4px var(--crimson),
      inset 0 0 0 5.2px rgba(217,188,126,.55),
      0 12px 22px -12px rgba(140,42,51,.55);
  }
  .header-cta:hover{
    background:#7a2129;
    transform:translateY(-2px);
    box-shadow:
      inset 0 0 0 1.5px var(--gold-bright),
      inset 0 0 0 4px #7a2129,
      inset 0 0 0 5.2px rgba(217,188,126,.7),
      0 16px 28px -12px rgba(140,42,51,.62);
  }
  .header-cta:active{
    transform:translateY(0) scale(.97);
    box-shadow:
      inset 0 0 0 1.5px var(--gold-bright),
      inset 0 0 0 4px #7a2129,
      inset 0 2px 6px rgba(0,0,0,.22);
  }
}
.header-mobile-actions{ display:flex; align-items:center; gap:8px; }

/* --- mega menu trigger + nav links: engraved-medallion active state --- */
.nav-item{ display:flex; align-items:center; }
.nav-link{
  appearance:none; background:none; border:none; cursor:pointer;
  font-family:var(--sans); font-weight:600; font-size:.87rem; color:var(--navy);
  text-decoration:none; position:relative; display:inline-flex; align-items:center; gap:6px;
  padding:9px 17px; border-radius:100px;
  transition:background .25s ease, color .25s ease;
}
.nav-link::after{
  content:""; position:absolute; left:17px; right:17px; bottom:5px; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav-link:hover{ color:var(--crimson); }
.nav-link:hover::after{ transform:scaleX(1); }
.nav-item.mega-open .nav-link{ color:var(--crimson); }
.nav-item.mega-open .nav-link::after{ transform:scaleX(1); }
.nav-link .mega-chev{ width:11px; height:11px; color:var(--gold); transition:transform .25s var(--ease); }
.nav-item.mega-open .nav-link .mega-chev{ transform:rotate(180deg); }

.mega-panel{
  position:absolute; top:calc(100% + 22px); left:50%; transform:translateX(-50%) translateY(-10px);
  width:min(1100px, 94vw);
  background:var(--white); border:1px solid rgba(185,154,91,.4); border-radius:16px;
  box-shadow:0 60px 120px -32px rgba(11,20,38,.45), 0 1px 0 rgba(255,255,255,.4) inset;
  overflow:hidden;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  z-index:400;
}
.nav-item.mega-open .mega-panel{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.mega-panel::before, .mega-panel::after{
  content:""; position:absolute; z-index:2; width:20px; height:20px; pointer-events:none;
  border-top:1px solid var(--gold); opacity:.7;
}
.mega-panel::before{ top:10px; left:10px; border-left:1px solid var(--gold); border-radius:6px 0 0 0; }
.mega-panel::after{ top:10px; right:10px; border-right:1px solid var(--gold); border-radius:0 6px 0 0; }

.mega-scrim{
  position:fixed; inset:0; z-index:398; background:rgba(9,17,32,.4); backdrop-filter:blur(2px);
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .4s var(--ease), visibility .4s;
}
.mega-scrim.show{ opacity:1; visibility:visible; }

.mega-grid{ display:grid; grid-template-columns:repeat(3, 1fr) 300px; align-items:stretch; }
.mega-col{ position:relative; padding:38px 32px; opacity:0; transform:translateY(8px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.mega-col + .mega-col{ border-left:1px solid var(--line); }
.nav-item.mega-open .mega-col{ opacity:1; transform:translateY(0); }
.nav-item.mega-open .mega-col:nth-child(1){ transition-delay:.05s; }
.nav-item.mega-open .mega-col:nth-child(2){ transition-delay:.1s; }
.nav-item.mega-open .mega-col:nth-child(3){ transition-delay:.15s; }
.mega-col::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--accent); }
.mega-col::after{ content:""; position:absolute; top:4px; left:0; right:0; height:1px; background:rgba(185,154,91,.4); }
.mega-col.tone-a{ --accent:var(--crimson); }
.mega-col.tone-b{ --accent:var(--navy); }
.mega-col.tone-c{ --accent:var(--forest); }

.mega-col-top{ display:flex; align-items:baseline; gap:10px; margin-bottom:22px; }
.mega-index{ font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.05em; color:var(--accent); }
.mega-col h5{
  font-family:var(--serif); font-weight:600; font-size:1.22rem; color:var(--navy); margin:0;
}
.mega-col a{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-size:1rem; font-weight:500; color:var(--navy); text-decoration:none;
  padding:12px 14px; margin:0 -14px; border-radius:9px;
  transition:background .2s ease, color .2s ease;
}
.mega-col a:hover{ background:var(--mist); color:var(--accent); }
.mega-link-arrow{
  width:14px; height:14px; color:var(--accent); flex-shrink:0;
  opacity:0; transform:translateX(-6px);
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.mega-col a:hover .mega-link-arrow{ opacity:1; transform:translateX(0); }
.mega-col .mega-viewall{
  font-weight:700; border-bottom:1px solid var(--line); padding-bottom:16px; margin-bottom:9px;
}
.mega-viewall svg{ width:12px; height:12px; color:var(--accent); opacity:.75; flex-shrink:0; }
.mega-subhead{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate); margin:20px 0 8px; padding-top:16px;
  border-top:1px solid var(--line);
}

/* photographic feature card — closes out the mega menu */
.mega-visual{
  position:relative; display:block; text-decoration:none; overflow:hidden;
  opacity:0; transition:opacity .5s var(--ease); transition-delay:.2s;
}
.nav-item.mega-open .mega-visual{ opacity:1; }
.mega-visual img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 32%;
  filter:saturate(.82) contrast(1.02); transition:transform .6s var(--ease);
}
.mega-visual:hover img{ transform:scale(1.06); }
.mega-visual:active img{ transform:scale(1.03); }
.mega-visual::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,24,48,.1) 0%, rgba(11,20,38,.5) 55%, rgba(10,19,36,.94) 100%);
}
.mega-visual-overlay{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px;
  display:flex; flex-direction:column; gap:5px;
}
.mega-visual-eyebrow{ font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; color:var(--sage); }
.mega-visual-title{ font-family:var(--serif); font-weight:600; font-size:1.12rem; color:var(--white); line-height:1.28; }
.mega-visual-cta{ font-family:var(--sans); font-weight:700; font-size:.86rem; color:var(--white); margin-top:6px; display:inline-flex; align-items:center; gap:7px; }
.mega-visual-cta svg{ width:14px; height:14px; color:var(--sage); }

@media (min-width:900px){
  .header-utility{ display:block; }
  .brand-divider{ display:block; }
  .nav-desktop{ display:flex; gap:2px; }
  .header-cta{ display:inline-flex; }
  .header-mobile-actions{ display:none; }
}

/* --- hamburger + mobile drawer (premium, photographic hero, drill-down mega menu) --- */
.hamburger-btn{
  appearance:none; background:none; border:1.5px solid var(--line); border-radius:2px; cursor:pointer;
  width:42px; height:38px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.hamburger-btn span{ width:18px; height:1.6px; background:var(--navy); display:block; transition:transform .3s var(--ease), opacity .2s ease; }
.hamburger-btn.active span:nth-child(1){ transform:translateY(6.6px) rotate(45deg); }
.hamburger-btn.active span:nth-child(2){ opacity:0; }
.hamburger-btn.active span:nth-child(3){ transform:translateY(-6.6px) rotate(-45deg); }

.mobile-drawer{ position:fixed; inset:0; z-index:600; visibility:hidden; }
.mobile-drawer .backdrop{
  position:absolute; inset:0; background:rgba(11,24,48,.5); opacity:0; transition:opacity .35s ease;
  backdrop-filter:blur(1.5px);
}
.mobile-drawer .panel{
  position:absolute; top:0; right:0; height:100%; width:min(380px,88vw);
  background:var(--white); box-shadow:-24px 0 60px rgba(11,24,48,.3);
  transform:translateX(100%); transition:transform .45s var(--ease);
  display:flex; flex-direction:column; overflow:hidden;
}
.mobile-drawer.open{ visibility:visible; }
.mobile-drawer.open .backdrop{ opacity:1; }
.mobile-drawer.open .panel{ transform:translateX(0); }

/* photographic hero banner atop the drawer */
.mobile-drawer-hero{
  position:relative; flex-shrink:0; height:172px; overflow:hidden; background:var(--navy-deep);
}
.mobile-drawer-hero img{
  width:100%; height:100%; object-fit:cover; object-position:50% 38%;
  filter:saturate(.9) contrast(1.04);
}
.mobile-drawer-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,24,48,.25) 0%, rgba(11,24,48,.35) 45%, rgba(11,20,38,.94) 100%);
}
.mobile-drawer-hero-content{
  position:absolute; left:20px; right:20px; bottom:16px; z-index:2;
  display:flex; align-items:center; gap:12px;
}
.mobile-drawer-crest{
  width:34px; height:34px; border-radius:50%; border:1.5px solid rgba(255,255,255,.55);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  font-family:var(--serif); font-weight:700; font-size:1.05rem; color:var(--white);
}
.mobile-drawer-name{ font-family:var(--serif); font-weight:600; font-size:1.02rem; color:var(--white); letter-spacing:.01em; }
.mobile-drawer-credit{
  position:absolute; left:20px; top:16px; right:60px; z-index:2;
  font-family:var(--sans); font-size:.66rem; letter-spacing:.01em; line-height:1.3;
  color:rgba(255,255,255,.7);
}
.mobile-drawer-close{
  position:absolute; top:14px; right:16px; z-index:3;
  appearance:none; background:rgba(11,24,48,.4); border:1px solid rgba(255,255,255,.4); border-radius:50%;
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  color:var(--white); cursor:pointer; padding:0;
}
.mobile-drawer-close svg{ width:15px; height:15px; display:block; }

/* the sliding "scene": root nav + drill-down services panel */
.drawer-scene{ position:relative; flex:1; overflow:hidden; }
.mobile-nav-root, .mobile-services-panel{
  position:absolute; inset:0; overflow-y:auto; transition:transform .45s var(--ease);
  -webkit-overflow-scrolling:touch;
}
.mobile-nav-root{ transform:translateX(0); padding:8px 20px 28px; display:flex; flex-direction:column; }
.mobile-services-panel{ transform:translateX(100%); background:var(--white); }
.drawer-scene.services-open .mobile-nav-root{ transform:translateX(-28%); opacity:.35; pointer-events:none; }
.drawer-scene.services-open .mobile-services-panel{ transform:translateX(0); }

.mobile-nav-link{
  font-family:var(--serif); font-weight:500; font-size:1.08rem; color:var(--navy); text-decoration:none;
  padding:16px 0; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between;
  background:none; border-left:none; border-right:none; border-top:none; width:100%; text-align:left; cursor:pointer;
}
.mobile-nav-link:active{ color:var(--crimson); }
.mobile-nav-link .chev-r{ width:16px; height:16px; color:var(--crimson); flex-shrink:0; }
.mobile-nav-cta{ margin-top:24px; }

/* services drill-down head */
.mobile-services-head{
  position:sticky; top:0; z-index:2; background:var(--white); border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:12px; padding:16px 20px;
}
.mobile-services-back{
  appearance:none; background:none; border:none; cursor:pointer; padding:6px; margin:-6px;
  display:flex; align-items:center; gap:6px; color:var(--crimson); font-family:var(--sans); font-weight:700; font-size:.82rem;
  letter-spacing:.03em; text-transform:uppercase;
}
.mobile-services-back svg{ width:16px; height:16px; }
.mobile-services-title{ font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--navy); }
.mobile-services-body{ padding:18px 20px 30px; }
.mobile-services-viewall{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-family:var(--sans); font-weight:700; font-size:.86rem; color:var(--navy);
  text-decoration:none; padding:12px 14px; margin-bottom:20px;
  background:var(--mist); border-radius:8px;
}
.mobile-services-viewall svg{ width:14px; height:14px; color:var(--crimson); flex-shrink:0; }

/* service category cards */
.service-card{
  position:relative; border:1px solid var(--line); border-radius:12px; overflow:hidden;
  margin-bottom:18px; background:var(--white);
}
.service-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--accent); }
.service-card.tone-a{ --accent:var(--crimson); }
.service-card.tone-b{ --accent:var(--navy); }
.service-card.tone-c{ --accent:var(--forest); }
.service-card-head{ display:flex; align-items:baseline; gap:10px; padding:16px 16px 8px; }
.service-card-index{ font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.06em; color:var(--accent); }
.service-card-head h3{ font-family:var(--serif); font-weight:600; font-size:1.05rem; color:var(--navy); margin:0; }
.service-card-blurb{ padding:0 16px 12px; font-size:.86rem; color:var(--slate); line-height:1.5; }
.service-card-links{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.service-card-links a{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:11px 16px; font-family:var(--sans); font-weight:600; font-size:.9rem; color:var(--navy);
  text-decoration:none; border-bottom:1px solid var(--line);
}
.service-card-links a:last-child{ border-bottom:none; }
.service-card-links a svg{ width:12px; height:12px; color:var(--accent); flex-shrink:0; opacity:.7; }
.service-card-links a:active{ background:var(--mist); }



/* =========================================================
   HERO — contained editorial layout, framed portrait
   ========================================================= */
.hero{
  padding:clamp(56px,9vw,104px) 0 clamp(52px,7vw,88px); overflow:visible; position:relative;
  background:
    radial-gradient(1000px 560px at 6% -12%, rgba(21,41,78,.055), transparent 60%),
    radial-gradient(820px 460px at 102% 4%, rgba(140,42,51,.045), transparent 55%);
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.hero .wrap{ position:relative; z-index:1; }

.hero-v3-grid{
  display:grid; grid-template-columns:1fr; gap:clamp(48px,7vw,64px);
  align-items:center;
}
@media (min-width:900px){
  .hero-v3-grid{ grid-template-columns:minmax(0,1fr) 400px; column-gap:88px; }
}
@media (min-width:1180px){
  .hero-v3-grid{ grid-template-columns:minmax(0,1fr) 440px; column-gap:104px; }
}

/* --- copy column --- */
.hero-v3-copy{ max-width:640px; }

.hero-v3-kicker{ display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.hero-v3-kicker .rule{ width:34px; flex-shrink:0; display:flex; flex-direction:column; gap:3px; }
.hero-v3-kicker .rule::before{ content:""; display:block; height:1.5px; background:var(--crimson); }
.hero-v3-kicker .rule::after{ content:""; display:block; height:1px; width:70%; background:var(--gold); opacity:.7; }
.hero-v3-kicker .eyebrow{ margin:0; }

.hero-v3-copy h1{
  margin-bottom:38px;
  font-size:clamp(2.3rem,3.65vw,3.55rem);
  line-height:1.15;
}
.hero-v3-copy h1 .accent{ font-style:italic; font-weight:500; color:var(--crimson); }

.hero-v3-copy .hero-actions{
  display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-bottom:30px;
}
.btn-hero{
  position:relative;
  padding:18px 32px; font-size:.98rem;
  background:var(--crimson);
  text-shadow:0 1px 1px rgba(0,0,0,.32), 0 -1px 0 rgba(255,255,255,.06);
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px var(--crimson),
    inset 0 0 0 6.5px rgba(217,188,126,.55),
    0 20px 36px -16px rgba(140,42,51,.55);
}
.btn-hero .glyph{
  position:relative; z-index:2; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; margin-right:2px;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(217,188,126,.6);
}
.btn-hero .glyph svg{ width:16px; height:16px; position:relative; z-index:1; }
.btn-hero:hover{
  background:#7a2129;
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px #7a2129,
    inset 0 0 0 6.5px rgba(217,188,126,.7),
    0 26px 46px -16px rgba(140,42,51,.62);
}
.btn-hero:active{
  transform:translateY(0) scale(.98);
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px #7a2129,
    inset 0 2px 6px rgba(0,0,0,.25);
}

.hero-v3-copy .hero-micro{
  display:flex; flex-wrap:wrap; gap:24px; margin-bottom:0;
}
.hero-v3-copy .hero-micro span{
  font-size:.82rem; color:var(--slate); display:flex; align-items:center; gap:7px;
}
.hero-v3-copy .hero-micro span::before{
  content:""; width:5px; height:5px; background:var(--gold); flex-shrink:0;
  transform:rotate(45deg);
}

.hero-v3-creds{
  margin-top:46px; padding-top:22px; border-top:1px solid rgba(185,154,91,.35);
  display:flex; flex-wrap:wrap;
}
.hero-v3-creds span{
  font-family:var(--sans); font-weight:600; font-size:.7rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--slate);
  padding:2px 20px; border-left:1px solid rgba(185,154,91,.35);
}
.hero-v3-creds span:first-child{ border-left:none; padding-left:0; }

/* --- portrait column: elegant offset-mat frame, no bleed --- */
.hero-v3-portrait{ position:relative; }
@media (min-width:900px){
  .hero-v3-portrait{
    border-left:1px solid var(--line);
    padding-left:44px; margin-left:-44px;
  }
}
@media (min-width:1180px){
  .hero-v3-portrait{ padding-left:52px; margin-left:-52px; }
}

.portrait-frame{
  position:relative; aspect-ratio:4/5; max-width:400px; margin-inline:auto;
}
@media (min-width:900px){ .portrait-frame{ max-width:none; margin-inline:0; } }

.portrait-stage{
  position:absolute; z-index:-1; border-radius:10px; overflow:hidden;
  background:linear-gradient(155deg, var(--navy-deep) 0%, var(--navy) 100%);
  top:-16px; left:-16px; right:16px; bottom:16px;
}
.portrait-stage::before{
  content:""; position:absolute; inset:0; opacity:.26;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='40'/%3E%3Ccircle cx='56' cy='0' r='40'/%3E%3Ccircle cx='0' cy='56' r='40'/%3E%3Ccircle cx='56' cy='56' r='40'/%3E%3Ccircle cx='28' cy='28' r='18'/%3E%3C/g%3E%3C/svg%3E");
  background-size:56px 56px;
}
@media (min-width:900px){
  .portrait-stage{ top:-22px; left:-22px; right:22px; bottom:22px; }
}

.frame-accent{
  position:absolute; z-index:0; border-radius:8px;
  border:1.5px solid var(--crimson);
  top:16px; left:16px; right:-16px; bottom:-16px;
}
@media (min-width:900px){
  .frame-accent{ top:20px; left:20px; right:-20px; bottom:-20px; }
}

.frame-image{
  position:absolute; inset:0; z-index:1; border-radius:8px; overflow:hidden;
  box-shadow:
    0 8px 18px -10px rgba(11,24,48,.4),
    0 40px 70px -30px rgba(11,24,48,.55),
    inset 0 0 0 1px rgba(255,255,255,.06);
}
.frame-image img{ width:100%; height:100%; object-fit:cover; object-position:50% 15%; display:block; }
.frame-image::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(160deg, rgba(21,41,78,.14) 0%, rgba(11,24,48,.2) 100%);
  mix-blend-mode:soft-light;
}
.frame-image::before{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}

.portrait-caption{
  max-width:400px; margin:24px auto 0; padding-top:16px; border-top:1px solid rgba(185,154,91,.35);
}
@media (min-width:900px){ .portrait-caption{ max-width:none; margin-left:0; } }
.portrait-caption .name{ font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1.05rem; }
.portrait-caption .role{
  font-family:var(--sans); font-weight:600; color:var(--slate); font-size:.7rem;
  letter-spacing:.1em; text-transform:uppercase; margin-top:3px;
}

/* =========================================================
   PROOF ROW — a dark seal-strip. Where the hero is pale cotton
   paper and gold hairlines, this reverses the plate: ink-dark,
   foil-stamped numerals, engraved crosshatch instead of the
   lattice, sunburst rosettes standing in for guilloché circles.
   ========================================================= */
.proof-band{
  position:relative; overflow:hidden;
  background:linear-gradient(165deg, var(--navy-deep) 0%, #0c1a15 100%);
}
.proof-band::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg stroke='%23B99A5B' stroke-width='0.4' fill='none'%3E%3Cpath d='M0 16L16 0'/%3E%3Cpath d='M0 0L16 16'/%3E%3C/g%3E%3C/svg%3E");
  background-size:16px 16px;
}
.proof-band::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background-image:repeating-linear-gradient(90deg, rgba(185,154,91,.55) 0 1px, transparent 1px 13px);
}
.proof-band-foot{
  position:absolute; left:0; right:0; bottom:0; height:3px;
  background-image:repeating-linear-gradient(90deg, rgba(185,154,91,.55) 0 1px, transparent 1px 13px);
}
.proof-row{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr; gap:0;
  padding:clamp(44px,6vw,50px) 0;
}
@media (min-width:760px){
  .proof-row{ grid-template-columns:repeat(4,1fr); padding:clamp(60px,6vw,72px) 0; }
}

.proof-item{
  position:relative; padding:30px 0;
  border-top:1px solid rgba(185,154,91,.25);
}
.proof-item:first-child{ border-top:none; padding-top:0; }
@media (min-width:760px){
  .proof-item{ border-top:none; border-left:1px solid rgba(185,154,91,.25); padding:4px 40px; }
  .proof-item:first-child{ border-left:none; padding-left:0; }
  .proof-item:last-child{ padding-right:0; }
}
.proof-index{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:7px;
  font-family:var(--sans); font-weight:700; font-size:.68rem;
  letter-spacing:.18em; color:var(--gold-bright); margin-bottom:16px;
}
.proof-index::before{ content:""; width:4px; height:4px; border-radius:50%; background:var(--crimson); flex-shrink:0; }
.proof-num{
  position:relative; z-index:1;
  font-family:var(--serif); font-weight:600; color:var(--gold-bright);
  font-size:clamp(1.9rem,2.7vw,2.5rem); line-height:1.05;
}
.proof-label{
  position:relative; z-index:1;
  font-size:.88rem; color:var(--on-navy-dim); margin-top:10px; max-width:220px; line-height:1.5;
}

/* =========================================================
   SERVICES / ROUTER — expanding fan panels
   One row, one viewport at rest: three equal panels, each
   already carrying its blurb and a full-bleed numeral watermark
   so nothing reads empty before anyone touches it. Hover or tap
   one and it takes the space on an explicit, evenly-eased width
   change; its siblings settle into a labeled rail. Below tablet
   width this becomes a standard accordion.
   ========================================================= */
.section-head{ margin-bottom:44px; max-width:62ch; }
.section-head .eyebrow{ margin-bottom:14px; display:block; }
.section-head .h2{ margin-bottom:14px; }

.services-kicker{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.services-kicker::before, .services-kicker::after{ content:""; height:1px; background:var(--line); flex:1; }
.services-kicker-mark{
  width:6px; height:6px; border-radius:50%; border:1px solid var(--gold); flex-shrink:0;
}
.services-kicker .eyebrow{ margin:0; white-space:nowrap; }

.fan-rail{
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--white);
  box-shadow:0 36px 64px -40px rgba(11,24,48,.28);
}
@media (min-width:860px){
  .fan-rail{ flex-direction:row; min-height:clamp(460px,58vh,600px); }
}

.fan-panel{
  position:relative; overflow:hidden;
  border-bottom:1px solid var(--line);
  display:flex; flex-direction:column;
  background:var(--white);
}
.fan-panel:last-child{ border-bottom:none; }
.fan-panel.tone-light{ --accent:var(--crimson); --tint:#FBF2F2; }
.fan-panel.tone-navy{ --accent:var(--navy); --tint:#EFF2F8; }
.fan-panel.tone-deep{ --accent:var(--forest); --tint:#EEF3EE; }

.fan-panel::before{
  content:""; position:absolute; z-index:3; top:0; left:0; height:2px; right:0;
  background:var(--accent);
}

/* --- ghost numeral watermark: generous, load-bearing texture, not a garnish --- */
.fan-ghost{
  position:absolute; z-index:0; right:-.04em; bottom:-.12em;
  font-family:var(--serif); font-weight:700; line-height:.8;
  font-size:clamp(9rem,15vw,15rem); color:var(--accent); opacity:.07;
  pointer-events:none; user-select:none;
  transition:opacity .5s ease;
}
@media (max-width:859.98px){ .fan-ghost{ font-size:6.5rem; opacity:.05; } }
.fan-ring{
  display:none; position:absolute; z-index:0; right:-70px; bottom:-70px;
  width:230px; height:230px; border-radius:50%; border:1px solid var(--accent);
  opacity:.14; pointer-events:none;
}
@media (min-width:860px){ .fan-ring{ display:block; } }

/* --- hint affordance: quiet arrow, only shown at rest on desktop --- */
.fan-hint{
  position:absolute; z-index:3; top:24px; right:24px;
  width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line);
  display:none; align-items:center; justify-content:center; color:var(--slate);
  opacity:0; transition:opacity .3s ease, border-color .3s ease, color .3s ease;
}
.fan-hint svg{ width:14px; height:14px; }
@media (min-width:860px){
  .fan-hint{ display:flex; }
  .fan-rail:not(.has-active) .fan-panel .fan-hint{ opacity:1; }
  .fan-panel:hover .fan-hint{ border-color:var(--accent); color:var(--accent); }
}

@media (min-width:860px){
  .fan-panel{
    border-bottom:none; border-right:1px solid var(--line);
    flex:0 0 33.334%;
    will-change:flex-basis;
    transition:flex-basis .8s cubic-bezier(.22,1,.36,1), background-color .6s ease;
  }
  .fan-panel:last-child{ border-right:none; }
  .fan-rail.has-active .fan-panel{ flex-basis:21%; background-color:var(--mist); }
  .fan-rail.has-active .fan-panel.is-active{ flex-basis:58%; background-color:var(--tint); }
  .fan-panel.is-active .fan-ghost{ opacity:.09; }
  .fan-rail.has-active .fan-panel:not(.is-active) .fan-ghost{ opacity:.05; }
}

/* --- trigger: numeral + title + (mobile) chevron --- */
.fan-trigger{
  position:relative; z-index:2;
  appearance:none; background:none; border:none; cursor:pointer; font:inherit; text-align:left;
  display:flex; align-items:center; gap:16px; width:100%;
  padding:26px 28px;
}
.fan-num{ font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em; color:var(--accent); flex-shrink:0; }
.fan-title{ font-family:var(--serif); font-weight:700; font-size:clamp(1.2rem,1.05rem + 1.2vw,1.55rem); color:var(--navy); }
.fan-chevron{ margin-left:auto; width:18px; height:18px; color:var(--slate); flex-shrink:0; transition:transform .3s var(--ease); }
.fan-panel.is-active .fan-chevron{ transform:rotate(90deg); color:var(--accent); }

@media (min-width:860px){
  .fan-chevron{ display:none; }
  .fan-trigger{ padding:30px 56px 4px 28px; flex-shrink:0; align-items:flex-start; flex-direction:column; gap:10px; }
  .fan-panel.is-active .fan-trigger{ padding-top:34px; }
  .fan-rail.has-active .fan-panel:not(.is-active) .fan-trigger{
    flex-direction:column; align-items:flex-start; justify-content:flex-start;
    height:100%; padding:26px 0 26px 24px; gap:20px;
  }
  .fan-rail.has-active .fan-panel:not(.is-active) .fan-title{
    writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; font-size:1.05rem;
  }
}

/* --- blurb: always present at rest on desktop, so panels never read empty --- */
.fan-blurb{
  position:relative; z-index:2;
  margin:0; padding:14px 28px 0; color:var(--slate);
}
@media (min-width:860px){
  .fan-blurb{ padding:0 28px; max-width:34ch; }
  .fan-panel.is-active .fan-blurb{ font-size:1.05rem; line-height:1.62; max-width:46ch; }
}

/* --- extra: view-all + real links, revealed only once a panel is active --- */
.fan-extra{ position:relative; z-index:2; }
@media (max-width:859.98px){
  .fan-extra{ margin-top:18px; }
}
@media (min-width:860px){
  .fan-extra{
    margin-top:26px; opacity:0; max-height:0; overflow:hidden; pointer-events:none;
    transition:opacity .3s ease;
  }
  .fan-panel.is-active .fan-extra{
    opacity:1; max-height:none; overflow:visible; pointer-events:auto;
    transition:opacity .45s ease .18s;
  }
}

/* mobile accordion mechanics: whole content column (blurb + extra) collapses together */
@media (max-width:859.98px){
  .fan-content{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease); }
  .fan-panel.is-active .fan-content{ grid-template-rows:1fr; }
  .fan-content-inner{ overflow:hidden; min-height:0; }
}
@media (min-width:860px){
  .fan-content{ flex:1; overflow:visible; }
  .fan-content-inner{ height:100%; display:flex; flex-direction:column; }
  .fan-rail.has-active .fan-panel:not(.is-active) .fan-content{ display:none; }
}

.link-viewall{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:0 28px 14px; padding-bottom:12px;
  font-family:var(--sans); font-weight:700; font-size:.88rem; color:var(--navy);
  text-decoration:none; border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
}
.link-viewall svg{ width:14px; height:14px; flex-shrink:0; transition:transform .2s var(--ease); }
.link-viewall:hover{ color:var(--accent); }
.link-viewall:hover svg{ transform:translateX(3px); }
.fan-panel.is-active .link-viewall{ font-size:.95rem; }

.link-list{
  list-style:none; margin:0 28px 28px; padding:0;
  display:grid; grid-template-columns:1fr; column-gap:28px;
}
@media (min-width:480px) and (max-width:859.98px){ .link-list{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1180px){ .link-list{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:860px){ .fan-panel.is-active .link-list{ grid-template-columns:repeat(2,1fr); } }
.link-list li{ border-bottom:1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); }
.link-list li:last-child{ border-bottom:none; }
@media (min-width:1180px){
  .link-list li:nth-last-child(2):nth-child(odd){ border-bottom:none; }
}
@media (min-width:860px){
  .fan-panel.is-active .link-list li:nth-last-child(2):nth-child(odd){ border-bottom:none; }
}
.link-list a{
  display:flex; align-items:center; gap:11px;
  font-family:var(--sans); font-weight:600; font-size:.93rem; color:var(--navy);
  text-decoration:none; line-height:1.3;
  padding:12px 4px; margin:0 -4px;
  transition:color .18s ease, gap .18s ease;
}
.link-arrow{ width:13px; height:13px; color:var(--accent); flex-shrink:0; transition:transform .22s var(--ease); }
.link-list a:hover{ color:var(--accent); gap:15px; }
.link-list a:hover .link-arrow{ transform:translateX(3px); }
.fan-panel.is-active .link-list a{ font-size:.95rem; }

/* staggered reveal of links as a panel opens, on desktop */
@media (min-width:860px){
  .link-list li{ opacity:0; transform:translateY(6px); transition:opacity .4s ease, transform .4s ease; }
  .fan-panel.is-active .link-list li{ opacity:1; transform:none; }
  .fan-panel.is-active .link-list li:nth-child(1){ transition-delay:.2s; }
  .fan-panel.is-active .link-list li:nth-child(2){ transition-delay:.24s; }
  .fan-panel.is-active .link-list li:nth-child(3){ transition-delay:.28s; }
  .fan-panel.is-active .link-list li:nth-child(4){ transition-delay:.32s; }
  .fan-panel.is-active .link-list li:nth-child(5){ transition-delay:.36s; }
  .fan-panel.is-active .link-list li:nth-child(n+6){ transition-delay:.4s; }
}

.services-foot{ margin-top:32px; }
.services-cta{
  position:relative;
  display:flex; flex-direction:column; gap:24px; align-items:flex-start;
  padding:34px 36px; border-radius:14px;
  background:linear-gradient(135deg, var(--mist) 0%, #EBEEF6 100%);
  border:1px solid rgba(185,154,91,.4);
}
.services-cta::before, .services-cta::after{
  content:""; position:absolute; z-index:1; width:14px; height:14px; pointer-events:none;
  border-top:1px solid var(--gold); opacity:.75;
}
.services-cta::before{ top:9px; left:9px; border-left:1px solid var(--gold); }
.services-cta::after{ top:9px; right:9px; border-right:1px solid var(--gold); }
@media (min-width:700px){
  .services-cta{ flex-direction:row; align-items:center; gap:28px; }
}
.services-cta-icon{
  flex-shrink:0; width:52px; height:52px; border-radius:50%;
  background:var(--white); border:1px solid rgba(185,154,91,.55);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.9), inset 0 0 0 4px rgba(185,154,91,.2);
  display:flex; align-items:center; justify-content:center; color:var(--crimson);
}
.services-cta-icon svg{ width:20px; height:20px; }
.services-cta-text{ flex:1; min-width:0; }
.services-cta-label{ font-family:var(--serif); font-weight:700; font-size:1.28rem; color:var(--navy); margin:0; }
.services-cta-sub{ font-size:.92rem; color:var(--slate); margin:6px 0 0; }
.services-cta-btn{
  position:relative;
  flex-shrink:0; width:100%; justify-content:center;
  padding:17px 30px; font-size:.96rem;
  background:var(--crimson);
  text-shadow:0 1px 1px rgba(0,0,0,.3), 0 -1px 0 rgba(255,255,255,.06);
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px var(--crimson),
    inset 0 0 0 6.5px rgba(217,188,126,.55),
    0 18px 32px -16px rgba(140,42,51,.5);
}
.services-cta-btn .glyph{ position:relative; z-index:1; }
@media (min-width:700px){ .services-cta-btn{ width:auto; } }
.services-cta-btn:hover{
  background:#7a2129;
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px #7a2129,
    inset 0 0 0 6.5px rgba(217,188,126,.7),
    0 24px 42px -16px rgba(140,42,51,.58);
}
.services-cta-btn:active{
  transform:translateY(0) scale(.98);
  box-shadow:
    inset 0 0 0 1.5px var(--gold-bright),
    inset 0 0 0 5px #7a2129,
    inset 0 2px 6px rgba(0,0,0,.25);
}

/* =========================================================
   PROBLEM SECTION — three checks, plain and direct
   ========================================================= */
/* =========================================================
   PROBLEM SECTION — three checks, each stamped with its own
   verification seal. The one motif from the brief we haven't
   used yet: an actual hallmark, earned by what the copy claims,
   not applied as decoration.
   ========================================================= */
.section-sage{ background:#F5E9E1; }

.problem-grid{ display:grid; grid-template-columns:1fr; gap:0; margin-top:8px; }
@media (min-width:860px){ .problem-grid{ grid-template-columns:repeat(3,1fr); } }

.problem-item{ padding:32px 0; border-top:1px solid rgba(185,154,91,.3); }
.problem-item:first-child{ border-top:none; padding-top:0; }
@media (min-width:860px){
  .problem-item{ border-top:none; border-left:1px solid rgba(185,154,91,.3); padding:4px 44px; }
  .problem-item:first-child{ border-left:none; padding-left:0; }
  .problem-item:last-child{ padding-right:0; }
}

.problem-tag{
  display:block; font-family:var(--sans); font-weight:700; font-size:.7rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--crimson); margin-bottom:18px;
}
.problem-item h3{ font-size:1.4rem; margin-bottom:18px; }
.problem-seal{
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.problem-seal svg{ width:34px; height:34px; color:var(--crimson); flex-shrink:0; }
.problem-seal::after{ content:""; flex:1; height:1px; background:rgba(185,154,91,.4); }
.problem-item .body-text{ color:var(--slate); }

/* =========================================================
   DIFFERENTIATOR — SEAL TIMELINE (signature element)
   The path splits in two: a muted, ordinary path for what most
   firms do, a visible break at "documents signed," then a bold
   crimson path for what Verity keeps doing after everyone else
   has closed the file.
   ========================================================= */
.timeline{
  display:flex; flex-direction:column; gap:0; margin-top:56px;
  padding:36px 28px 28px; border-radius:14px;
  background:linear-gradient(180deg, #FCFAF7 0%, #F6F2EC 100%);
  border:1px solid rgba(185,154,91,.3);
  box-shadow:0 40px 70px -44px rgba(11,24,48,.3), inset 0 1px 0 rgba(255,255,255,.6);
}
@media (min-width:940px){ .timeline{ flex-direction:row; align-items:flex-start; padding:44px 40px 36px; } }

.tl-node{ display:flex; gap:20px; padding:24px 0; position:relative; }
@media (min-width:940px){
  .tl-node{ flex-direction:column; align-items:center; text-align:center; flex:1; padding:0 14px; gap:18px; }
}

.tl-medallion{
  width:46px; height:46px; border-radius:50%; flex-shrink:0; position:relative; z-index:2;
  display:flex; align-items:center; justify-content:center;
  background:var(--white); border:1.5px solid var(--line); color:var(--slate);
  box-shadow:inset 0 2px 4px rgba(21,41,78,.1), inset 0 -1px 0 rgba(255,255,255,.8);
  transition:all .3s ease;
}
.tl-medallion svg{ width:18px; height:18px; }

.tl-node.stage-open .tl-medallion{ color:var(--slate); border-color:var(--line); }

.tl-node.stage-flag .tl-medallion{
  width:54px; height:54px; background:var(--navy); border-color:var(--navy); color:var(--white);
  box-shadow:0 10px 22px -10px rgba(11,24,48,.45), 0 0 0 3px rgba(217,188,126,.4);
}
.tl-node.stage-flag .tl-medallion svg{ width:20px; height:20px; }

.tl-node.stage-funded .tl-medallion,
.tl-node.stage-ongoing .tl-medallion{
  width:60px; height:60px;
  background:
    repeating-radial-gradient(circle at 50% 50%, rgba(255,224,168,.16) 0 1px, transparent 1px 4.5px),
    radial-gradient(120% 120% at 32% 26%, #a3363f 0%, var(--crimson) 55%, #6e2028 100%);
  border-color:var(--crimson); color:var(--white);
  box-shadow:
    inset 0 0 0 1px rgba(217,188,126,.55),
    inset 0 2px 3px rgba(255,255,255,.32), inset 0 -6px 14px rgba(0,0,0,.32),
    0 16px 30px -14px rgba(140,42,51,.55);
}
.tl-node.stage-funded .tl-medallion svg,
.tl-node.stage-ongoing .tl-medallion svg{ width:22px; height:22px; }

@media (prefers-reduced-motion:no-preference){
  .tl-node.stage-ongoing .tl-medallion{ animation:tl-pulse 2.6s ease-in-out infinite; }
}
@keyframes tl-pulse{
  0%,100%{ box-shadow:inset 0 0 0 1px rgba(217,188,126,.55), inset 0 2px 3px rgba(255,255,255,.32), inset 0 -6px 14px rgba(0,0,0,.32), 0 0 0 0 rgba(140,42,51,.45); }
  50%{ box-shadow:inset 0 0 0 1px rgba(217,188,126,.55), inset 0 2px 3px rgba(255,255,255,.32), inset 0 -6px 14px rgba(0,0,0,.32), 0 0 0 12px rgba(140,42,51,0); }
}

/* connecting rail: muted gray before the break, dashed at the break, solid crimson after */
.tl-node:not(:last-child)::after{
  content:""; position:absolute; left:23px; top:70px; bottom:-24px; width:1.5px; background:var(--line);
}
@media (min-width:940px){
  .tl-node:not(:last-child)::after{ left:auto; right:-50%; top:27px; bottom:auto; width:100%; height:1.5px; }
}
.tl-node.stage-flag::after{
  background:none; border-left:2px dashed var(--crimson); width:0;
}
@media (min-width:940px){
  .tl-node.stage-flag::after{ border-left:none; border-top:2px dashed var(--crimson); height:0; width:100%; }
}
.tl-node.stage-funded::after{ background:var(--crimson); width:2px; }
@media (min-width:940px){ .tl-node.stage-funded::after{ height:2px; width:100%; } }

.tl-content{ padding-top:2px; }
.tl-content p{ font-weight:600; color:var(--navy); font-size:.98rem; }
.tl-node.stage-funded .tl-content p,
.tl-node.stage-ongoing .tl-content p{ font-weight:700; }
.tl-flag{
  display:inline-flex; align-items:center; gap:6px;
  margin-top:9px; font-size:.66rem; font-weight:700; letter-spacing:.09em;
  text-transform:uppercase; color:var(--crimson); border:1px dashed var(--crimson); padding:4px 10px; border-radius:20px;
}

.timeline-cta{ margin-top:48px; display:flex; }


/* =========================================================
   BIO
   ========================================================= */
#attorney{
  position:relative; overflow:hidden;
  background:linear-gradient(155deg, #EEF1F7 0%, #F1EAE3 100%);
}
#attorney::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg stroke='%2315294E' stroke-width='0.4' fill='none'%3E%3Cpath d='M0 16L16 0'/%3E%3Cpath d='M0 0L16 16'/%3E%3C/g%3E%3C/svg%3E");
  background-size:16px 16px;
}
#attorney .wrap{ position:relative; z-index:1; }

.bio-kicker{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.bio-kicker::after{ content:""; height:1px; background:rgba(185,154,91,.4); flex:1; }
.bio-kicker .eyebrow{ margin:0; white-space:nowrap; }

.bio-grid{ display:grid; grid-template-columns:1fr; gap:48px; }
@media (min-width:920px){ .bio-grid{ grid-template-columns:1fr 1.1fr; gap:72px; align-items:start; } }

.bio-portrait{ position:relative; }
.bio-frame-accent{
  position:absolute; z-index:0; border:1.5px solid var(--crimson); border-radius:6px;
  top:-18px; left:-18px; right:18px; bottom:18px;
}
.bio-frame-image{
  position:relative; z-index:1; aspect-ratio:4/5; border-radius:6px; overflow:hidden;
  box-shadow:0 34px 64px -30px rgba(11,24,48,.5);
}
.bio-frame-image img{ width:100%; height:100%; object-fit:cover; object-position:50% 15%; display:block; }
.bio-hallmark{
  position:absolute; z-index:2; width:30px; height:30px; border-radius:50%;
  border:1px solid var(--gold); bottom:-15px; right:16px;
  background:var(--white); box-shadow:0 4px 10px rgba(11,24,48,.2);
}
.bio-hallmark::before{
  content:""; position:absolute; inset:4px; border-radius:50%; border:1px solid rgba(185,154,91,.5);
}

.bio-name{ margin-bottom:6px; }
.bio-title{ font-size:.95rem; color:var(--crimson); font-weight:600; margin-bottom:14px; display:block; }
.bio-signature-rule{ display:block; width:44px; height:1px; background:var(--gold); margin-bottom:22px; }
.bio-text-col p+p{ margin-top:16px; }
.bio-text-col > p:first-of-type::first-letter{
  font-family:var(--serif); font-weight:600; font-size:3.4rem; line-height:.78; float:left;
  padding:4px 8px 0 0; color:var(--crimson);
}

.bio-credential{
  position:relative; overflow:hidden;
  margin-top:32px; padding:24px 28px;
  border:1px solid rgba(185,154,91,.4); background:linear-gradient(155deg, #FBF6F1 0%, #F5E9E1 100%);
  border-radius:8px;
}
.bio-credential-tag{
  position:relative; z-index:1;
  display:block; font-family:var(--sans); font-weight:700; font-size:.7rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--crimson); margin-bottom:8px;
}
.bio-credential p{ position:relative; z-index:1; margin:0; color:var(--navy); font-weight:600; font-size:.98rem; line-height:1.5; }

.bio-cta{
  margin-top:32px;
  background:linear-gradient(155deg, #FBF6F1 0%, var(--parchment, #F5E9E1) 100%) !important;
  color:var(--navy) !important;
  box-shadow:
    inset 0 0 0 1px rgba(185,154,91,.5),
    inset 0 2px 4px rgba(140,42,51,.06),
    0 10px 20px -14px rgba(11,24,48,.3) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.8), 0 -1px 0 rgba(140,42,51,.12);
}
.bio-cta::before{ display:none; }
.bio-cta:hover{
  background:linear-gradient(155deg, #FBF6F1 0%, #F0E1D2 100%) !important;
  transform:translateY(-3px);
  box-shadow:
    inset 0 0 0 1px rgba(185,154,91,.7),
    0 16px 28px -14px rgba(11,24,48,.35) !important;
}
.bio-cta:active{ transform:translateY(0) scale(.98); box-shadow:inset 0 2px 6px rgba(140,42,51,.1) !important; }

/* =========================================================
   REVIEWS — testimonial cards, each carrying a small folded
   ribbon seal in the corner (an endorsement mark, fitting for
   this section specifically — trust made visible, not just claimed)
   ========================================================= */
#reviews{ position:relative; overflow:hidden; background:linear-gradient(180deg, #FFFFFF 0%, #F6F2EC 100%); }
#reviews::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='42'/%3E%3Ccircle cx='60' cy='0' r='42'/%3E%3Ccircle cx='0' cy='60' r='42'/%3E%3Ccircle cx='60' cy='60' r='42'/%3E%3Ccircle cx='30' cy='30' r='19'/%3E%3C/g%3E%3C/svg%3E");
  background-size:60px 60px;
}
#reviews .wrap{ position:relative; z-index:1; }
#reviews .reviews-marquee{ position:relative; z-index:1; }

.rating-badge{
  position:relative;
  display:inline-flex; align-items:center; gap:16px;
  padding:14px 24px; margin-bottom:52px;
  background:var(--white); border:1px solid rgba(185,154,91,.4); border-radius:100px;
  box-shadow:0 20px 40px -28px rgba(11,24,48,.25), inset 0 1px 0 rgba(255,255,255,.6);
}
.rating-badge::before{
  content:""; position:absolute; z-index:-1; left:50%; top:50%; width:200px; height:200px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(185,154,91,.14) 0%, transparent 70%);
}
.stars{ display:flex; gap:3px; color:var(--crimson); }
.stars svg{ width:17px; height:17px; }
.rating-badge .divider{ width:1px; height:18px; background:rgba(185,154,91,.5); }
.rating-badge .label{ font-size:.88rem; color:var(--navy); font-weight:600; }

.reviews-marquee{
  position:relative; width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  overflow:hidden; padding:8px 0 28px;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.reviews-track{
  display:flex; gap:28px; width:max-content; padding:8px var(--edge);
  animation:reviews-scroll 60s linear infinite;
}
.reviews-marquee:hover .reviews-track{ animation-play-state:paused; }
@media (prefers-reduced-motion:reduce){ .reviews-track{ animation:none; } }
@keyframes reviews-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

.review-card{
  position:relative; overflow:hidden; flex-shrink:0;
  width:320px;
  background:linear-gradient(165deg, #FFFFFF 0%, #FBF8F4 100%); padding:38px 30px 30px;
  border:1px solid rgba(185,154,91,.3); border-radius:10px;
  box-shadow:0 22px 42px -28px rgba(11,24,48,.22), inset 0 1px 0 rgba(255,255,255,.9);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
@media (min-width:700px){ .review-card{ width:360px; } }
@media (min-width:880px){
  .review-card:hover{
    transform:translateY(-6px); box-shadow:0 32px 56px -26px rgba(11,24,48,.3); z-index:2;
  }
}
.review-card.tone-a{ --accent:var(--crimson); }
.review-card.tone-b{ --accent:var(--navy); }
.review-card.tone-c{ --accent:var(--forest); }
.review-card::before{
  content:""; position:absolute; z-index:2; top:0; left:0; right:0; height:2px; background:var(--accent);
}
.review-card .ghost-mark{
  position:absolute; z-index:0; top:-.1em; right:.05em;
  font-family:var(--serif); font-weight:700; font-size:7.5rem; line-height:1;
  color:var(--accent); opacity:.07; pointer-events:none; user-select:none;
}
.review-seal{
  position:absolute; z-index:2; top:0; left:26px; width:20px; height:26px;
  background:var(--accent); clip-path:polygon(0 0, 100% 0, 100% 100%, 50% 78%, 0 100%);
  opacity:.9;
}
.review-seal::after{
  content:""; position:absolute; left:50%; top:6px; width:7px; height:7px; border-radius:50%;
  border:1px solid rgba(255,255,255,.65); transform:translateX(-50%);
}
.review-card .mark{
  position:relative; z-index:1; font-family:var(--serif); font-size:2.1rem;
  color:var(--accent); line-height:1; margin-bottom:6px;
}
.review-card p.quote{
  position:relative; z-index:1; font-family:var(--serif); font-size:1.08rem;
  line-height:1.55; color:var(--navy); font-style:italic;
}
.review-card .who{
  position:relative; z-index:1; margin-top:22px; padding-top:16px; border-top:1px solid rgba(185,154,91,.3);
  font-size:.76rem; font-weight:700; color:var(--slate); letter-spacing:.06em; text-transform:uppercase;
}

/* =========================================================
   FAQ — indexed, two-column, with a real open-state.
   Deliberately the quiet section: no added lattice or
   crosshatch here — just tone and gold, since not every
   section needs its own texture. Restraint is the point.
   ========================================================= */
#faq{
  position:relative;
  background:
    radial-gradient(900px 400px at 8% 0%, rgba(185,154,91,.08), transparent 60%),
    radial-gradient(900px 400px at 92% 100%, rgba(185,154,91,.08), transparent 60%),
    var(--mist);
}

.faq-kicker{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.faq-kicker::after{ content:""; height:1px; background:rgba(185,154,91,.4); flex:1; }
.faq-kicker .eyebrow{ margin:0; white-space:nowrap; }

.faq-columns{ display:grid; grid-template-columns:1fr; border-top:1px solid rgba(185,154,91,.35); }
@media (min-width:760px){
  .faq-columns{ grid-template-columns:1fr 1fr; column-gap:0; }
  .faq-col + .faq-col{ border-left:1px solid rgba(185,154,91,.35); padding-left:48px; }
  .faq-col:first-child{ padding-right:48px; }
}

.faq-item{
  position:relative; border-bottom:1px solid rgba(185,154,91,.3);
  padding-left:22px; margin-left:-22px;
  border-left:3px solid transparent;
  transition:border-color .3s ease, background-color .3s ease;
}
.faq-item.open{ background:rgba(255,255,255,.55); border-left-color:var(--crimson); }

.faq-q{
  width:100%; display:flex; align-items:center; gap:16px;
  background:none; border:none; text-align:left; cursor:pointer; padding:24px 0;
  font-family:var(--serif); font-weight:500; font-size:1.05rem; color:var(--navy);
}
.faq-index{
  flex-shrink:0; width:24px; font-family:var(--sans); font-weight:700;
  font-size:.72rem; letter-spacing:.06em; color:var(--crimson);
}
.faq-q-text{ flex:1; min-width:0; }
.faq-q:hover .faq-q-text{ color:var(--crimson); }
.faq-item.open .faq-q-text{ color:var(--crimson); }

.faq-chev{
  position:relative; flex-shrink:0; width:30px; height:30px; border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.5);
  display:flex; align-items:center; justify-content:center; color:var(--crimson);
  transition:transform .35s var(--ease), box-shadow .3s ease, background .3s ease;
}
.faq-chev svg{ width:14px; height:14px; position:relative; z-index:1; }
.faq-item.open .faq-chev{
  transform:rotate(135deg); color:var(--white);
  background:linear-gradient(180deg, #9c313b 0%, var(--crimson) 55%, #7a2129 100%);
  box-shadow:inset 0 0 0 1px rgba(217,188,126,.7), inset 0 1px 2px rgba(255,255,255,.25);
}

.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-a-inner{ position:relative; padding:0 46px 26px 40px; max-width:60ch; border-left:1px solid rgba(185,154,91,.35); margin-left:11px; }

/* =========================================================
   FINAL CTA — reimagined as a signed letter, not a generic
   action card. Split composition on wide screens (statement
   / document), stacked on mobile. Guilloché bookends the hero;
   the phone glyph shares the hero button's coin language —
   same object, first and last thing on the page.
   ========================================================= */
.final-cta{ position:relative; overflow:hidden; }
.final-cta::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.final-cta .wrap{ position:relative; z-index:1; }

.final-cta-grid{
  display:grid; grid-template-columns:1fr; gap:44px; text-align:center; justify-items:center;
}
@media (min-width:980px){
  .final-cta-grid{ grid-template-columns:1fr 1.05fr; gap:64px; text-align:left; justify-items:stretch; align-items:center; }
}

.final-cta-statement{ display:flex; flex-direction:column; align-items:center; }
@media (min-width:980px){ .final-cta-statement{ align-items:flex-start; } }
.final-cta .rule{ width:34px; flex-shrink:0; display:flex; flex-direction:column; gap:3px; margin-bottom:24px; }
.final-cta .rule::before{ content:""; display:block; height:1.5px; background:var(--crimson); }
.final-cta .rule::after{ content:""; display:block; height:1px; width:70%; background:var(--gold); opacity:.8; }
@media (min-width:980px){ .final-cta .rule::after{ margin:0; } }
.final-cta .eyebrow{ margin-bottom:20px; }
.final-cta h2{ color:var(--white); max-width:15ch; margin-bottom:18px; }
.final-cta-statement-sub{ color:var(--on-navy-dim); font-size:1.02rem; max-width:38ch; line-height:1.6; }

.final-cta-card{ position:relative; width:100%; max-width:460px; }
@media (min-width:980px){
  .final-cta-card::after{
    content:""; position:absolute; z-index:0; left:50%; top:50%; width:640px; height:640px;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle, rgba(217,188,126,.14) 0%, transparent 62%);
    pointer-events:none;
  }
}
.final-cta-card-accent{
  position:absolute; z-index:1; border:1.5px solid var(--crimson); border-radius:16px;
  top:-16px; left:-16px; right:16px; bottom:16px;
}
.final-cta-card-inner{
  position:relative; z-index:2; background:var(--white); border-radius:16px;
  padding:clamp(32px,5vw,44px) clamp(28px,5vw,40px);
  box-shadow:0 44px 80px -32px rgba(0,0,0,.55);
}
.final-cta-card-inner::before, .final-cta-card-inner::after{
  content:""; position:absolute; z-index:2; width:16px; height:16px; pointer-events:none;
  border-top:1px solid var(--gold); opacity:.7;
}
.final-cta-card-inner::before{ top:10px; left:10px; border-left:1px solid var(--gold); }
.final-cta-card-inner::after{ top:10px; right:10px; border-right:1px solid var(--gold); }

.final-cta-letterhead{
  display:flex; flex-direction:column; align-items:center;
  margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid rgba(185,154,91,.35);
}
.final-cta-letterhead img{ height:32px; width:auto; display:block; }

.final-cta-card .lede{
  color:var(--slate); margin:0 0 26px; max-width:none; font-size:1.02rem; text-align:center;
}

.final-cta-phone{
  display:flex; align-items:center; gap:16px; text-decoration:none; cursor:pointer;
  padding:16px 22px; border-radius:14px; background:var(--mist);
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.35);
  transition:background .2s ease, box-shadow .2s ease, transform .2s var(--ease);
}
.final-cta-phone:hover{
  background:#F5EEE0; box-shadow:inset 0 0 0 1px rgba(185,154,91,.6), 0 0 0 5px rgba(185,154,91,.12), 0 14px 26px -14px rgba(11,24,48,.3);
  transform:translateY(-3px);
}
.final-cta-phone:active{
  transform:translateY(0) scale(.985); transition-duration:.08s;
  background:#F0E7D6; box-shadow:inset 0 2px 6px rgba(0,0,0,.08);
}
.final-cta-phone .glyph-circle{
  position:relative; width:56px; height:56px; border-radius:50%; flex-shrink:0;
  background:
    repeating-radial-gradient(circle at 50% 50%, rgba(255,224,168,.16) 0 1px, transparent 1px 4.5px),
    linear-gradient(180deg, #9c313b 0%, var(--crimson) 55%, #7a2129 100%);
  display:flex; align-items:center; justify-content:center; color:var(--white);
  box-shadow:
    inset 0 0 0 1px rgba(217,188,126,.55),
    inset 0 2px 3px rgba(255,255,255,.28), inset 0 -4px 10px rgba(0,0,0,.28),
    0 14px 28px -12px rgba(140,42,51,.55);
  transition:transform .25s var(--ease);
}
.final-cta-phone .glyph-circle svg{ width:22px; height:22px; position:relative; z-index:1; }
.final-cta-phone:hover .glyph-circle{ transform:scale(1.08); }
.final-cta-number-col{ display:flex; flex-direction:column; gap:2px; text-align:left; }
.final-cta-number{
  font-family:var(--serif); font-weight:700; font-size:2rem; line-height:1.1; color:var(--navy);
  transition:color .2s ease;
}
.final-cta-phone:hover .final-cta-number{ color:var(--crimson); }

@media (max-width:479.98px){
  .final-cta-phone{ padding:13px 16px; gap:12px; width:100%; justify-content:center; }
  .final-cta-phone .glyph-circle{ width:42px; height:42px; }
  .final-cta-phone .glyph-circle svg{ width:17px; height:17px; }
  .final-cta-number{ font-size:1.3rem; white-space:nowrap; }
}

.final-cta-card .final-microcopy{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 20px;
  margin-top:26px; padding-top:22px; border-top:1px solid rgba(185,154,91,.35);
}
.final-cta-card .final-microcopy span{
  display:flex; align-items:center; gap:7px;
  font-size:.78rem; font-weight:600; letter-spacing:.03em; color:var(--slate); white-space:nowrap;
}
.final-cta-card .final-microcopy span::before{
  content:""; width:5px; height:5px; border-radius:50%; flex-shrink:0;
  background:var(--forest);
}



/* =========================================================
   FOOTER — the closing signature. The crest recast in gold
   as the site's own hallmark (was pale blue-gray, now the same
   foil tone as everything else). Restrained deliberately —
   the flourish was already spent on the final CTA; this is
   the quiet part after.
   ========================================================= */
footer.site{
  background:var(--navy-deep); color:var(--on-navy-dim); padding:64px 0 30px;
  position:relative; overflow:hidden; border-top:1px solid rgba(185,154,91,.55);
}
footer.site .ghost-crest{
  position:absolute; right:-160px; bottom:-180px; width:680px; height:816px;
  opacity:.07; pointer-events:none; z-index:0;
}
footer.site .wrap{ position:relative; z-index:1; }

.footer-statement{ padding-bottom:48px; margin-bottom:48px; border-bottom:1px solid rgba(185,154,91,.2); }
.footer-statement .rule{ width:34px; display:flex; flex-direction:column; gap:3px; margin-bottom:26px; }
.footer-statement .rule::before{ content:""; display:block; height:1.5px; background:var(--crimson); }
.footer-statement .rule::after{ content:""; display:block; height:1px; width:70%; background:var(--gold); opacity:.8; }
.footer-statement p{
  font-family:var(--serif); font-style:italic; font-weight:500; color:var(--white);
  font-size:clamp(1.7rem,3.4vw,2.7rem); line-height:1.28; max-width:17ch; margin:0;
}

.footer-cols{ display:grid; grid-template-columns:1fr; gap:44px; }
@media (min-width:760px){
  .footer-cols{ grid-template-columns:1.2fr 1fr 1fr 1fr 1fr; gap:32px; }
  .footer-cols .footer-col + .footer-col{ border-left:1px solid rgba(185,154,91,.2); padding-left:16px; margin-left:-16px; }
}
.footer-col h4{
  color:var(--on-navy); font-family:var(--sans); font-weight:600; font-size:.74rem;
  letter-spacing:.14em; text-transform:uppercase; margin:0 0 16px;
}
.footer-col a{ display:block; font-size:.87rem; color:var(--on-navy-dim); text-decoration:none; padding:5px 0; }
.footer-col a:hover{ color:var(--white); }
.footer-brand p{ font-size:.87rem; color:var(--on-navy-dim); line-height:1.7; }
.footer-brand .meta-label{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); margin-top:16px; }
.footer-phone{
  display:inline-flex; align-items:center; gap:9px; margin-top:12px;
  font-family:var(--sans); font-weight:700; font-size:1.08rem; color:var(--white); text-decoration:none;
}
.footer-phone svg{ width:16px; height:16px; color:var(--gold-bright); flex-shrink:0; }
.footer-email{ display:block; margin-top:6px; font-size:.87rem; color:var(--on-navy-dim); text-decoration:none; }
.footer-email:hover{ color:var(--white); }

.footer-legal{ margin-top:52px; padding-top:24px; border-top:1px solid rgba(185,154,91,.2); display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; }
.footer-legal p{ font-size:.76rem; color:var(--on-navy-dim); opacity:.75; }

/* =========================================================
   MOBILE STICKY CALL BAR
   ========================================================= */
.sticky-call{
  position:fixed; left:0; right:0; bottom:0; z-index:400;
  padding:12px var(--edge); background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border-top:1px solid var(--line); box-shadow:0 -10px 24px -18px rgba(15,30,60,.3);
  transform:translateY(0); transition:transform .3s var(--ease);
}
.sticky-call .btn{ width:100%; justify-content:center; }
@media (min-width:900px){ .sticky-call{ display:none; } }

/* focus visibility */
:focus-visible{ outline:2px solid var(--crimson); outline-offset:2px; }

/* =========================================================
   LOADING SCREEN — pure typography, no drawn shapes. The
   wordmark settles into focus and a single gold rule strikes
   underneath it, like foil stamping meeting paper.
   ========================================================= */
html.is-loading, html.is-loading body{ overflow:hidden; height:100%; }
.loading-screen{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy-deep);
  transition:opacity .7s var(--ease), visibility .7s;
}
.loading-screen::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.loading-screen.is-done{ opacity:0; visibility:hidden; pointer-events:none; }

.loading-inner{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; }

.loading-word{
  display:inline-block;
  font-family:var(--serif); font-weight:700;
  background:linear-gradient(180deg, #F3E3C4 0%, var(--gold-bright) 45%, #C9A662 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
  font-size:clamp(2rem, 9vw, 4.2rem); letter-spacing:.08em; line-height:1.3; padding-bottom:.1em;
  padding-left:.08em; /* optically re-center for the tracking */
  filter:drop-shadow(0 0 26px rgba(217,188,126,.35));
  opacity:0; transform:scale(1.05);
  animation:lword-in 1.3s var(--ease) .1s forwards;
}
@keyframes lword-in{
  0%{ opacity:0; transform:scale(1.05); filter:blur(6px) drop-shadow(0 0 26px rgba(217,188,126,0)); }
  100%{ opacity:1; transform:scale(1); filter:blur(0) drop-shadow(0 0 26px rgba(217,188,126,.35)); }
}

.loading-sub{
  margin-top:14px;
  font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--gold-bright);
  opacity:0; animation:lsub-in .8s ease .8s forwards;
}
@keyframes lsub-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }

.loading-rule{
  margin-top:26px; width:64px; height:1px; background:rgba(185,154,91,.25); overflow:hidden;
  opacity:0; animation:lrule-in .5s ease 1.1s forwards;
}
.loading-rule::after{
  content:""; display:block; width:100%; height:100%; background:var(--gold-bright);
  transform:translateX(-100%); animation:lrule-fill 1.1s var(--ease) 1.2s forwards;
}
@keyframes lrule-in{ to{ opacity:1; } }
@keyframes lrule-fill{ to{ transform:translateX(0); } }

@media (prefers-reduced-motion:reduce){
  .loading-word{ animation:none; opacity:1; transform:none; filter:drop-shadow(0 0 26px rgba(217,188,126,.35)); }
  .loading-sub, .loading-rule{ animation:none; opacity:1; filter:none; transform:none; }
  .loading-rule::after{ animation:none; transform:translateX(0); }
}

/* =========================================================
   INNER PAGE COMPONENTS — shared across every service/detail
   page. Built on the same tokens, textures and button system
   as the homepage: guilloché ground on the hero, gold hairline
   kickers, tone-cycling cards, the seal-timeline for process
   steps, the parchment bio card, and the same FAQ accordion.
   ========================================================= */

/* breadcrumb */
.crumb{
  font-family:var(--sans); font-size:.78rem; color:var(--slate);
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  padding:14px var(--edge) 0; max-width:var(--max); margin:0 auto;
}
.crumb a{ color:var(--slate); text-decoration:none; }
.crumb a:hover{ color:var(--navy); }
.crumb .sep{ color:var(--line); }
.crumb .here{ color:var(--navy); font-weight:600; }

/* ---------- PAGE HERO ---------- */
.svc-hero{
  position:relative; overflow:hidden; background:var(--mist);
  min-height:calc(100vh - var(--hero-offset, 112px));
  min-height:calc(100svh - var(--hero-offset, 112px));
  display:flex; flex-direction:column; justify-content:flex-start;
  padding:clamp(40px,7vh,72px) 0 clamp(40px,7vw,72px);
}
.svc-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.svc-hero-inner{
  position:relative; z-index:1; max-width:1360px; margin:0 auto; padding:20px var(--edge) 0;
  display:grid; grid-template-columns:1fr; gap:32px;
}
@media(min-width:900px){ .svc-hero-inner{ grid-template-columns:1fr 320px; align-items:center; gap:64px; } }
@media(min-width:1200px){ .svc-hero-inner{ grid-template-columns:1fr 360px; gap:80px; } }
.svc-hero-photo{
  order:0; border-radius:14px; overflow:hidden; aspect-ratio:4/5; position:relative;
  box-shadow:0 26px 50px -28px rgba(11,24,48,.35);
  width:100%; max-width:260px; margin:0 auto;
}
@media(min-width:900px){ .svc-hero-photo{ order:2; max-width:none; width:100%; margin:0; } }
.svc-hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block; }
.svc-hero-photo::after{
  content:""; position:absolute; inset:0; border:1px solid rgba(185,154,91,.4); border-radius:14px; pointer-events:none;
}
.svc-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--crimson); padding-bottom:10px; border-bottom:2px solid rgba(185,154,91,.4); margin-bottom:16px;
}
.svc-hero h1{
  font-family:var(--serif); font-weight:700; color:var(--navy); margin:0 0 16px;
  font-size:clamp(1.9rem, 1.5rem + 2vw, 2.9rem); line-height:1.14; letter-spacing:-.01em;
}
.svc-hero .lede{ font-size:1.07rem; color:var(--slate); line-height:1.68; max-width:60ch; }
.svc-hero .lede-2{ margin-top:1.1em; }
.svc-hero-cta{ margin-top:24px; }
.svc-hero-micro{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.svc-chip{
  font-family:var(--sans); font-size:.78rem; font-weight:600; color:var(--forest);
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:20px;
  background:rgba(46,90,56,.08);
}
.svc-chip::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--forest); }
.svc-hero-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.svc-badge{
  font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.04em; color:var(--navy);
  border:1px solid rgba(185,154,91,.45); border-radius:6px; padding:6px 10px; background:var(--white);
}

/* ---------- SECTION KICKER (reused everywhere a heading needs the hairline+eyebrow device) ---------- */
.svc-kicker{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.svc-kicker::before{ content:""; width:24px; height:1px; background:rgba(185,154,91,.5); }
.svc-kicker span{ font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.svc-h2{ font-family:var(--serif); font-weight:700; font-size:clamp(1.4rem, 1.15rem + 1.1vw, 2rem); color:var(--navy); margin:0 0 8px; }
.svc-sub{ color:var(--slate); font-size:.98rem; max-width:62ch; margin:0 0 28px; line-height:1.6; }

/* ---------- DIRECTORY GRID (What X Does / What X Doesn't Do) ---------- */
.dir-grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width:640px){ .dir-grid{ grid-template-columns:1fr 1fr; } }
.dir-card{
  position:relative; background:var(--white); border-radius:10px; padding:22px 20px 20px;
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.25); display:flex; gap:14px;
  transition:box-shadow .25s ease, transform .25s ease;
}
.dir-card:hover{ transform:translateY(-2px); box-shadow:inset 0 0 0 1px rgba(185,154,91,.5), 0 16px 28px -20px rgba(11,24,48,.3); }
.dir-card .dir-icon{
  flex-shrink:0; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--white); font-family:var(--serif); font-size:1rem;
}
.dir-card.tone-a .dir-icon{ background:linear-gradient(180deg,#9c313b,var(--crimson)); }
.dir-card.tone-b .dir-icon{ background:linear-gradient(180deg,#22386A,var(--navy)); }
.dir-card.tone-c .dir-icon{ background:linear-gradient(180deg,#3a6b46,var(--forest)); }
.dir-title{ font-family:var(--serif); font-weight:700; font-size:1.02rem; color:var(--navy); margin-bottom:6px; }
.dir-card p{ color:var(--slate); font-size:.9rem; line-height:1.6; margin:0; }
.dir-link{
  display:inline-flex; align-items:center; gap:4px; margin-top:10px;
  font-family:var(--sans); font-weight:700; font-size:.82rem; color:var(--crimson); text-decoration:none;
}
.dir-link:hover{ text-decoration:underline; }

/* ---------- PHOTO BAND ---------- */
.photo-band{ width:100%; aspect-ratio:21/9; overflow:hidden; }
.photo-band img{ width:100%; height:100%; object-fit:cover; display:block; }
@media(max-width:640px){ .photo-band{ aspect-ratio:4/3; } }

/* ---------- PROBLEM / MISTAKES GRID (reuses the homepage verification-seal motif) ---------- */
.mist-grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:760px){ .mist-grid{ grid-template-columns:repeat(3,1fr); } }
.mist-card{ position:relative; padding-left:26px; }
.mist-seal{
  position:absolute; left:0; top:2px; width:16px; height:16px;
}
.mist-seal svg{ width:100%; height:100%; }
.mist-title{ font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1rem; margin:0 0 6px; }
.mist-card p{ color:var(--slate); font-size:.9rem; line-height:1.6; margin:0; }

/* ---------- PRICING TIERS ---------- */
.tier-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
@media(min-width:760px){ .tier-grid{ grid-template-columns:repeat(3,1fr); } }
.tier-card{
  background:var(--white); border-radius:12px; padding:26px 22px; position:relative;
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.3), 0 20px 40px -30px rgba(11,24,48,.25);
}
.tier-rule{ width:36px; height:3px; background:var(--gold); border-radius:2px; margin-bottom:14px; }
.tier-eyebrow{ font-family:var(--serif); font-weight:700; font-size:1.15rem; color:var(--navy); margin-bottom:8px; }
.tier-desc{ color:var(--slate); font-size:.88rem; line-height:1.55; margin-bottom:16px; }
.tier-list-label{ font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.tier-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.tier-list li{ font-size:.86rem; color:var(--navy); padding-left:18px; position:relative; line-height:1.5; }
.tier-list li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }

/* ---------- PROCESS STEPS (simplified seal-timeline, restrained sibling of the homepage version) ---------- */
.method-list{ display:flex; flex-direction:column; gap:0; max-width:720px; }
.method-step{ display:flex; gap:18px; padding:18px 0; border-top:1px solid rgba(185,154,91,.25); }
.method-step:first-child{ border-top:none; }
.method-num{
  flex-shrink:0; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-weight:700; color:var(--white); background:linear-gradient(180deg,#9c313b,var(--crimson));
  box-shadow:inset 0 0 0 1.5px rgba(217,188,126,.7);
  font-size:.95rem;
}
.method-step-title{ font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1rem; margin:0 0 4px; }
.method-step p{ color:var(--slate); font-size:.88rem; line-height:1.55; margin:0; }

/* ---------- BIO / TRUST CALLOUT (parchment card, echoes the homepage bio credential card) ---------- */
.svc-bio{
  display:grid; grid-template-columns:1fr; gap:28px; align-items:start; max-width:960px;
}
@media(min-width:760px){ .svc-bio{ grid-template-columns:200px 1fr; gap:36px; } }
.svc-bio-photo{ border-radius:12px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 3px 0 var(--crimson); }
.svc-bio-photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block; }
.svc-bio-name{ font-family:var(--serif); font-weight:700; font-size:1.3rem; color:var(--navy); }
.svc-bio-title{ font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); display:block; margin:2px 0 14px; }
.svc-bio p{ color:var(--slate); font-size:.95rem; line-height:1.65; margin:0 0 10px; }
.svc-fact-rule{ margin-top:18px; padding-top:16px; border-top:1px solid rgba(185,154,91,.35); display:flex; flex-direction:column; gap:8px; }
.svc-fact-row{ display:flex; align-items:baseline; gap:10px; font-size:.86rem; }
.svc-fact-row .tag{ font-family:var(--serif); font-weight:700; color:var(--crimson); min-width:52px; }
.svc-fact-row .desc{ color:var(--slate); }

/* ---------- FINAL CTA (condensed sibling of the homepage letter-CTA: same navy guilloché ground, foil button, gold rule) ---------- */
.svc-final{
  position:relative; overflow:hidden; background:linear-gradient(180deg,var(--navy-deep),#0d1c37);
  padding:clamp(48px,8vw,80px) var(--edge); text-align:center;
}
.svc-final::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23D9BC7E' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.svc-final-inner{ position:relative; z-index:1; max-width:600px; margin:0 auto; }
.svc-final h2{ font-family:var(--serif); font-weight:700; color:var(--white); font-size:clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); margin:0 0 10px; }
.svc-final .lede{ color:var(--on-navy); font-size:1rem; margin:0 0 26px; }
.svc-final-micro{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.svc-final-micro .svc-chip{ background:rgba(255,255,255,.08); color:var(--on-navy-dim); }
.svc-final-micro .svc-chip::before{ background:var(--gold-bright); }

/* section rhythm helpers */
.svc-section{ padding:clamp(40px,7vw,72px) var(--edge); }
.svc-section.on-alt{ background:var(--mist); }
.svc-section.on-alt2{ background:#F5E9E1; }
.svc-section-inner{ max-width:var(--max); margin:0 auto; }


/* =========================================================
   SPECIAL PAGE COMPONENTS
   ========================================================= */

/* ---------- STATEMENT BAND (stands in for the wireframe photo band:
   an engraved navy rule-band carrying the page's own promise) ---------- */
.stmt-band{
  position:relative; overflow:hidden; background:var(--navy);
  padding:clamp(38px,6vw,60px) var(--edge); text-align:center;
}
.stmt-band::before{
  content:""; position:absolute; inset:0; opacity:.09; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23D9BC7E' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.stmt-inner{ position:relative; z-index:1; max-width:720px; margin:0 auto; }
.stmt-rule{ width:44px; height:1px; background:rgba(217,188,126,.6); margin:0 auto 18px; }
.stmt-band p{
  font-family:var(--serif); font-style:italic; color:var(--white);
  font-size:clamp(1.15rem, 1rem + .8vw, 1.5rem); line-height:1.5; margin:0;
}
.stmt-band .stmt-rule:last-child{ margin:18px auto 0; }

/* ---------- ABOUT: credential timeline ---------- */
.tl{ display:flex; flex-direction:column; max-width:760px; }
.tl-item{ display:grid; grid-template-columns:96px 1fr; gap:18px; padding:20px 0; border-top:1px solid rgba(185,154,91,.28); }
.tl-item:first-child{ border-top:none; }
@media(max-width:560px){ .tl-item{ grid-template-columns:1fr; gap:6px; } }
.tl-year{
  font-family:var(--serif); font-weight:700; color:var(--crimson); font-size:1.02rem;
  letter-spacing:.01em; padding-top:1px;
}
.tl-title{ font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1rem; margin:0 0 5px; }
.tl-item p{ color:var(--slate); font-size:.9rem; line-height:1.6; margin:0; }

/* ---------- REVIEWS ---------- */
.stars{ display:inline-flex; gap:3px; color:var(--gold); }
.stars svg{ width:16px; height:16px; }
.rating-hero{ text-align:center; max-width:680px; margin:0 auto; }
.rating-big{
  font-family:var(--serif); font-weight:700; color:var(--navy);
  font-size:clamp(2.6rem, 2rem + 2.4vw, 3.6rem); line-height:1; margin:14px 0 8px;
}
.rating-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:14px 0 22px; }
.rating-row .label{ font-family:var(--sans); font-size:.82rem; color:var(--slate); }

.rev-wall{ columns:1; column-gap:20px; }
@media(min-width:700px){ .rev-wall{ columns:2; } }
@media(min-width:1040px){ .rev-wall{ columns:3; } }
.rw-card{
  break-inside:avoid; margin:0 0 20px; background:var(--white); border-radius:12px;
  padding:26px 24px 22px; position:relative;
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.28), 0 18px 34px -28px rgba(11,24,48,.3);
}
.rw-mark{
  font-family:var(--serif); font-size:2.6rem; line-height:1; color:rgba(185,154,91,.4);
  display:block; margin-bottom:2px;
}
.rw-card p{ color:var(--ink); font-size:.96rem; line-height:1.62; margin:0 0 14px; }
.rw-who{
  font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--slate); display:flex; align-items:center; gap:8px;
}
.rw-who::before{ content:""; width:16px; height:1px; background:var(--gold); }

/* ---------- CONTACT ---------- */
.call-hero{ text-align:center; max-width:680px; margin:0 auto; }
.big-phone{
  display:block; font-family:var(--serif); font-weight:700; color:var(--navy);
  font-size:clamp(2.2rem, 1.6rem + 2.6vw, 3.4rem); line-height:1; letter-spacing:-.01em;
  text-decoration:none; margin:22px 0 20px;
}
.big-phone:hover{ color:var(--crimson); }
.contact-cols{ display:grid; grid-template-columns:1fr; gap:28px; align-items:start; }
@media(min-width:860px){ .contact-cols{ grid-template-columns:1fr 1fr; gap:44px; } }
.info-strip{ display:flex; flex-direction:column; }
.info-row{ display:grid; grid-template-columns:38px 1fr; gap:16px; padding:20px 0; border-top:1px solid rgba(185,154,91,.28); }
.info-row:first-child{ border-top:none; padding-top:0; }
.info-ico{
  width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:var(--gold-bright); flex-shrink:0;
}
.info-ico svg{ width:16px; height:16px; }
.info-label{
  font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gold); margin-bottom:5px;
}
.info-strong{ font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1rem; margin:0 0 4px; }
.info-row p{ color:var(--slate); font-size:.88rem; line-height:1.55; margin:0; }
.info-row a{ color:var(--navy); text-decoration:none; }
.info-row a:hover{ color:var(--crimson); text-decoration:underline; }
.map-frame{
  border-radius:12px; overflow:hidden; box-shadow:inset 0 0 0 1px rgba(185,154,91,.35), 0 20px 40px -30px rgba(11,24,48,.3);
  background:var(--mist);
}
.map-frame iframe{ display:block; width:100%; height:380px; border:0; filter:saturate(.85) contrast(1.02); }

/* ---------- FILTER CHIPS (FAQ + reviews) ---------- */
.filter-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.filter-chip{
  font-family:var(--sans); font-weight:600; font-size:.8rem; color:var(--slate);
  padding:7px 15px; border-radius:20px; cursor:pointer; background:transparent;
  border:1px solid var(--line); transition:all .2s var(--ease);
}
.filter-chip:hover{ border-color:var(--gold); color:var(--navy); }
.filter-chip.active{ background:var(--navy); border-color:var(--navy); color:var(--white); }
.faq-group[hidden]{ display:none; }
.faq-group-label{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold); margin:0 0 14px;
  padding-bottom:10px; border-bottom:1px solid rgba(185,154,91,.3);
}
.faq-stack{ display:flex; flex-direction:column; margin-bottom:42px; }
.faq-stack:last-child{ margin-bottom:0; }

/* ---------- RELATED LINKS ---------- */
.rel-grid{ display:grid; grid-template-columns:1fr; gap:12px; }
@media(min-width:640px){ .rel-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:960px){ .rel-grid{ grid-template-columns:repeat(3,1fr); } }
.rel-link{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 18px; border-radius:10px; text-decoration:none; background:var(--white);
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.28);
  font-family:var(--serif); font-weight:700; color:var(--navy); font-size:.98rem;
  transition:all .25s var(--ease);
}
.rel-link:hover{ box-shadow:inset 0 0 0 1px rgba(185,154,91,.6); transform:translateY(-2px); color:var(--crimson); }
.rel-link svg{ width:16px; height:16px; flex-shrink:0; color:var(--gold); }

/* intro already seen this session — no flash, no replay */
html.intro-seen .loading-screen{ display:none !important; }

/* client quotes shown alongside the attorney bio */
.bio-proof{ margin-top:38px; }
.bio-proof .rating-row{ margin:0 0 18px; }


/* =========================================================
   REDESIGNED INNER-PAGE COMPONENTS (rolled out sitewide from the
   special-needs-trust.html design pass): accordion cards, credential
   grid bio, tone-coded pricing cards, horizontal process steps,
   review marquee, and the footer pull-quote.
   ========================================================= */

/* page-only adjustment: distribute the hero content across the full
   viewport instead of clustering it at the top, with more breathing
   room between headline, copy, CTA and chips. Scoped to this page only. */
.svc-hero{ justify-content:center; }
.svc-hero-inner{ gap:72px; }
.svc-hero h1{ margin-bottom:24px; }
.svc-hero .lede{ margin-bottom:2px; }
.svc-hero .lede-2{ margin-top:1.5em; }
.svc-hero-cta{ margin-top:36px; }
.svc-hero-micro{ margin-top:22px; }
.svc-hero h1 .h1-kicker{
  display:block; font-family:var(--sans); font-weight:700; font-size:.92rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--crimson); margin-bottom:10px;
}
.svc-hero h1 .h1-main{ display:block; }
.h2-lg{ font-size:clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); line-height:1.15; letter-spacing:-.01em; margin-bottom:12px; }

/* "What it does" redesigned as a light accordion instead of six
   always-expanded text blocks — titles are scannable at a glance,
   detail is one click away instead of all showing at once. */
.dir-grid-acc .dir-card, .mist-grid .dir-card{
  display:block; padding:0; overflow:hidden; box-shadow:inset 0 0 0 1px rgba(185,154,91,.25);
}
.dir-grid-acc .dir-card:hover, .mist-grid .dir-card:hover{ transform:none; box-shadow:inset 0 0 0 1px rgba(185,154,91,.25); }
.dir-acc-q{
  width:100%; display:flex; align-items:center; gap:14px; text-align:left;
  background:transparent; border:0; padding:18px 20px; margin:0; cursor:pointer;
  font:inherit; color:inherit; transition:background-color .2s ease;
}
.dir-acc-q:hover{ background:rgba(185,154,91,.07); }
.dir-acc-title{ font-family:var(--serif); font-weight:700; font-size:1.12rem; color:var(--navy); flex:1; line-height:1.4; }
.dir-acc-chev{ flex-shrink:0; width:16px; height:16px; color:var(--gold); transition:transform .3s var(--ease); }
.dir-acc-q[aria-expanded="true"] .dir-acc-chev{ transform:rotate(180deg); }
.dir-acc-a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.dir-acc-a-inner{ padding:0 20px 20px 70px; }
.dir-acc-a-inner p{ color:var(--slate); font-size:.9rem; line-height:1.6; margin:0; }

/* more breathing room on desktop — collapsed rows were reading as too
   short/dense; mobile keeps the tighter spacing since screen room is scarce */
@media(min-width:900px){
  .dir-grid-acc{ gap:22px; }
  .dir-acc-q{ padding:30px 28px; }
  .dir-acc-a-inner{ padding:0 28px 28px 82px; }
}

/* same "more room to breathe on desktop" treatment for every other
   section on the page — mobile is untouched, screen room is scarce there */
@media(min-width:900px){
  .svc-section{ padding:clamp(56px,8vw,104px) var(--edge); }
  .proof-band .proof-row{ padding:clamp(72px,7vw,96px) 0; }
  .stmt-band{ padding:clamp(52px,7vw,84px) var(--edge); }
  .svc-final{ padding:clamp(64px,9vw,108px) var(--edge); }
  .pad-lg{ padding:clamp(72px,10vw,144px) 0; }

  .mist-grid{ gap:34px; }
  .tier-grid{ gap:28px; }
  .tier-card{ padding:32px 28px; }
  .method-step{ padding:26px 0; gap:22px; }
  .svc-bio{ gap:44px; }
}

/* "Common Mistakes" cards get the same boxed-accordion treatment as the
   other card sections — bigger, boxed, and collapsed by default */
.mist-acc-icon{
  flex-shrink:0; width:36px; height:36px; border-radius:50%; display:flex;
  align-items:center; justify-content:center; color:var(--crimson);
  box-shadow:inset 0 0 0 1.5px rgba(140,42,51,.35);
}
.mist-acc-icon svg{ width:18px; height:18px; }

/* pricing cards redesigned for clearer hierarchy: a tone-coded top edge and
   icon replace the plain gold dash, a divider separates the description from
   the checklist, and checklist bullets use a mark instead of an em-dash */
.tier-card{ position:relative; overflow:hidden; padding-top:34px; }
.tier-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
}
.tier-card.tone-a::before{ background:linear-gradient(90deg,#9c313b,var(--crimson)); }
.tier-card.tone-b::before{ background:linear-gradient(90deg,#22386A,var(--navy)); }
.tier-card.tone-c::before{ background:linear-gradient(90deg,#3a6b46,var(--forest)); }

.tier-icon{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%; margin-bottom:18px;
}
.tier-icon svg{ width:20px; height:20px; }
.tier-card.tone-a .tier-icon{ color:var(--crimson); box-shadow:inset 0 0 0 1.5px rgba(140,42,51,.35); }
.tier-card.tone-b .tier-icon{ color:var(--navy); box-shadow:inset 0 0 0 1.5px rgba(21,41,78,.3); }
.tier-card.tone-c .tier-icon{ color:var(--forest); box-shadow:inset 0 0 0 1.5px rgba(46,90,56,.3); }

.tier-divider{ height:1px; background:rgba(185,154,91,.28); margin:20px 0 16px; }

.tier-list li{ padding-left:22px; }
.tier-list li::before{
  content:""; position:absolute; left:0; top:.3em; width:13px; height:13px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B99A5B' stroke-width='2.6'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat;
}

/* bigger checklist text, taller cards, and a closing CTA under the tiers */
.tier-card{ padding-bottom:40px; }
.tier-list{ gap:13px; }
.tier-list li{ font-size:.98rem; line-height:1.55; padding-left:24px; }
.tier-list li::before{ width:15px; height:15px; top:.28em; }
@media(min-width:900px){
  .tier-card{ padding-top:40px; padding-bottom:48px; }
}

.tier-cta{ text-align:center; margin-top:40px; }
.tier-cta p{
  font-family:var(--serif); font-style:italic; color:var(--slate);
  font-size:1.02rem; margin:0 0 20px;
}

/* process step title + description, a little bigger for readability */
.method-step-title{ font-size:1.08rem; }
.method-step p{ font-size:.96rem; line-height:1.6; }

/* bring real body/content text up to at least the size of the process-step
   description (.96rem / 15.36px) — labels, kickers, breadcrumbs, chips,
   and decorative indices are left alone on purpose, they're meant to be
   quieter than the text people are actually reading */
.dir-acc-a-inner p{ font-size:.96rem; line-height:1.6; }
.dir-acc-a-inner .dir-link{ font-size:.96rem; }
.tier-desc{ font-size:.96rem; line-height:1.6; }
.svc-bio p{ font-size:.96rem; }
.svc-fact-row .desc{ font-size:.96rem; }
.svc-fact-row .tag{ font-size:1rem; }
.proof-label{ font-size:.96rem; }
.rating-row .label{ font-size:.96rem; }

/* process steps as a horizontal row instead of a stacked list — more
   spacious, and reads as a timeline rather than a form to fill out */
.method-list-h{
  display:grid; grid-template-columns:1fr; gap:36px; position:relative; max-width:none;
}
@media(min-width:700px){
  .method-list-h{ grid-template-columns:repeat(2,1fr); row-gap:44px; column-gap:40px; }
}
@media(min-width:1100px){
  .method-list-h{ grid-template-columns:repeat(4,1fr); column-gap:36px; }
  .method-list-h::before{
    content:""; position:absolute; top:22px; left:2.5%; right:2.5%; height:1px;
    background:rgba(185,154,91,.35); z-index:0;
  }
}
.method-step-h{
  display:flex; flex-direction:column; align-items:flex-start;
  position:relative; z-index:1; border-top:none; padding:0;
}
.method-step-h .method-num{ margin-bottom:20px; }
.method-step-h .method-step-title{ font-size:1.08rem; margin-bottom:8px; }
.method-step-h p{ font-size:.96rem; }

/* attorney bio: credentials redesigned as a card grid instead of a plain
   stacked list, and a small label bridges into the reviews below */
.cred-grid{
  display:grid; grid-template-columns:1fr; gap:14px; margin-top:0; padding-top:0; border-top:none;
}
@media(min-width:640px){ .cred-grid{ grid-template-columns:1fr 1fr; gap:16px; } }
@media(min-width:1000px){ .cred-grid{ grid-template-columns:repeat(3,1fr); gap:18px; } }

/* the bio block was capped narrow, leaving a large empty gap on wide
   screens — widen it and let the photo grow to match */
@media(min-width:1000px){
  .svc-bio{ max-width:1280px; grid-template-columns:300px 1fr; gap:52px; align-items:stretch; }
.svc-bio-photo{ aspect-ratio:auto; height:100%; }
}

/* client reviews: wrapped in a panel so it stands out from the page
   around it, and the cards scroll continuously instead of sitting still */
.reviews-showcase{
  margin-top:48px; padding:32px 28px; border-radius:16px;
  background:linear-gradient(180deg, #FBF8F2, #F5EFE3);
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.4);
  position:relative; overflow:hidden;
}
.reviews-showcase::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23B99A5B' stroke-width='0.5'%3E%3Ccircle cx='0' cy='0' r='45'/%3E%3Ccircle cx='64' cy='0' r='45'/%3E%3Ccircle cx='0' cy='64' r='45'/%3E%3Ccircle cx='64' cy='64' r='45'/%3E%3Ccircle cx='32' cy='32' r='20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:64px 64px;
}
.reviews-showcase .bio-proof-label,
.reviews-showcase .rating-row{ position:relative; z-index:1; }
.reviews-showcase .rating-row{ margin-bottom:0; }

.rev-marquee{
  position:relative; z-index:1; margin-top:26px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.rev-track{
  display:flex; gap:20px; width:max-content;
  animation:rev-scroll 52s linear infinite;
}
.rev-marquee:hover .rev-track{ animation-play-state:paused; }
.rev-track .rw-card{
  flex:0 0 300px; margin:0; background:var(--white);
}
@keyframes rev-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce){ .rev-track{ animation:none; } }

/* more texture/detail on each testimonial card: a tone-cycled top edge,
   a per-card star row, a bolder quote mark, and a faint paper-like grain */
.rev-track .rw-card{
  position:relative; overflow:hidden; padding-top:24px;
}
.rev-track .rw-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
}
.rev-track .rw-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6'%3E%3Ccircle cx='1' cy='1' r='.5' fill='%23000' fill-opacity='.025'/%3E%3C/svg%3E");
}
.rev-track .rw-card:nth-child(3n+1)::before{ background:linear-gradient(90deg,#9c313b,var(--crimson)); }
.rev-track .rw-card:nth-child(3n+2)::before{ background:linear-gradient(90deg,#22386A,var(--navy)); }
.rev-track .rw-card:nth-child(3n)::before{ background:linear-gradient(90deg,#3a6b46,var(--forest)); }

.rev-track .rw-mark{ font-size:3.2rem; color:rgba(185,154,91,.55); position:relative; z-index:1; }
.rev-track .rw-card p{ position:relative; z-index:1; }
.rev-track .rw-who{ position:relative; z-index:1; }

/* footer closing quote, redesigned as a proper editorial pull-quote
   instead of plain italic text with typed quote marks */
.footer-statement{ padding-top:8px; text-align:center; }
.footer-quote-mark{
  display:block; font-family:var(--serif); font-size:5rem; line-height:.5;
  color:rgba(185,154,91,.5); margin-bottom:14px;
}
.footer-statement p{
  max-width:26ch; margin-left:auto; margin-right:auto; letter-spacing:-.01em;
  font-size:clamp(1.8rem, 1.4rem + 1.8vw, 2.9rem);
  background-image:linear-gradient(100deg, var(--white) 0%, var(--white) 38%, var(--gold-bright) 50%, var(--white) 62%, var(--white) 100%);
  background-size:250% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:footer-quote-shimmer 14s ease-in-out infinite alternate;
}
@keyframes footer-quote-shimmer{
  0%{ background-position:150% 0; }
  100%{ background-position:-50% 0; }
}
@media(prefers-reduced-motion:reduce){
  .footer-statement p{ animation:none; background:none; -webkit-text-fill-color:unset; color:var(--white); }
}
.cred-card{
  display:flex; align-items:flex-start; gap:14px; padding:18px 20px; border-radius:10px;
  background:var(--white); box-shadow:inset 0 0 0 1px rgba(185,154,91,.28);
  transition:box-shadow .25s ease, transform .25s ease;
}
.cred-card:hover{ box-shadow:inset 0 0 0 1px rgba(185,154,91,.55), 0 14px 26px -20px rgba(11,24,48,.28); transform:translateY(-2px); }
.cred-icon{
  flex-shrink:0; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--crimson); box-shadow:inset 0 0 0 1.5px rgba(140,42,51,.32);
}
.cred-icon svg{ width:18px; height:18px; }
.cred-tag{ display:block; font-family:var(--serif); font-weight:700; color:var(--crimson); font-size:1rem; margin-bottom:3px; }
.cred-desc{ display:block; color:var(--slate); font-size:.92rem; line-height:1.5; }

.bio-proof-label{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px;
}



/* soft, slow shimmer sweep on every CTA button, sitewide */
.btn-hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(115deg,
    transparent 40%,
    rgba(255,255,255,.22) 48%,
    rgba(255,255,255,.4) 50%,
    rgba(255,255,255,.22) 52%,
    transparent 60%);
  background-repeat:no-repeat;
  background-size:250% 250%;
  background-position:108% 0;
  animation:btn-shimmer 7s ease-in-out infinite;
}
@keyframes btn-shimmer{
  0%{ background-position:108% 0; }
  71%{ background-position:-8% 0; }
  100%{ background-position:-8% 0; }
}
@media(prefers-reduced-motion:reduce){
  .btn-hero::after{ animation:none; display:none; }
}

/* fills the leftover empty grid cell when an odd card count leaves a
   gap, with an inviting CTA instead of dead white space */
.grid-cta-cell{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:16px; padding:28px 24px;
  border-radius:10px; background:var(--mist);
  box-shadow:inset 0 0 0 1px rgba(185,154,91,.3);
}
.grid-cta-cell p{
  font-family:var(--serif); font-style:italic; color:var(--navy);
  font-size:1rem; margin:0; max-width:26ch;
}
.btn-hero-sm{ padding:12px 22px; font-size:.85rem; }
.btn-hero-sm .glyph{ width:24px; height:24px; }
.btn-hero-sm .glyph svg{ width:14px; height:14px; }
