/* ═══════════════════════════════════════════════════════════════════════
   GSP FAMILY SKIN — 2026-10-26
   Brings every page into the family homepage look (cream + sky, navy
   Fraunces headings, gold CTAs, green accents, soft rounded cards, Weave
   art in each hero). Linked from header.php AFTER wp_head(), so it loads
   after style.css and after every inline plugin patch in <head>.

   Rules:
   - Tokens on :root re-skin every template that styles through var(--*).
   - Component rules are prefixed body:not(.home) so the homepage (.fh,
     self-contained) stays pixel-identical; header and footer rules are global.
   - No copy, links, schema or form fields change here. CSS only.
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  /* family palette (same values as the homepage .fh tokens) */
  --fam-navy: #1b2d5b;
  --fam-navy-deep: #15244a;
  --fam-navy-ink: #0e172e;
  --fam-ink: #1f2a44;
  --fam-muted: #535d72;
  --fam-gold: #F2B134;
  --fam-gold-hover: #f7c252;
  --fam-gold-ink: #7a4d00;
  --fam-green: #00AE01;
  --fam-green-ink: #0b7a0d;
  --fam-cream: #fff3da;
  --fam-cream-hi: #fff9ee;
  --fam-sky-top: #cfeafb;
  --fam-sky-low: #e3f4fd;
  --fam-mint: #e2f3e9;
  --fam-leaf: #e8f4e2;
  --fam-line: #e8e1d2;
  --fam-hand: "Caveat", "Segoe Script", "Bradley Hand", cursive;
  --fam-shadow-1: 0 1px 2px rgba(21,36,74,.06), 0 4px 12px rgba(21,36,74,.06);
  --fam-shadow-2: 0 2px 4px rgba(21,36,74,.05), 0 18px 40px -10px rgba(21,36,74,.2);
  --fam-shadow-3: 0 4px 10px rgba(21,36,74,.08), 0 32px 64px -16px rgba(21,36,74,.3);
  --fam-ease: cubic-bezier(.16, 1, .3, 1);

  /* theme tokens re-pointed (style.css :root) */
  --bg: #fffdf8;
  --bg-warm: #fff3da;
  --bg-ink: #15244a;
  --bg-ink-soft: #1b2d5b;
  --bg-ink-mid: #22356a;
  --surface: #ffffff;
  --text: #1f2a44;
  --text-2: #535d72;
  --text-3: #5f6880;
  --inv: #fafaf8;
  --inv-m: rgba(250,250,248,.78);
  --inv-f: rgba(250,250,248,.5);
  --warm: #8a5a00;
  --warm-h: #7a4d00;
  --warm-s: rgba(242,177,52,.16);
  --brd: rgba(27,45,91,.08);
  --brd-s: rgba(27,45,91,.14);
  --brd-i: rgba(255,255,255,.12);
  --brd-m: rgba(27,45,91,.5);
  --bg-veil: rgba(255,253,248,.95);
  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --r: 14px;
  --r-l: 20px;
  --r-x: 28px;
}

/* ─── HEADER (all pages) ─────────────────────────────────────────────── */
.gsp-header {
  background: rgba(255,255,255,.92);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid rgba(27,45,91,.08);
}
.gsp-header__inner { max-width: 1240px; height: 72px; gap: 24px; }
.gsp-logo { display: inline-flex; align-items: center; min-height: 44px; flex: none; border-radius: 4px; }
.gsp-logo img { display: block; height: 34px; width: auto; }
.gsp-logo:focus-visible { outline: 2px solid var(--fam-navy); outline-offset: 4px; }
.gsp-nav { margin-left: auto; gap: 26px; }
.gsp-nav__link {
  position: relative; color: var(--fam-ink); font-weight: 600; font-size: 15px;
  padding: 12px 0; line-height: 20px; white-space: nowrap;
}
.gsp-nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; border-radius: 2px;
  background: var(--fam-gold); transform: scaleX(0); transform-origin: left; transition: transform .26s var(--fam-ease);
}
.gsp-nav__link:hover, .gsp-nav__link:focus-visible, .gsp-nav__link--active { color: var(--fam-navy); }
.gsp-nav__link:hover::after, .gsp-nav__link:focus-visible::after, .gsp-nav__link--active::after { transform: scaleX(1); }
.gsp-nav__cta, .gsp-mobile-menu .gsp-nav__cta {
  background: var(--fam-gold); color: var(--fam-navy-deep); font-size: 14px; font-weight: 700;
  border-radius: 10px; padding: 10px 18px; white-space: nowrap;
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 6px 16px -6px rgba(201,138,18,.55);
}
.gsp-nav__cta:hover, .gsp-nav__cta:focus-visible {
  background: var(--fam-gold-hover); color: var(--fam-navy-deep); transform: translateY(-2px);
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 12px 24px -8px rgba(201,138,18,.6);
}
.gsp-nav__cta:focus-visible { outline: 2px solid var(--fam-navy); outline-offset: 2px; }
.gsp-lang__sel { border-radius: 10px; border-color: rgba(27,45,91,.18); color: var(--fam-ink); }
.gsp-hamburger { border: 1px solid rgba(27,45,91,.16); border-radius: 10px; background: #fff; width: 44px; height: 44px; padding: 0; }
.gsp-hamburger:hover { background: #f3f8fd; border-color: rgba(27,45,91,.3); }
.gsp-hamburger span { width: 20px; background: var(--fam-navy); border-radius: 2px; }
.gsp-mobile-menu { top: 72px; background: #fff; border-top: 1px solid rgba(27,45,91,.08); }
.gsp-mobile-menu__link { color: var(--fam-ink); font-weight: 600; border-bottom-color: var(--fam-line); }
.gsp-mobile-menu__link:hover, .gsp-mobile-menu__link:focus { color: var(--fam-navy); }
.gsp-mobile-menu .gsp-nav__cta { font-size: 16px; padding: 16px; justify-content: center; }
body.admin-bar .gsp-mobile-menu { top: 104px; }
@media (max-width: 1240px) { .gsp-nav { gap: 20px; } .gsp-nav__link { font-size: 14px; } }
@media (max-width: 600px) {
  .gsp-header__inner { height: 64px; padding: 0 16px; gap: 8px; }
  .gsp-logo img { height: 26px; }
  .gsp-mobile-menu { top: 64px; }
}

/* ─── FOOTER (all pages): navy instead of ink; the Weave band fades from it ── */
.gsp-footer { border-top: 0; }
.gsp-footer .gsp-footer__link:hover { color: var(--fam-gold-hover); }
.gsp-band__art::before { background: linear-gradient(180deg, var(--bg-ink) 0%, rgba(21,36,74,.55) 45%, rgba(21,36,74,0) 100%); }

/* ─── BASE TYPE (inner pages) ────────────────────────────────────────── */
body:not(.home) { color: var(--fam-ink); }
body:not(.home) a:hover { color: var(--fam-green-ink); }
body:not(.home) :is(h1, h2, h3, .gsp-h1, .gsp-h2, .gsp-h3) {
  font-family: var(--serif); font-optical-sizing: auto; font-variation-settings: "SOFT" 100, "WONK" 0;
  color: var(--fam-navy); letter-spacing: -.015em; text-wrap: balance;
}
body:not(.home) :is(h1, .gsp-h1) { font-weight: 800; letter-spacing: -.022em; line-height: 1.04; }
body:not(.home) :is(h2, .gsp-h2) { font-weight: 700; line-height: 1.1; }
body:not(.home) :is(h1, h2, h3, .gsp-h1, .gsp-h2, .gsp-h3) em {
  font-style: italic; font-weight: 700; color: var(--fam-green-ink);
  font-variation-settings: "SOFT" 100, "WONK" 1;
}
body:not(.home) .gsp-h4 { color: var(--fam-navy); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft, .gsp-card--dark, .gsp-lf--dark) :is(h1, h2, h3, h4, .gsp-h2, .gsp-h3, .gsp-h4) { color: #fff; }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft, .gsp-card--dark, .gsp-lf--dark) :is(h1, h2, h3, .gsp-h2, .gsp-h3) em { color: var(--fam-gold); }
body:not(.home) .gsp-mono { font-family: var(--sans); font-weight: 600; letter-spacing: .01em; }

/* eyebrow labels: navy caps with the green rule, like the homepage */
body:not(.home) :is(.gsp-label, .gsp-label--pill) {
  display: flex !important; align-items: center; gap: 12px; width: fit-content;
  font: 700 13px/1.3 var(--sans) !important; letter-spacing: .16em !important; text-transform: uppercase;
  color: var(--fam-navy) !important; background: none !important; padding: 0 !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin-bottom: 16px;
}
body:not(.home) :is(.gsp-label, .gsp-label--pill)::before {
  content: ""; width: 28px; height: 3px; border-radius: 2px; background: var(--fam-green); flex: none;
}
body:not(.home) :is(.gsp-tc, .gsp-section-header, .gsp-cta-block) :is(.gsp-label, .gsp-label--pill) { margin-left: auto; margin-right: auto; }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft, .gsp-lf--dark) :is(.gsp-label, .gsp-label--pill) { color: var(--fam-gold) !important; }

/* ─── SECTIONS ───────────────────────────────────────────────────────── */
body:not(.home) .gsp-section--warm { background: linear-gradient(180deg, #fff7e6 0%, var(--fam-cream) 100%); }
body:not(.home) .gsp-section--ink {
  background:
    radial-gradient(55% 70% at 88% 0%, rgba(242,177,52,.16) 0%, rgba(242,177,52,0) 62%),
    linear-gradient(180deg, var(--fam-navy) 0%, var(--fam-navy-deep) 100%);
}
body:not(.home) .gsp-section--ink-soft {
  background:
    radial-gradient(50% 70% at 10% 100%, rgba(0,174,1,.12) 0%, rgba(0,174,1,0) 60%),
    linear-gradient(180deg, #22356a 0%, var(--fam-navy) 100%);
}
body:not(.home) .gsp-section-header p { color: var(--fam-muted); }
body:not(.home) .gsp-divider { background: var(--fam-line); }

/* ─── HERO: sky wash, soft sun, rolling lawn, Weave art on the right ── */
body:not(.home) .gsp-hero {
  position: relative; isolation: isolate; overflow: hidden; text-align: left;
  padding: 72px 0 0;
  background:
    radial-gradient(38% 60% at 82% 18%, rgba(255,222,150,.55) 0%, rgba(255,222,150,0) 70%),
    linear-gradient(180deg, var(--fam-sky-top) 0%, var(--fam-sky-low) 36%, #fff6e2 74%, var(--bg) 100%);
}
body:not(.home) .gsp-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; z-index: -1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 40 C 240 12, 520 8, 760 26 S 1180 52, 1440 22 L1440 56 L0 56 Z' fill='%23e8f4e2'/%3E%3Cpath d='M0 50 C 300 34, 640 40, 900 46 S 1300 40, 1440 44 L1440 56 L0 56 Z' fill='%23fffdf8'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
}
body:not(.home) .gsp-hero .gsp-hero__content,
body:not(.home) .gsp-hero--sub .gsp-hero__content { max-width: 1140px; margin: 0 auto; padding: 0 24px 64px; }
body:not(.home) .gsp-hero--sub .gsp-hero__sub,
body:not(.home) .gsp-hero .gsp-hero__sub { margin-left: 0; margin-right: 0; color: var(--fam-muted); max-width: 620px; }
body:not(.home) .gsp-hero--sub .gsp-hero__ctas { justify-content: flex-start; }
body:not(.home) .gsp-hero h1 { font-size: clamp(2.5rem, 1.2rem + 3.4vw, 4rem); margin-bottom: 20px; max-width: 16ch; }
body:not(.home) .gsp-hero__note { color: var(--fam-muted); }
body:not(.home) :is(.gsp-hero__badges, .gsp-hero__stats) {
  position: relative; z-index: 1; border-top: 0; gap: 10px 12px; padding-top: 8px; padding-bottom: 40px;
}
body:not(.home) .gsp-hero__badge {
  font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--fam-navy);
  background: rgba(255,255,255,.85); border: 1px solid rgba(27,45,91,.1); border-radius: 999px; padding: 8px 14px;
  box-shadow: var(--fam-shadow-1);
}
body:not(.home) .gsp-hero__stat-num { font-family: var(--serif); color: var(--fam-green-ink); font-weight: 800; }
body:not(.home) .gsp-hero__stat-label { color: var(--fam-muted); }

/* per-template hero art (WordPress body class page-template-<file>-php) */
body.page-template-page-about-php { --fam-art: url("../img/gabe-about.webp"); --fam-art-w: 500px; }
body:is(.page-template-page-services-php, .page-template-page-service-single-php) { --fam-art: url("../img/dog-plan.webp"); --fam-art-w: 380px; }
body.page-template-page-how-it-works-php { --fam-art: url("../img/dog-steps.webp"); --fam-art-w: 520px; }
body.page-template-page-pricing-php { --fam-art: url("../img/pricing-clipboard.webp"); --fam-art-w: 520px; }
body.page-template-page-faq-php { --fam-art: url("../img/girl-thinking.webp"); --fam-art-w: 460px; }
body:is(.page-template-page-resources-php, .page-template-page-resource-article-php) { --fam-art: url("../img/girl-books.webp"); --fam-art-w: 440px; }
body:is(.blog, .single-post, .category) { --fam-art: url("../img/bruce-paper.webp"); --fam-art-w: 440px; }
body.page-template-page-network-php { --fam-art: url("../img/realtor-house.webp"); --fam-art-w: 520px; }
body.page-template-page-booking-php { --fam-art: url("../img/booking-call.webp"); --fam-art-w: 500px; }
body.page-template-page-contact-php { --fam-art: url("../img/bruce-phone.webp"); --fam-art-w: 380px; }
body.page-template-page-reviews-php { --fam-art: url("../img/family-porch.webp"); --fam-art-w: 540px; }
body:is(.page-template-page-privacy-php, .page-template-page-terms-php, .page-template-page-compliance-php) { --fam-art: url("../img/bruce-legal.webp"); --fam-art-w: 340px; }

@media (min-width: 960px) {
  body:not(.home) .gsp-hero { min-height: 420px; }
  body:not(.home)[class*="page-template-"] .gsp-hero,
  body:not(.home):is(.blog, .single-post, .category) .gsp-hero { --fam-art-slot: min(var(--fam-art-w, 0px), 42vw); }
  body:not(.home) .gsp-hero .gsp-hero__content { padding-right: calc(var(--fam-art-slot, 0px) + 48px); }
  /* short heroes (Contact, the legal pages) still give the art room to read */
  body:not(.home):is([class*="page-template-"], .blog, .single-post, .category):not(.page-template-page-90-day-accelerator-php) .gsp-hero .gsp-hero__content { min-height: 380px; }
  body:not(.home) .gsp-hero .gsp-hero__content::before {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    right: max(24px, calc(50% - 570px)); top: 48px; bottom: 72px; width: var(--fam-art-slot, 0px);
    background: var(--fam-art, none) right center / contain no-repeat; mix-blend-mode: multiply;
  }
}
@media (max-width: 959px) {
  body:not(.home) .gsp-hero { padding-top: 24px; }
  body:not(.home) .gsp-hero .gsp-hero__content::before {
    content: ""; display: block; height: 0; margin: 0 auto 8px; max-width: 420px;
    background: var(--fam-art, none) center / contain no-repeat; mix-blend-mode: multiply;
  }
  body:not(.home):is([class*="page-template-"], .blog, .single-post, .category) .gsp-hero .gsp-hero__content::before { height: 190px; }
  body.page-template-page-90-day-accelerator-php .gsp-hero .gsp-hero__content::before { height: 0; margin: 0; }
}
body:not(.home) .gsp-hero .gsp-hero__content { position: relative; }

/* ─── BUTTONS (inner pages) ──────────────────────────────────────────── */
body:not(.home) .gsp-btn {
  border-radius: 10px; font-weight: 700; min-height: 48px;
  transition: transform .26s var(--fam-ease), background-color .16s ease, box-shadow .26s var(--fam-ease), border-color .16s ease, color .16s ease;
}
body:not(.home) .gsp-btn--primary {
  background: var(--fam-gold); color: var(--fam-navy-deep);
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 6px 16px -6px rgba(201,138,18,.55);
}
body:not(.home) .gsp-btn--primary:hover {
  background: var(--fam-gold-hover); color: var(--fam-navy-deep); transform: translateY(-2px);
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 12px 24px -8px rgba(201,138,18,.6);
}
body:not(.home) .gsp-btn--primary:focus-visible { outline: 2px solid var(--fam-navy); outline-offset: 2px; }
body:not(.home) .gsp-btn--outline { background: #fff; color: var(--fam-navy); border: 1.5px solid rgba(27,45,91,.22); }
body:not(.home) .gsp-btn--outline:hover { border-color: var(--fam-navy); color: var(--fam-navy); transform: translateY(-2px); box-shadow: var(--fam-shadow-1); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-btn--outline:hover { border-color: #fff; color: #fff; }

/* ─── CARDS, TESTIMONIALS, SIDEBAR ───────────────────────────────────── */
body:not(.home) :is(.gsp-card, .gsp-testimonial, .gsp-sidebar-card) {
  border-radius: 16px; border: 1px solid rgba(27,45,91,.08); background: #fff; box-shadow: var(--fam-shadow-1);
}
body:not(.home) .gsp-card:hover { border-color: rgba(242,177,52,.55); box-shadow: var(--fam-shadow-2); transform: translateY(-3px); }
body:not(.home) .gsp-card--accent-top { border-top: 4px solid var(--fam-green); }
body:not(.home) .gsp-card--red-top { border-top: 4px solid #c0392b; }
body:not(.home) .gsp-card--dark { background: #22356a; border-color: rgba(255,255,255,.1); }
body:not(.home) .gsp-testimonial__stars { color: var(--fam-gold); }
body:not(.home) .gsp-testimonial__quote { color: var(--fam-ink); }
body:not(.home) .gsp-sidebar-card { border-top: 4px solid var(--fam-gold); }

/* ─── LISTS, BELIEFS, BADGES, STATS, PULLQUOTE ───────────────────────── */
body:not(.home) .gsp-checklist li { padding-left: 36px; color: var(--fam-ink); border-bottom-color: var(--fam-line); }
body:not(.home) .gsp-checklist li::before {
  content: "\2713"; top: 13px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  background: var(--fam-mint); color: var(--fam-green-ink); font-size: 12px; line-height: 1;
}
body:not(.home) .gsp-xlist li::before { content: "\2717"; background: #fdeadb; color: #b42318; }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-checklist li { color: var(--inv-m); border-bottom-color: rgba(255,255,255,.1); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-checklist li::before { background: rgba(0,174,1,.18); color: #7fd67f; }
body:not(.home) .gsp-belief { border-bottom-color: var(--fam-line); }
body:not(.home) .gsp-belief__icon { color: var(--fam-gold-ink); }
body:not(.home) .gsp-badge {
  font-family: var(--sans); letter-spacing: .08em; background: var(--fam-mint); color: var(--fam-green-ink);
  border-color: rgba(11,122,13,.18);
}
body:not(.home) .gsp-badge--warm { background: #fff2cf; color: var(--fam-gold-ink); border-color: rgba(122,77,0,.18); }
body:not(.home) .gsp-stat__num { font-family: var(--serif); font-weight: 800; color: var(--fam-green-ink); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-stat__num { color: var(--fam-gold); }
body:not(.home) .gsp-pullquote {
  font-family: var(--serif); font-variation-settings: "SOFT" 100, "WONK" 1; color: var(--fam-navy);
  background: #fff6dc; border-left: 4px solid var(--fam-gold); border-radius: 0 16px 16px 0; padding: 20px 24px;
}
body:not(.home) .gsp-pullquote--center { border-left: 0; border-radius: 22px 22px 22px 8px; border: 2px solid var(--fam-gold); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-pullquote { background: rgba(255,255,255,.06); color: #fff; }
body:not(.home) .gsp-cta-block { border-color: var(--fam-line); background: #fff; border: 1px solid rgba(27,45,91,.08); border-radius: 20px; box-shadow: var(--fam-shadow-1); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-cta-block { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); box-shadow: none; }
body:not(.home) .gsp-booking-col { border-radius: 16px; }
body:not(.home) .gsp-booking-col--is { background: var(--fam-leaf); border-color: rgba(11,122,13,.18); }
body:not(.home) .gsp-service-level { border-bottom-color: var(--fam-line); }

/* ─── FAQ ACCORDION as soft cards ────────────────────────────────────── */
body:not(.home) .gsp-faq__item {
  background: #fff; border: 1px solid rgba(27,45,91,.08); border-radius: 14px; margin-bottom: 12px;
  padding: 0 20px; box-shadow: var(--fam-shadow-1);
}
body:not(.home) .gsp-faq__q { color: var(--fam-navy); font-weight: 700; padding-right: 48px; }
body:not(.home) .gsp-faq__q::after {
  content: "+"; top: 50%; right: 0; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%;
  display: grid; place-items: center; background: #fff2cf; color: var(--fam-gold-ink); font-size: 20px; font-weight: 600; line-height: 1;
}
body:not(.home) .gsp-faq__q[aria-expanded="true"]::after { content: "\2212"; background: var(--fam-gold); color: var(--fam-navy-deep); }
body:not(.home) .gsp-faq__a { color: var(--fam-muted); }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-faq__item { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); box-shadow: none; }
body:not(.home) :is(.gsp-section--ink, .gsp-section--ink-soft) .gsp-faq__q { color: #fff; }

/* ─── FORMS + INLINE LEAD FORM ───────────────────────────────────────── */
body:not(.home) :is(.gsp-form__input, .gsp-form__select, .gsp-form__textarea) { border-radius: 10px; border-color: var(--brd-m); }
body:not(.home) :is(.gsp-form__input, .gsp-form__select, .gsp-form__textarea):focus {
  border-color: var(--fam-navy); box-shadow: 0 0 0 3px rgba(242,177,52,.45);
}
body:not(.home) .gsp-lf {
  border: 1px solid rgba(27,45,91,.08); border-top: 5px solid var(--fam-gold); border-radius: 20px; box-shadow: var(--fam-shadow-3);
}
body:not(.home) .gsp-lf--inline { border: 0; box-shadow: none; }
body:not(.home) .gsp-lf--dark { background: var(--fam-navy-deep); border-color: rgba(255,255,255,.1); border-top-color: var(--fam-gold); }
body:not(.home) .gsp-lf__eyebrow { font-family: var(--sans); letter-spacing: .14em; color: var(--fam-green-ink); }
body:not(.home) .gsp-lf--dark .gsp-lf__eyebrow { color: var(--fam-gold); }
body:not(.home) .gsp-lf__heading { font-family: var(--serif); font-variation-settings: "SOFT" 100, "WONK" 0; color: var(--fam-navy); }
body:not(.home) .gsp-lf--dark .gsp-lf__heading { color: #fff; }
body:not(.home) .gsp-lf__consent { background: var(--fam-cream-hi); border-color: var(--fam-line); }
body:not(.home) .gsp-lf--dark .gsp-lf__consent { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: var(--inv-m); }
body:not(.home) .gsp-lf__consent input { accent-color: var(--fam-green-ink); }
body:not(.home) .gsp-lf__check { background: var(--fam-mint); color: var(--fam-green-ink); border-color: rgba(11,122,13,.2); }

/* ─── STICKY MOBILE CTA (inner pages) ────────────────────────────────── */
body:not(.home) .gsp-sticky { border-top-color: var(--fam-line); }
body:not(.home) .gsp-sticky__call { border-radius: 10px; color: var(--fam-navy); border-color: rgba(27,45,91,.2); }

/* ─── BLOG + ARTICLES ────────────────────────────────────────────────── */
body:not(.home) .gsp-blog-card { border-radius: 16px; border-color: rgba(27,45,91,.08); box-shadow: var(--fam-shadow-1); }
body:not(.home) .gsp-blog-card:hover { box-shadow: var(--fam-shadow-2); border-color: rgba(242,177,52,.55); }

/* ─── MOTION PREFERENCE ──────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .gsp-nav__link::after, body:not(.home) .gsp-btn, body:not(.home) .gsp-card { transition: none; }
  body:not(.home) .gsp-btn:hover, body:not(.home) .gsp-card:hover, .gsp-nav__cta:hover { transform: none; }
}

/* Header CTA: the nav is hamburger-only at every width (style.css, 2026-07-25),
   so the booking button sits in the bar itself on tablet and desktop. */
.gsp-header__cta {
  margin-left: auto; display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px;
  border-radius: 10px; background: var(--fam-gold); color: var(--fam-navy-deep); font: 700 14px/1.2 var(--sans);
  white-space: nowrap; text-decoration: none;
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 6px 16px -6px rgba(201,138,18,.55);
  transition: transform .26s var(--fam-ease), background-color .16s ease, box-shadow .26s var(--fam-ease);
}
.gsp-header__cta:hover, .gsp-header__cta:focus-visible {
  background: var(--fam-gold-hover); color: var(--fam-navy-deep); transform: translateY(-2px);
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 12px 24px -8px rgba(201,138,18,.6);
}
.gsp-header__cta:focus-visible { outline: 2px solid var(--fam-navy); outline-offset: 2px; }
.gsp-header__inner .gsp-lang { margin-left: 4px; }
@media (max-width: 600px) {
  .gsp-header__cta { display: none; }
  .gsp-header__inner .gsp-lang { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) { .gsp-header__cta { transition: none; } .gsp-header__cta:hover { transform: none; } }

/* Text-safe brand green: #00AE01 is 2.98:1 on white, so on light backgrounds every
   var(--brand) link/accent uses the AA green; dark surfaces keep the bright one. */
:root { --brand: #0b7a0d; --brand-h: #096a0b; --brand-cta: #0b7a0d; --brand-cta-hover: #096a0b; --green: #0b7a0d; }
:is(.gsp-section--ink, .gsp-section--ink-soft, .gsp-card--dark, .gsp-lf--dark, .gsp-footer) { --brand: #2fc22f; --brand-h: #5fd45f; --green: #7fd67f; }

/* ─── 90-DAY ACCELERATOR (.gsp-hb scopes its own tokens; re-point them) ── */
body:not(.home) .gsp-hb {
  --bg: #fffdf8; --bg-alt: #fff3da; --bg-dark: #15244a;
  --text: #1f2a44; --hb-text-2: #3a4560; --hb-text-3: #535d72; --text-muted: #5f6880;
  --brand: #0b7a0d; --brand-cta: #0b7a0d; --brand-cta-hover: #096a0b;
  --warm: #8a5a00; --hb-brd: rgba(27,45,91,.1); --hb-brd-s: rgba(27,45,91,.18);
  --surface-3: #fff3da; --hb-r: 10px; --hb-r-l: 16px; --hb-r-x: 20px;
}
body:not(.home) .gsp-hb .hero {
  background:
    radial-gradient(38% 60% at 50% 0%, rgba(255,222,150,.5) 0%, rgba(255,222,150,0) 70%),
    linear-gradient(180deg, var(--fam-sky-top) 0%, var(--fam-sky-low) 40%, #fff6e2 80%, #fffdf8 100%);
}
body:not(.home) .gsp-hb .hero::before { display: none; }
body:not(.home) .gsp-hb .btn--primary {
  background: var(--fam-gold); color: var(--fam-navy-deep);
  box-shadow: inset 0 -2px 0 rgba(122,77,0,.22), 0 6px 16px -6px rgba(201,138,18,.55);
}
body:not(.home) .gsp-hb .btn--primary:hover, body:not(.home) .gsp-hb .btn--primary:focus-visible { background: var(--fam-gold-hover); color: var(--fam-navy-deep); }
body:not(.home) .gsp-hb .btn--ghost { background: #fff; color: var(--fam-navy); border: 1.5px solid rgba(27,45,91,.22); }
body:not(.home) .gsp-hb :is(#partners, .closing) {
  background:
    radial-gradient(55% 70% at 88% 0%, rgba(242,177,52,.16) 0%, rgba(242,177,52,0) 62%),
    linear-gradient(180deg, var(--fam-navy) 0%, var(--fam-navy-deep) 100%);
}
body:not(.home) .gsp-hb .closing :is(h2 em, .label) { color: var(--fam-gold); }

/* ─── MOBILE FIXES (these overflowed at 375px before the skin too) ───── */
body:not(.home) .gsp-lf--dark .gsp-lf__consent span[aria-hidden="true"] { color: #ff9b8f !important; }
body:not(.home) :is(.gsp-split, .gsp-content-sidebar, .gsp-grid-2, .gsp-grid-3, .gsp-grid-4) > * { min-width: 0; }
/* the pricing table's absolutely positioned badges were anchored outside its scroller and widened the page to 831px on phones */
body:not(.home) .gsp-pr-tablewrap { position: relative; }
body:not(.home) main :is(p, li, a, h2, h3, td) { overflow-wrap: break-word; }
@media (max-width: 768px) {
  body:not(.home) main :not(.gsp-pr-tablewrap) > table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 600px) {
  body:not(.home) .gsp-btn { white-space: normal; max-width: 100%; text-align: center; line-height: 1.3; }
  body:not(.home) :is(.gsp-hero__ctas, .gsp-cta-block) .gsp-btn { width: 100%; }
}

/* 90-day page: its own @media rules use unprefixed selectors (.fit-grid) that lose to the
   desktop rules (.gsp-hb .fit-grid), so none of them ever applied and two-column grids ran
   off the side on phones. Same values, restated with enough specificity. */
@media (max-width: 900px) { body:not(.home) .gsp-hb .apply-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 868px) { body:not(.home) .gsp-hb .partner-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; } }
@media (max-width: 768px) {
  body:not(.home) .gsp-hb .why-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  body:not(.home) .gsp-hb .fit-grid { grid-template-columns: minmax(0, 1fr); }
  body:not(.home) .gsp-hb .commitment-box { padding: 32px 24px; }
  body:not(.home) .gsp-hb .partner-form { padding: 28px 24px; }
}
@media (max-width: 640px) {
  body:not(.home) .gsp-hb .modal__header { padding: 24px 24px 0; }
  body:not(.home) .gsp-hb .modal__body { padding: 20px 24px 28px; }
}
@media (max-width: 480px) {
  body:not(.home) .gsp-hb :is(.diff-grid, .apply-steps, .form-row) { grid-template-columns: minmax(0, 1fr); }
}

/* ─── BRUCE NARRATION (gsp_bruce() in header.php, one line under each hero) ─ */
.gsp-bruce { background: var(--bg); padding: 4px 0 0; position: relative; }
.gsp-bruce__row { display: flex; align-items: center; gap: 16px; }
.gsp-bruce__avatar {
  flex: none; width: 76px; height: 76px; border-radius: 50%; background: #fff; border: 3px solid #fff;
  box-shadow: 0 0 0 3px var(--fam-gold), 0 10px 22px rgba(21,36,74,.18);
  transition: transform .26s var(--fam-ease);
}
.gsp-bruce__row:hover .gsp-bruce__avatar { transform: rotate(-6deg) scale(1.04); }
.gsp-bruce__bubble {
  position: relative; margin: 0; max-width: 44rem; padding: 12px 28px 12px 22px;
  background: #fff6dc; border: 2px solid var(--fam-gold); border-radius: 22px 22px 22px 8px;
  box-shadow: 0 12px 30px rgba(21,36,74,.13), 0 2px 0 rgba(122,77,0,.12);
  font-family: var(--fam-hand); font-size: 1.5rem; font-weight: 600; line-height: 1.25; color: #263a73;
}
.gsp-bruce__bubble::before {
  content: ""; position: absolute; left: -10px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
  background: #fff6dc; border-left: 2px solid var(--fam-gold); border-bottom: 2px solid var(--fam-gold); transform: rotate(45deg);
}
.gsp-bruce__sig { font-size: 1.125rem; color: var(--fam-gold-ink); white-space: nowrap; }
.gsp-bruce + .gsp-section, .gsp-bruce + section { padding-top: 56px; }
@media (max-width: 600px) {
  .gsp-bruce__row { gap: 12px; padding-left: 16px; padding-right: 16px; }
  .gsp-bruce__avatar { width: 58px; height: 58px; }
  .gsp-bruce__bubble { font-size: 1.3125rem; padding: 10px 16px 10px 16px; }
  .gsp-bruce + .gsp-section, .gsp-bruce + section { padding-top: 40px; }
}
@media (prefers-reduced-motion: reduce) { .gsp-bruce__avatar { transition: none; } .gsp-bruce__row:hover .gsp-bruce__avatar { transform: none; } }
