/* =================================================================
   THE GREEN BRAIN PROJECT
   styles.css — single stylesheet, token-driven.
   Build per christina/website-prd-v3-amendments.md
   Order: tokens · reset · base · layout · components · pages · mobile · print
   ================================================================= */

/* ---------- 1. TOKENS (locked from logo, v3 §C) ---------- */
:root {
  /* Colour */
  --gbp-bg:          #F4EDDC;
  --gbp-bg-warm:     #EBE2CC;
  --gbp-ink:         #1F2E1F;
  --gbp-deep:        #2D4D2D;
  --gbp-mid:         #6B8E55;
  --gbp-light:       #A8C18B;
  --gbp-muted:       #7A786A;
  --gbp-rule:        #D6CFB8;
  --gbp-ink-on-deep: #F4EDDC;
  /* Traffic-light accents for The Approach page */
  --gbp-red:    #C44A3B;
  --gbp-yellow: #D9A84A;
  --gbp-green:  var(--gbp-mid);

  /* Type families */
  --gbp-serif:  "DM Serif Display", Georgia, serif;
  --gbp-sans:   "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gbp-script: "Allura", cursive;

  /* Type scale (desktop) */
  --gbp-h1: 5.5rem;   /* 88px */
  --gbp-h2: 3.5rem;   /* 56px */
  --gbp-h3: 2.25rem;  /* 36px */
  --gbp-h4: 1.5rem;   /* 24px */
  --gbp-body-lg: 1.25rem; /* 20px */
  --gbp-body: 1.0625rem;  /* 17px */
  --gbp-small: 0.875rem;  /* 14px */
  --gbp-eyebrow: 0.8125rem; /* 13px */
  --gbp-caption: 0.75rem;   /* 12px */

  /* Spacing (8-based) */
  --s1: 4px;  --s2: 8px;  --s3: 16px; --s4: 24px; --s5: 32px;
  --s6: 48px; --s7: 64px; --s8: 96px; --s9: 128px; --s10: 160px;

  /* Layout */
  --site-max: 1440px;
  --content-narrow: 720px;
  --content-wide: 1080px;
  --gutter: 4vw;

  /* Radius */
  --radius-0: 0;
  --radius-1: 4px;
  --radius-pill: 999px;
}

/* ---------- 2. RESET (minimal) ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, picture, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
ul[class] { list-style: none; padding: 0; }
a { color: inherit; }

/* ---------- 3. BASE TYPOGRAPHY ---------- */
body {
  background: var(--gbp-bg);
  color: var(--gbp-ink);
  font-family: var(--gbp-sans);
  font-size: var(--gbp-body);
  line-height: 1.6;
  font-weight: 400;
}

h1, h2, h3 { font-family: var(--gbp-serif); font-weight: 400; }
h1 { font-size: var(--gbp-h1); line-height: 1.05; letter-spacing: -0.02em; }
h2 { font-size: var(--gbp-h2); line-height: 1.10; letter-spacing: -0.01em; }
h3 { font-size: var(--gbp-h3); line-height: 1.20; letter-spacing: -0.01em; }
h4 { font-size: var(--gbp-h4); line-height: 1.30; font-weight: 600; font-family: var(--gbp-sans); }

p { font-size: var(--gbp-body); }
p + p { margin-top: var(--s3); }

a { text-decoration: none; transition: color 0.15s ease; }
a:hover { color: var(--gbp-deep); }

/* ---------- 4. LAYOUT PRIMITIVES ---------- */
.container { max-width: var(--site-max); margin-inline: auto; padding-inline: var(--gutter); }
.narrow { max-width: var(--content-narrow); margin-inline: auto; }
.wide { max-width: var(--content-wide); margin-inline: auto; }
.section { padding-block: var(--s9); }
.section--tight { padding-block: var(--s7); }

/* ---------- 5. COMPONENTS ---------- */

/* gbp-eyebrow-tag */
.gbp-eyebrow {
  font-family: var(--gbp-sans);
  font-size: var(--gbp-eyebrow);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gbp-mid);
  display: block;
  margin-bottom: var(--s3);
}
.gbp-eyebrow--muted { color: var(--gbp-muted); }
.gbp-eyebrow--on-deep { color: var(--gbp-light); }

/* gbp-italic-highlight — the signature device.
   One word per headline: italic, deep colour, hand-drawn underline curve. */
.gbp-mark {
  position: relative;
  font-style: italic;
  color: var(--gbp-deep);
  white-space: nowrap;
}
.gbp-mark__curve {
  position: absolute;
  left: 0; right: 0;
  bottom: -0.18em;
  width: 100%;
  height: 0.22em;
  overflow: visible;
}
.gbp-mark__curve path {
  fill: none;
  stroke: var(--gbp-mid);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset 1s ease;
}
.gbp-mark.is-drawn .gbp-mark__curve path { stroke-dashoffset: 0; }

/* gbp-section-header */
.gbp-section-header { margin-bottom: var(--s6); }
.gbp-section-header p { color: var(--gbp-muted); margin-top: var(--s3); max-width: 50ch; }

/* gbp-prose */
.gbp-prose { max-width: var(--content-narrow); font-size: var(--gbp-body-lg); }
.gbp-prose p { font-size: var(--gbp-body-lg); }
.gbp-prose ul { margin: var(--s4) 0; padding-left: 0; list-style: none; }
.gbp-prose li {
  position: relative; padding-left: var(--s5); margin-bottom: var(--s2);
  font-size: var(--gbp-body-lg);
}
.gbp-prose li::before {
  content: ""; position: absolute; left: 0; top: 0.55em;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--gbp-light);
}

/* gbp-header */
.gbp-header {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--gbp-bg) 92%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--gbp-rule);
}
.gbp-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  padding-block: var(--s3);
}
.gbp-wordmark { display: flex; align-items: center; }
.gbp-logo { height: 52px; width: auto; display: block; }
.gbp-nav { display: flex; gap: var(--s5); align-items: center; }
.gbp-nav a {
  font-size: var(--gbp-small); font-weight: 500;
  color: var(--gbp-ink); letter-spacing: 0.01em;
}
.gbp-nav a:hover { color: var(--gbp-mid); }
.gbp-burger { display: none; background: none; border: 0; cursor: pointer; padding: var(--s2); }
.gbp-burger span { display: block; width: 24px; height: 1.75px; background: var(--gbp-ink); margin: 5px 0; transition: 0.2s; }

/* gbp-mobile-nav overlay */
.gbp-mobile-nav {
  position: fixed; inset: 0; z-index: 200;
  background: var(--gbp-deep); color: var(--gbp-ink-on-deep);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--s5);
  transform: translateY(-100%); transition: transform 0.3s ease;
}
.gbp-mobile-nav.is-open { transform: translateY(0); }
.gbp-mobile-nav a { font-family: var(--gbp-serif); font-size: 2rem; color: var(--gbp-ink-on-deep); }
.gbp-mobile-nav__close { position: absolute; top: var(--s5); right: var(--gutter); background: none; border: 0; color: var(--gbp-ink-on-deep); font-size: 2rem; cursor: pointer; }

/* gbp-hero-editorial */
.gbp-hero { min-height: 78vh; display: flex; align-items: center; }
.gbp-hero__inner { max-width: 760px; }
.gbp-hero h1 { margin-bottom: var(--s5); max-width: 15ch; }
.gbp-hero__sub { font-size: var(--gbp-body-lg); color: var(--gbp-ink); max-width: 48ch; margin-bottom: var(--s6); }

/* gbp-hero-image */
.gbp-hero-image { width: 100%; }
.gbp-hero-image img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }

/* gbp-tagline-mark */
.gbp-tagline-mark {
  text-align: center; padding-block: var(--s8);
  font-family: var(--gbp-script);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  color: var(--gbp-deep); line-height: 1.1;
}
.gbp-tagline-mark .heart { color: var(--gbp-mid); font-family: var(--gbp-sans); font-size: 0.5em; vertical-align: middle; margin: 0 0.2em; }

/* gbp-four-pillars */
.gbp-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s6); }
.gbp-pillar { text-align: center; }
.gbp-pillar__icon { width: 40px; height: 40px; margin: 0 auto var(--s3); color: var(--gbp-deep); }
.gbp-pillar__icon svg { width: 100%; height: 100%; }
.gbp-pillar h4 {
  font-family: var(--gbp-sans); font-size: var(--gbp-small);
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--gbp-deep);
  margin-bottom: var(--s2);
}
.gbp-pillar p { font-size: var(--gbp-small); color: var(--gbp-muted); }

/* gbp-service-card */
.gbp-services { border-top: 1px solid var(--gbp-rule); }
.gbp-service-card {
  display: grid; grid-template-columns: 1fr 2fr; gap: var(--s6);
  padding-block: var(--s6); border-bottom: 1px solid var(--gbp-rule);
}
.gbp-service-card__head h3 { font-size: var(--gbp-h3); }
.gbp-service-card__tag {
  display: inline-block; margin-top: var(--s3);
  font-size: var(--gbp-caption); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--gbp-mid);
}
.gbp-service-card p { color: var(--gbp-ink); margin-bottom: var(--s4); }
.gbp-service-card .gbp-link { font-weight: 500; color: var(--gbp-deep); }
.gbp-service-card .gbp-link:hover { color: var(--gbp-mid); }

/* gbp-stat-block */
.gbp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s5); text-align: center; }
.gbp-stat__num { font-family: var(--gbp-serif); font-size: 4rem; line-height: 1; color: var(--gbp-deep); }
.gbp-stat__label { font-size: var(--gbp-caption); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gbp-muted); margin-top: var(--s2); }

/* gbp-testimonial */
.gbp-testimonial { text-align: center; max-width: 24ch; margin-inline: auto; }
.gbp-testimonial blockquote { font-family: var(--gbp-serif); font-size: var(--gbp-h3); font-style: italic; line-height: 1.3; color: var(--gbp-ink); }
.gbp-testimonial cite { display: block; margin-top: var(--s5); font-style: normal; font-size: var(--gbp-small); color: var(--gbp-muted); }

/* gbp-quotes — testimonial card grid */
.gbp-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); align-items: start; }
.gbp-quote {
  display: flex; flex-direction: column; height: 100%;
  background: var(--gbp-bg);
  border: 1px solid var(--gbp-rule);
  border-radius: 16px;
  padding: var(--s6);
}
.gbp-quote__mark { font-family: var(--gbp-serif); font-size: 3rem; line-height: 0.6; color: var(--gbp-light); margin-bottom: var(--s3); }
.gbp-quote blockquote { font-family: var(--gbp-serif); font-style: italic; font-size: var(--gbp-body-lg); line-height: 1.4; color: var(--gbp-ink); }
.gbp-quote figcaption { margin-top: auto; padding-top: var(--s5); }
.gbp-quote cite { font-style: normal; }
.gbp-quote cite strong { display: block; font-weight: 600; color: var(--gbp-deep); }
.gbp-quote cite span { display: block; font-size: var(--gbp-small); color: var(--gbp-muted); margin-top: 2px; }

/* gbp-cta-band (dark) */
.gbp-cta-band { background: var(--gbp-deep); color: var(--gbp-ink-on-deep); text-align: center; }
.gbp-cta-band h2 { color: var(--gbp-ink-on-deep); margin-bottom: var(--s6); }
.gbp-cta-band .gbp-eyebrow { color: var(--gbp-light); }

/* gbp-button-primary / ghost */
.gbp-btn {
  display: inline-block; padding: 14px 28px; border-radius: var(--radius-pill);
  background: var(--gbp-deep); color: var(--gbp-bg); font-weight: 500;
  font-size: var(--gbp-body); cursor: pointer; border: 0; transition: background 0.15s ease;
}
.gbp-btn:hover { background: color-mix(in srgb, var(--gbp-deep) 88%, black); color: var(--gbp-bg); }
.gbp-btn--on-deep { background: var(--gbp-bg); color: var(--gbp-deep); }
.gbp-btn--on-deep:hover { background: var(--gbp-light); color: var(--gbp-ink); }
.gbp-link-ghost { font-weight: 500; color: var(--gbp-deep); border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.gbp-link-ghost:hover { color: var(--gbp-mid); }

/* gbp-credential-list */
.gbp-credentials { border-top: 1px solid var(--gbp-rule); }
.gbp-credential {
  display: grid; grid-template-columns: 120px 1fr; gap: var(--s5);
  padding-block: var(--s4); border-bottom: 1px solid var(--gbp-rule);
}
.gbp-credential__year { font-size: var(--gbp-caption); letter-spacing: 0.06em; text-transform: uppercase; color: var(--gbp-muted); padding-top: 0.2em; }
.gbp-credential__body strong { font-weight: 600; }
.gbp-credential__body span { display: block; color: var(--gbp-muted); font-size: var(--gbp-small); }

/* gbp-timeline-decade */
.gbp-timeline { border-top: 1px solid var(--gbp-rule); }
.gbp-timeline__row {
  display: grid; grid-template-columns: 120px 1fr; gap: var(--s5);
  padding-block: var(--s5); border-bottom: 1px solid var(--gbp-rule);
}
.gbp-timeline__year { font-family: var(--gbp-serif); font-size: 1.5rem; color: var(--gbp-deep); }

/* gbp-approach-step (The Approach page) */
.gbp-step { display: grid; grid-template-columns: 120px 1fr; gap: var(--s6); padding-block: var(--s7); align-items: start; border-bottom: 1px solid var(--gbp-rule); }
.gbp-step__dot { width: 88px; height: 88px; border-radius: 50%; }
.gbp-step__dot--red { background: var(--gbp-red); }
.gbp-step__dot--yellow { background: var(--gbp-yellow); }
.gbp-step__dot--green { background: var(--gbp-green); }
.gbp-step h3 { margin-bottom: var(--s3); }
.gbp-step p { font-size: var(--gbp-body-lg); max-width: 52ch; }
.gbp-sustain { text-align: center; padding-block: var(--s8); }
.gbp-sustain blockquote { font-family: var(--gbp-serif); font-style: italic; font-size: var(--gbp-h2); color: var(--gbp-deep); margin-bottom: var(--s4); }
.gbp-sustain p { max-width: 50ch; margin-inline: auto; color: var(--gbp-muted); }
.gbp-principles { display: flex; justify-content: center; gap: var(--s6); flex-wrap: wrap; padding-top: var(--s6); }
.gbp-principles span { font-size: var(--gbp-small); letter-spacing: 0.04em; color: var(--gbp-muted); text-transform: uppercase; }

/* gbp-approach-figure (The Approach page — poster graphic, replaces gbp-step) */
.gbp-approach-section { padding-block: var(--s4); }
.gbp-approach-intro { max-width: 60ch; margin: 0 auto var(--s5); text-align: center; font-size: var(--gbp-body-lg); line-height: 1.6; color: var(--gbp-ink); }
.gbp-approach-section + .section { padding-top: var(--s4); } /* pull the band up close to the poster */
.gbp-approach-figure { margin: 0 auto; max-width: 940px; }
.gbp-approach-figure img { width: 100%; height: auto; }

/* gbp-contact-form */
.gbp-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s8); align-items: start; }
.gbp-form { display: flex; flex-direction: column; gap: var(--s4); }
.gbp-field { display: flex; flex-direction: column; gap: var(--s2); }
.gbp-field label { font-size: var(--gbp-small); font-weight: 500; }
.gbp-field input, .gbp-field select, .gbp-field textarea {
  background: var(--gbp-bg); border: 1px solid var(--gbp-rule); border-radius: var(--radius-1);
  padding: 12px 14px; font-size: var(--gbp-body);
}
.gbp-field input:focus, .gbp-field select:focus, .gbp-field textarea:focus {
  outline: none; border-color: var(--gbp-mid);
}
.gbp-booking-card { background: var(--gbp-bg-warm); padding: var(--s6); border-radius: var(--radius-1); }
.gbp-booking-card h3 { margin-bottom: var(--s3); }
.gbp-booking-card p { color: var(--gbp-muted); margin-bottom: var(--s5); }

/* gbp-footer */
.gbp-footer { background: var(--gbp-deep); color: var(--gbp-ink-on-deep); padding-block: var(--s8); }
.gbp-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--s6); }
.gbp-footer__wordmark { font-family: var(--gbp-serif); font-size: 1.5rem; margin-bottom: var(--s3); }
.gbp-footer__tag { font-family: var(--gbp-script); font-size: 1.6rem; color: var(--gbp-light); }
.gbp-footer h5 { font-size: var(--gbp-caption); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gbp-light); margin-bottom: var(--s4); }
.gbp-footer ul li { margin-bottom: var(--s2); }
.gbp-footer a { font-size: var(--gbp-small); color: var(--gbp-ink-on-deep); opacity: 0.85; }
.gbp-footer a:hover { opacity: 1; color: var(--gbp-light); }
.gbp-footer__strap { text-align: center; margin-top: var(--s7); padding-top: var(--s5); border-top: 1px solid rgba(244,237,220,0.15); font-size: var(--gbp-caption); letter-spacing: 0.04em; color: var(--gbp-light); }
.gbp-footer__legal { text-align: center; margin-top: var(--s3); font-size: var(--gbp-caption); color: var(--gbp-light); opacity: 0.85; }
.gbp-footer__legal a { color: var(--gbp-light); }
.gbp-footer__legal a:hover { color: var(--gbp-ink-on-deep); }
.gbp-footer__social { display: flex; gap: var(--s3); margin-top: var(--s4); }
.gbp-footer__social a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(244,237,220,0.3); color: var(--gbp-ink-on-deep); opacity: 0.75; transition: opacity 0.15s, border-color 0.15s; }
.gbp-footer__social a:hover { opacity: 1; border-color: var(--gbp-light); color: var(--gbp-light); }
.gbp-footer__social svg { width: 16px; height: 16px; fill: currentColor; }

/* gbp-blog-list (blog index) */
.gbp-blog-list { border-top: 1px solid var(--gbp-rule); }
.gbp-blog-card { padding-block: var(--s6); border-bottom: 1px solid var(--gbp-rule); }
.gbp-blog-card__meta { font-size: var(--gbp-caption); letter-spacing: 0.06em; text-transform: uppercase; color: var(--gbp-muted); margin-bottom: var(--s3); }
.gbp-blog-card h2 { font-size: var(--gbp-h3); margin-bottom: var(--s3); }
.gbp-blog-card h2 a { transition: color 0.15s ease; }
.gbp-blog-card h2 a:hover { color: var(--gbp-mid); }
.gbp-blog-card p { color: var(--gbp-ink); max-width: 60ch; margin-bottom: var(--s4); }

/* gbp-article (single blog post) */
.gbp-article { max-width: var(--content-narrow); margin-inline: auto; }
.gbp-article__meta { font-size: var(--gbp-caption); letter-spacing: 0.06em; text-transform: uppercase; color: var(--gbp-muted); margin-bottom: var(--s4); }
.gbp-article h1 { font-size: var(--gbp-h2); max-width: none; margin-bottom: var(--s6); }
.gbp-article h2 { font-size: var(--gbp-h3); margin-top: var(--s7); margin-bottom: var(--s3); }
.gbp-article p { font-size: var(--gbp-body-lg); }
.gbp-article p + p { margin-top: var(--s4); }
.gbp-article ul { margin: var(--s4) 0; padding-left: 0; list-style: none; }
.gbp-article li { position: relative; padding-left: var(--s5); margin-bottom: var(--s2); font-size: var(--gbp-body-lg); }
.gbp-article li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 12px; height: 12px; border-radius: 50%; background: var(--gbp-light); }
.gbp-article__back { display: inline-block; margin-bottom: var(--s6); font-size: var(--gbp-small); color: var(--gbp-mid); }

/* ---------- 6. SPLASH LOADING ---------- */
@keyframes gbpFade { 0%, 60% { opacity: 1; } 100% { opacity: 0; } }
.gbp-splash {
  position: fixed; inset: 0; z-index: 9999; background: var(--gbp-deep);
  display: grid; place-items: center;
  animation: gbpFade 1.6s ease-out 1.2s forwards;
  pointer-events: none;
}
.gbp-splash img { width: 280px; opacity: 0.95; }
.gbp-splash.is-hidden { display: none; }

/* utility */
.text-center { text-align: center; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.img-feature img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: center top; }
.img-feature figcaption { font-size: var(--gbp-caption); letter-spacing: 0.04em; text-transform: uppercase; color: var(--gbp-muted); margin-top: var(--s2); }

/* Contained portrait — for portrait-orientation photos. No forced crop, capped
   width so lower-res images aren't upscaled into blur. */
.gbp-portrait { max-width: 460px; margin-inline: auto; }
.gbp-portrait--wide { max-width: 600px; }
.gbp-portrait img { width: 100%; height: auto; display: block; }
.gbp-portrait figcaption { font-size: var(--gbp-caption); letter-spacing: 0.04em; text-transform: uppercase; color: var(--gbp-muted); margin-top: var(--s2); text-align: center; }

/* ---------- 6b. SCROLL MOTION (added 30/05) ----------
   Soft fade-up reveal site-wide. Content is VISIBLE BY DEFAULT. The hidden
   start-state (.gbp-reveal) is added by JS only when it is actually running
   and motion is allowed, so no JS / stale cache / reduced-motion = full content,
   never a blank page. */
.gbp-reveal { opacity: 0; transform: translateY(24px); } /* instant hide, no fade-out */
.gbp-reveal.is-visible {
  opacity: 1;
  transform: none;
  transition: opacity 0.75s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.75s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- 7. MOBILE ---------- */
@media (max-width: 768px) {
  :root {
    --gbp-h1: 3.25rem; --gbp-h2: 2.25rem; --gbp-h3: 1.75rem; --gbp-h4: 1.375rem;
    --gbp-body-lg: 1.125rem; --gbp-body: 1rem; --gutter: 6vw;
  }
  .section { padding-block: var(--s7); }
  .gbp-nav { display: none; }
  .gbp-burger { display: block; }
  .gbp-logo { height: 42px; }
  .gbp-hero { min-height: 64vh; }
  .gbp-pillars { grid-template-columns: 1fr 1fr; gap: var(--s5); }
  .gbp-stats { grid-template-columns: 1fr 1fr; gap: var(--s5); }
  .gbp-quotes { grid-template-columns: 1fr; gap: var(--s4); }
  .gbp-service-card { grid-template-columns: 1fr; gap: var(--s3); }
  .gbp-credential, .gbp-timeline__row, .gbp-step { grid-template-columns: 1fr; gap: var(--s3); }
  .gbp-step__dot { width: 64px; height: 64px; }
  .gbp-contact-grid { grid-template-columns: 1fr; gap: var(--s6); }
  .gbp-footer__grid { grid-template-columns: 1fr; gap: var(--s5); }
  .gbp-stat__num { font-size: 3rem; }
}

/* ---------- 8. PRINT ---------- */
@media print {
  .gbp-header, .gbp-footer, .gbp-cta-band, .gbp-splash, .gbp-mobile-nav { display: none; }
  body { background: #fff; color: #000; }
}

/* ---------- 9. REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto; }
  .gbp-mark__curve path { stroke-dashoffset: 0; }
  .gbp-splash { display: none; }
}
