/* =====================================================================
   GPS Renewables — Design System (single source of truth)
   Atoms → Molecules → Organisms. Loaded on the front end AND inside the
   block-editor iframe (see inc/atoms.php) so the editor matches the site.
   ===================================================================== */
:root{
  /* ---------- Font ---------- */
  --font-sans:'Raleway',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  /* ---------- Type scale: 9 roles, fluid 360px → 1280px ---------- */
  --fs-display:clamp(2.5rem, 1.717rem + 3.478vw, 4.5rem);   /* 40 → 72 */
  --fs-h1:clamp(2rem, 1.609rem + 1.739vw, 3rem);             /* 32 → 48 */
  --fs-h2:clamp(1.625rem, 1.38rem + 1.087vw, 2.25rem);       /* 26 → 36 */
  --fs-h3:clamp(1.375rem, 1.228rem + .6522vw, 1.75rem);      /* 22 → 28 */
  --fs-h4:clamp(1.125rem, 1.027rem + .4348vw, 1.375rem);     /* 18 → 22 */
  --fs-lead:clamp(1.125rem, 1.076rem + .2174vw, 1.25rem);    /* 18 → 20 */
  --fs-body:clamp(1rem, .9755rem + .1087vw, 1.0625rem);      /* 16 → 17 */
  --fs-small:.875rem;                                        /* 14 */
  --fs-caption:.75rem;                                       /* 12 — the floor */
  --fs-data:var(--fs-display);

  /* ---------- Line-height: inverse to size (Refactoring UI) ---------- */
  --lh-display:1.02; --lh-h1:1.1; --lh-h2:1.15; --lh-h3:1.25; --lh-h4:1.3;
  --lh-lead:1.55; --lh-body:1.65; --lh-small:1.5; --lh-caption:1.4; --lh-data:1;

  /* ---------- Weights: only three ---------- */
  --fw-regular:400; --fw-bold:700; --fw-black:800;

  /* ---------- Tracking ---------- */
  --ls-display:-.03em; --ls-h1:-.025em; --ls-h2:-.02em; --ls-h3:-.01em; --ls-caps:.12em;

  /* ---------- Colour ramps (brand) ---------- */
  --green-50:#e6f4ee; --green-100:#c3e5d5; --green-200:#8fcfb3; --green-300:#52b38b; --green-400:#1f9869;
  --green-500:#00845a; --green-600:#00704a; --green-700:#005a3c; --green-800:#00432d; --green-900:#032c1f;

  --lime-50:#f2f9e6; --lime-100:#e0f0c2; --lime-200:#c4e38a; --lime-300:#a2d24a; --lime-400:#84c01a;
  --lime-500:#6aac00; --lime-600:#5a9200; --lime-700:#477300; --lime-800:#355600; --lime-900:#243b00;

  --amber-50:#fdf7e3; --amber-100:#fbecbc; --amber-200:#f6da80; --amber-300:#f1c648; --amber-400:#ebb018;
  --amber-500:#d69a0c; --amber-600:#b27c08; --amber-700:#8a5f07; --amber-800:#634408; --amber-900:#432e06;

  /* neutral ramp built around brand charcoal #4a4b4b (700) and grey #747474 (500) */
  --neutral-50:#f6f7f6; --neutral-100:#eef0ef; --neutral-200:#dfe2e0; --neutral-300:#c4c8c6; --neutral-400:#9a9e9c;
  --neutral-500:#747474; --neutral-600:#5c5e5d; --neutral-700:#4a4b4b; --neutral-800:#2f3130; --neutral-900:#1a1d1c;

  /* system colour (not brand): errors & destructive only */
  --red-50:#fdecec; --red-100:#f9cfcf; --red-500:#dc4444; --red-600:#c62f2f; --red-800:#8a1c1c;

  /* ---------- Semantic roles (use these, not raw ramps) ---------- */
  --primary:var(--green-600);      --primary-dark:var(--green-700);  --primary-light:var(--green-50);
  --promo:var(--lime-500);         --promo-dark:var(--lime-700);     --promo-light:var(--lime-50);
  --secondary:var(--neutral-700);  --tertiary:var(--neutral-500);
  --accent:var(--amber-400);       --accent-dark:var(--amber-700);   --accent-light:var(--amber-50);
  --danger:var(--red-600);         --danger-light:var(--red-50);

  --text-strong:var(--neutral-900);   /* headings */
  --text-body:var(--neutral-700);     /* paragraphs */
  --text-muted:var(--neutral-600);    /* captions, meta — AA on white AND paper */
  --text-link:var(--green-700);
  --surface:#ffffff; --surface-paper:#f4f6f4; --surface-deep:#04140d;
  --border:var(--neutral-200); --border-strong:var(--neutral-300);

  /* ---------- Spacing: 4/8 scale ---------- */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem;
  --space-6:2rem;  --space-7:3rem;  --space-8:4rem;  --space-9:6rem;

  /* ---------- Radius / elevation ---------- */
  --radius-sm:4px; --radius-md:8px; --radius-lg:16px; --radius-pill:999px;
  --shadow-1:0 1px 3px rgba(13,26,19,.10),0 1px 2px rgba(13,26,19,.06);
  --shadow-2:0 4px 8px -2px rgba(13,26,19,.10),0 2px 4px -2px rgba(13,26,19,.06);
  --shadow-3:0 16px 32px -8px rgba(13,26,19,.18),0 6px 12px -6px rgba(13,26,19,.08);

  /* ---------- Icon sizes (preset only) ---------- */
  --icon-xs:16px; --icon-sm:20px; --icon-md:24px; --icon-lg:32px; --icon-xl:48px;

  /* ---------- Legacy aliases (older organisms read these) ---------- */
  --ink:#0d1a13; --green:#00704a; --green-2:#005a3c; --amber:#ebb018; --grey:#747474;
  --muted:var(--text-muted); --line:var(--border); --paper:var(--surface-paper);
  --fw-medium:var(--fw-bold); --fw-semibold:var(--fw-bold); --fw-extrabold:var(--fw-black);
  --fs-eyebrow:var(--fs-caption); --fs-btn:1rem; --lh-eyebrow:var(--lh-caption);
  --lh-h5:var(--lh-h4); --lh-h6:var(--lh-h4); --fs-h5:var(--fs-h4); --fs-h6:var(--fs-h4);
  --ls-tight:var(--ls-h2); --ls-eyebrow:var(--ls-caps);
  --space-xs:var(--space-3); --space-sm:var(--space-5); --space-md:var(--space-6); --space-lg:var(--space-7); --space-xl:var(--space-8);
}

/* =====================================================================
   BASE — body text inside page content & editor canvas
   ===================================================================== */
.gpsr-flow,.editor-styles-wrapper{
  font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);
  font-weight:var(--fw-regular);color:var(--text-body);
}
/* lining numerals: Raleway defaults to old-style figures */
.wp-block-heading,.gpsr-h,.gpsr-stat,.gpsr-data,.gpsr-btn,.gpsr-badge,table{font-variant-numeric:lining-nums;}

/* =====================================================================
   ATOMS — text (core Heading / Paragraph / List / Quote, locked)
   ===================================================================== */
.wp-block-heading,.gpsr-h{font-family:var(--font-sans);margin:0;}
h1.wp-block-heading,.gpsr-h.l1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-black);letter-spacing:var(--ls-h1);}
h2.wp-block-heading,.gpsr-h.l2{font-size:var(--fs-h2);line-height:var(--lh-h2);font-weight:var(--fw-bold);letter-spacing:var(--ls-h2);}
h3.wp-block-heading,.gpsr-h.l3{font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:var(--fw-bold);letter-spacing:var(--ls-h3);}
:is(h4,h5,h6).wp-block-heading,.gpsr-h:is(.l4,.l5,.l6){font-size:var(--fs-h4);line-height:var(--lh-h4);font-weight:var(--fw-bold);letter-spacing:0;}
.wp-block-heading.is-style-display{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:var(--fw-black);letter-spacing:var(--ls-display);}

/* heading colour only where the parent isn't a coloured container */
:where(.gpsr-flow,.is-root-container,.wp-block-column,.tabpanel,.gpsr-tabs__body,.wp-block-gpsr-tab-panel) > .wp-block-heading,
.gpsr-h{color:var(--text-strong);}

/* paragraph family (applies to paragraphs placed as atoms, not inside organisms) */
:where(.gpsr-flow,.is-root-container,.wp-block-column,.wp-block-group,.wp-block-group__inner-container,.tabpanel,.gpsr-tabs__body,.wp-block-gpsr-tab-panel,.wp-block-media-text__content) > p{
  font-size:var(--fs-body);line-height:var(--lh-body);max-width:72ch;
}
p.is-style-lead,.gpsr-lead{font-size:var(--fs-lead);line-height:var(--lh-lead);font-weight:var(--fw-regular);color:var(--text-muted);max-width:60ch;}
p.is-style-small{font-size:var(--fs-small);line-height:var(--lh-small);}
p.is-style-eyebrow,.gpsr-eyebrow{font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:var(--fw-black);
  letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--primary);}
.gpsr-p{font-size:var(--fs-body);line-height:var(--lh-body);max-width:72ch;}
.gpsr-eyebrow{display:inline-block;}

/* lists & quote */
:where(.gpsr-flow,.is-root-container,.wp-block-column,.tabpanel,.gpsr-tabs__body,.wp-block-gpsr-tab-panel) > :is(ul,ol){padding-left:1.25em;}
:where(.gpsr-flow,.is-root-container,.wp-block-column,.tabpanel,.gpsr-tabs__body,.wp-block-gpsr-tab-panel) > :is(ul,ol) > li + li{margin-top:var(--space-2);}
:where(.gpsr-flow,.is-root-container,.wp-block-column,.tabpanel,.gpsr-tabs__body) li::marker{color:var(--primary);}
.wp-block-quote{border-left:4px solid var(--promo);padding:var(--space-2) 0 var(--space-2) var(--space-5);margin:0;}
.wp-block-quote p{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text-strong);}
.wp-block-quote cite{display:block;margin-top:var(--space-3);font-size:var(--fs-small);font-style:normal;font-weight:var(--fw-bold);color:var(--text-muted);}

/* links in running text */
:where(.gpsr-flow,.is-root-container) :where(p,li) a{color:var(--text-link);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;}
:where(.gpsr-flow,.is-root-container) :where(p,li) a:hover{text-decoration-thickness:2px;}

/* =====================================================================
   ATOMS — button (styles + 3 sizes)
   ===================================================================== */
.gpsr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-sans);font-weight:var(--fw-bold);line-height:1.1;text-decoration:none;white-space:nowrap;
  border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.gpsr-btn:focus-visible{outline:3px solid var(--green-300);outline-offset:2px;}
.gpsr-btn:active{transform:translateY(1px);}
.gpsr-btn.is-sm{padding:.5rem .875rem;font-size:var(--fs-small);}
.gpsr-btn.is-md{padding:.75rem 1.25rem;font-size:1rem;}
.gpsr-btn.is-lg{padding:1rem 1.75rem;font-size:1.125rem;}
.gpsr-btn.is-full{display:flex;width:100%;}

.gpsr-btn.is-primary{background:var(--primary);color:#fff;}
.gpsr-btn.is-primary:hover{background:var(--primary-dark);}
.gpsr-btn.is-secondary{background:transparent;color:var(--primary-dark);border-color:var(--primary);}
.gpsr-btn.is-secondary:hover{background:var(--primary-light);}
.gpsr-btn.is-accent{background:var(--accent);color:var(--neutral-900);}
.gpsr-btn.is-accent:hover{background:var(--amber-500);}
.gpsr-btn.is-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);}
.gpsr-btn.is-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.gpsr-btn.is-text{background:transparent;color:var(--primary-dark);padding-inline:0;border-color:transparent;}
.gpsr-btn.is-text:hover{text-decoration:underline;text-underline-offset:.2em;}

/* icon inside a button follows the button size */
.gpsr-btn .gpsr-ico{width:1.15em;height:1.15em;flex:none;}
.gpsr-btn.is-icon-only{aspect-ratio:1;padding-inline:0;}
.gpsr-btn.is-icon-only.is-sm{width:2.25rem;} .gpsr-btn.is-icon-only.is-md{width:2.875rem;} .gpsr-btn.is-icon-only.is-lg{width:3.5rem;}
.gpsr-btn .gpsr-ico--circle{border-radius:50%;background:rgba(255,255,255,.22);padding:.2em;width:1.5em;height:1.5em;}
.gpsr-btn.is-secondary .gpsr-ico--circle,.gpsr-btn.is-text .gpsr-ico--circle{background:var(--primary-light);}
.gpsr-btn.is-accent .gpsr-ico--circle{background:rgba(26,29,28,.12);}

/* =====================================================================
   ATOMS — icon, badge, arrow link, divider, spacer, image, video
   ===================================================================== */
.gpsr-ico{display:block;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.gpsr-icon{display:inline-flex;line-height:0;color:var(--primary);}
.gpsr-icon.is-xs .gpsr-ico{width:var(--icon-xs);height:var(--icon-xs);}
.gpsr-icon.is-sm .gpsr-ico{width:var(--icon-sm);height:var(--icon-sm);}
.gpsr-icon.is-md .gpsr-ico{width:var(--icon-md);height:var(--icon-md);}
.gpsr-icon.is-lg .gpsr-ico{width:var(--icon-lg);height:var(--icon-lg);}
.gpsr-icon.is-xl .gpsr-ico{width:var(--icon-xl);height:var(--icon-xl);}
.gpsr-icon.tone-muted{color:var(--tertiary);} .gpsr-icon.tone-accent{color:var(--accent-dark);}
.gpsr-icon.tone-promo{color:var(--promo-dark);} .gpsr-icon.tone-dark{color:var(--text-strong);} .gpsr-icon.tone-white{color:#fff;}
/* legacy icon markup */
.gpsr-icon > svg:not(.gpsr-ico){width:var(--icon-size,24px);height:var(--icon-size,24px);stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.gpsr-badge{display:inline-flex;align-items:center;gap:.35em;padding:.25rem .625rem;border-radius:var(--radius-pill);
  font-size:var(--fs-caption);line-height:1.2;font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.gpsr-badge.tone-green{background:var(--green-50);color:var(--green-800);}
.gpsr-badge.tone-lime{background:var(--lime-50);color:var(--lime-800);}
.gpsr-badge.tone-amber{background:var(--amber-50);color:var(--amber-800);}
.gpsr-badge.tone-grey{background:var(--neutral-100);color:var(--neutral-800);}
.gpsr-badge.tone-red{background:var(--red-50);color:var(--red-800);}
.gpsr-badge .dot{width:.5em;height:.5em;border-radius:50%;background:currentColor;}

.gpsr-arrow-link{display:inline-flex;align-items:center;gap:.4em;font-weight:var(--fw-bold);color:var(--primary-dark);text-decoration:none;}
.gpsr-arrow-link .arr{transition:transform .2s ease;}
.gpsr-arrow-link:hover .arr{transform:translateX(4px);}
.gpsr-arrow-link:hover{text-decoration:underline;text-underline-offset:.2em;}

.gpsr-divider{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0;height:0;}
.gpsr-spacer{width:100%;}
.gpsr-figure{margin:0;}
.gpsr-figure img{max-width:100%;height:auto;display:block;border-radius:var(--radius-md);}
.gpsr-figure figcaption{font-size:var(--fs-small);line-height:var(--lh-small);color:var(--text-muted);margin-top:var(--space-2);}
.gpsr-atom-video{position:relative;width:100%;background:#000;overflow:hidden;border-radius:var(--radius-md);margin:0 auto;}
.gpsr-atom-video iframe,.gpsr-atom-video video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}

/* =====================================================================
   MOLECULES
   ===================================================================== */
/* Stat — number + suffix + label */
.gpsr-stat{font-family:var(--font-sans);}
.gpsr-stat__num{font-size:var(--fs-data);line-height:var(--lh-data);font-weight:var(--fw-black);letter-spacing:var(--ls-display);color:var(--text-strong);font-variant-numeric:lining-nums tabular-nums;}
.gpsr-stat__num .u{font-size:.42em;font-weight:var(--fw-black);color:var(--accent-dark);margin-left:.12em;vertical-align:top;letter-spacing:0;}
.gpsr-stat__label{margin-top:var(--space-3);font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:var(--fw-black);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--primary);}
.gpsr-stat.tone-light .gpsr-stat__num{color:#fff;} .gpsr-stat.tone-light .gpsr-stat__num .u{color:var(--accent);}
.gpsr-stat.tone-light .gpsr-stat__label{color:var(--green-200);}
.gpsr-stat.is-center{text-align:center;}

/* Section heading — eyebrow + heading + lead */
.gpsr-sechead{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);max-width:760px;}
.gpsr-sechead.is-center{align-items:center;text-align:center;margin-inline:auto;}
.gpsr-sechead .gpsr-h{color:var(--text-strong);}
.gpsr-sechead .gpsr-h em{font-style:normal;color:var(--primary);}
.gpsr-sechead .gpsr-lead{margin:0;}
.gpsr-sechead.tone-light .gpsr-h{color:#fff;} .gpsr-sechead.tone-light .gpsr-h em{color:var(--lime-300);}
.gpsr-sechead.tone-light .gpsr-lead{color:var(--green-100);} .gpsr-sechead.tone-light .gpsr-eyebrow{color:var(--accent);}

/* Feature item — icon chip + title + text */
.gpsr-feature{display:flex;flex-direction:column;gap:var(--space-4);}
.gpsr-feature.is-inline{flex-direction:row;align-items:flex-start;}
.gpsr-feature__chip{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;flex:none;
  border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary);}
.gpsr-feature__chip .gpsr-ico{width:var(--icon-md);height:var(--icon-md);}
.gpsr-feature__chip.is-hex{border-radius:0;width:3.4rem;height:3rem;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);}
.gpsr-feature__chip.tone-promo{background:var(--promo-light);color:var(--promo-dark);}
.gpsr-feature__chip.tone-accent{background:var(--accent-light);color:var(--accent-dark);}
.gpsr-feature__title{margin:0;font-size:var(--fs-h4);line-height:var(--lh-h4);font-weight:var(--fw-bold);color:var(--text-strong);}
.gpsr-feature__text{margin:var(--space-2) 0 0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-body);}

/* Person chip — avatar + name + role */
.gpsr-person{display:inline-flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit;}
.gpsr-person__img{width:3rem;height:3rem;border-radius:50%;object-fit:cover;flex:none;background:var(--neutral-100);}
.gpsr-person__name{display:block;font-weight:var(--fw-bold);color:var(--text-strong);line-height:1.3;}
.gpsr-person__role{display:block;font-size:var(--fs-small);color:var(--text-muted);line-height:1.4;}

/* Media card — image + tag + title + text */
.gpsr-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
  overflow:hidden;text-decoration:none;color:inherit;height:100%;transition:box-shadow .2s ease,transform .2s ease;}
a.gpsr-card:hover{box-shadow:var(--shadow-3);transform:translateY(-2px);}
.gpsr-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--neutral-100);}
.gpsr-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
a.gpsr-card:hover .gpsr-card__media img{transform:scale(1.04);}
.gpsr-card__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);}
.gpsr-card__title{margin:0;font-size:var(--fs-h4);line-height:var(--lh-h4);font-weight:var(--fw-bold);color:var(--text-strong);}
.gpsr-card__text{margin:0;font-size:var(--fs-small);line-height:var(--lh-small);color:var(--text-body);}
.gpsr-card__more{margin-top:auto;padding-top:var(--space-2);}

@media (prefers-reduced-motion:reduce){
  .gpsr-btn,.gpsr-card,.gpsr-card__media img,.gpsr-arrow-link .arr{transition:none;}
}

/* =====================================================================
   PAGE FLOW — vertical rhythm for pages built from blocks
   (site.css resets every margin to 0, so rhythm lives here)
   ===================================================================== */
.gpsr-flow{--content:1180px;--wide:1320px;padding-bottom:0;}
.gpsr-flow > :where(:not(section):not(nav):not(.alignfull):not(.alignwide)){max-width:var(--content);margin-inline:auto;padding-inline:20px;}
.gpsr-flow > .alignwide{max-width:var(--wide);margin-inline:auto;padding-inline:20px;}
.gpsr-flow > .alignfull,.gpsr-flow > section,.gpsr-flow > nav{max-width:none;}
.gpsr-flow > p:empty{display:none;margin:0;}

.gpsr-flow > * + *{margin-block-start:var(--space-4);}
.gpsr-flow > * + :is(.wp-block-heading,.gpsr-sechead,.gpsr-h){margin-block-start:var(--space-7);}
.gpsr-flow > :is(.wp-block-heading,.gpsr-h,p.is-style-eyebrow,.gpsr-eyebrow) + *{margin-block-start:var(--space-3);}
.gpsr-flow > * + :is(.wp-block-columns,.wp-block-image,.gpsr-figure,.gpsr-atom-video,.wp-block-quote,.gpsr-card){margin-block-start:var(--space-6);}
/* full-bleed organisms manage their own padding */
.gpsr-flow > :is(section,nav,.alignfull),.gpsr-flow > :is(section,nav,.alignfull) + *{margin-block-start:0;}
.gpsr-flow > :first-child:not(section):not(nav):not(.alignfull){margin-top:var(--space-8);}
.gpsr-flow > :last-child:not(section):not(nav):not(.alignfull){margin-bottom:var(--space-8);}
.gpsr-flow > :is(section,nav,.alignfull) + :not(section):not(nav):not(.alignfull){margin-block-start:var(--space-8);}
#site-header{min-height:72px;}

/* editor: live previews are for looking, not clicking */
.gpsr-ssr > *{pointer-events:none;}
.gpsr-ssr{min-height:60px;}
:where(.wrap){width:min(1180px,calc(100% - 40px));margin-inline:auto;}
.gpsr-editor-empty{padding:var(--space-6);border:2px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);font:var(--fw-bold) var(--fs-small)/1.5 var(--font-sans);background:var(--surface-paper);}

/* =====================================================================
   TEXT STYLES (rich-text formats) — usable in any heading / paragraph
   ===================================================================== */
.is-thin{font-weight:200;opacity:.62;}                      /* "becomes" */
.is-underline{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;
  background-size:100% .13em;background-position:0 100%;padding-bottom:.05em;}   /* "next" + amber bar */
.is-accent{color:var(--h-accent,var(--primary));}
.tone-light .is-accent,.is-dark .is-accent{color:var(--h-accent,var(--lime-300));}

/* inner blocks inside organisms (tabs body, columns) get atom text styles */
:where(.gpsr-tabs__body,.block-editor-block-list__layout) > p{font-size:var(--fs-body);line-height:var(--lh-body);max-width:72ch;}
:where(.gpsr-tabs__body) > .wp-block-heading{color:var(--text-strong);}
:where(.gpsr-tabs__body) > * + *{margin-top:var(--space-4);}
:where(.gpsr-tabs__body) > :is(ul,ol){padding-left:1.25em;}

/* =====================================================================
   DATA PANELS (Donut chart · Stat cards · Stacked bar) — shared shell
   ===================================================================== */
.gpsr-panel{background:var(--surface-paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);
  font-family:var(--font-sans);height:100%;box-sizing:border-box;}
.gpsr-panel__title{margin:0 0 var(--space-5);font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:var(--fw-black);
  letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--green-800);}
.gpsr-panel__note{margin:var(--space-4) 0 0;font-size:var(--fs-small);line-height:var(--lh-small);color:var(--text-muted);}
.gpsr-panel.is-plain{background:transparent;border:0;padding:0;}

/* =====================================================================
   SECTION SHELL (content organisms) — tone + padding + heading
   ===================================================================== */
.gpsr-sec{padding:var(--pt,var(--space-8)) 0 var(--pb,var(--space-8));font-family:var(--font-sans);color:var(--text-body);}
.gpsr-sec.tone-white{background:#fff;}
.gpsr-sec.tone-paper{background:var(--surface-paper);}
.gpsr-sec.tone-deep{background:var(--surface-deep);color:var(--green-100);}
.gpsr-sec__wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto;}
.gpsr-sec .gpsr-sechead{margin-bottom:var(--space-7);}
.gpsr-sec .gpsr-sechead.is-center{margin-inline:auto;}
