/* ==========================================================================
   Mary Hall Insurance — design system  ("warm letterpress keepsake")
   Single-home site: the Golden Dawn variant won the bake-off and became
   index.html (2026-07-09); brand renamed from Hall, Hall & Hunt the same day.
   Warm & Personal (D14) · senior-first ergonomics (D8) · no AI people.
   ========================================================================== */

/* ---- Fonts (self-hosted, latin subset) ---------------------------------- */
@font-face { font-family:"Literata"; src:url("../assets/fonts/literata.woff2") format("woff2"); font-weight:400 720; font-style:normal; font-display:swap; }
@font-face { font-family:"Literata"; src:url("../assets/fonts/literata-italic.woff2") format("woff2"); font-weight:400 720; font-style:italic; font-display:swap; }
@font-face { font-family:"Atkinson Hyperlegible"; src:url("../assets/fonts/atkinson-normal-400.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Atkinson Hyperlegible"; src:url("../assets/fonts/atkinson-normal-700.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Atkinson Hyperlegible"; src:url("../assets/fonts/atkinson-italic-400.woff2") format("woff2"); font-weight:400; font-style:italic; font-display:swap; }

/* ---- Tokens -------------------------------------------------------------- */
:root {
  --cream:      #FAF6EC;
  --cream-deep: #F2EBDA;
  --pine:       #1E2F52;   /* Navy & Gold — FINAL (Nick 2026-07-09); the Coastal Teal opt-in was removed at palette lock */
  --pine-deep:  #15213D;
  --pine-soft:  #324B78;
  --ink:        #2B2A23;
  --ink-soft:   #4A4A40;
  --on-pine:    #E8EDF6;
  --on-pine-dim:#C3CDDF;
  --scrim-rgb:  21 33 61;   /* hero photo-scrim tint (navy) */
  /* brand gold — swap point: edit --gold-rgb and all solid+tint gold follows */
  --gold-rgb:    200 163 91;
  --gold:        rgb(var(--gold-rgb));
  --gold-bright: #E3C883;
  --gold-soft:   #E6D7AF;
  --gold-deep:   #BE9648;   /* gold darkened, button hover */
  --bronze:      #75591C;   /* load-bearing gold-on-cream text (AA) */
  --clay:        #A64B28;   /* tiny warm punctuation only */

  --font-display:"Literata", Georgia, "Times New Roman", serif;
  --font-body:"Atkinson Hyperlegible", Verdana, Geneva, sans-serif;

  --radius-card: 16px;
  --shadow-lift: 0 16px 38px -20px rgb(21 33 61 / 0.40);
  --feather: 110px;                 /* feather/dissolve distance */
  --paper: var(--cream);            /* color photos feather INTO (cream by default) */
  --nav-h: 66px;
}

/* ---- Reset & base ------------------------------------------------------- */
*,*::before,*::after { box-sizing:border-box; }
html { font-size:112.5%; -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; font-family:var(--font-body); font-size:1rem; line-height:1.65;
  color:var(--ink); background:var(--cream); overflow-x:clip;
}
/* paper grain — baked into the page background as a single tiled layer (no
   fixed/blend-mode compositing layer: far cheaper to raster on low-end senior
   devices, and avoids a fullscreen mix-blend repaint). */
body {
  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"/><feColorMatrix type="saturate" values="0"/><feComponentTransfer><feFuncA type="linear" slope="0.04"/></feComponentTransfer></filter><rect width="160" height="160" filter="url(%23n)"/></svg>');
  background-size:160px 160px;
}
img { max-width:100%; height:auto; display:block; }
h1,h2,h3 { font-family:var(--font-display); font-weight:600; line-height:1.12; color:var(--pine); margin:0 0 .5em; }
p { margin:0 0 1em; }
a { color:var(--pine); text-underline-offset:.18em; text-decoration-thickness:2px; }
a:hover { color:var(--pine-soft); }
::selection { background:var(--gold); color:var(--ink); }
:focus-visible { outline:3px solid var(--bronze); outline-offset:3px; border-radius:4px; }
.on-pine :focus-visible, .call-band :focus-visible, .site-footer :focus-visible { outline-color:var(--gold-bright); }
:target { scroll-margin-top: calc(var(--nav-h) + 16px); }

.skip-link { position:absolute; left:-9999px; top:0; z-index:300; background:var(--pine); color:var(--cream); padding:.8em 1.4em; font-weight:700; border-radius:0 0 10px 0; }
.skip-link:focus { left:0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.container { max-width:1180px; margin-inline:auto; padding-inline:clamp(20px,4vw,44px); }

/* ---- Reveal (degrade to visible — only hides once site.js sets .reveal-on) */
.reveal-on [data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.3,1); }
.reveal-on [data-reveal].is-in { opacity:1; transform:none; }
@keyframes rise { from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }
[data-rise] { animation:rise .8s cubic-bezier(.2,.7,.3,1) both; }
[data-rise="2"]{animation-delay:.08s}[data-rise="3"]{animation-delay:.16s}[data-rise="4"]{animation-delay:.26s}[data-rise="5"]{animation-delay:.36s}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; }
  html{scroll-behavior:auto} .reveal-on [data-reveal]{opacity:1;transform:none}
}

/* ---- Photos: one warm grade + feather-into-paper (cream-gradient overlay) - */
.photo { position:relative; isolation:isolate; overflow:hidden; }
.photo > img, .photo > picture > img { width:100%; height:100%; object-fit:cover; }
.photo::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:1; }
.feather-l::after  { background:linear-gradient(to right, var(--paper), transparent var(--feather)); }
.feather-r::after  { background:linear-gradient(to left,  var(--paper), transparent var(--feather)); }
.feather-t::after  { background:linear-gradient(to bottom,var(--paper), transparent var(--feather)); }
.feather-b::after  { background:linear-gradient(to top,   var(--paper), transparent var(--feather)); }
.feather-lb::after { background:linear-gradient(to right, var(--paper), transparent var(--feather)), linear-gradient(to top, var(--paper), transparent var(--feather)); }
.on-pine { --paper: var(--pine); }   /* photos that sit on a forest panel feather into pine */

/* arch motif */
.arch { border-radius: 50% 50% 14px 14px / 30% 30% 14px 14px; }

/* ---- Buttons ------------------------------------------------------------ */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.55em; min-height:3.2rem; padding:.7em 1.5em; border-radius:999px; border:2px solid transparent; font:700 1.06rem var(--font-body); text-decoration:none; white-space:nowrap; cursor:pointer; transition:transform .15s ease, background-color .15s ease, box-shadow .15s ease; }
.btn:active { transform:translateY(1px); }
.btn svg { flex:none; }
.btn-call { background:var(--gold); color:var(--ink); box-shadow:0 12px 24px -14px rgb(117 89 28 / .6); }
.btn-call:hover { background:var(--gold-deep); color:var(--ink); }
.btn-ghost { border-color:var(--pine); color:var(--pine); background:transparent; }
.btn-ghost:hover { background:var(--pine); color:var(--cream); }
.on-pine .btn-ghost, .btn-ghost-light { border-color:var(--gold-bright); color:var(--gold-bright); background:transparent; }
.on-pine .btn-ghost:hover, .btn-ghost-light:hover { background:var(--gold-bright); color:var(--pine-deep); }
/* deliberately quiet secondary (so nothing competes with the phone) */
.link-quiet { display:inline-block; font:700 1rem var(--font-body); color:var(--ink-soft); text-decoration:none; border-bottom:2px solid var(--gold-soft); padding-bottom:2px; }
.link-quiet:hover { color:var(--pine); border-bottom-color:var(--gold); }

/* ---- Eyebrow ------------------------------------------------------------ */
.eyebrow { display:inline-flex; align-items:center; gap:.7em; font:700 .82rem var(--font-body); letter-spacing:.16em; text-transform:uppercase; color:var(--bronze); margin:0 0 1.1em; }
.eyebrow::before { content:""; width:2.2em; height:2px; background:var(--gold); flex:none; }
.on-pine .eyebrow, .call-band .eyebrow { color:var(--gold-bright); }
.eyebrow-c { justify-content:center; }
.eyebrow-c::after { content:""; width:2.2em; height:2px; background:var(--gold); flex:none; }

/* ---- Brand mark: MH letterpress plaque + stacked wordmark ---------------
   Default lockup (candidate 1 of 5) — Mary picks the final from
   logo-options.html; swapping = replace the .brand block + this section. */
.monogram { display:inline-flex; align-items:center; gap:.06em; background:var(--pine); border:1.5px solid var(--gold); border-radius:9px; padding:.28em .5em .48em; line-height:0; box-shadow: inset 0 0 0 1px rgb(21 33 61 / .55), inset 0 2px 2px rgb(0 0 0 / .28), 0 1px 2px rgb(21 33 61 / .35); }
.monogram i { font:600 1em/.7 var(--font-display); font-style:normal; color:var(--gold-bright); letter-spacing:-.03em; }
.brand { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; color:inherit; flex:none; }
.brand .monogram { font-size:1.18rem; }
.brand-text { display:flex; flex-direction:column; line-height:1.05; }
.brand-name { font:600 1.24rem var(--font-display); color:var(--pine); white-space:nowrap; }
.brand-tag { font:700 .6rem var(--font-body); letter-spacing:.4em; text-transform:uppercase; color:var(--bronze); margin-top:.24em; }
.footer-brand .brand-tag { color:var(--gold-bright); }

/* ---- Sticky top bar (printed masthead, not a SaaS blur) ----------------- */
.topbar { position:sticky; top:0; z-index:100; background:var(--cream); border-bottom:2px solid var(--gold-soft); }
.topbar .container { display:flex; align-items:center; gap:1rem; min-height:var(--nav-h); }
.site-nav { margin-left:auto; }
.site-nav ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:.1rem .85rem; }
.site-nav a { display:inline-block; padding:.85rem .1rem; font-size:.9rem; letter-spacing:.005em; color:var(--ink); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap; }
.site-nav a:hover { color:var(--pine); border-bottom-color:var(--gold); }
.site-nav a[aria-current="page"] { font-weight:700; color:var(--pine); border-bottom-color:var(--gold); }
.nav-call { flex:none; min-height:2.7rem; padding:.4em 1.1em; font-size:.96rem; }
.nav-call .lbl { display:none; }   /* icon + number; "Call Mary" lives elsewhere */
.menu-toggle { display:none; align-items:center; gap:.5em; min-height:2.9rem; padding:.4em 1.05em; font:700 1.02rem var(--font-body); color:var(--pine); background:transparent; border:2px solid var(--pine); border-radius:999px; cursor:pointer; }

/* Graduated nav shed (senior-first: keep the horizontal nav + phone visible as long as they fit
   the 1180 header column; collapse to the Menu only when they genuinely can't).
   ≤1359: drop the Home item — the logo is the home link — to buy row space (re-measured 07-15:
          the full 9-item nav + phone clipped by 7–12px at 1346 on medicare/group-benefits — the
          old ~1334px measurement was optimistic; 1360+ verified clean on every page).
   ≤1220: the phone number no longer fits beside the 8-item nav (measured ~1208px); hide it. The
          sticky bottom Call bar (≤1220) carries Mary's number, so the phone-everywhere rule (D8) holds.
   ≤1024: even the trimmed nav can't fit; collapse to the Menu dropdown, and bring Home back as an
          explicit item (the vertical menu has room, and a "Home" entry reads as expected there). */
@media (max-width:1359px) {
  .site-nav li:first-child { display:none; }   /* Home — the logo covers it */
}
@media (max-width:1220px) {
  .nav-call { display:none; }
}
@media (max-width:1024px) {
  .menu-toggle { display:inline-flex; margin-left:auto; }
  .site-nav { position:absolute; top:100%; left:0; right:0; margin:0; background:var(--cream); border-bottom:2px solid var(--gold-soft); box-shadow:0 26px 36px -26px rgb(21 33 61 / .45); display:none; }
  .site-nav.open { display:block; }
  .site-nav ul { flex-direction:column; align-items:stretch; gap:0; padding:.3rem 0 .7rem; }
  .site-nav li { border-top:1px solid var(--gold-soft); }
  .site-nav li:first-child { display:block; border-top:0; }   /* Home returns in the vertical menu */
  .site-nav a { display:block; padding:.95rem clamp(20px,4vw,44px); font-size:1.1rem; border-bottom:0; }
  .site-nav a[aria-current="page"] { background:var(--cream-deep); }
}
/* Narrow phones: even without the phone button, the full wordmark (nowrap)
   + Menu can still overrun the row. Scale the brand mark down a touch and
   tighten the Menu so the header fits without sideways scroll. */
@media (max-width:480px) {
  .topbar .container { gap:.5rem; }
  .brand { gap:.42rem; }
  .brand .monogram { font-size:.92rem; }
  .brand-name { font-size:.97rem; }
  .menu-toggle { padding:.45em .72em; gap:.35em; font-size:.92rem; }
  .menu-toggle svg { width:18px; height:18px; }
}

/* ---- Section scaffold (cream paper field; no flat slabs) ---------------- */
.section { padding:clamp(3rem,7vw,5.4rem) 0; position:relative; }
.section-head { max-width:46em; margin-bottom:2.4rem; }
.section-head.center { margin-inline:auto; text-align:center; }
.section-head h2 { font-size:clamp(2rem,3.8vw,2.7rem); }
.section-head p { color:var(--ink-soft); font-size:1.08rem; margin:0; }

/* seam ornament between sections (gold hairline + printer's flower) */
.seam { border:0; margin:0; display:flex; align-items:center; justify-content:center; gap:1.1rem; color:var(--gold); }
.seam::before, .seam::after { content:""; height:1px; width:min(34vw,360px); background:linear-gradient(to var(--_d,right), transparent, var(--gold-soft)); }
.seam::after { --_d:left; }
.seam svg { flex:none; opacity:.9; }

/* ---- Credential ribbon (over lower hero photo) ------------------------- */
.credential-ribbon { display:inline-flex; flex-direction:column; gap:.15rem; background:var(--pine); color:var(--on-pine); border-left:4px solid var(--gold); border-radius:8px; padding:.7rem 1.15rem; box-shadow:var(--shadow-lift); }
.credential-ribbon b { font:600 1.16rem var(--font-display); color:var(--cream); }
.credential-ribbon span { font-size:.92rem; color:var(--on-pine-dim); }

/* ---- Hero: image-forward — the PHOTO carries the page (~85% visible). Only the
   headline + Call button ride over it (lower-left, on a COMPACT palette-tinted corner
   scrim); the eyebrow + intro + reassurance copy move to the .hero-intro band below.
   A soft halo on the light type keeps the scrim small. Owner inset sits low-right.
   .hero is used only by the six homepage candidates. (slim redesign — Nick 2026-06-26) */
.hero { position:relative; min-height:min(92vh,860px); display:flex; align-items:flex-end; overflow:hidden; background:var(--pine-deep); }
.hero-scene { position:absolute; inset:0; z-index:0; }
.hero-scene img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
/* compact corner scrim — concentrated under the lower-left copy, clear everywhere else */
.hero-scene::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(128% 108% at 13% 92%, rgb(var(--scrim-rgb)/.88) 0%, rgb(var(--scrim-rgb)/.60) 24%, rgb(var(--scrim-rgb)/.26) 44%, rgb(var(--scrim-rgb)/0) 62%),
    linear-gradient(to top, rgb(var(--scrim-rgb)/.56) 0%, rgb(var(--scrim-rgb)/.20) 26%, rgb(var(--scrim-rgb)/0) 46%); }
.hero .container { position:relative; z-index:2; width:100%; }
.hero .hero-copy { max-width:32rem; padding-block:0 clamp(2rem,5vw,3.6rem); }
.hero h1 { font-size:clamp(2.6rem,5.4vw,4.1rem); font-weight:560; line-height:1.05; letter-spacing:-.012em; margin:0 0 1.1rem; color:#FBF7EE;
  text-shadow:0 1px 18px rgb(var(--scrim-rgb)/.62), 0 2px 5px rgb(var(--scrim-rgb)/.5); }
.hero h1 em { font-style:italic; color:#F3C879; }
.hero .hero-cta { margin-bottom:0; gap:.9rem 1.3rem; }
.hero .link-quiet { color:#FBF7EE; text-shadow:0 1px 12px rgb(var(--scrim-rgb)/.6); }
/* globals below stay for the service + contact pages (they reuse these classes) */
.hero-copy { max-width:30rem; padding-block:clamp(2.2rem,5vw,3.6rem); }
.hero-cta { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.3rem; margin-bottom:1.1rem; }
/* ≤400px: let hero call buttons wrap — "Call Kristina · 352-843-3499" is wider than 360
   as a nowrap unit and forced h-scroll on health.html (found 07-15) */
@media (max-width:400px){ .hero-cta .btn { white-space:normal; text-align:center; } }
.hero-note { max-width:26rem; padding-left:1rem; border-left:2px solid var(--gold); font-style:italic; color:var(--ink-soft); font-size:1.01rem; }
.hero-note strong { color:var(--pine); font-style:normal; }
/* small human-scale owner inset — capped, low-right, clear of the copy */
.hero-inset { position:absolute; right:clamp(.6rem,2.5vw,1.8rem); bottom:0; z-index:2; width:clamp(206px,21vw,248px); }
.hero-inset .photo { aspect-ratio:4/5; border-radius:160px 160px 12px 12px; box-shadow:0 26px 52px -28px rgb(21 33 61/.6); border:3px solid var(--cream); }
.hero-inset .credential-ribbon { position:absolute; left:-.6rem; right:-.6rem; bottom:1rem; }

/* ---- Intro band: the trust copy lifted out of the hero, on warm cream ---------- */
.hero-intro { background:var(--cream); border-bottom:2px solid var(--gold-soft); }
.hero-intro .container { display:grid; gap:.65rem; max-width:60rem; padding-block:clamp(1.5rem,3.6vw,2.5rem); }
.hero-intro .eyebrow { margin:0; }
.hero-intro .intro-lead { margin:0; max-width:34rem; font:500 clamp(1.3rem,2.7vw,1.72rem)/1.34 var(--font-display); color:var(--ink); }
.hero-intro .intro-note { margin:.1rem 0 0; max-width:40rem; padding-left:1rem; border-left:2px solid var(--gold); font-style:italic; color:var(--ink-soft); font-size:1.02rem; }
.hero-intro .intro-note strong { color:var(--pine); font-style:normal; }

@media (max-width:900px) {
  /* mobile: photo becomes a band; the headline + Call + intro sit on cream below it,
     so the dark type reads (the desktop pine-deep bg is only a photo fallback there). */
  .hero { display:block; min-height:0; align-items:stretch; background:var(--cream); }
  .hero-scene { position:relative; height:46vh; min-height:264px; }
  .hero-scene img { object-position:center 40%; }
  .hero-scene::after { background:linear-gradient(to top, var(--cream) 3%, rgba(250,246,236,0) 44%); }
  .hero .container { position:relative; }
  .hero .hero-copy { max-width:none; padding:1.3rem 0 .4rem; }
  .hero h1 { color:var(--ink); text-shadow:none; }
  .hero h1 em { color:var(--clay); }
  .hero .link-quiet { color:var(--bronze); text-shadow:none; }
  .hero-inset { right:14px; top:calc(46vh - 188px); bottom:auto; width:146px; }
  .hero-inset .credential-ribbon { left:-8px; right:-8px; bottom:6px; padding:.4rem .55rem; }
  .hero-inset .credential-ribbon b { font-size:.86rem; }
  .hero-inset .credential-ribbon span { font-size:.72rem; }
}

/* ---- Directory rows (services as warm letterpress rows) ----------------- */
.directory { border-top:1px solid var(--gold-soft); }
.dir-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.4rem; padding:1.5rem .3rem; border-bottom:1px solid var(--gold-soft); text-decoration:none; color:inherit; transition:background-color .18s ease; }
.dir-row:hover { background:rgb(var(--gold-rgb) / .07); }
.dir-feature:hover { background:var(--pine-deep); }  /* featured pine panel darkens on hover, never washes pale (keeps cream/gold text AAA) */
.dir-chip { width:96px; height:108px; flex:none; overflow:hidden; border:1px solid var(--gold-soft); box-shadow:var(--shadow-lift); }
.dir-chip.arch { border-radius:48px 48px 10px 10px; }
.dir-body h3 { font-size:1.45rem; margin:0 0 .25rem; }
.dir-body p { margin:0; color:var(--ink-soft); font-size:1rem; max-width:46em; }
.dir-more { flex:none; font:700 1rem var(--font-body); color:var(--bronze); white-space:nowrap; }
.dir-row:hover .dir-more { color:var(--clay); }

/* featured Medicare row — forest panel that notches into the cream */
.dir-feature { grid-template-columns: 1.1fr 1fr; gap:0; background:var(--pine); color:var(--on-pine); border-radius:var(--radius-card); border-bottom:0; overflow:hidden; margin-bottom:1.2rem; box-shadow:var(--shadow-lift); }
.dir-feature .feat-copy { padding:clamp(1.6rem,3vw,2.4rem); }
.dir-feature h3 { color:var(--cream); font-size:clamp(1.6rem,2.6vw,2rem); margin:0 0 .4rem; }
.dir-feature p { color:var(--on-pine); margin:0 0 1.3rem; font-size:1.05rem; }
.dir-feature .feat-photo { position:relative; min-height:230px; }
.dir-feature .feat-photo .photo, .dir-feature .feat-photo picture, .dir-feature .feat-photo img { position:absolute; inset:0; }
@media (max-width:680px){ .dir-feature{ grid-template-columns:1fr; } .dir-feature .feat-photo{ min-height:200px; order:-1; } }

/* Phones: the 3-column row (photo chip | description | "Learn more") starves the
   middle column, wrapping the copy 2-3 words per line. Stack it — chip + heading,
   then the full-width description, then "Learn more" beneath. .dir-body uses
   display:contents so its h3/p drop straight into the row grid. Excludes the
   featured Medicare row (.dir-feature), which has its own layout. */
@media (max-width:560px){
  .dir-row:not(.dir-feature){
    grid-template-columns:auto 1fr;
    grid-template-areas:"chip title" "desc desc" "more more";
    column-gap:1.1rem; row-gap:.5rem;
  }
  .dir-row:not(.dir-feature) .dir-chip { grid-area:chip; }
  .dir-row:not(.dir-feature) .dir-body { display:contents; }
  /* 1.45rem is oversized beside the chip on a phone, and at that size the
     nowrap "(Before Medicare)" in the Health Plans heading is a 226px
     unbreakable unit that forces the row wider than a 360px screen. */
  .dir-row:not(.dir-feature) .dir-body h3 { grid-area:title; font-size:1.25rem; }
  .dir-row:not(.dir-feature) .dir-body p  { grid-area:desc; }
  .dir-row:not(.dir-feature) .dir-more    { grid-area:more; justify-self:start; }
}

/* ---- Why-call rows (hand-set gold numerals on cream) -------------------- */
.why { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,4vw,3rem); }
.why-item { padding-top:1rem; border-top:2px solid var(--gold-soft); }
.why-item .keepsake-head { margin:0 0 .55rem; gap:.85rem; }   /* inline coverage plaque + title (medicare.html) */
.why-item .keepsake-head h3 { margin:0; }
.why-num { display:block; font:italic 600 2.6rem/1 var(--font-display); color:var(--gold); margin-bottom:.5rem; }
.why-item h3 { font-size:1.3rem; margin:0 0 .3rem; }
.why-item p { margin:0; color:var(--ink-soft); font-size:1rem; }
@media (max-width:760px){ .why{ grid-template-columns:1fr; max-width:34em; } }

/* ---- Call band (the one earned forest rest) ---------------------------- */
.call-band { background:var(--pine-deep); color:var(--on-pine); text-align:center; padding:clamp(3.4rem,8vw,5.6rem) 0; position:relative; }
.call-lead { font:italic 500 clamp(1.25rem,2.6vw,1.6rem)/1.4 var(--font-display); color:var(--cream); max-width:30em; margin:0 auto 1.3rem; }
.call-number { display:inline-block; font:600 clamp(2.7rem,7vw,4.6rem)/1.05 var(--font-display); color:var(--gold-bright); text-decoration:none; white-space:nowrap; }
.call-number:hover { text-decoration:underline; text-decoration-color:var(--gold); text-decoration-thickness:4px; text-underline-offset:.16em; }
.call-meta { margin:1.1rem 0 0; color:var(--on-pine); font-size:1.05rem; }
.call-meta a { color:var(--on-pine); text-decoration:underline; text-underline-offset:.15em; }
.call-meta a:hover { color:var(--gold-bright); }

/* ---- Footer ------------------------------------------------------------- */
.site-footer { background:var(--pine-deep); color:var(--on-pine); border-top:1px solid rgb(var(--gold-rgb) / .35); padding:clamp(2.8rem,6vw,3.8rem) 0 1.6rem; font-size:1rem; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1.1fr; gap:clamp(1.8rem,4vw,3.4rem); }
.footer-brand .brand-name { color:var(--cream); }
.footer-brand p { color:var(--on-pine-dim); margin:.8rem 0 0; max-width:26em; }
.site-footer h2 { font:700 .82rem var(--font-body); letter-spacing:.2em; text-transform:uppercase; color:var(--gold-bright); margin:.3rem 0 .9rem; }
.footer-links ul { list-style:none; margin:0; padding:0; }
.footer-links a { display:inline-block; padding:.32rem 0; color:var(--on-pine); text-decoration:none; }
.footer-links a:hover { color:var(--gold-bright); text-decoration:underline; }
.footer-contact .btn { margin:.2rem 0 .9rem; }
.footer-contact p { color:var(--on-pine-dim); margin:0 0 .5rem; }
.legal { border-top:1px solid rgb(var(--gold-rgb) / .25); margin-top:2.4rem; padding-top:1.6rem; color:var(--on-pine-dim); font-size:1rem; line-height:1.6; }
.legal p { margin:0 0 .7em; }
.legal strong { color:var(--on-pine); }
.colophon { display:flex; flex-wrap:wrap; gap:.4rem 1.6rem; justify-content:space-between; margin-top:1.2rem; }
.colophon p { margin:0; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; gap:1.9rem; } }

/* ---- Sticky mobile call bar (safe-area) -------------------------------- */
.sticky-call { display:none; position:fixed; left:0; right:0; bottom:0; z-index:110; align-items:center; justify-content:center; gap:.6em; background:var(--gold); color:var(--ink); font:700 1.14rem var(--font-body); text-decoration:none; padding:.95rem 1rem calc(.95rem + env(safe-area-inset-bottom)); box-shadow:0 -8px 26px rgb(21 33 61 / .28); }
.sticky-call:hover { background:var(--gold-deep); color:var(--ink); }
/* Sticky bottom Call bar appears at ≤1220 — the moment the header phone button hides — so Mary's
   number is never absent from the screen (D8). */
@media (max-width:1220px){ .sticky-call{ display:flex; } body{ padding-bottom:calc(4.4rem + env(safe-area-inset-bottom)); } }

/* ---- Inner-page "being finished" stub (ported from styles.css) ---- */
.stub-main { padding: clamp(3rem, 8vw, 5.5rem) 0 clamp(3.6rem, 9vw, 6rem); }
.stub-inner { max-width: 42em; }
.stub-main h1 { font-size: clamp(2.3rem, 4.6vw, 3.3rem); }
.stub-main .lede { font-size: 1.14rem; color: var(--ink-soft); }
.stub-note {
  font-style: italic;
  color: var(--ink-soft);
  border-left: 3px solid var(--gold);
  padding-left: 1em;
  margin: 1.6rem 0;
}
.stub-main .hero-cta { margin-top: 1.4rem; }

/* ---- Contact form (secondary to the phone; senior-first) --------------- */
.contact-form { max-width: 34em; margin-top: 2.8rem; padding-top: 2.2rem; border-top: 2px solid var(--gold-soft); }
.contact-form h2 { font-size: clamp(1.5rem, 3vw, 1.9rem); margin: 0 0 .35rem; }
.form-intro { color: var(--ink-soft); font-size: 1.06rem; margin: 0 0 1.7rem; }
.field { margin-bottom: 1.25rem; }
.contact-form label { display: block; font: 700 1.04rem var(--font-body); color: var(--pine); margin-bottom: .4rem; }
.contact-form .hint { font-weight: 400; color: var(--ink-soft); }
.contact-form input,
.contact-form textarea {
  width: 100%; font: 400 1.06rem var(--font-body); color: var(--ink);
  background: #fff; border: 2px solid var(--gold-soft); border-radius: 12px;
  padding: .72em .85em; line-height: 1.5;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.contact-form input { min-height: 3.2rem; }
.contact-form textarea { min-height: 7.5rem; resize: vertical; }
.contact-form input:hover, .contact-form textarea:hover { border-color: var(--gold); }
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--bronze); box-shadow: 0 0 0 3px rgb(var(--gold-rgb) / .3); }
.form-consent { font-size: .98rem; color: var(--ink-soft); margin: 0 0 1.3rem; }
.contact-form button[type="submit"] { width: 100%; }
.form-status { margin: 1.1rem 0 0; padding: .85em 1.1em; border-radius: 12px; font-size: 1.05rem; line-height: 1.5; }
.form-status.is-ok  { background: rgb(46 82 64 / .12); border-left: 4px solid var(--pine-soft); color: var(--pine); }
.form-status.is-err { background: rgb(166 75 40 / .10); border-left: 4px solid var(--clay); color: var(--clay); }
.form-fineprint { margin: 1rem 0 0; color: var(--ink-soft); font-size: 1.02rem; text-align: center; }
.form-fineprint a { color: var(--bronze); font-weight: 700; }

/* Contact page: call expectations + hours (contact.html) */
.call-steps { margin-top: 2.6rem; }
.call-steps h2, .hours h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); }
.steps { list-style: none; counter-reset: step; margin: 1.2rem 0 0; padding: 0; display: grid; gap: 1rem; }
.steps li { position: relative; padding-left: 2.7rem; color: var(--ink-soft); font-size: 1.06rem; counter-increment: step; }
.steps li::before { content: counter(step); position: absolute; left: 0; top: .05em; width: 1.85rem; height: 1.85rem; border-radius: 50%; background: var(--gold); color: var(--pine); font: 700 1rem var(--font-body); display: grid; place-items: center; }
.steps-note { margin: 1.1rem 0 0; color: var(--ink-soft); font-size: 1.06rem; }
.hours { margin-top: 2.8rem; padding-top: 2.2rem; border-top: 2px solid var(--gold-soft); }
.hours-grid { margin: 1.2rem 0 0; display: grid; gap: .6rem; }
.hours-grid > div { display: flex; gap: .6rem; flex-wrap: wrap; }
.hours-grid dt { font-weight: 700; min-width: 6.5em; }
.hours-grid dd { margin: 0; color: var(--ink-soft); }
.hours p { color: var(--ink-soft); margin: 1.2rem 0 0; font-size: 1.06rem; }
.office-address a { color: var(--bronze); font-weight: 700; }
/* honeypot — visually + programmatically removed; never tab-reachable */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- Meet-your-agents: two co-equal co-lead cards (About) --------------- */
/* Mary's story prose (about.html) */
.story { max-width:46em; margin-inline:auto; display:grid; gap:1.15rem; }
.story p { margin:0; color:var(--ink-soft); font-size:1.08rem; line-height:1.65; }

.team-intro { text-align:center; max-width:44rem; margin:0 auto; }
.team-lede { font-size:1.15rem; line-height:1.6; color:var(--ink-soft); margin:.2rem 0 0; }
.team { list-style:none; margin:2.6rem auto 0; padding:0; max-width:56rem; display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.8rem,4vw,3.4rem); }
.team-card { display:flex; flex-direction:column; align-items:center; text-align:center; min-width:0; }
.team-photo { position:relative; width:100%; max-width:300px; aspect-ratio:4/5; margin:0 0 1.3rem; overflow:hidden; border-radius:160px 160px 16px 16px / 34% 34% 16px 16px; border:3px solid var(--cream); box-shadow:0 26px 52px -30px rgb(21 33 61/.6); background:var(--cream); }
.team-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.team-name { font:600 1.65rem/1.1 var(--font-display); color:var(--pine); margin:0; }
.team-role { font:italic 500 1.08rem var(--font-display); color:var(--bronze); margin:.15rem 0 .8rem; }
.team-bio { font-size:1.04rem; line-height:1.55; color:var(--ink-soft); max-width:24rem; margin:0 0 1.4rem; }
.team-call { margin-top:auto; }
.team-cta-text { display:inline-flex; flex-direction:column; align-items:flex-start; line-height:1.16; }
.team-cta-num { font-weight:800; letter-spacing:.02em; }
@media (max-width:640px){ .team{ grid-template-columns:1fr; max-width:22rem; } }
.footer-agents { margin: 0 0 .5rem; color: var(--on-pine-dim); }
.footer-agents a { color: var(--gold-bright); text-decoration: none; }
.footer-agents a:hover { text-decoration: underline; }
.footer-contact .footer-address { margin: .9rem 0 0; line-height: 1.55; }   /* scoped: outranks .footer-contact p */
.footer-address b { color: var(--on-pine); font-weight: 700; }

/* ---- Service-page hero (copy + arched photo) — inner pages -------------- */
.svc-hero { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:center; }
.svc-hero .lede { font-size:1.16rem; color:var(--ink-soft); }
.svc-hero .hero-note { margin-top:.6rem; }
.svc-hero-photo { aspect-ratio:4/3; min-height:280px; }
/* min-height:0 clears the desktop 280px floor at mobile: paired with the 4/3
   base it would force width = 280 x 16/10 = 448px and overrun the screen.
   Let the 16/10 ratio size the banner from its (full-width) column instead. */
@media (max-width:820px){ .svc-hero{ grid-template-columns:1fr; gap:1.5rem; } .svc-hero-photo{ aspect-ratio:16/10; min-height:0; } }
/* about.html drops Mary's square (1:1) portrait into this shared frame; the 4/3
   (and 16/10 mobile) ratios letterbox a square source and center-crop ~12-18%
   off the top, clipping her head. Match the frame to the portrait so her full
   head + shoulders always show. Two classes outrank the base + mobile overrides. */
.svc-hero-photo.svc-hero-portrait { aspect-ratio:1/1; min-height:0; }

/* ---- Two-column prose split (service detail sections) ------------------- */
.svc-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.8rem,4vw,3.4rem); align-items:center; }
.svc-split.top { align-items:start; }   /* top-align when a column holds a tall keepsake card */
.svc-split.reverse .svc-split-photo { order:-1; }
.svc-split-photo { aspect-ratio:4/3; min-height:260px; }
.svc-split h2 { font-size:clamp(1.7rem,3vw,2.3rem); }
.svc-split .lede { font-size:1.1rem; color:var(--ink-soft); }
@media (max-width:760px){ .svc-split{ grid-template-columns:1fr; gap:1.4rem; } .svc-split.reverse .svc-split-photo{ order:0; } .svc-split-photo{ aspect-ratio:16/10; min-height:0; } }

/* ---- Plain checklist (service "what's included" points) ---------------- */
.svc-points { list-style:none; margin:1.3rem 0 0; padding:0; display:grid; gap:.9rem; max-width:40em; }
.svc-points li { position:relative; padding-left:2rem; color:var(--ink-soft); font-size:1.06rem; }
.svc-points li::before { content:""; position:absolute; left:0; top:.5em; width:.85rem; height:.85rem; border-radius:50% 50% 14px 14px / 30% 30% 14px 14px; background:var(--gold); }

/* ---- Carriers ribbon (Medicare page + home) ---------------------------- */
.carriers { text-align:center; margin-top:2.8rem; }
.carrier-list { list-style:none; margin:0 auto .8rem; padding:0; max-width:54em; display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 0; font:700 .9rem var(--font-body); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.carrier-list li:not(:last-child)::after { content:"\2726"; color:var(--gold); margin-inline:1.1em; font-size:.72em; }
.carrier-note { font-size:.95rem; color:var(--ink-soft); margin:0; }
.carrier-note a { color:var(--bronze); }
/* footer legal links readable on the dark footer */
.legal a { color:var(--gold-bright); text-decoration:underline; text-underline-offset:.15em; }

/* ==========================================================================
   Keepsake feature cards — the "More Ways to Protect" trio
   (Legacy of Love pre-planning · Travel Plan by Inman repatriation · Fixed
   Annuities). Recreates the Accent partner-deck slides natively in the
   navy+gold letterpress system instead of pasting the raster PowerPoint
   slides — cohesive, responsive, and keeps the compliant qualitative copy.
   Added 2026-07-01.
   ========================================================================== */
.keepsake, .testimonial { position:relative; isolation:isolate;
  background:linear-gradient(178deg,#FFFDF7 0%, var(--cream) 100%);
  border:1px solid var(--gold-soft); border-radius:var(--radius-card);
  box-shadow:var(--shadow-lift); }
.keepsake { max-width:44rem; padding:clamp(1.5rem,3.3vw,2.35rem); }
/* gold letterpress plate-edge along the top */
.keepsake::before { content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg, transparent, var(--gold-soft) 12%, var(--gold) 50%, var(--gold-soft) 88%, transparent);
  border-radius:var(--radius-card) var(--radius-card) 0 0; }

.keepsake-head { display:flex; align-items:center; gap:1rem; margin-bottom:.45rem; }
.keepsake-icon { flex:none; width:3rem; height:3rem; display:grid; place-items:center;
  background:var(--pine); border:1.5px solid var(--gold); border-radius:12px;
  box-shadow:inset 0 0 0 1px rgb(21 33 61/.55), inset 0 2px 3px rgb(0 0 0/.28), 0 2px 4px rgb(21 33 61/.32); }
.keepsake-icon svg { width:1.85rem; height:1.85rem; color:var(--gold-bright); }
.keepsake-title { margin:0; font:600 clamp(1.25rem,2.3vw,1.55rem)/1.14 var(--font-display); color:var(--pine); }
.keepsake-title small { display:block; margin-top:.28rem; font:700 .72rem/1.2 var(--font-body);
  letter-spacing:.14em; text-transform:uppercase; color:var(--bronze); }

/* printer's-flower divider (same motif as .seam, left-anchored) */
.keepsake-rule { border:0; height:0; margin:1rem 0 1.15rem; display:flex; align-items:center; gap:.7rem; color:var(--gold); }
.keepsake-rule svg { flex:none; opacity:.92; }
.keepsake-rule::after { content:""; height:1px; flex:1; background:linear-gradient(to right, var(--gold-soft), transparent); }

.keepsake-list { list-style:none; margin:0; padding:0; display:grid; gap:.8rem; }
.keepsake-list li { position:relative; padding-left:1.9rem; color:var(--ink-soft); font-size:1.05rem; line-height:1.5; }
.keepsake-list li b, .keepsake-list li strong { color:var(--pine); font-weight:700; }
.keepsake-list li::before { content:""; position:absolute; left:.2rem; top:.5em; width:.62rem; height:.62rem;
  background:var(--gold); transform:rotate(45deg); border-radius:1px; box-shadow:0 0 0 3px rgb(var(--gold-rgb)/.15); }

/* partner attribution — real logo on a white chip, or a text-only line */
.keepsake-partner { display:flex; align-items:center; gap:.8rem; margin:1.5rem 0 0; }
.keepsake-chip { flex:none; display:inline-flex; align-items:center; background:#fff;
  border:1px solid var(--gold-soft); border-radius:11px; padding:.5rem .8rem; box-shadow:0 8px 18px -14px rgb(21 33 61/.5); }
.keepsake-chip img { height:2.45rem; width:auto; display:block; }   /* enlarged ~14% (Nick 2026-07-01) */
.keepsake-pcap { font:700 .72rem/1.35 var(--font-body); letter-spacing:.07em; text-transform:uppercase; color:var(--bronze); max-width:12rem; }
.keepsake-partner.is-text .keepsake-pcap { max-width:none; font:400 .98rem/1.4 var(--font-body); letter-spacing:normal; text-transform:none; color:var(--ink-soft); }
.keepsake-partner.is-text b { color:var(--pine); font-family:var(--font-display); font-weight:600; }

/* header partner logo (Travel Plan by Inman): the real logo on a white chip, in place of the navy plaque icon */
.keepsake-logo { flex:none; display:inline-flex; align-items:center; background:#fff; border:1px solid var(--gold-soft); border-radius:12px; padding:.45rem .75rem; box-shadow:0 8px 18px -14px rgb(21 33 61/.5); }
.keepsake-logo img { height:3rem; width:auto; display:block; }

@media (max-width:520px){
  .keepsake-icon svg { width:1.6rem; height:1.6rem; }   /* plaque is 3rem at every width now */
  .keepsake-logo img { height:2.5rem; }
  .keepsake-head { flex-wrap:wrap; }
  .keepsake-partner { flex-wrap:wrap; gap:.6rem; }
}

/* ---- Testimonials (client words; letterpress pull-quote cards) ----------
   Added 2026-07-09 with the first client quote (Yates). The grid grows as
   more quotes arrive; quotes publish VERBATIM (see the /legal screening
   rule in the plan/journal — plan-agnostic, unpaid, name consent on file). */
.testimonials { display:grid; grid-template-columns:1fr; gap:1.6rem; max-width:46rem; margin-inline:auto; }
.testimonial { margin:0; padding:clamp(1.7rem,3.6vw,2.5rem) clamp(1.6rem,3.8vw,2.9rem); }   /* surface shared with .keepsake above */
.testimonial::before { content:"\201C"; position:absolute; top:.06em; left:.3rem; font:italic 600 4.4rem/1 var(--font-display); color:rgb(var(--gold-rgb) / .4); pointer-events:none; }
.testimonial blockquote { margin:0; }
.testimonial blockquote p { font:italic 500 1.16rem/1.62 var(--font-display); color:var(--ink); margin:0 0 1.1rem; }
.testimonial figcaption { font:700 1.02rem var(--font-body); color:var(--pine); }
.testimonial figcaption::before { content:""; display:block; width:2.2em; height:2px; background:var(--gold); margin-bottom:.6rem; }
.testimonial figcaption span { display:block; font:400 .95rem var(--font-body); color:var(--ink-soft); margin-top:.15rem; }

/* ---- Brochure downloads (group-benefits) ---------------------------------
   Partner-authored PDFs hosted per Mary's request (2026-07-08 call); the
   attribution disclaimer + grouping are compliance requirements — see the
   comment on group-benefits.html before changing. */
.dl-feature { max-width:44rem; margin-inline:auto; }
.dl-feature .btn { margin-top:.4rem; white-space:normal; text-align:center; }   /* nowrap clipped at 360px */
.dl-list { list-style:none; margin:1.6rem auto 0; padding:0; max-width:44rem; display:grid; gap:.9rem; }
.dl-list a { display:flex; flex-wrap:wrap; align-items:baseline; gap:.35em .6em; padding:1rem 1.2rem; background:linear-gradient(178deg,#FFFDF7 0%, var(--cream) 100%); border:1px solid var(--gold-soft); border-radius:12px; box-shadow:0 10px 22px -18px rgb(21 33 61 / .5); font:700 1.05rem var(--font-body); color:var(--pine); text-decoration:none; }
.dl-list a:hover { border-color:var(--gold); color:var(--pine-soft); }
.dl-list a::before { content:"\2193"; font-size:1.05em; color:var(--bronze); margin-right:.15em; }   /* ↓ — safe glyph on older devices */
.dl-list a span { font:400 .95rem var(--font-body); color:var(--ink-soft); }
.dl-subhead { max-width:44rem; margin:2.2rem auto 0; font:700 .82rem var(--font-body); letter-spacing:.16em; text-transform:uppercase; color:var(--bronze); }
.dl-disclaimer { max-width:44rem; margin:1.8rem auto 0; padding:1rem 1.2rem; border-left:3px solid var(--gold-soft); color:var(--ink-soft); font-size:.95rem; line-height:1.6; }

/* ---- Team credential line (About: Mary's Rotary past-presidency) -------- */
.team-cred { font:italic 500 .98rem var(--font-display); color:var(--bronze); margin:-.9rem 0 1.4rem; }

/* ---- FAQ (faq.html) — static open Q&A, gold hairline tops --------------- */
.faq-list { display:grid; gap:clamp(1.5rem,3vw,2.2rem); max-width:46rem; margin-inline:auto; }
.faq-item { padding-top:1.2rem; border-top:2px solid var(--gold-soft); }
.faq-item h3 { font-size:1.3rem; margin:0 0 .45rem; }   /* fixed, matching .why-item h3 */
.faq-item p { margin:0; color:var(--ink-soft); font-size:1.06rem; }
.more-link { text-align:center; margin:2.1rem 0 0; }    /* centered trailing link under a section */

/* ---- Medicare enrollment windows (medicare.html) — date-first cards ------
   The date range leads each card ("when" is the answer); --bronze, not
   --gold: gold-on-cream fails AA at text size (see the token note above). */
.windows { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.5rem,3.6vw,2.4rem); max-width:60rem; margin-inline:auto; }
.window-card { padding-top:1.1rem; border-top:2px solid var(--gold-soft);
  display:grid; grid-template-columns:3.4rem 1fr; column-gap:1.05rem; align-items:start; }
/* year-clock ring — the gold arc marks where in the calendar year the window falls
   (12 o'clock = January 1, clockwise). Exceptions: the IEP ring is relative to YOUR
   year (arc + dot anchored on your birthday month, not a calendar date) and the SEP
   ring is dotted = "any time." Decorative support only (aria-hidden); the .window-when
   date line stays the load-bearing signal. Gold is stroke-only here — never gold text
   on cream (AA caveat below). */
.year-ring { width:3.4rem; height:3.4rem; margin-top:.3rem; }
.yr-track { fill:none; stroke:var(--gold-soft); stroke-width:2.5; }
.yr-arc { fill:none; stroke:var(--gold); stroke-width:3.5; stroke-linecap:round; }
.yr-strong { stroke-width:5; }   /* AEP — the window most clients act on leads the set */
.yr-dash { stroke-dasharray:.5 6.48; }   /* composes with .yr-arc (SEP "any time" ring) */
.yr-dot { fill:var(--gold); }
.yr-age { font:italic 600 13px var(--font-display); fill:var(--pine); }
.window-when { margin:0 0 .35rem; font:italic 600 clamp(1.3rem,2.6vw,1.5rem)/1.15 var(--font-display); color:var(--bronze); }
.window-card h3 { font-size:1.18rem; margin:0 0 .35rem; }
.window-card p { margin:0; color:var(--ink-soft); font-size:1rem; }
@media (max-width:640px) { .windows { grid-template-columns:1fr; } }

/* ==========================================================================
   Print (2026-07-15): seniors print these pages to read later and hand to a
   spouse. Two defects fixed here — scroll-reveal sections printed blank
   ([data-reveal] opacity:0 until scrolled), and light-on-dark panels printed
   near-white on white once browsers dropped the backgrounds. */
@media print {
  .reveal-on [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; }
  .site-nav, .nav-call, .menu-toggle, .sticky-call, .skip-link, .seam,
  .hero-cta, .team-call, .contact-form button { display:none !important; }
  body { background:#fff; color:#000; }
  /* light-on-dark blocks → ink on paper */
  .hero, .hero h1, .hero h1 em, .hero .hero-copy, .hero p,
  .call-band, .call-band .eyebrow, .call-lead, .call-number, .call-meta,
  .site-footer, .site-footer h2, .site-footer p, .site-footer li,
  .credential-ribbon, .credential-ribbon span, .on-pine {
    background:#fff !important; color:#000 !important; text-shadow:none !important;
  }
  .call-band a, .site-footer a, .legal a { color:#000 !important; }
  .hero { min-height:0; }
  .hero-media, .hero-veil { display:none !important; }
  a[href^="tel:"] { color:#000 !important; text-decoration:none; }
  /* keep the phone number and address visible and plain */
  .call-number { font-size:1.6rem; font-weight:700; }
}
