/* =====================================================================
   ip-pages.css — styles for sub-pages (conditions, services, about, etc.)
   Layered on top of ip.css. Uses same CSS vars and typography system.
===================================================================== */

/* ---------- Generic section spacing ---------- */
.section {
  padding: clamp(64px, 9vw, 120px) 0;
}

.section-head {
  max-width: 720px;
  margin: 0 0 64px;
}
.section-head .section-title { margin-top: 8px; }
.section-head .section-deck {
  margin-top: 20px;
  font-size: clamp(17px, 1.25vw, 19px);
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 620px;
}

/* ---------- Breadcrumbs ---------- */
.crumbs {
  font: 500 13px/1 var(--sans);
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  text-transform: uppercase;
  margin-bottom: 24px;
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.crumbs a {
  color: var(--ink-soft);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s;
}
.crumbs a:hover { border-bottom-color: currentColor; }
.crumbs span[aria-current] { color: var(--ink); }

/* ---------- Page hero (condition / service / about pages) ---------- */
.page-hero {
  background: var(--ivory);
  padding: clamp(80px, 11vw, 140px) 0 clamp(60px, 8vw, 96px);
  border-bottom: 1px solid var(--rule);
}
.page-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
@media (max-width: 900px) {
  .page-hero__grid { grid-template-columns: 1fr; }
}

.page-hero__h {
  font: 400 clamp(42px, 5.6vw, 76px)/1.02 var(--serif);
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 8px 0 20px;
  text-wrap: balance;
}
.page-hero__h em {
  font-style: italic;
  color: var(--indigo);
}
.page-hero__deck {
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0 0 32px;
  text-wrap: pretty;
}
.page-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 28px;
}
.page-hero__proof {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  color: var(--ink-soft);
  font-size: 14.5px;
}
.page-hero__proof li { white-space: nowrap; }

.page-hero__card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 28px 26px;
  box-shadow: 0 1px 2px rgba(15, 58, 109, 0.04);
  position: sticky;
  top: 104px;
}
.page-hero__card-h {
  font: 500 14px/1 var(--sans);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}
.page-hero__card-list { margin: 0; display: grid; gap: 14px; }
.page-hero__card-list > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 16px;
  align-items: baseline;
}
.page-hero__card-list dt {
  font: 500 12px/1.2 var(--sans);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.page-hero__card-list dd {
  margin: 0;
  font: 400 15px/1.45 var(--sans);
  color: var(--ink);
}

/* ---------- Trio cards (3-up treatment/feature) ---------- */
.trio {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 860px) {
  .trio { grid-template-columns: 1fr; }
}
.trio__card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 28px 26px 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 1px 2px rgba(15, 58, 109, 0.04);
}
.trio__card h3 {
  font: 500 22px/1.15 var(--serif);
  margin: 0;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.trio__lead {
  font: 500 13px/1 var(--sans);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mustard-ink);
  margin: -4px 0 0;
}
.trio__card ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.trio__card ul li {
  font-size: 14.5px;
  color: var(--ink);
  padding-left: 18px;
  position: relative;
  line-height: 1.45;
}
.trio__card ul li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--mustard);
  position: absolute;
  left: 4px;
  top: 8px;
}
.trio__note {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-soft);
}

/* ---------- Strip (2-up insurance/pricing) ---------- */
.strip {
  padding: clamp(64px, 9vw, 120px) 0;
  background: var(--sand);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.strip__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 80px);
}
@media (max-width: 800px) {
  .strip__grid { grid-template-columns: 1fr; }
}
.strip .section-title { margin: 8px 0 16px; font-size: clamp(28px, 3vw, 40px); }
.strip p { font-size: 16px; line-height: 1.55; color: var(--ink-soft); max-width: 420px; }
.strip p.muted { color: var(--ink-muted); font-size: 14px; margin-top: 8px; }

.pricing__list--lg {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 12px;
  padding: 20px 24px;
  margin-top: 8px;
  max-width: 420px;
}
.pricing__list--lg > div {
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
.pricing__list--lg > div:last-child { border-bottom: 0; }
.pricing__list--lg dt { font-size: 15px; color: var(--ink); font-weight: 500; }
.pricing__list--lg dd { font: 500 17px/1 var(--serif); color: var(--indigo); }

/* ---------- Generic prose container for text-heavy pages ---------- */
.prose {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 96px) 24px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
}
.prose h2 {
  font: 400 clamp(28px, 3vw, 40px)/1.1 var(--serif);
  margin: 48px 0 16px;
  letter-spacing: -0.005em;
  color: var(--ink);
}
.prose h2:first-child { margin-top: 0; }
.prose h3 {
  font: 500 20px/1.2 var(--sans);
  margin: 32px 0 12px;
  color: var(--ink);
}
.prose p { margin: 0 0 16px; color: var(--ink-soft); }
.prose ul, .prose ol { margin: 0 0 20px; padding-left: 20px; color: var(--ink-soft); }
.prose li { margin: 6px 0; line-height: 1.55; }
.prose a {
  color: var(--indigo);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.prose a:hover { text-decoration-thickness: 2px; }
.prose hr {
  border: 0;
  border-top: 1px solid var(--rule);
  margin: 48px 0;
}
.prose blockquote {
  border-left: 3px solid var(--mustard);
  margin: 24px 0;
  padding: 8px 0 8px 24px;
  font: italic 400 18px/1.55 var(--serif);
  color: var(--ink);
}

/* ---------- "Overview" split layout ---------- */
.overview {
  padding: clamp(64px, 9vw, 120px) 0;
}
.overview__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(40px, 6vw, 100px);
  align-items: start;
}
@media (max-width: 900px) {
  .overview__grid { grid-template-columns: 1fr; }
}
.overview__h {
  font: 400 clamp(32px, 4vw, 52px)/1.05 var(--serif);
  margin: 8px 0 16px;
  letter-spacing: -0.005em;
  color: var(--ink);
  text-wrap: balance;
}
.overview__h em { font-style: italic; color: var(--indigo); }
.overview__lede {
  font-size: clamp(17px, 1.2vw, 19px);
  line-height: 1.55;
  color: var(--ink-soft);
}
.overview__body { font-size: 16.5px; line-height: 1.65; color: var(--ink-soft); }
.overview__body p { margin: 0 0 16px; }
.overview__body h3 {
  font: 500 19px/1.2 var(--sans);
  margin: 28px 0 10px;
  color: var(--ink);
}

/* ---------- Card list (FAQ-style, insurance plan list) ---------- */
.plan-list {
  display: grid;
  gap: 12px;
  margin: 24px 0;
}
.plan-list__row {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 10px;
}
.plan-list__row--ok { border-left: 3px solid var(--sage); }
.plan-list__row--bad { border-left: 3px solid var(--clay); background: rgba(200, 110, 85, 0.04); }
.plan-list__row__name { font: 500 15.5px/1 var(--sans); color: var(--ink); }
.plan-list__row__note { font-size: 13px; color: var(--ink-muted); }
.plan-list__row__tag {
  font: 600 11px/1 var(--sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
}
.plan-list__row--ok .plan-list__row__tag { background: rgba(110, 140, 98, 0.14); color: var(--sage-ink); }
.plan-list__row--bad .plan-list__row__tag { background: rgba(200, 110, 85, 0.14); color: var(--clay-ink); }

/* ---------- u-underline utility ---------- */
.u-underline {
  color: var(--indigo);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.u-underline:hover { text-decoration-thickness: 2px; }

/* ---------- 404 ---------- */
.oops {
  min-height: 70vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 80px 24px;
}
.oops__big {
  font: 300 clamp(120px, 22vw, 260px)/1 var(--serif);
  color: var(--indigo);
  letter-spacing: -0.02em;
  margin: 0 0 8px;
}
.oops__h {
  font: 400 clamp(28px, 3vw, 40px)/1.1 var(--serif);
  margin: 0 0 12px;
  color: var(--ink);
}
.oops__deck {
  font-size: 17px;
  color: var(--ink-soft);
  max-width: 480px;
  margin: 0 auto 28px;
}

/* ---------- Extra semantic vars (mapped onto the brand palette) ---------- */
:root {
  --sage: #6e8c62;
  --sage-ink: #4d6245;
  --clay: #c86e55;
  --clay-ink: #8c4a39;
  --mustard-ink: var(--mustard-deep);
  --sand: var(--ivory-soft);
}


/* ============================================================
   Hero side panel — base styles + contrast
   The card had no base styles; add a clean quote-card look.
   ============================================================ */
.hero__side { display: block; }
.hero__image {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 22px;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 20% 0%, color-mix(in oklab, var(--mustard) 22%, transparent) 0%, transparent 55%),
    radial-gradient(100% 80% at 100% 100%, color-mix(in oklab, var(--indigo) 18%, transparent) 0%, transparent 60%),
    linear-gradient(180deg, color-mix(in oklab, var(--ivory-pale) 92%, white) 0%, var(--ivory-pale) 100%);
  border: 1px solid color-mix(in oklab, var(--indigo-deep) 10%, transparent);
  box-shadow: 0 40px 80px -40px rgba(10,30,51,.25), 0 1px 0 rgba(255,255,255,.8) inset;
  padding: 28px;
  display: flex;
  align-items: flex-end;
}
.hero__mandala {
  position: absolute;
  inset: auto -10% -10% auto;
  width: 78%;
  opacity: 0.14;
  pointer-events: none;
  filter: saturate(1.1);
}
.hero__image-inner {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  padding: 26px 28px;
  background: color-mix(in oklab, var(--ivory-pale) 92%, white);
  border: 1px solid color-mix(in oklab, var(--indigo-deep) 12%, transparent);
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 18px 48px -32px rgba(10,30,51,.35);
  color: var(--ink);
}
.hero__image-eyebrow {
  display: block;
  font: 600 11px/1 var(--sans);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--mustard-deep) 88%, var(--ink));
  margin-bottom: 14px;
}
.hero__image-quote {
  display: block;
  font: 400 clamp(18px, 1.5vw, 22px)/1.4 var(--serif);
  color: var(--ink);
  letter-spacing: -0.005em;
}
.hero__image-quote em {
  color: var(--indigo);
  font-style: italic;
}
.hero__image-attrib {
  display: block;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid color-mix(in oklab, var(--ink) 14%, transparent);
}
.hero__image-attrib-name {
  display: block;
  font: 500 14px/1.3 var(--sans);
  color: var(--ink);
}
.hero__image-attrib-role {
  display: block;
  margin-top: 2px;
  font: 500 11px/1 var(--sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}


/* Philosophy link styling lives in ip.css (Stripe-style underline reveal). */
.philosophy__wrap { display: flex; flex-direction: column; }
.philosophy__wrap .philosophy__link { align-self: flex-start; }


/* ------------------------------------------------------------------
 * .mirror — "Who we see" card grid used on specialty pages
 *   (adhd-assessment, anxiety, depression, ptsd, ocd, etc.)
 * ------------------------------------------------------------------ */
.mirror { padding: 72px 0; background: var(--ivory-warm); }
.mirror__head { max-width: 820px; margin: 0 0 32px; }
.mirror__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
@media (max-width: 960px) { .mirror__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .mirror__grid { grid-template-columns: 1fr; } }

.mirror__card {
  position: relative;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 24px 22px;
  transition: border-color 160ms ease-out, box-shadow 200ms ease-out, transform 200ms ease-out;
  box-shadow: 0 1px 2px rgba(15, 58, 109, 0.04);
}
.mirror__card::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 18px;
  width: 24px;
  height: 2px;
  background: var(--mustard);
  border-radius: 2px;
  opacity: 0.9;
  transition: width 200ms ease-out, background-color 160ms ease-out;
}
.mirror__card:hover,
.mirror__card:focus-within {
  border-color: rgba(15, 58, 109, 0.28);
  box-shadow: 0 10px 28px rgba(15, 58, 109, 0.08), 0 2px 6px rgba(15, 58, 109, 0.05);
  transform: translateY(-1px);
}
.mirror__card:hover::before,
.mirror__card:focus-within::before {
  width: 40px;
  background: var(--mustard-deep);
}
.mirror__q {
  font: 500 19px/1.32 var(--serif);
  color: var(--ink);
  margin: 12px 0 10px;
  letter-spacing: -0.01em;
}
.mirror__a {
  font: 400 14.5px/1.55 var(--sans);
  color: var(--ink-soft);
  margin: 0;
}
.mirror__card em { font-style: italic; color: var(--indigo); }

/* Prevent color washout at hover — always keep ink colors stable. */
.mirror__card:hover .mirror__q,
.mirror__card:focus-within .mirror__q { color: var(--ink); }
.mirror__card:hover .mirror__a,
.mirror__card:focus-within .mirror__a { color: var(--ink-soft); }

@media (prefers-reduced-motion: reduce) {
  .mirror__card, .mirror__card::before { transition: none; }
  .mirror__card:hover, .mirror__card:focus-within { transform: none; }
}

/* 2026-06-11 — kill the ghost gray cell: the .steps 6-col grid painted its gray
   container background in unfilled cells (5-step About chart showed a "removed
   step" box). Track count now follows item count. */
.steps { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
@media (max-width: 1080px) {
  .steps { background: transparent; border: 0; gap: 12px; overflow: visible; }
  .steps .step { border: 1px solid var(--rule); border-radius: 10px; }
}

/* 2026-06-11 — real portraits: the placeholder-era glow/texture overlays
   (::before radial ivory+mustard, ::after hairlines) paint OVER the photo and
   read as a bright sheen on faces. Kill them when a real image is present. */
.clinician__photo--img::before,
.clinician__photo--img::after,
.clinician__photo:has(img)::before,
.clinician__photo:has(img)::after { display: none; }

/* 2026-06-11 — mobile form fixes: no horizontal pan while the application is
   open; modal and panels clamp to viewport width. */
.ipf, .ipf__dialog, .ipf__panel, .ipf__content { max-width: 100vw; overflow-x: hidden; }
body.ipf-open, html:has(.ipf) body { overflow-x: hidden; }
@media (max-width: 720px) {
  .ipf__content { overflow-x: hidden; }
  .ipf__field input, .ipf__field select, .ipf__field textarea { max-width: 100%; }
}

/* 2026-06-11 — optional document upload on the application thank-you view */
.ipf__upload { margin: 22px 0 6px; padding: 18px; border: 1px dashed #c9c1ad; border-radius: 12px; background: #faf7f0; }
.ipf__upload-title { margin: 0 0 6px; font-size: 16px; color: #0f3a6d; }
.ipf__upload-body { margin: 0 0 14px; font-size: 13.5px; line-height: 1.55; color: #555; }
.ipf__upload-slot { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 12px; margin-bottom: 8px; border: 1px solid #ddd5c2; border-radius: 8px;
  background: #fff; cursor: pointer; position: relative; }
.ipf__upload-label { font-size: 14px; color: #1a1a1a; }
.ipf__upload-status { font-size: 12.5px; color: #0f3a6d; font-weight: 600; white-space: nowrap; }
.ipf__upload-btn { margin-top: 8px; }
.ipf__upload-msg { margin: 8px 0 0; font-size: 13px; color: #7a5410; min-height: 1em; }

/* 2026-06-12 audit: lead-with-copay box on homepage insurance checker */
.checker__copay { margin:14px 0 6px; padding:14px 16px; border-radius:10px;
  background:linear-gradient(135deg,#eaf3ec,#f3f8f0); border:1px solid #cfe3d4; }
.checker__copay-big { display:block; font:700 30px/1 var(--serif,Georgia); color:#1b5e20; }
.checker__copay-sub { display:block; margin-top:4px; font-size:13px; line-height:1.5; color:#3a5a3f; }
.pricing summary { cursor:pointer; }

/* 2026-06-12 audit: social proof / testimonials */
.proof { background:var(--cream-soft,#faf7f0); border-top:1px solid var(--rule-soft,#e8e2d4); border-bottom:1px solid var(--rule-soft,#e8e2d4); }
.proof__head { text-align:center; max-width:620px; margin:0 auto 36px; }
.proof__eyebrow { font:600 13px/1 var(--mono,monospace); letter-spacing:.14em; text-transform:uppercase; color:var(--mustard,#d78d2a); }
.proof__title { font:400 clamp(26px,3vw,36px)/1.1 var(--serif,Georgia); color:var(--indigo-deep,#0f3a6d); margin:10px 0 8px; letter-spacing:-.01em; }
.proof__sub { font-size:14.5px; color:var(--ink-muted,#6b6b6b); }
.proof__sub a { color:var(--indigo,#0f3a6d); text-decoration:underline; }
.proof__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; max-width:1080px; margin:0 auto; }
.proof__card { background:#fff; border:1px solid var(--rule-soft,#e8e2d4); border-radius:14px; padding:22px 22px 18px; display:flex; flex-direction:column; }
.proof__stars { color:#d78d2a; font-size:14px; letter-spacing:2px; margin-bottom:10px; }
.proof__quote { font-size:15px; line-height:1.6; color:var(--ink,#1a1a1a); flex:1; }
.proof__who { margin-top:14px; font-size:13px; color:var(--ink-muted,#6b6b6b); }
.proof__who b { color:var(--indigo-deep,#0f3a6d); font-weight:600; }
.proof__src { text-align:center; margin-top:28px; font-size:13px; color:var(--ink-muted,#6b6b6b); }
.proof__src a { color:var(--indigo,#0f3a6d); text-decoration:underline; }

/* 2026-06-12 audit: credentials ribbon — elegant light strip under the nav
   (not a second navy slab; complements the navy announcement bar) */
.trustbar { background:linear-gradient(180deg,#f6efe1,#f1e8d6);
  border-top:1px solid rgba(215,141,42,.45); border-bottom:1px solid rgba(15,58,109,.08); }
.trustbar__inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:6px 0; padding:8px 16px; }
.trustbar__inner span { position:relative; display:inline-flex; align-items:center;
  font:600 11.5px/1 var(--mono,monospace); letter-spacing:.13em; text-transform:uppercase;
  color:var(--indigo-deep,#0f3a6d); padding:0 18px; white-space:nowrap; }
.trustbar__inner span+span::before { content:""; position:absolute; left:-3px; top:50%;
  width:5px; height:5px; margin-top:-2.5px; border-radius:50%; background:var(--mustard,#d78d2a); }
@media (max-width:760px){
  .trustbar__inner { gap:5px 0; padding:7px 12px; }
  .trustbar__inner span { font-size:10px; letter-spacing:.09em; padding:0 11px; }
  .trustbar__inner span+span::before { left:-1px; width:4px; height:4px; margin-top:-2px; }
}

/* 2026-06-12 audit: mobile sticky CTA bar (95% of ad traffic is phones) */
.mcta { position:fixed; left:0; right:0; bottom:0; z-index:60; display:none;
  gap:10px; padding:10px 12px; padding-bottom:max(10px,env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96); backdrop-filter:blur(8px);
  border-top:1px solid var(--rule-soft,#e8e2d4); box-shadow:0 -4px 18px rgba(15,58,109,.10); }
.mcta a { flex:1; text-align:center; padding:13px 10px; border-radius:10px; font:600 15px/1 var(--sans,system-ui); text-decoration:none; }
.mcta__apply { background:var(--indigo-deep,#0f3a6d); color:#fff; flex:1.6; }
.mcta__call { background:transparent; color:var(--indigo-deep,#0f3a6d); border:1.5px solid var(--indigo-deep,#0f3a6d); }
@media (max-width:760px){
  .mcta{ display:flex; transform:translateY(110%); opacity:0; transition:transform .28s ease, opacity .2s ease; pointer-events:none; }
  .mcta.is-shown{ transform:translateY(0); opacity:1; pointer-events:auto; }
}

/* 2026-06-12: floating "Verified on Yelp" seal, overlapping the card corner */
.proof__card { position:relative; overflow:visible; padding-top:26px; }
.proof__yelp { position:absolute; top:-13px; right:16px; z-index:2;
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px 6px 9px; background:#fff; border:1px solid #f0e6d6;
  border-radius:999px; box-shadow:0 4px 14px rgba(15,58,109,.14); }
.proof__yelp svg { display:block; flex:none; }
.proof__yelp-txt { font:600 11.5px/1 var(--sans,system-ui); letter-spacing:.02em; color:var(--ink-muted,#6b6b6b); white-space:nowrap; }
.proof__yelp-txt b { color:#d32323; font-weight:700; }
@media (max-width:600px){ .proof__yelp{ right:14px; padding:5px 10px 5px 8px } .proof__yelp-txt{ font-size:11px } }

/* 2026-06-12: tighten mobile hero entrance — drop the redundant location eyebrow
   on small screens (announcement bar + headline already carry context) */
@media (max-width:600px){ .hero__meta { display:none; } }

/* 2026-06-12: hide sticky CTA while the mobile menu is open (don't float over it) */
body.menu-open .mcta { transform:translateY(110%) !important; opacity:0 !important; pointer-events:none !important; }
