/* ============================================================
   ABOUT — /about/  (scoped under .pg-about)
   Arc: why we exist → identity intro → diptych → what makes us
   different + approach → vision/mission/commitment → people
   (gated) → standards row → dignity moment → reachability band
   → quiet close. One pattern (pebble) on the standards band.
   Substance mirrors the client's published about-us page.
   ============================================================ */

/* ---- 1. Hero ---- */
.pg-about .about-hero { padding-bottom: clamp(1rem, 2vw, 1.4rem); }
.pg-about .about-hero__h1 { margin-top: 0; }
.pg-about .about-hero__sub { margin-top: 1rem; max-width: 58ch; }

/* ---- 2. Identity intro — sunlit full-bleed band (photo + the company's words).
        The page's one expressive type moment; photo bg-image lives in the
        ambient-imagery block at the end of this file (gradient fallback). ---- */
.pg-about .about-introband {
  display: grid; grid-template-columns: .85fr 1.15fr;
  background: var(--gsh-cream-2); border-block: 1px solid var(--gsh-sand);
  margin-block: clamp(1.6rem, 4vw, 3rem);
}
.pg-about .about-introband__photo { min-height: clamp(280px, 38vw, 420px); background-size: cover; background-position: center; }
.pg-about .about-introband__words {
  align-self: center; padding: clamp(2rem, 4vw, 3.5rem);
  margin-inline: auto; max-width: 60ch;
}
.pg-about .about-introband__lead {
  font-family: var(--gsh-font-display); font-weight: 500;
  font-size: clamp(1.3rem, 1.05rem + 1.2vw, 1.8rem);
  color: var(--gsh-forest); line-height: 1.32; max-width: 24ch;
}
.pg-about .about-introband__body { margin-top: 1rem; color: var(--gsh-muted); line-height: 1.65; max-width: 52ch; }

/* ---- 3. Diptych wrap ---- */
.pg-about .about-diptych-wrap__h {
  font-size: clamp(1.55rem, 1.2rem + 1.5vw, 2.2rem);
  max-width: 30ch; margin-bottom: 0.9rem;
}
.pg-about .about-diptych-wrap__lede {
  max-width: 62ch; color: var(--gsh-muted); line-height: 1.6;
  margin-bottom: clamp(1.4rem, 3vw, 2rem);
}

/* two-panel diptych: left = sage tint card, right = dark band */
.pg-about .about-dip {
  display: grid; grid-template-columns: 1fr 1fr;
  border-radius: var(--gsh-r-lg); overflow: hidden;
  box-shadow: var(--gsh-shadow-md);
}
.pg-about .about-dip__left {
  background: var(--gsh-sage-tint); border-radius: 0;
  padding: clamp(1.6rem, 3vw, 2.4rem);
}
.pg-about .about-dip__right {
  padding: clamp(1.6rem, 3vw, 2.4rem); border-radius: 0;
  display: flex; flex-direction: column; justify-content: center;
}
.pg-about .about-dip__label {
  font-family: var(--gsh-font-display); font-size: clamp(1.05rem, 0.9rem + 0.6vw, 1.3rem);
  color: var(--gsh-forest); line-height: 1.25; margin-bottom: 0;
}
.pg-about .about-dip__label + .about-dip__label { margin-top: 0.6rem; }
.pg-about .about-dip__line {
  margin-top: 1.1rem; font-size: 0.92rem; color: var(--gsh-muted); line-height: 1.6;
}
.pg-about .about-dip__we {
  font-family: var(--gsh-font-display); font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
  color: var(--gsh-on-dark); line-height: 1; margin-bottom: 0.4rem;
}
.pg-about .about-dip__verdict {
  font-family: var(--gsh-font-display); font-size: clamp(1.1rem, 0.9rem + 0.8vw, 1.5rem);
  color: var(--gsh-on-dark); line-height: 1.25;
}

/* diptych scroll-reveal: flat → dimmed/faded on scroll entry */
.pg-about .about-dip.is-armed .about-dip__left { opacity: 1; transform: none;
  transition: opacity 0.7s var(--gsh-ease), transform 0.7s var(--gsh-ease); }
.pg-about .about-dip.is-armed.is-in .about-dip__left { opacity: 0.88; transform: translateX(-4px); }

/* ---- 4. What makes us different — split spread: sticky belief rail left,
        prose + ruled icon commitments right (no chips, no cards) ---- */
.pg-about .about-diff__spread {
  display: grid; grid-template-columns: .8fr 1.2fr;
  gap: clamp(2rem, 4vw, 3rem); align-items: start;
}
.pg-about .about-diff__rail { position: sticky; top: 6rem; }
.pg-about .about-diff__h {
  font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.05rem);
  max-width: 12ch;
}
.pg-about .about-diff__lead {
  font-family: var(--gsh-font-display); font-weight: 500;
  font-size: clamp(1.1rem, 0.95rem + 0.7vw, 1.45rem);
  color: var(--gsh-sage-700); line-height: 1.35; max-width: 20ch;
  margin-top: clamp(0.9rem, 2vw, 1.3rem);
}
.pg-about .about-diff__prose { max-width: var(--gsh-measure); }
.pg-about .about-diff__prose p { color: var(--gsh-ink); line-height: 1.65; }
.pg-about .about-diff__prose p + p { margin-top: var(--gsh-sp-4); }
.pg-about .about-diff__prose a { color: var(--gsh-clay-deep); }
.pg-about .about-diff__aligned { list-style: none; margin: var(--gsh-sp-5) 0 0; padding: 0; }
.pg-about .about-diff__aligned li {
  display: flex; align-items: center; gap: 0.8rem;
  padding: 0.65rem 0; border-top: 1px solid var(--gsh-sand);
  font-weight: 600; font-size: 0.95rem; color: var(--gsh-forest); line-height: 1.45;
}
.pg-about .about-diff__aligned li:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-about .about-diff__aligned svg {
  flex: none; width: 24px; height: 24px;
  stroke: var(--gsh-clay); fill: none; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}
.pg-about .about-diff__note {
  margin-top: var(--gsh-sp-5); font-size: 0.92rem; font-style: italic;
  color: var(--gsh-muted); max-width: 58ch;
}

/* ---- 5. Vision · Mission · Commitment (compact, hairline-ruled) ---- */
/* ledger rows (vision · mission) + sage-tint promise panel (commitment + tagline) —
   tracked sans labels replace the old mono; page stays cream/quiet by design
   (the photo band, dark diptych, standards band, and dignity photo carry the page's
   louder moments) */
.pg-about .about-vmc { padding-top: 0; }
.pg-about .about-vmc__ledger { margin: 0; }
.pg-about .about-vmc__row {
  border-top: 1px solid var(--gsh-sand);
  padding-block: clamp(1.1rem, 2.5vw, 1.7rem);
  display: grid; grid-template-columns: 160px 1fr; gap: var(--gsh-sp-2) var(--gsh-sp-6);
}
.pg-about .about-vmc__row dt,
.pg-about .about-vmc__k {
  font-size: var(--gsh-text-floor); font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700);
  padding-top: 0.25rem;
}
.pg-about .about-vmc__row dd { margin: 0; color: var(--gsh-ink); line-height: 1.65; max-width: 62ch; }
.pg-about .about-vmc__promise {
  margin-top: clamp(1.2rem, 3vw, 1.8rem);
  background: var(--gsh-sage-tint); border: 1px solid rgba(88, 101, 71, .18);
  border-radius: 20px 20px 14px 14px;
  padding: clamp(1.2rem, 2.5vw, 1.6rem) clamp(1.3rem, 2.5vw, 1.7rem);
}
.pg-about .about-vmc__commit {
  list-style: none; margin: var(--gsh-sp-3) 0 0; padding: 0;
  columns: 2; column-gap: var(--gsh-sp-6);
}
.pg-about .about-vmc__commit li {
  break-inside: avoid; position: relative;
  padding: 0.4rem 0 0.4rem 1.4rem;
  font-size: 0.92rem; color: var(--gsh-ink); line-height: 1.5;
}
/* organic pebble marker — echoes the logo blob */
.pg-about .about-vmc__commit li::before {
  content: ""; position: absolute; left: 0; top: 0.95em;
  width: 0.55em; height: 0.55em; background: var(--gsh-clay);
  border-radius: 50% 50% 30% 30% / 45% 45% 25% 25%;
}
.pg-about .about-vmc__tagline {
  margin-top: var(--gsh-sp-4);
  font-family: var(--gsh-font-display); font-weight: 500;
  font-size: 1.08rem; color: var(--gsh-forest);
}

/* ---- 6. People ---- */
.pg-about .about-people__h {
  font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.05rem);
}
.pg-about .about-people__pending {
  margin-top: 1.2rem; padding: clamp(1.2rem, 2.5vw, 1.8rem);
  max-width: 640px;
}
.pg-about .about-people__pending-body {
  font-size: 1rem; color: var(--gsh-muted); line-height: 1.6;
}

/* loop-rendered team cards (dormant until $gsh_team populated) */
.pg-about .about-people__grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1.2rem; margin-top: 1.4rem; max-width: 840px;
}
.pg-about .about-people__card {
  padding: clamp(1.2rem, 2vw, 1.6rem); text-align: center;
}
.pg-about .about-people__portrait {
  width: 80px; height: 80px; border-radius: 50%; object-fit: cover;
  display: block; margin: 0 auto 0.8rem;
}
.pg-about .about-people__name {
  font-family: var(--gsh-font-display); font-size: 1.1rem; color: var(--gsh-forest);
}
.pg-about .about-people__role { font-size: 0.88rem; color: var(--gsh-muted); margin-top: 0.2rem; }
.pg-about .about-people__line { font-size: 0.82rem; color: var(--gsh-muted); margin-top: 0.4rem; font-style: italic; }

/* ---- 7. Standards band ---- */
.pg-about .about-standards-band {
  position: relative; background: var(--gsh-cream-2);
  border-block: 1px solid var(--gsh-line);
}
.pg-about .about-standards { padding-block: var(--gsh-section-y); }
.pg-about .about-standards__h {
  font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.05rem);
  max-width: 26ch; margin-bottom: clamp(1.4rem, 3vw, 2rem);
}
.pg-about .about-standards__row {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: clamp(0.9rem, 2vw, 1.4rem);
}
.pg-about .about-standards__tile {
  padding: clamp(1.1rem, 2vw, 1.5rem); text-decoration: none;
  display: flex; flex-direction: column;
}
.pg-about .about-standards__tile-h {
  font-family: var(--gsh-font-display); font-size: 1.05rem;
  color: var(--gsh-forest); margin-bottom: 0.6rem;
}
.pg-about .about-standards__tile-b {
  font-size: 0.88rem; color: var(--gsh-muted); line-height: 1.55; flex: 1;
}
.pg-about .about-standards__tile-link {
  display: block; font-size: 0.82rem; font-weight: 600; color: var(--gsh-clay-btn);
  margin-top: 0.9rem;
}

/* ---- 8. Dignity moment ---- */
.pg-about .about-dignity { position: relative; }
.pg-about .about-dignity__img {
  width: 100%; aspect-ratio: 16 / 9; background-size: cover;
  background-position: center; background-repeat: no-repeat;
  display: block;
}
.pg-about .about-dignity__caption {
  background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-line);
  padding: clamp(1.2rem, 2.5vw, 1.8rem) clamp(1rem, 4vw, 2rem);
}
.pg-about .about-dignity__line {
  font-family: var(--gsh-font-display); font-size: clamp(1.15rem, 0.9rem + 1vw, 1.55rem);
  color: var(--gsh-forest); line-height: 1.3; max-width: var(--gsh-container);
  margin-inline: auto;
}

/* ---- 9. Reachability band (published NAP + data posture) ---- */
.pg-about .about-reach { padding-bottom: 0; }
.pg-about .about-reach__card { padding: clamp(1.4rem, 3vw, 2.2rem); }
.pg-about .about-reach__h { font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.7rem); }
.pg-about .about-reach__entity { margin-top: var(--gsh-sp-4); color: var(--gsh-ink); line-height: 1.6; max-width: 62ch; }
.pg-about .about-reach__lines {
  list-style: none; margin: var(--gsh-sp-3) 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem;
}
.pg-about .about-reach__lines a { color: var(--gsh-clay-deep); font-weight: 600; text-underline-offset: .2em; }
.pg-about .about-reach__posture {
  margin-top: var(--gsh-sp-5); padding-top: var(--gsh-sp-4);
  border-top: 1px solid var(--gsh-sand);
  font-size: 0.88rem; color: var(--gsh-muted); line-height: 1.6; max-width: 64ch;
}
.pg-about .about-reach__posture a { color: var(--gsh-sage-700); }

/* ---- 10. Quiet close ---- */
.pg-about .about-close__doors {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(0.9rem, 2vw, 1.4rem);
}
.pg-about .about-close__door {
  display: block; text-decoration: none; padding: clamp(1.2rem, 2vw, 1.6rem);
  background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand);
  border-radius: var(--gsh-r-card); transition: box-shadow 0.25s var(--gsh-ease, ease-out);
  position: relative;
}
.pg-about .about-close__door:hover { box-shadow: 0 10px 24px rgba(88,101,71,.14); }
.pg-about .about-close__door-label {
  display: block; font-family: var(--gsh-font-display); font-size: 1.1rem;
  color: var(--gsh-forest); margin-bottom: 0.3rem;
}
.pg-about .about-close__door-sub {
  display: block; font-size: 0.88rem; color: var(--gsh-muted); line-height: 1.45;
}
.pg-about .about-close__door-arrow {
  display: block; margin-top: 0.9rem; font-size: 0.9rem;
  color: var(--gsh-clay-btn); font-weight: 600;
}

/* ---- responsive ---- */
@media (max-width: 900px) {
  .pg-about .about-standards__row { grid-template-columns: repeat(2, 1fr); }
  .pg-about .about-close__doors { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 880px) {
  .pg-about .about-introband { grid-template-columns: 1fr; }
  .pg-about .about-introband__photo { min-height: 220px; }
  .pg-about .about-diff__spread { grid-template-columns: 1fr; }
  .pg-about .about-diff__rail { position: static; }
  .pg-about .about-diff__h { max-width: 26ch; }
}
@media (max-width: 640px) {
  .pg-about .about-dip { grid-template-columns: 1fr; }
  .pg-about .about-dip__right { border-top: 0; }
  .pg-about .about-standards__row { grid-template-columns: 1fr; }
  .pg-about .about-close__doors { grid-template-columns: 1fr; }
  .pg-about .about-vmc__row { grid-template-columns: 1fr; }
  .pg-about .about-vmc__commit { columns: 1; }
}

/* ---- reduced motion: no transitions ---- */
@media (prefers-reduced-motion: reduce) {
  .pg-about .about-dip.is-armed .about-dip__left { transition: none; }
  .pg-about .about-dip.is-armed.is-in .about-dip__left { opacity: 1; transform: none; }
}

/* ===================================================================
   /courses/ — Courses catalog (pg-courses)
   Signature: "the library, bound by the arch". Arch used in exactly TWO
   places (course-plate cover frame + completion-certificate border).
   =================================================================== */

/* 1. Hero / catalog intro — asymmetric editorial, no buttons */
.pg-courses .cat-hero { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(2rem, 5vw, 3.6rem); align-items: center; }
.pg-courses .cat-hero h1 { margin-top: 0.5rem; }
.pg-courses .cat-hero__drop { margin-top: 1.4rem; font-size: 0.92rem; }
.pg-courses .cat-hero__drop a { color: var(--gsh-sage-700); text-decoration: none; border-bottom: 1px solid var(--gsh-sand); padding-bottom: 2px; }
.pg-courses .cat-hero__drop a:hover { color: var(--gsh-clay-btn); }

/* definition card: forest-2 text on a sand/blush tint (passes AA); clay only as a hairline mark */
.pg-courses .cat-hero__def { background: var(--gsh-sand); border-radius: var(--gsh-r-lg); padding: 1.6rem 1.7rem; position: relative; box-shadow: var(--gsh-shadow-sm); }
.pg-courses .cat-hero__def-line { color: var(--gsh-forest-2); font-size: 0.98rem; line-height: 1.55; }
.pg-courses .cat-hero__def-line + .cat-hero__def-line { margin-top: 0.7rem; padding-top: 0.7rem; border-top: 1px solid color-mix(in srgb, var(--gsh-forest-2) 16%, transparent); }
.pg-courses .cat-hero__def-line b { font-family: var(--gsh-font-display); font-weight: 500; color: var(--gsh-forest); }
.pg-courses .cat-arch-glyph { display: block; width: 30px; height: 38px; margin-bottom: 1rem; border-radius: var(--gsh-r-arch); border: 1.5px solid var(--gsh-clay); background: color-mix(in srgb, var(--gsh-blush) 50%, transparent); }

/* 2. The library, bound by the arch — reversed band, body inside cream-2 plate */
.pg-courses .cat-library h2 { color: var(--gsh-on-dark); font-size: var(--gsh-h2); }
.pg-courses .cat-room { display: grid; grid-template-columns: minmax(0, 0.95fr); justify-content: start; gap: 1.1rem; margin-top: 1.8rem; max-width: 620px; }

/* dominant arched course plate (arch use #1) */
.pg-courses .cat-plate { position: relative; }
.pg-courses .cat-plate__cover { background: var(--gsh-cream-2); border: 1px solid color-mix(in srgb, var(--gsh-sand) 70%, transparent); border-radius: var(--gsh-r-arch); padding: 2.1rem 1.9rem 1.9rem; box-shadow: var(--gsh-shadow-md); transition: transform var(--gsh-dur) var(--gsh-ease), box-shadow var(--gsh-dur) var(--gsh-ease); }
.pg-courses .cat-plate__cover:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(40,52,32,.10), 0 14px 36px rgba(40,52,32,.18); }
.pg-courses .cat-plate__title { font-size: var(--gsh-h3); color: var(--gsh-forest); }
.pg-courses .cat-plate__outcome { color: var(--gsh-forest-2); font-size: 1.02rem; margin-top: 0.5rem; max-width: 46ch; }
.pg-courses .cat-plate__price { font-family: var(--gsh-font-display); font-size: 1.5rem; color: var(--gsh-forest); margin-top: 1.2rem; }
.pg-courses .cat-plate__price-note { display: block; font-family: var(--gsh-font-body); font-size: var(--gsh-text-floor); font-weight: 400; color: var(--gsh-muted); letter-spacing: 0; }
.pg-courses .cat-plate__contents-label { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-sage-700); margin-top: 1.2rem; }
.pg-courses .cat-plate__contents { color: var(--gsh-forest-2); font-size: 0.92rem; margin-top: 0.45rem; max-width: 52ch; }

/* hairline gold rule that pen-draws once on scroll; visible by default, reduced-motion = drawn at rest */
.pg-courses .cat-rule { margin: 1.4rem 0 1.3rem; }
.pg-courses .cat-rule svg { width: 100%; height: 6px; }
.pg-courses .cat-rule line { stroke-dasharray: 320; stroke-dashoffset: 0; }
.pg-courses .cat-plate.is-armed .cat-rule line { stroke-dashoffset: 320; }
.pg-courses .cat-plate.is-drawn .cat-rule line { stroke-dashoffset: 0; transition: stroke-dashoffset 1.1s var(--gsh-ease); }

.pg-courses .cat-plate__actions { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.pg-courses .cat-plate__detail { color: var(--gsh-sage-700); text-decoration: none; font-weight: 600; font-size: 0.9rem; border-bottom: 1px solid var(--gsh-sand); padding-bottom: 2px; }
.pg-courses .cat-plate__detail:hover { color: var(--gsh-clay-btn); }

/* shelf rail — subordinate caption, lower-contrast, clearly secondary */
.pg-courses .cat-shelf { color: var(--gsh-on-dark-muted); font-size: 0.86rem; max-width: 52ch; padding-left: 1.1rem; border-left: 2px solid rgba(244,241,231,.28); } /* A11Y-3: AA-safe muted token, not opacity-dimmed --gsh-on-dark */

/* 3. What you get when you finish — single column + humble certificate */
.pg-courses .cat-finish__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(2rem, 5vw, 3.4rem); align-items: start; margin-top: 1.6rem; }
.pg-courses .cat-finish__line { padding: 1.1rem 0; }
.pg-courses .cat-finish__line + .cat-finish__line { border-top: 1px solid var(--gsh-sand); }
.pg-courses .cat-finish__line h3 { font-size: 1.18rem; color: var(--gsh-forest); }
.pg-courses .cat-finish__line p { color: var(--gsh-forest-2); font-size: 0.96rem; margin-top: 0.4rem; max-width: 56ch; }
.pg-courses .cat-finish__cta { margin-top: 1.4rem; }

/* completion certificate (arch use #2): cream + forest, arch border ONLY, no seal, no gold */
.pg-courses .cat-cert { background: var(--gsh-cream-2); border-radius: var(--gsh-r-arch); padding: 2rem 1.6rem 1.4rem; box-shadow: var(--gsh-shadow-md); text-align: center; position: relative; }
.pg-courses .cat-cert__arch { position: absolute; inset: 10px; border: 1px solid var(--gsh-forest); border-radius: var(--gsh-r-arch); opacity: 0.32; pointer-events: none; }
.pg-courses .cat-cert__inner { position: relative; padding: 0.6rem 0.4rem; }
.pg-courses .cat-cert__kicker { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gsh-sage-700); }
.pg-courses .cat-cert__course { font-family: var(--gsh-font-display); font-size: 1.22rem; color: var(--gsh-forest); margin-top: 0.5rem; }
.pg-courses .cat-cert__awarded { font-size: 0.85rem; color: var(--gsh-muted); margin-top: 0.5rem; }
.pg-courses .cat-cert__awarded b { color: var(--gsh-forest-2); }
.pg-courses .cat-cert__date { font-size: 0.8rem; color: var(--gsh-muted); margin-top: 0.2rem; }
.pg-courses .cat-cert__org { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-sage-700); margin-top: 0.9rem; }
.pg-courses .cat-cert__face { font-style: italic; font-size: 0.78rem; color: var(--gsh-muted); margin-top: 0.9rem; border-top: 1px solid var(--gsh-sand); padding-top: 0.7rem; }
.pg-courses .cat-cert__scope { margin-top: 0.9rem; text-align: left; }

/* 4. Where a course fits — continuous prose, two emphasised lead-ins */
.pg-courses .cat-fits__prose { margin-top: 1.2rem; }
.pg-courses .cat-fits__prose p { font-size: 1.04rem; color: var(--gsh-forest-2); }
.pg-courses .cat-fits__prose p + p { margin-top: 1rem; }
.pg-courses .cat-fits__lead { font-family: var(--gsh-font-display); font-style: italic; color: var(--gsh-forest); }
.pg-courses .cat-fits__caveat { font-style: italic; color: var(--gsh-muted); font-size: 0.96rem !important; }
.pg-courses .cat-fits__cta { display: flex; align-items: center; gap: 1.3rem; flex-wrap: wrap; margin-top: 1.6rem; }

/* shared quiet link (sections 4 + 7) */
.pg-courses .cat-quiet { color: var(--gsh-sage-700); text-decoration: none; font-weight: 600; font-size: 0.9rem; border-bottom: 1px solid var(--gsh-sand); padding-bottom: 2px; }
.pg-courses .cat-quiet:hover { color: var(--gsh-clay-btn); }

/* 5. Buying for someone — asymmetric: family primary (blush accent), agency a single quiet line */
.pg-courses .cat-buyfor__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(1.6rem, 4vw, 3rem); align-items: center; }
.pg-courses .cat-buyfor__family { background: var(--gsh-cream-2); background: color-mix(in srgb, var(--gsh-blush) 30%, var(--gsh-cream)); border: 1px solid var(--gsh-sand); border-left: 0; border-radius: var(--gsh-r-lg); padding: 1.9rem 1.9rem 1.7rem; box-shadow: var(--gsh-shadow-sm); }
.pg-courses .cat-buyfor__family h2 { font-size: 1.55rem; }
.pg-courses .cat-buyfor__family p { color: var(--gsh-forest-2); font-size: 0.98rem; margin-top: 0.7rem; max-width: 56ch; }
.pg-courses .cat-buyfor__cta { margin-top: 1.3rem; }
.pg-courses .cat-buyfor__agency p { color: var(--gsh-muted); font-size: 0.95rem; max-width: 42ch; }
.pg-courses .cat-buyfor__agency a { color: var(--gsh-sage-700); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--gsh-sand); }
.pg-courses .cat-buyfor__agency a:hover { color: var(--gsh-clay-btn); }

/* 6. Course questions — FAQ on the reversed band; the accordion part lives inside a cream-2 list */
.pg-courses .cat-faq-band h2 { color: var(--gsh-on-dark); }
.pg-courses .cat-faq { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(1.6rem, 4vw, 3rem); align-items: start; }
.pg-courses .cat-faq__sub { color: var(--gsh-on-dark); opacity: 0.82; margin-top: 0.6rem; font-size: 0.95rem; max-width: 32ch; }
.pg-courses .cat-faq__list { background: var(--gsh-cream-2); border-radius: var(--gsh-r-lg); padding: 0.6rem 1.5rem; box-shadow: var(--gsh-shadow-md); }
.pg-courses .cat-faq__list .acc details { border-bottom: 1px solid var(--gsh-sand); padding: 0.3rem 0; }
.pg-courses .cat-faq__list .acc summary { list-style: none; cursor: pointer; display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.85rem 0; font-family: var(--gsh-font-display); font-size: 1.02rem; color: var(--gsh-forest); }
.pg-courses .cat-faq__list .acc summary::-webkit-details-marker { display: none; }
.pg-courses .cat-faq__list .acc summary .key { flex: none; width: 18px; height: 18px; margin-top: 0.2rem; transition: transform 0.3s var(--gsh-ease); }
.pg-courses .cat-faq__list .acc details[open] summary .key { transform: rotate(180deg); }
.pg-courses .cat-faq__list .acc .a { font-size: 0.92rem; color: var(--gsh-muted); padding: 0 0 0.95rem 1.45rem; max-width: 62ch; }
.pg-courses .cat-faq__list .acc .a a { color: var(--gsh-clay-btn); }

/* 7. Closing — quiet, centred */
.pg-courses .cat-close { text-align: center; }
.pg-courses .cat-close h2 { font-size: 1.9rem; }
.pg-courses .cat-close__cta { display: flex; justify-content: center; align-items: center; gap: 1.3rem; flex-wrap: wrap; margin-top: 1.3rem; }
.pg-courses .cat-close__reassure { font-family: var(--gsh-font-mono); font-size: 0.78rem; color: var(--gsh-muted); margin-top: 1.1rem; letter-spacing: 0.02em; }

/* hero reveal — visible by default; fade+rise only as enhancement */
.pg-courses .cat-hero__lead > * { opacity: 1; transform: none; }
.pg-courses.js-reveal .cat-hero__lead > * { opacity: 0; transform: translateY(12px); transition: opacity 0.6s var(--gsh-ease), transform 0.6s var(--gsh-ease); }
.pg-courses.js-reveal .cat-hero__lead.is-in > * { opacity: 1; transform: none; }
.pg-courses.js-reveal .cat-hero__lead.is-in > *:nth-child(2) { transition-delay: 0.06s; }
.pg-courses.js-reveal .cat-hero__lead.is-in > *:nth-child(3) { transition-delay: 0.12s; }
.pg-courses.js-reveal .cat-hero__lead.is-in > *:nth-child(4) { transition-delay: 0.18s; }
.pg-courses.js-reveal .cat-hero__lead.is-in > *:nth-child(5) { transition-delay: 0.24s; }

/* responsive */
@media (max-width: 860px) {
  .pg-courses .cat-hero,
  .pg-courses .cat-finish__grid,
  .pg-courses .cat-buyfor__grid,
  .pg-courses .cat-faq { grid-template-columns: 1fr; }
  .pg-courses .cat-room { max-width: 100%; }
  .pg-courses .cat-cert { max-width: 420px; }
}

/* reduced motion: render the gold rule drawn, hero final state, no transitions */
@media (prefers-reduced-motion: reduce) {
  .pg-courses .cat-plate.is-armed .cat-rule line,
  .pg-courses .cat-plate.is-drawn .cat-rule line { stroke-dashoffset: 0; transition: none; }
  .pg-courses.js-reveal .cat-hero__lead > * { opacity: 1; transform: none; transition: none; }
}
/* =========================================================================
   /for-agencies/ — pg-agencies  (scoped; tokens + base classes provided)
   ========================================================================= */

/* ---- shared template-part styles, re-declared scoped (home.css is not
   enqueued on inner pages): trait bars (gsh_trait_bars), the certificate
   artifact, and the FAQ accordion. Matches the .pg-about convention. ---- */
.pg-agencies .proof { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 20px; padding: 1.4rem 1.5rem; box-shadow: var(--gsh-shadow-md); position: relative; }
.pg-agencies .proof .rt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: .9rem; }
.pg-agencies .bar { margin: .55rem 0; font-size: .84rem; color: var(--gsh-forest); }
.pg-agencies .bar .top { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; }
.pg-agencies .bar .nm { font-weight: 500; }
.pg-agencies .bar .val { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-700); }
.pg-agencies .bar .track { position: relative; height: 9px; border-radius: 6px; background: var(--gsh-sand); overflow: hidden; display: block; margin-top: .28rem; }
.pg-agencies .bar .fill { display: block; height: 100%; border-radius: 6px; background: var(--gsh-sage); width: calc(var(--s, 0) * 100%); }
.pg-agencies .bar.clay .fill { background: var(--gsh-clay-btn); }
.pg-agencies .bar .track::after { content: ""; position: absolute; top: -2px; bottom: -2px; left: 60%; width: 1px; background: rgba(47, 58, 40, .28); }


.pg-agencies .acc details { border-bottom: 1px solid var(--gsh-sand); padding: .3rem 0; }
.pg-agencies .acc summary { list-style: none; cursor: pointer; display: flex; gap: .7rem; align-items: flex-start; padding: .7rem 0; font-family: var(--gsh-font-display); font-size: 1.02rem; color: var(--gsh-forest); }
.pg-agencies .acc summary::-webkit-details-marker { display: none; }
.pg-agencies .acc summary .key { flex: none; width: 18px; height: 18px; margin-top: .2rem; transition: transform .3s var(--gsh-ease); }
.pg-agencies .acc details[open] summary .key { transform: rotate(180deg); }
.pg-agencies .acc .a { font-size: .9rem; color: var(--gsh-muted); padding: 0 0 .9rem 1.4rem; max-width: 62ch; }

/* page-scoped section rhythm — tightened for the editorial height cut (B2B page reads denser) */
.pg-agencies { --gsh-section-y: clamp(2.4rem, 4vw + 0.6rem, 4.2rem); }

/* ---- 1. Hero — warm full-bleed image + copy overlay ---- */
.pg-agencies .ag-hero { position: relative; overflow: hidden; padding-block: 0; } /* full-bleed: the __body padding is the spacing; .section padding would just add empty image area */
.pg-agencies .ag-hero__img-wrap { position: absolute; inset: 0; }
.pg-agencies .ag-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.pg-agencies .ag-hero__img-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(47,58,40,.52) 0%, rgba(47,58,40,.38) 50%, rgba(47,58,40,.62) 100%); }
.pg-agencies .ag-hero__body { position: relative; z-index: 2; padding-top: clamp(3.5rem, 8vw, 5.5rem); padding-bottom: clamp(3.5rem, 8vw, 5.5rem); }
.pg-agencies .ag-hero__copy { max-width: 600px; }
.pg-agencies .ag-hero__copy .hero-h1-only { color: var(--gsh-on-dark); text-shadow: 0 2px 12px rgba(30,40,28,.22); }
/* AA exception: clay fails 3:1 on the photo overlay's lighter midtones (2.88:1 measured); blush passes 6:1+. Hero-photo pages may carry this override. */
.pg-agencies .ag-hero__copy .h-accent { color: var(--gsh-blush); }
.pg-agencies .ag-hero__sub { margin-top: var(--gsh-sp-4); color: var(--gsh-on-dark); opacity: 0.9; font-size: 1.05rem; max-width: 52ch; text-shadow: 0 1px 6px rgba(30,40,28,.18); }
.pg-agencies .ag-hero__cta { display: flex; flex-wrap: wrap; gap: var(--gsh-sp-3); margin-top: var(--gsh-sp-5); }

/* ---- jump nav ---- */
.pg-agencies .ag-jump { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; padding-top: var(--gsh-sp-4); padding-bottom: var(--gsh-sp-4); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); }
.pg-agencies .ag-jump a { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gsh-sage-700); text-decoration: none; }
.pg-agencies .ag-jump a:hover { color: var(--gsh-clay-btn); }

/* ---- 2. Neutrality (woven, uneven rows) ---- */
.pg-agencies .ag-neutral { background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); }
.pg-agencies .ag-neutral__lead { font-size: var(--gsh-h3); max-width: 22ch; }
.pg-agencies .ag-neutral__rows { display: flex; flex-direction: column; gap: var(--gsh-sp-4); margin-top: var(--gsh-sp-5); max-width: 60ch; }
.pg-agencies .ag-neutral__row { font-size: 1rem; color: var(--gsh-ink); line-height: 1.45; }
.pg-agencies .ag-neutral__row b { font-family: var(--gsh-font-display); font-weight: 500; color: var(--gsh-forest); }
.pg-agencies .ag-neutral__row--strong { font-size: 1.15rem; }
/* wraps at narrow widths; note: the ::after squiggle renders once at the element end, not per wrapped line */
.pg-agencies .ag-sprout { position: relative; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.pg-agencies .ag-sprout::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 6px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='6' viewBox='0 0 120 6'%3E%3Cpath d='M1 4 C30 1 50 5 70 3 C90 1 110 5 119 2' fill='none' stroke='%23A8623F' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: 100% 100%; }

/* ---- 3. How bulk works — CSS-only stepper with tint screens ---- */
.pg-agencies .ag-flow__intro { margin-top: var(--gsh-sp-4); }
.pg-agencies .ag-flow__stage { margin-top: var(--gsh-sp-6); }
.pg-agencies .ag-stepper__radio { position: absolute; opacity: 0; pointer-events: none; }
/* the four steps are a real sequence — numbered blob markers, joined by a dashed path */
.pg-agencies .ag-stepper__nav { list-style: none; padding: 0; margin: 0 auto var(--gsh-sp-6); display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.7rem; max-width: 680px; counter-reset: agstep; }
.pg-agencies .ag-stepper__nav li { counter-increment: agstep; position: relative; }
.pg-agencies .ag-stepper__nav li + li::before { content: ""; position: absolute; top: 50%; left: -0.7rem; width: 0.7rem; border-top: 2px dashed color-mix(in srgb, var(--gsh-sage) 55%, transparent); }
.pg-agencies .ag-stepper__nav label { position: relative; display: flex; flex-direction: column; gap: 0.15rem; padding: 0.7rem 0.8rem 0.7rem 2.7rem; min-height: 100%; border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-md); background: var(--gsh-cream-2); cursor: pointer; text-align: left; transition: border-color var(--gsh-dur) var(--gsh-ease), background var(--gsh-dur) var(--gsh-ease), transform var(--gsh-dur) var(--gsh-ease), box-shadow var(--gsh-dur) var(--gsh-ease); }
.pg-agencies .ag-stepper__nav label::before {
  content: counter(agstep); position: absolute; left: 0.65rem; top: 50%; margin-top: -13px;
  width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--gsh-font-display); font-weight: 600; font-size: .8rem;
  background: var(--gsh-sand-tint); color: var(--gsh-sage-700); border: 1px solid var(--gsh-sand);
  border-radius: 46% 54% 52% 48% / 54% 46% 54% 46%; transform: rotate(-4deg);
  transition: background var(--gsh-dur) var(--gsh-ease), color var(--gsh-dur) var(--gsh-ease);
}
.pg-agencies .ag-stepper__nav li:nth-child(2) label::before { transform: rotate(3deg); border-radius: 52% 48% 46% 54% / 46% 54% 46% 54%; }
.pg-agencies .ag-stepper__nav li:nth-child(3) label::before { transform: rotate(-2deg); }
.pg-agencies .ag-stepper__nav li:nth-child(4) label::before { transform: rotate(4deg); border-radius: 48% 52% 54% 46% / 52% 48% 52% 48%; }
.pg-agencies .ag-stepper__k { font-family: var(--gsh-font-display); font-size: 1rem; color: var(--gsh-forest); }
.pg-agencies .ag-stepper__d { font-size: var(--gsh-text-floor); color: var(--gsh-muted); }
.pg-agencies .ag-stepper__nav label:hover { border-color: var(--gsh-sage); background: var(--gsh-sage-tint); transform: translateY(-2px); }
.pg-agencies #ag-step-1:checked ~ .ag-stepper__nav li:nth-child(1) label,
.pg-agencies #ag-step-2:checked ~ .ag-stepper__nav li:nth-child(2) label,
.pg-agencies #ag-step-3:checked ~ .ag-stepper__nav li:nth-child(3) label,
.pg-agencies #ag-step-4:checked ~ .ag-stepper__nav li:nth-child(4) label { border-color: var(--gsh-clay-btn); background: var(--gsh-blush-tint); box-shadow: var(--gsh-shadow-sm); transform: translateY(-2px); }
.pg-agencies #ag-step-1:checked ~ .ag-stepper__nav li:nth-child(1) label::before,
.pg-agencies #ag-step-2:checked ~ .ag-stepper__nav li:nth-child(2) label::before,
.pg-agencies #ag-step-3:checked ~ .ag-stepper__nav li:nth-child(3) label::before,
.pg-agencies #ag-step-4:checked ~ .ag-stepper__nav li:nth-child(4) label::before { background: var(--gsh-clay-btn); border-color: var(--gsh-clay-btn); color: #fff; }
.pg-agencies .ag-stepper__radio:focus-visible ~ .ag-stepper__nav li:nth-child(1) label { outline: 3px solid var(--gsh-clay-btn); outline-offset: 2px; }

/* the centered product surface (axis break) */
.pg-agencies .ag-stepper__stack { max-width: 720px; margin: 0 auto; position: relative; }
.pg-agencies .ag-state { display: none; grid-template-columns: 1fr 1fr; gap: var(--gsh-sp-6); align-items: center; }
.pg-agencies #ag-step-1:checked ~ .ag-stepper__stack .ag-state--1,
.pg-agencies #ag-step-2:checked ~ .ag-stepper__stack .ag-state--2,
.pg-agencies #ag-step-3:checked ~ .ag-stepper__stack .ag-state--3,
.pg-agencies #ag-step-4:checked ~ .ag-stepper__stack .ag-state--4 { display: grid; }
.pg-agencies .ag-state figcaption { font-size: 0.92rem; color: var(--gsh-ink); }
.pg-agencies .ag-state figcaption b { font-family: var(--gsh-font-display); font-weight: 500; color: var(--gsh-forest); display: block; margin-bottom: 0.25rem; }

/* tint screen surfaces — each step gets a calm tint ground */
.pg-agencies .ag-screen { border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-lg); padding: 1.2rem 1.3rem; box-shadow: var(--gsh-shadow-md); background: var(--gsh-cream-2); }
.pg-agencies .ag-screen--tint-sage { background: var(--gsh-sage-tint); }
.pg-agencies .ag-screen--tint-blush { background: var(--gsh-blush-tint); }
.pg-agencies .ag-screen--tint-sand { background: var(--gsh-sand-tint); }
.pg-agencies .ag-screen__bar { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(88,101,71,.18); padding-bottom: 0.6rem; margin-bottom: 0.9rem; }
.pg-agencies .ag-screen__title { font-family: var(--gsh-font-display); font-size: 0.95rem; color: var(--gsh-forest); }
.pg-agencies .ag-screen__tag { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-muted); }
.pg-agencies .ag-screen__note { font-size: var(--gsh-text-floor); color: var(--gsh-muted); margin-top: 0.8rem; font-style: italic; }
/* portal-UI crop screenshots (Task 31c — portal-*.webp stepper screens) */
.pg-agencies .ag-screen__shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--gsh-r-sm);
  border: 1px solid rgba(88, 101, 71, .16);
  box-shadow: var(--gsh-shadow-sm);
  background: var(--gsh-cream);
}
/* the tall Status crop: cap its footprint so the stepper doesn't pogo between steps */
.pg-agencies .ag-state--3 .ag-screen__shot { max-height: 420px; width: auto; max-width: 100%; margin-inline: auto; }

.pg-agencies .ag-flow__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gsh-sp-4); margin-top: var(--gsh-sp-5); }
.pg-agencies .ag-flow__honest { font-size: 0.82rem; color: var(--gsh-muted); max-width: 56ch; margin: 0; }
.pg-agencies .ag-flow__skip { flex: none; }

/* ---- shared form field styling ---- */
.pg-agencies label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.8rem; color: var(--gsh-muted); }
.pg-agencies input[type="text"], .pg-agencies input[type="email"], .pg-agencies input[type="number"],
.pg-agencies select, .pg-agencies textarea { font-family: var(--gsh-font-body); font-size: 0.95rem; color: var(--gsh-ink); background: #fff; border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-sm); padding: 0.6rem 0.7rem; width: 100%; }
.pg-agencies input:focus-visible, .pg-agencies select:focus-visible, .pg-agencies textarea:focus-visible { outline: 3px solid var(--gsh-clay-btn); outline-offset: 1px; border-color: var(--gsh-sage); }

/* ---- 4. Pricing — static tier cards (cream ground, not dark band) ---- */
.pg-agencies .ag-pricing h2 { margin-top: var(--gsh-sp-3); }
.pg-agencies .ag-pricing__lead { margin-top: var(--gsh-sp-4); color: var(--gsh-muted); max-width: 62ch; }
.pg-agencies .ag-pricing__lead a { color: var(--gsh-sage-700); text-decoration: underline; text-underline-offset: .18em; } /* WCAG 1.4.1: in-text link needs a non-colour cue */
.pg-agencies .ag-pricing__scope { margin-top: var(--gsh-sp-5); }
/* three-column tier cards — .card-line chrome from base.css, deltas only here */
.pg-agencies .ag-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gsh-sp-5); margin-top: var(--gsh-sp-5); align-items: start; }
.pg-agencies .ag-tier { padding: 1.6rem 1.6rem 1.4rem; position: relative; }
.pg-agencies .ag-tier--starter { background: var(--gsh-sage-tint); }
.pg-agencies .ag-tier--roster { background: var(--gsh-blush-tint); }
.pg-agencies .ag-tier--institutional { background: var(--gsh-sand-tint); }
/* featured card lifts slightly */
.pg-agencies .ag-tier--featured { box-shadow: var(--gsh-shadow-md); transform: translateY(-4px); }
.pg-agencies .ag-tier__flag { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-clay-deep); margin-bottom: var(--gsh-sp-2); } /* A11Y-3: clay-btn ~4.1:1 on blush-tint */
.pg-agencies .ag-tier__range { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.06em; color: var(--gsh-muted); text-transform: uppercase; margin-bottom: var(--gsh-sp-1); }
.pg-agencies .ag-tier__name { font-family: var(--gsh-font-display); font-size: var(--gsh-h3); color: var(--gsh-forest); margin: 0 0 var(--gsh-sp-3); }
.pg-agencies .ag-tier__discount { font-size: 0.82rem; color: var(--gsh-sage-700); font-weight: 500; margin-bottom: var(--gsh-sp-3); }
.pg-agencies .ag-tier__price { font-size: 0.95rem; color: var(--gsh-muted); margin-bottom: 0.25rem; }
.pg-agencies .ag-tier__price strong { font-family: var(--gsh-font-display); font-size: 1.75rem; color: var(--gsh-forest); font-weight: 500; }
.pg-agencies .ag-tier__unit { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.04em; color: var(--gsh-muted); margin-bottom: var(--gsh-sp-3); }
.pg-agencies .ag-tier__psych { font-size: 0.82rem; color: var(--gsh-muted); margin-bottom: var(--gsh-sp-4); }
.pg-agencies .ag-tier__cta { margin-top: var(--gsh-sp-2); }

/* ---- 5. Deliverable ---- */
.pg-agencies .ag-deliverable h2 { margin-top: var(--gsh-sp-3); }
.pg-agencies .ag-deliverable__intro { margin-top: var(--gsh-sp-4); }
.pg-agencies .ag-deliverable__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gsh-sp-6); align-items: start; margin-top: var(--gsh-sp-5); }
.pg-agencies .ag-deliverable__gallery > * { min-width: 0; } /* prevents certificate's microprint from inflating track past 360px viewport */
.pg-agencies .ag-report { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-lg); padding: 1.5rem; box-shadow: var(--gsh-shadow-md); position: relative; overflow: hidden; }
.pg-agencies .ag-report__head { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-muted); margin-bottom: 0.9rem; }
.pg-agencies .ag-report .proof { box-shadow: none; border: 0; padding: 0; background: transparent; }
.pg-agencies .ag-report__link { display: inline-block; margin-top: 0.9rem; font-weight: 600; font-size: 0.88rem; color: var(--gsh-clay-btn); text-decoration: none; }
.pg-agencies .ag-cap { font-size: 0.82rem; color: var(--gsh-muted); margin-top: 0.9rem; max-width: 42ch; }
/* certificate cropped to a ~320px teaser — full artefact lives on /sample-report/; editorial height cut */
.pg-agencies .ag-credential { margin-top: 0.6rem; margin-right: calc(var(--gsh-sp-5) * -1); }
.pg-agencies .ag-credential .gsh-cert { max-height: 320px; overflow: hidden; position: relative; }
.pg-agencies .ag-credential .gsh-cert::after { content: ""; position: absolute; inset: auto 0 0 0; height: 80px; background: linear-gradient(to bottom, transparent, var(--gsh-bg)); pointer-events: none; } /* fade the teaser crop so it reads deliberately previewed, not broken */
.pg-agencies .ag-cobrand { margin-top: var(--gsh-sp-4); font-size: 0.86rem; color: var(--gsh-muted); max-width: 64ch; }

/* ---- 6. Dossier — card-line scoped grid, pebble behind ---- */
.pg-agencies .ag-dossier { background: var(--gsh-cream-2); position: relative; overflow: hidden; }
.pg-agencies .ag-dossier h2 { margin-top: var(--gsh-sp-3); position: relative; z-index: 1; }
.pg-agencies .ag-dossier__groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gsh-sp-5); margin-top: var(--gsh-sp-5); position: relative; z-index: 1; }
/* card-line delta — chrome (cream-2 bg, 1.5px sand hairline, r-card radius) from base.css; dt/dd tightened for the two-group editorial cut */
.pg-agencies .ag-dl.card-line { padding: var(--gsh-sp-5); }
.pg-agencies .ag-dl__label { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsh-sage-700); margin-bottom: var(--gsh-sp-3); }
.pg-agencies .ag-dl dl { margin: 0; }
.pg-agencies .ag-dl dt { font-family: var(--gsh-font-body); font-weight: 500; font-size: 0.9rem; color: var(--gsh-forest); letter-spacing: 0.01em; padding-top: 0.45rem; border-top: 1px solid var(--gsh-sand); }
.pg-agencies .ag-dl dt:first-of-type { border-top: 0; padding-top: 0; }
.pg-agencies .ag-dl dd { margin: 0.1rem 0 0.45rem; font-size: 0.86rem; color: var(--gsh-ink); line-height: 1.5; }
.pg-agencies .ag-dl__interim { color: var(--gsh-muted); font-style: italic; }
.pg-agencies .ag-dl .btn { margin-top: var(--gsh-sp-3); }

/* ---- 7. Partners ---- */
.pg-agencies .ag-partners { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--gsh-sp-7); align-items: start; }
.pg-agencies .ag-partners__body { margin-top: var(--gsh-sp-4); color: var(--gsh-muted); font-size: 0.98rem; max-width: 52ch; }
.pg-agencies .ag-partners__cohort { margin-top: var(--gsh-sp-4); font-size: 0.92rem; max-width: 52ch; }
.pg-agencies .ag-partners__cta { display: flex; flex-wrap: wrap; gap: var(--gsh-sp-3); margin-top: var(--gsh-sp-5); }
.pg-agencies .ag-partners__cta .btn { white-space: normal; text-align: center; } /* prevents long secondary CTA from inflating 1fr track at 360px */
.pg-agencies .ag-proof { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.pg-agencies .ag-proof li { font-size: 0.9rem; color: var(--gsh-ink); padding: var(--gsh-sp-4) 0; border-top: 1px solid var(--gsh-sand); }
.pg-agencies .ag-proof li:first-child { border-top: 0; padding-top: 0; }
.pg-agencies .ag-proof__k { display: block; font-family: var(--gsh-font-display); font-size: 1rem; color: var(--gsh-forest); margin-bottom: 0.25rem; }

/* ---- 8. FAQ ---- */
.pg-agencies .ag-faq { background: var(--gsh-cream-2); }
.pg-agencies .ag-faq h2 { margin-top: var(--gsh-sp-3); margin-bottom: var(--gsh-sp-5); }
.pg-agencies .ag-faq__after { margin-top: var(--gsh-sp-5); font-size: 0.92rem; color: var(--gsh-ink); max-width: 64ch; }
.pg-agencies .ag-faq__after b { color: var(--gsh-forest); }

/* ---- 9. Lead banner + closing RFQ ---- */
.pg-agencies .form-note-anchor { padding-top: var(--gsh-sp-6); padding-bottom: 0; }
.pg-agencies .ag-close__scope { max-width: 60ch; font-size: 0.95rem; color: var(--gsh-ink); }
.pg-agencies .ag-close h2 { margin-top: var(--gsh-sp-5); }
.pg-agencies .ag-close__intro { margin-top: var(--gsh-sp-3); }
.pg-agencies .ag-close__grid { display: grid; grid-template-columns: 1.4fr 0.6fr; gap: var(--gsh-sp-7); margin-top: var(--gsh-sp-6); align-items: start; }
.pg-agencies .ag-rfq__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gsh-sp-4); margin-bottom: var(--gsh-sp-4); }
.pg-agencies .ag-rfq__msg { margin-bottom: var(--gsh-sp-4); }
.pg-agencies .ag-rfq__check { flex-direction: row; align-items: center; gap: 0.5rem; font-size: 0.86rem; color: var(--gsh-ink); margin-bottom: var(--gsh-sp-4); }
.pg-agencies .ag-rfq__check input { width: auto; }
.pg-agencies .ag-rfq__submit { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gsh-sp-4); }
.pg-agencies .ag-rfq__alt { font-size: 0.86rem; color: var(--gsh-sage-700); text-decoration: none; }
.pg-agencies .ag-reassure { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.pg-agencies .ag-reassure li { font-size: 0.86rem; color: var(--gsh-ink); padding-left: 1.4rem; position: relative; }
.pg-agencies .ag-reassure li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 7px; height: 7px; border-radius: 50%; background: var(--gsh-sage); }
.pg-agencies .ag-human { margin-top: var(--gsh-sp-5); font-size: 0.86rem; color: var(--gsh-muted); }

/* ---- responsive ---- */
@media (max-width: 980px) {
  .pg-agencies .ag-tiers,
  .pg-agencies .ag-dossier__groups,
  .pg-agencies .ag-partners,
  .pg-agencies .ag-close__grid { grid-template-columns: 1fr; }
  .pg-agencies .ag-tier--featured { transform: none; }
}
@media (max-width: 760px) {
  .pg-agencies .ag-tiers { grid-template-columns: 1fr 1fr; }
  .pg-agencies .ag-deliverable__gallery { grid-template-columns: 1fr; } /* report + certificate stack ≤760 */
  .pg-agencies .ag-credential { margin-right: 0; margin-top: var(--gsh-sp-5); }
  .pg-agencies .ag-state { grid-template-columns: 1fr; }
  .pg-agencies .ag-stepper__nav { grid-template-columns: 1fr 1fr; max-width: none; }
  .pg-agencies .ag-stepper__nav li + li::before { display: none; } /* dashed connectors make no sense once the row wraps */
}
@media (max-width: 480px) {
  .pg-agencies .ag-tiers,
  .pg-agencies .ag-rfq__row { grid-template-columns: 1fr; }
}

/* ---- motion: stepper transition is an enhancement; states already visible by default ---- */
@media (prefers-reduced-motion: reduce) {
  .pg-agencies .ag-stepper__nav label { transition: none; }
}

/* ============================================================
   Per-page styles (Phase 3) — each block scoped under .pg-<key>.
   ============================================================ */

/* ---- template-offering.php (offering) ---- */
/* ===================================================================
   Offering sales template  (.pg-offering)
   ONE page template serving knowledge-assessment + psychometric-assessment.
   Shared parts: certificate.php emits .gsh-cert (styled in base.css);
   the canonical .proof/.bar/.acc components also live in base.css. The
   scoped rules below are page-level tunings alongside the bespoke sections.
   =================================================================== */

/* ---- reused component: trait bars (.proof / .bar) ---- */
.pg-offering .proof { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 20px; padding: 1.4rem 1.5rem; box-shadow: var(--gsh-shadow-md); position: relative; }
.pg-offering .proof .rt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: .9rem; }
.pg-offering .bar { margin: .55rem 0; font-size: .84rem; color: var(--gsh-forest); }
.pg-offering .bar .top { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; }
.pg-offering .bar .nm { font-weight: 500; }
.pg-offering .bar .val { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-700); }
.pg-offering .bar .track { position: relative; height: 9px; border-radius: 6px; background: var(--gsh-sand); overflow: hidden; display: block; margin-top: .28rem; }
.pg-offering .bar .fill { display: block; height: 100%; border-radius: 6px; background: var(--gsh-sage); width: calc(var(--s, 0) * 100%); }
.pg-offering .bar.clay .fill { background: var(--gsh-clay-btn); }


/* ---- reused component: FAQ accordion (.acc) ---- */
.pg-offering .acc details { border-bottom: 1px solid var(--gsh-sand); padding: .3rem 0; }
.pg-offering .acc summary { list-style: none; cursor: pointer; display: flex; gap: .7rem; align-items: flex-start; padding: .9rem 0; font-family: var(--gsh-font-display); font-size: 1.08rem; color: var(--gsh-forest); }
.pg-offering .acc summary::-webkit-details-marker { display: none; }
.pg-offering .acc summary .key { flex: none; width: 18px; height: 18px; margin-top: .25rem; transition: transform .3s var(--gsh-ease); }
.pg-offering .acc details[open] summary .key { transform: rotate(180deg); }
.pg-offering .acc .a { font-size: .92rem; color: var(--gsh-muted); padding: 0 0 1rem 1.4rem; max-width: 65ch; }
.pg-offering .acc .a a { color: var(--gsh-sage-700); }

/* =====================================================================
   1 · HERO
   ===================================================================== */
.pg-offering .off-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 4vw, 3.4rem); align-items: center; padding-top: clamp(1rem, 3vw, 2.6rem); }
.pg-offering .off-hero__h1 { margin-top: .6rem; }
.pg-offering .off-hero__sub { margin-top: 1rem; max-width: 47ch; }
.pg-offering .off-cta { display: flex; gap: .8rem; margin-top: 1.5rem; flex-wrap: wrap; }
.pg-offering .off-cta--center { justify-content: center; }
.pg-offering .off-price-line { margin-top: 1.3rem; font-size: .92rem; color: var(--gsh-ink); }
.pg-offering .off-price-line__amt { font-family: var(--gsh-font-display); font-size: 1.5rem; color: var(--gsh-forest); margin-right: .35rem; }
.pg-offering .off-price-line__note { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-muted); margin-top: .2rem; letter-spacing: .02em; }
.pg-offering .off-hero__doors { margin-top: 1.2rem; font-size: .9rem; line-height: 1.9; }
.pg-offering .off-hero__doors a { color: var(--gsh-sage-700); text-decoration: none; font-weight: 600; }
.pg-offering .off-hero__doors a:hover { text-decoration: underline; }

/* hero art — psychometric trait card */
.pg-offering .off-traitcard { position: relative; }
.pg-offering .off-stamp { position: absolute; top: 1rem; right: 1.1rem; z-index: 3; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-clay-btn); background: color-mix(in srgb, var(--gsh-blush) 60%, #fff); border: 1px solid var(--gsh-blush); border-radius: var(--gsh-r-pill); padding: .22rem .6rem; }
.pg-offering .off-traitcard .proof { overflow: hidden; }
.pg-offering .off-traitcard .proof::before { content: "ILLUSTRATIVE"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--gsh-font-mono); font-size: 2.1rem; letter-spacing: .35em; color: rgba(88, 101, 71, .07); transform: rotate(-18deg); pointer-events: none; z-index: 2; }
.pg-offering .off-traitcard__ribbon { margin-top: 1rem; padding-top: .8rem; border-top: 1px dashed var(--gsh-sand); font-size: .76rem; font-style: italic; color: var(--gsh-muted); }

/* hero art — knowledge blueprint (arch node spread, distinct from home .proof bars) */
.pg-offering .off-blueprint { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-arch); box-shadow: var(--gsh-shadow-md); padding: 1.6rem 1.6rem 1.4rem; }
.pg-offering .off-blueprint__lab { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: .6rem; }
.pg-offering .off-blueprint__svg { width: 100%; height: auto; }
.pg-offering .off-node circle { fill: var(--gsh-cream); stroke: var(--gsh-sage); stroke-width: 1.4; transition: fill .5s var(--gsh-ease), stroke .5s var(--gsh-ease); }
.pg-offering .off-node:nth-of-type(3) circle, .pg-offering .off-node:nth-of-type(5) circle { fill: var(--gsh-sage); }
.pg-offering .off-blueprint__cap { font-size: .82rem; color: var(--gsh-muted); margin-top: .8rem; font-style: italic; }

/* =====================================================================
   2 · PROOF LINE
   ===================================================================== */
.pg-offering .off-trust { background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); padding-block: clamp(1.8rem, 3vw, 2.6rem); }
.pg-offering .off-trust__lead { font-family: var(--gsh-font-display); font-size: clamp(1.15rem, 1rem + .8vw, 1.5rem); color: var(--gsh-forest); max-width: 40ch; line-height: 1.3; }
.pg-offering .off-trust__facts { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; font-size: .9rem; color: var(--gsh-muted); }
.pg-offering .off-trust__facts li { position: relative; padding-left: 1.1rem; }
.pg-offering .off-trust__facts li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--gsh-sage); }
.pg-offering .off-trust__badge { display: inline-block; margin-top: 1.1rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .04em; color: var(--gsh-sage-700); background: #fff; border: 1px dashed var(--gsh-gold); border-radius: var(--gsh-r-pill); padding: .34rem .8rem; }

/* =====================================================================
   3a · PSYCHOMETRIC — trait reading (expandable rows)
   ===================================================================== */
.pg-offering .off-traits { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(1.6rem, 3vw, 3rem); align-items: start; }
.pg-offering .off-traits__intro .lead-in { margin-top: .8rem; }
.pg-offering .off-illus-note { margin-top: .8rem; font-size: .82rem; color: var(--gsh-muted); background: color-mix(in srgb, var(--gsh-blush) 30%, var(--gsh-cream-2)); border-radius: var(--gsh-r-sm); padding: .6rem .8rem; }
.pg-offering .off-traits__intro .scope { margin-top: .8rem; display: block; }
.pg-offering .off-trow { border-bottom: 1px solid var(--gsh-sand); }
.pg-offering .off-trow summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; font-family: var(--gsh-font-display); font-size: 1.18rem; color: var(--gsh-forest); }
.pg-offering .off-trow summary::-webkit-details-marker { display: none; }
.pg-offering .off-trow__chev { flex: none; width: 14px; height: 14px; border-right: 1.6px solid var(--gsh-clay-btn); border-bottom: 1.6px solid var(--gsh-clay-btn); transform: rotate(45deg); transition: transform .3s var(--gsh-ease); margin-bottom: 4px; }
.pg-offering .off-trow[open] .off-trow__chev { transform: rotate(-135deg); margin-bottom: -4px; }
.pg-offering .off-trow p { font-size: .94rem; color: var(--gsh-muted); padding-bottom: 1.1rem; max-width: 56ch; }

/* PDPL consent passage */
.pg-offering .off-consent-wrap { padding-top: 0; }
.pg-offering .off-consent { border-top: 1px solid var(--gsh-sand); padding-top: 2rem; max-width: 65ch; }
.pg-offering .off-consent h3 { margin-bottom: .6rem; }
.pg-offering .off-consent p { color: var(--gsh-ink); font-size: .96rem; }
.pg-offering .off-consent__links { margin-top: .8rem; font-size: .9rem; }

/* =====================================================================
   3b · KNOWLEDGE — sample question
   ===================================================================== */
.pg-offering .off-sampleq { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.6rem, 3vw, 3rem); align-items: center; }
.pg-offering .off-sampleq__micro { margin-top: .9rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-muted); }
.pg-offering .off-sampleq__card { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-arch); box-shadow: var(--gsh-shadow-md); padding: 1.6rem 1.6rem 1.4rem; }
.pg-offering .off-sampleq__stem { font-family: var(--gsh-font-display); font-size: 1.1rem; color: var(--gsh-forest); }
.pg-offering .off-sampleq__opts { list-style: none; padding: 0; margin: 1rem 0; }
.pg-offering .off-sampleq__opts li { border: 1px solid var(--gsh-sand); background: #fff; border-radius: 8px; padding: .6rem .8rem; margin: .4rem 0; font-size: .9rem; color: var(--gsh-ink); }
.pg-offering .off-sampleq__opts li.is-key { border-color: var(--gsh-sage); background: #fbfdf6; }
.pg-offering .off-sampleq__opts li.is-key::after { content: " \2713"; color: var(--gsh-sage-700); font-weight: 700; }
.pg-offering .off-sampleq__ans { font-size: .9rem; color: var(--gsh-muted); }
.pg-offering .off-sampleq__ans strong { color: var(--gsh-ink); }

/* =====================================================================
   4 · SAMPLE REPORT
   ===================================================================== */
.pg-offering .off-report { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 4vw, 3.4rem); align-items: center; }
.pg-offering .off-report__art { position: relative; }
.pg-offering .off-report__sampletag { margin-top: .8rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .04em; color: var(--gsh-muted); text-align: center; }
.pg-offering .off-report__copy .sub { margin-top: .8rem; max-width: 52ch; }
.pg-offering .off-report__list { font-size: .92rem; color: var(--gsh-muted); margin: 1rem 0 1.2rem; max-width: 52ch; }
.pg-offering .off-report__copy .scope { margin-top: 1rem; display: block; }

/* =====================================================================
   5 · KNOWLEDGE AREAS (prose list)
   ===================================================================== */
.pg-offering .off-areas .lead-in { margin-top: .9rem; }
.pg-offering .off-arealist { margin: 1.8rem 0 0; }
.pg-offering .off-arealist__row { display: grid; grid-template-columns: minmax(11rem, .8fr) 1.6fr; gap: .4rem 1.6rem; padding: .9rem 0; border-top: 1px solid var(--gsh-sand); }
.pg-offering .off-arealist__row:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-offering .off-arealist dt { font-family: var(--gsh-font-display); font-size: 1.08rem; color: var(--gsh-forest); }
.pg-offering .off-arealist dd { margin: 0; font-size: .92rem; color: var(--gsh-muted); }
.pg-offering .off-areas .scope { margin-top: 1rem; display: block; }

/* =====================================================================
   6 · METHODOLOGY BAND (sage-700 reversed)
   ===================================================================== */
.pg-offering .off-why { position: relative; margin-top: 2rem; }
.pg-offering .off-why__divider { position: absolute; top: -1px; left: 0; width: 100%; height: 54px; display: block; }
.pg-offering .off-why__inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 4vw, 3.4rem); align-items: start; padding-top: 2.4rem; }
.pg-offering .off-why h2 { margin-top: .5rem; }
.pg-offering .off-why__lede { color: var(--gsh-on-dark); opacity: .9; margin-top: .8rem; max-width: 56ch; }
.pg-offering .off-why__note { color: var(--gsh-on-dark); opacity: .82; font-size: .92rem; margin-top: 1rem; max-width: 56ch; }
.pg-offering .off-why__link { display: inline-block; margin-top: 1.2rem; color: var(--gsh-blush); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(232, 201, 168, .4); padding-bottom: 2px; }
.pg-offering .off-why__rows { list-style: none; padding: 0; margin: 0; }
.pg-offering .off-why__rows li { color: var(--gsh-on-dark); opacity: .92; font-size: .94rem; padding: .7rem 0 .7rem 1.5rem; border-top: 1px solid rgba(244, 241, 231, .16); position: relative; }
.pg-offering .off-why__rows li:first-child { border-top: 0; }
.pg-offering .off-why__rows li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 8px; height: 8px; border-radius: 50%; background: var(--gsh-blush); }

/* =====================================================================
   7 · WHO IT IS FOR + DELIVERY
   ===================================================================== */
.pg-offering .off-who__h2 { max-width: 30ch; }
.pg-offering .off-who { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 1.4rem; margin-top: 1.6rem; align-items: start; }
.pg-offering .off-who__family { background: color-mix(in srgb, var(--gsh-blush) 26%, var(--gsh-cream)); border-radius: var(--gsh-r-md); padding: 1.4rem 1.4rem; }
.pg-offering .off-who__caregiver { padding: 1.4rem .2rem; }
.pg-offering .off-who__agency { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-md); box-shadow: var(--gsh-shadow-md); padding: 1.5rem 1.5rem; }
.pg-offering .off-who h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.pg-offering .off-who p { font-size: .92rem; color: var(--gsh-muted); }
.pg-offering .off-who__agency .btn { margin-top: 1.1rem; }

.pg-offering .off-deliver { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.4rem, 3vw, 2.6rem); margin-top: 2.4rem; padding-top: 1.8rem; border-top: 1px solid var(--gsh-sand); }
.pg-offering .off-deliver__lab { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: .5rem; }
.pg-offering .off-deliver p { font-size: .92rem; color: var(--gsh-ink); max-width: 50ch; }
.pg-offering .off-deliver__micro { font-size: .82rem; color: var(--gsh-muted); margin-top: .6rem; }
.pg-offering .off-deliver__micro a { color: var(--gsh-sage-700); }

/* standalone duty-of-care line */
.pg-offering .off-scopeline { padding-block: 1.4rem; }
.pg-offering .off-scopeline .scope { display: block; max-width: 60ch; }

/* =====================================================================
   8 · FAQ
   ===================================================================== */
.pg-offering .off-faq { max-width: 760px; margin-inline: auto; }
.pg-offering .off-faq__h2 { margin-bottom: 1rem; }

/* =====================================================================
   9 · BUNDLE NUDGE + CLOSE
   ===================================================================== */
.pg-offering .off-bundle { display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; flex-wrap: wrap; padding: 1.6rem 1.8rem; background: color-mix(in srgb, var(--gsh-blush) 22%, var(--gsh-cream)); border: 1px solid var(--gsh-blush); border-radius: var(--gsh-r-arch); }
.pg-offering .off-bundle__copy { max-width: 56ch; }
.pg-offering .off-bundle h3 { font-size: 1.25rem; }
.pg-offering .off-bundle p { font-size: .9rem; color: var(--gsh-muted); margin-top: .4rem; }

.pg-offering .off-close { text-align: center; margin-top: clamp(2.6rem, 5vw, 4.4rem); }
.pg-offering .off-close__sub { margin: 1rem auto 0; max-width: 52ch; }
.pg-offering .off-close__micro { font-family: var(--gsh-font-mono); font-size: .78rem; color: var(--gsh-muted); margin-top: 1rem; }
.pg-offering .off-close__scope { display: block; margin: 1.2rem auto 0; max-width: 58ch; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 860px) {
  .pg-offering .off-hero,
  .pg-offering .off-traits,
  .pg-offering .off-sampleq,
  .pg-offering .off-report,
  .pg-offering .off-why__inner,
  .pg-offering .off-deliver { grid-template-columns: 1fr; }
  .pg-offering .off-who { grid-template-columns: 1fr; }
  .pg-offering .off-report__art { order: 2; }
  .pg-offering .off-arealist__row { grid-template-columns: 1fr; gap: .15rem; }
}

/* =====================================================================
   REDUCED MOTION — every final state is already visible; only remove transitions
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  .pg-offering .off-trow__chev,
  .pg-offering .off-node circle,
  .pg-offering .acc summary .key { transition: none; }
}

/* ---- page-offerings.php (offerings) ---- */
/* ====================================================================
   pg-offerings — Our Offerings hub (/offerings/)
   Page-scoped. Shared parts: certificate.php emits .gsh-cert (styled in
   base.css), as are the canonical .proof/.bar/.acc components; only
   page-level tunings are declared here, scoped under .pg-offerings.
   ==================================================================== */

/* ---- Section 1: intro / orientation (asymmetric editorial) ---- */
.pg-offerings .intro { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--gsh-sp-7); align-items: start; }
.pg-offerings .intro .h1 { margin-top: var(--gsh-sp-3); }
.pg-offerings .intro__sub { max-width: 60ch; margin-top: var(--gsh-sp-4); color: var(--gsh-ink); }
.pg-offerings .intro__neutral { max-width: 60ch; margin-top: var(--gsh-sp-5); padding-left: var(--gsh-sp-4); border-left: 2px solid var(--gsh-sage-2); font-style: italic; color: var(--gsh-muted); }
.pg-offerings .intro__act { margin-top: var(--gsh-sp-5); }
.pg-offerings .intro__proof { font-weight: 600; color: var(--gsh-clay-btn); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--gsh-clay-btn) 40%, transparent); padding-bottom: 2px; transition: border-color var(--gsh-dur) var(--gsh-ease); }
.pg-offerings .intro__proof:hover { border-bottom-color: var(--gsh-clay-btn); }
.pg-offerings .intro__trust { margin-top: var(--gsh-sp-4); font-size: .82rem; color: var(--gsh-muted); max-width: 58ch; }
.pg-offerings .intro__media { margin-top: var(--gsh-sp-7); }
.pg-offerings .intro__arch { aspect-ratio: 4 / 5; border-radius: var(--gsh-r-arch); background: linear-gradient(160deg, var(--gsh-blush), var(--gsh-sage-2)); box-shadow: var(--gsh-shadow-md); }
.pg-offerings .intro__cap { margin-top: var(--gsh-sp-3); font-size: .76rem; color: var(--gsh-muted); font-style: italic; }
.pg-offerings .intro__helper { margin-top: var(--gsh-sp-6); font-size: .9rem; color: var(--gsh-muted); }

/* ---- Section 2: The Router Arch (signature device) ---- */
.pg-offerings .router { position: relative; max-width: 920px; margin-inline: auto; }
.pg-offerings .router__crown { position: relative; height: 78px; display: flex; align-items: flex-end; justify-content: center; }
.pg-offerings .router__keyline { position: absolute; inset: 0; width: 100%; height: 100%; }
.pg-offerings .router__keyline path { stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .55; }
@media (prefers-reduced-motion: no-preference) {
  .pg-offerings .router__keyline path { stroke-dasharray: 760; stroke-dashoffset: 760; animation: gsh-off-draw 1.4s var(--gsh-ease) .2s forwards; }
}
@keyframes gsh-off-draw { to { stroke-dashoffset: 0; } }
.pg-offerings .router__seal { position: relative; width: 46px; height: 46px; margin-bottom: 6px; background: var(--gsh-cream); border-radius: 50%; padding: 4px; }

.pg-offerings .router__panel { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-top: none; border-radius: 0 0 var(--gsh-r-md) var(--gsh-r-md); box-shadow: var(--gsh-shadow-md); padding: clamp(1.4rem, 3vw, 2.4rem); margin-top: -1px; }
.pg-offerings .router__head { font-family: var(--gsh-font-display); font-size: 1.3rem; color: var(--gsh-forest); text-align: center; }
.pg-offerings .router__choice { margin-top: var(--gsh-sp-5); font-size: 1.05rem; line-height: 2.1; color: var(--gsh-ink); text-align: center; }
.pg-offerings .router__pills { display: inline-flex; flex-wrap: wrap; gap: .4rem; vertical-align: middle; margin: 0 .3rem; }
.pg-offerings .pill { font-family: var(--gsh-font-body); font-size: .85rem; font-weight: 500; line-height: 1.2; color: var(--gsh-forest); background: var(--gsh-cream); border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .4rem .9rem; cursor: pointer; transition: transform var(--gsh-dur) var(--gsh-ease), box-shadow var(--gsh-dur) var(--gsh-ease), background var(--gsh-dur) var(--gsh-ease), color var(--gsh-dur) var(--gsh-ease), border-color var(--gsh-dur) var(--gsh-ease); }
.pg-offerings .pill:hover { transform: translateY(-2px); box-shadow: var(--gsh-shadow-sm); }
.pg-offerings .pill.is-active { background: var(--gsh-sage-tint); border-color: var(--gsh-sage-700); color: var(--gsh-forest); box-shadow: none; }

.pg-offerings .ledge { margin-top: var(--gsh-sp-5); padding-top: var(--gsh-sp-5); border-top: 1px solid var(--gsh-sand); }
.pg-offerings .ledge__panel { animation: none; }
.pg-offerings .ledge__panel.is-in { animation: gsh-off-fade .4s var(--gsh-ease) both; }
@keyframes gsh-off-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pg-offerings .ledge__lede { font-size: .92rem; color: var(--gsh-muted); margin-bottom: var(--gsh-sp-4); }
.pg-offerings .ledge__list { list-style: none; padding: 0; display: grid; gap: var(--gsh-sp-3); }
/* offering rows: soft tinted slips (full padding — not the old left-only sliver),
   each in its offering's tint, organic radii slightly varied */
.pg-offerings .ledge__list li { font-size: .94rem; line-height: 1.55; color: var(--gsh-ink); padding: .8rem 1.1rem; border: 1px solid var(--gsh-sand); border-radius: 14px 18px 14px 18px; background: var(--gsh-cream); max-width: 72ch; transition: border-color var(--gsh-dur) var(--gsh-ease), transform var(--gsh-dur) var(--gsh-ease); }
/* arch thumb images on router ledge rows (Task 31d — trio-*.webp) */
.pg-offerings .ledge__list li { display: grid; grid-template-columns: auto 1fr; gap: .95rem; align-items: center; }
.pg-offerings .ledge__thumb {
  width: clamp(84px, 10vw, 108px);
  height: auto;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  border-radius: 50% 50% 12px 12px / 38% 38% 12px 12px;
  border: 1px solid rgba(88, 101, 71, .14);
  box-shadow: var(--gsh-shadow-sm);
}
@media (max-width: 480px) {
  .pg-offerings .ledge__thumb { width: 72px; }
}
.pg-offerings .ledge__list li:nth-child(1) { background: var(--gsh-sage-tint); border-color: color-mix(in srgb, var(--gsh-sage-2) 50%, transparent); }
.pg-offerings .ledge__list li:nth-child(2) { background: var(--gsh-blush-tint); border-color: var(--gsh-blush); border-radius: 18px 14px 18px 14px; }
.pg-offerings .ledge__list li:nth-child(3) { background: var(--gsh-sand-tint); }
.pg-offerings .ledge__list li:hover { transform: translateY(-2px); border-color: var(--gsh-sage-700); }
.pg-offerings .ledge__list li a strong { color: var(--gsh-forest); }
.pg-offerings .ledge__list a { color: var(--gsh-clay-deep); text-underline-offset: .2em; }
.pg-offerings .ledge__agency-line { border-left-color: var(--gsh-blush); background: color-mix(in srgb, var(--gsh-sand) 30%, transparent); padding: var(--gsh-sp-3) var(--gsh-sp-4); border-radius: 0 var(--gsh-r-sm) var(--gsh-r-sm) 0; }
.pg-offerings .ledge__route-lede { font-size: 1rem; color: var(--gsh-ink); max-width: 62ch; }
.pg-offerings .ledge__meta { margin-top: var(--gsh-sp-3); font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .04em; color: var(--gsh-sage-700); }
.pg-offerings .ledge__meta a { color: var(--gsh-sage-700); }
.pg-offerings .ledge__meta--pdpl { font-family: var(--gsh-font-body); font-size: .82rem; font-style: italic; letter-spacing: 0; color: var(--gsh-muted); max-width: 62ch; }
.pg-offerings .ledge__cta { margin-top: var(--gsh-sp-4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--gsh-sp-4); }
.pg-offerings .ledge__quiet { font-size: .85rem; color: var(--gsh-sage-700); text-underline-offset: .2em; }

/* ---- Section 3: comparison spec-sheet (NOT a card triptych) ---- */
.pg-offerings .spec__h { font-size: var(--gsh-h3); }
.pg-offerings .spec__intro { margin-top: var(--gsh-sp-3); }
.pg-offerings .spec__scope { margin-top: var(--gsh-sp-3); }
.pg-offerings .spec { margin-top: var(--gsh-sp-6); border-top: 2px solid var(--gsh-forest); }
.pg-offerings .spec__row { display: grid; grid-template-columns: 0.7fr 1fr 1fr 0.95fr; gap: var(--gsh-sp-5); padding: var(--gsh-sp-4) 0; border-bottom: 1px solid var(--gsh-sand); align-items: start; }
.pg-offerings .spec__row--head { padding-top: var(--gsh-sp-3); padding-bottom: var(--gsh-sp-3); border-bottom: 1px solid var(--gsh-sand); }
.pg-offerings .spec__row--head .spec__col { font-family: var(--gsh-font-display); font-size: 1.08rem; color: var(--gsh-forest); }
.pg-offerings .spec__lab { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-muted); padding-top: .2rem; }
.pg-offerings .spec__col { font-size: .9rem; color: var(--gsh-ink); }
/* course column visibly recessed on sand */
.pg-offerings .spec__col--course { color: var(--gsh-muted); }
.pg-offerings .spec__row .spec__col--course { background: color-mix(in srgb, var(--gsh-sand) 38%, transparent); border-radius: var(--gsh-r-sm); padding: .55rem .8rem; margin: -.4rem -.2rem; }
.pg-offerings .spec__row--head .spec__col--course { color: var(--gsh-sage-700); }
.pg-offerings .spec__price { display: block; font-family: var(--gsh-font-display); font-size: 1.25rem; color: var(--gsh-forest); }
.pg-offerings .spec__col--course .spec__price { color: var(--gsh-sage-700); }
.pg-offerings .spec__note { display: block; margin-top: .25rem; font-size: var(--gsh-text-floor); color: var(--gsh-muted); }
.pg-offerings .spec__link { display: inline-block; margin-top: var(--gsh-sp-3); font-size: .85rem; font-weight: 600; color: var(--gsh-clay-btn); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color var(--gsh-dur) var(--gsh-ease); }
.pg-offerings .spec__link:hover { border-bottom-color: var(--gsh-clay-btn); }
.pg-offerings .spec__col--course .spec__link { color: var(--gsh-sage-700); }

/* ---- Sections 4-6 (proof band, dual lane, FAQ disclosure) were redesigned out of
        page-offerings.php; their CSS removed in the final dead-code sweep. ---- */

/* ---- Section 7: closing route ---- */
.pg-offerings .close { text-align: center; }
.pg-offerings .close__seal { width: 54px; height: 54px; margin: 0 auto var(--gsh-sp-4); }
.pg-offerings .close__h { font-size: var(--gsh-h2); }
.pg-offerings .close__body { margin: var(--gsh-sp-4) auto 0; }
.pg-offerings .close__acts { margin-top: var(--gsh-sp-5); display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gsh-sp-4); }
.pg-offerings .close__quiet { margin-top: var(--gsh-sp-4); font-size: .88rem; }
.pg-offerings .close__quiet a { color: var(--gsh-sage-700); }
.pg-offerings .close__micro { margin-top: var(--gsh-sp-5); font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .03em; color: var(--gsh-muted); max-width: 64ch; margin-inline: auto; }
.pg-offerings .close__micro a { color: var(--gsh-sage-700); }

/* ---- Responsive ---- */
@media (max-width: 900px) {
  .pg-offerings .intro { grid-template-columns: 1fr; }
  .pg-offerings .intro__media { margin-top: var(--gsh-sp-5); max-width: 360px; }
  .pg-offerings .spec__row { grid-template-columns: 1fr 1fr; gap: var(--gsh-sp-4) var(--gsh-sp-5); }
  .pg-offerings .spec__lab { grid-column: 1 / -1; padding-top: var(--gsh-sp-3); }
  .pg-offerings .spec__row--head .spec__lab { display: none; }
  .pg-offerings .spec__row .spec__col--course { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .pg-offerings .router__choice { line-height: 1.7; }
  .pg-offerings .spec__row { grid-template-columns: 1fr; gap: var(--gsh-sp-3); }
  .pg-offerings .spec__row--head { display: none; }
}
@media (max-width: 420px) {
  .pg-offerings .router__panel { padding: 1.1rem; }
  .pg-offerings .pill { font-size: .8rem; padding: .35rem .7rem; }
}

/* card-line delta for the spec table — the chrome itself (cream-2 bg, 1.5px sand
   hairline, r-card radius, hover transition) comes from base.css's shared .card-line.
   Only page-specific spacing/clipping lives here; never redeclare bare .card-line. */
.pg-offerings .card-line { padding: var(--gsh-sp-5) var(--gsh-sp-5) var(--gsh-sp-6); margin-top: var(--gsh-sp-6); overflow: hidden; }
/* override spec top border when inside card-line (card provides the boundary) */
.pg-offerings .card-line .spec { border-top: 0; margin-top: 0; }
.pg-offerings .card-line .spec__row--head { border-top: 1px solid var(--gsh-sand); padding-top: var(--gsh-sp-4); }

/* ledge recommendation card (blush tint) — applied to non-default route panels */
.pg-offerings .ledge__reco { background: var(--gsh-blush-tint); border-radius: var(--gsh-r-md); padding: var(--gsh-sp-4) var(--gsh-sp-5); }

/* offerings close (Section 5b) */
.pg-offerings .off-close { text-align: center; }
.pg-offerings .off-close__acts { display: flex; justify-content: center; gap: .8rem; margin-top: 1.5rem; flex-wrap: wrap; }

/* offerings cert band — smaller cert scale vs home (natural at 0.88) */
.pg-off-certband .certband__art .gsh-cert { transform: rotate(-2deg) scale(0.88); }

/* bundle row in spec table */
.pg-offerings .spec__row--bundle .spec__col--bundle { grid-column: 2 / -1; font-size: .9rem; color: var(--gsh-ink); }

/* ---- page-courses.php (courses) ---- */
/* ===================================================================
   /courses/ — Courses catalog (pg-courses)
   Signature: "the library, bound by the arch". Arch used in exactly TWO
   places (course-plate cover frame + completion-certificate border).
   =================================================================== */

/* 1. Hero / catalog intro — asymmetric editorial, no buttons */
.pg-courses .cat-hero { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(2rem, 5vw, 3.6rem); align-items: center; }

/* ---- page-course-basics-of-caring-for-children.php (course) ---- */
/* =========================================================================
   COURSE — /offerings/course-basics-of-caring-for-children/  (scoped .pg-course)
   "The Growing Path": the doorway-arch token reinterpreted as a build-state map.
   The early state (one module live, one in development, the rest planned) is
   STRUCTURAL: every count and node renders from the $crs_curriculum array.
   ========================================================================= */
.pg-course .section { padding-block: clamp(2.6rem, 5vw + .6rem, 4.8rem); }
.pg-course h2 { font-size: clamp(1.55rem, 1.2rem + 1.5vw, 2.25rem); }

/* --- 1 · HERO --- */
.pg-course .crs-hero { display: grid; grid-template-columns: 1.18fr 0.82fr; gap: clamp(1.5rem, 4vw, 3.4rem); align-items: center; }
.pg-course .crs-hero__lede { max-width: 60ch; }
.pg-course .crs-hero__h1 { font-size: clamp(2.2rem, 1.5rem + 3vw, 3.4rem); font-weight: 500; margin-top: .7rem; line-height: 1.08; }
.pg-course .crs-hero__sub { margin-top: 1.1rem; max-width: 56ch; color: var(--gsh-ink); }
.pg-course .crs-cta { display: flex; align-items: center; gap: var(--gsh-sp-5); flex-wrap: wrap; margin-top: var(--gsh-sp-5); }
.pg-course .crs-cta__jump { font-weight: 600; font-size: .92rem; color: var(--gsh-sage-700); text-decoration: none; }
.pg-course .crs-cta__jump:hover { color: var(--gsh-clay-btn); text-decoration: underline; text-underline-offset: .2em; }
.pg-course .crs-price-line { display: flex; align-items: baseline; gap: var(--gsh-sp-3); flex-wrap: wrap; margin-top: var(--gsh-sp-5); }
.pg-course .crs-price-line__amt { font-family: var(--gsh-font-display); font-size: 1.55rem; color: var(--gsh-ink-strong); }
.pg-course .crs-price-line__note { font-size: .8rem; color: var(--gsh-muted); }
.pg-course .crs-chips { list-style: none; padding: 0; margin: var(--gsh-sp-5) 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pg-course .crs-chips li { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .02em; color: var(--gsh-sage-700); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .3rem .75rem; }

/* hero art: the growing arch */
.pg-course .crs-hero__art { display: flex; justify-content: center; }
.pg-course .crs-arch { width: min(280px, 80%); }
.pg-course .crs-arch__svg { width: 100%; height: auto; }
.pg-course .crs-arch__node circle { fill: none; }
.pg-course .crs-arch__node--live circle { fill: var(--gsh-sage-700); stroke: var(--gsh-sage-700); }
.pg-course .crs-arch__node--dev circle { fill: var(--gsh-cream); stroke: var(--gsh-clay-btn); stroke-width: 1.8; }
.pg-course .crs-arch__node--dev .crs-arch__ring { fill: none; stroke: var(--gsh-clay); stroke-width: 1; opacity: .55; transform-box: fill-box; transform-origin: center; }
.pg-course .crs-arch__node--planned circle { fill: none; stroke: var(--gsh-sage-2); stroke-width: 1.4; stroke-dasharray: 3 3; }
.pg-course .crs-hero__artcap { grid-column: 1 / -1; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .02em; color: var(--gsh-muted); margin-top: var(--gsh-sp-3); max-width: 60ch; }
@media (prefers-reduced-motion: no-preference) {
  .pg-course .crs-arch__node--dev .crs-arch__ring { animation: crs-pulse 2.6s var(--gsh-ease) infinite; }
}
@keyframes crs-pulse { 0% { transform: scale(.78); opacity: .6; } 70% { transform: scale(1.25); opacity: 0; } 100% { transform: scale(.78); opacity: 0; } }

/* --- 2 · WHAT YOU'LL LEARN NOW --- */
.pg-course .crs-learn__copy { max-width: 62ch; }
.pg-course .crs-learn .lead-in { margin-top: var(--gsh-sp-4); color: var(--gsh-ink); max-width: 60ch; }
.pg-course .crs-can { list-style: none; padding: 0; margin: var(--gsh-sp-6) 0 0; max-width: 640px; }
.pg-course .crs-can li { position: relative; padding: var(--gsh-sp-4) 0 var(--gsh-sp-4) 2rem; border-top: 1px solid var(--gsh-sand); font-size: 1.02rem; color: var(--gsh-ink); }
.pg-course .crs-can li:last-child { border-bottom: 1px solid var(--gsh-sand); }
/* small clay arch-tick marker (not a box, not a generic bullet) */
.pg-course .crs-can li::before { content: ""; position: absolute; left: 0; top: calc(var(--gsh-sp-4) + .35em); width: 11px; height: 13px; border-radius: var(--gsh-r-arch); background: var(--gsh-blush); }
.pg-course .crs-learn__later { margin-top: var(--gsh-sp-6); font-size: .94rem; color: var(--gsh-muted); max-width: 60ch; }
.pg-course .crs-tags { list-style: none; padding: 0; margin: var(--gsh-sp-5) 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pg-course .crs-tags li { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .03em; color: var(--gsh-sage-700); border: 1px dashed var(--gsh-sage-2); border-radius: var(--gsh-r-pill); padding: .28rem .7rem; }

/* --- 3 · THE CURRICULUM (signature spine) --- */
.pg-course .crs-curric-band { background: var(--gsh-cream-2); border-block: 1px solid var(--gsh-line); scroll-margin-top: 80px; }
.pg-course .crs-curric { padding-block: var(--gsh-section-y); }
.pg-course .crs-curric__head { max-width: 62ch; margin-bottom: clamp(1.8rem, 4vw, 2.6rem); }
.pg-course .crs-curric__status { margin-top: var(--gsh-sp-3); color: var(--gsh-muted); max-width: 58ch; }
.pg-course .crs-spine { list-style: none; padding: 0; margin: 0; position: relative; max-width: 760px; }
/* the continuous arch-thread down the left edge */
.pg-course .crs-spine::before { content: ""; position: absolute; left: 10px; top: 1.1rem; bottom: 1.1rem; width: 1.5px; background: var(--gsh-sand); }
.pg-course .crs-mod { position: relative; padding-left: 2.6rem; }
.pg-course .crs-mod + .crs-mod { margin-top: .2rem; }
/* node on the thread — arch-shaped, state by SHAPE + label not colour alone */
.pg-course .crs-spine__node { position: absolute; left: 3px; top: 1.35rem; width: 16px; height: 19px; border-radius: var(--gsh-r-arch); z-index: 1; box-shadow: 0 0 0 4px var(--gsh-cream-2); }
.pg-course .crs-mod--live .crs-spine__node { background: var(--gsh-sage-700); }
.pg-course .crs-mod--dev .crs-spine__node { background: var(--gsh-cream-2); border: 1.8px solid var(--gsh-clay-btn); }
.pg-course .crs-mod--planned .crs-spine__node { background: transparent; border: 1.4px dashed var(--gsh-sage-2); }
/* details rows reuse the off-trow idiom */
.pg-course .crs-mod__d { border-bottom: 1px solid var(--gsh-sand); }
.pg-course .crs-mod--live .crs-mod__d { border-top: 1px solid var(--gsh-sand); }
.pg-course .crs-mod__d summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .9rem; padding: 1.05rem 0; }
.pg-course .crs-mod__d summary::-webkit-details-marker { display: none; }
.pg-course .crs-mod__static { display: flex; align-items: center; gap: .9rem; padding: .95rem 0; border-bottom: 1px solid color-mix(in srgb, var(--gsh-sand) 70%, transparent); }
.pg-course .crs-mod__seq { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-2); flex: none; width: 1.6em; }
.pg-course .crs-mod__titlewrap { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; flex: 1; }
.pg-course .crs-mod__title { font-family: var(--gsh-font-display); font-size: 1.18rem; color: var(--gsh-forest); }
.pg-course .crs-mod--planned .crs-mod__title { color: var(--gsh-ink-strong); } /* A11Y-3: muted + the .82 opacity double-dimmed below 4.5:1; opacity alone de-emphasises */
.pg-course .crs-mod__inline { font-size: .86rem; color: var(--gsh-muted); flex-basis: 100%; padding-left: 2.3rem; }
.pg-course .crs-mod__chev { flex: none; width: 13px; height: 13px; border-right: 1.6px solid var(--gsh-clay-btn); border-bottom: 1.6px solid var(--gsh-clay-btn); transform: rotate(45deg); transition: transform .3s var(--gsh-ease); margin-bottom: 4px; }
.pg-course .crs-mod__d[open] .crs-mod__chev { transform: rotate(-135deg); margin-bottom: -4px; }
.pg-course .crs-mod__body { padding: 0 0 1.2rem 2.3rem; }
.pg-course .crs-mod__summary { font-size: .92rem; color: var(--gsh-muted); margin-bottom: var(--gsh-sp-4); max-width: 56ch; }
.pg-course .crs-lessons { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.pg-course .crs-lessons li { display: grid; grid-template-columns: 2.1em 1fr; gap: .6rem; align-items: baseline; }
.pg-course .crs-lessons__no { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-clay-btn); }
.pg-course .crs-lessons__txt { font-size: .94rem; color: var(--gsh-ink); max-width: 58ch; }
.pg-course .crs-lessons__name { font-weight: 600; color: var(--gsh-forest); }
.pg-course .crs-lessons__check { padding-top: .55rem; margin-top: .25rem; border-top: 1px dashed var(--gsh-sand); }
.pg-course .crs-lessons__check .crs-lessons__no { color: var(--gsh-sage-700); }
/* state pills — distinguished by colour AND wording */
.pg-course .crs-pill { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; border-radius: var(--gsh-r-pill); padding: .24rem .6rem; flex: none; }
.pg-course .crs-pill--live { color: var(--gsh-on-dark); background: var(--gsh-sage-700); }
.pg-course .crs-pill--dev { color: var(--gsh-clay-btn); border: 1px solid var(--gsh-clay-btn); }
.pg-course .crs-pill--planned { color: var(--gsh-muted); border: 1px dashed var(--gsh-sage-2); }
.pg-course .crs-mod--planned { opacity: .82; }
.pg-course .crs-curric__foot { margin-top: var(--gsh-sp-6); font-size: .94rem; color: var(--gsh-muted); max-width: 58ch; }

/* --- 4 · WHERE THIS FITS — crs-fit/crs-flow retired with the section redesign;
       crs-arch-into/out + crs-darklink kept their section company and went with it --- */

/* --- 5 · WHO IT'S FOR / NOT YET (diptych, balanced) --- */
.pg-course .crs-who { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem, 4vw, 3.2rem); }
.pg-course .crs-who__h { font-size: var(--gsh-h3); }
.pg-course .crs-who__col--not .crs-who__h { color: var(--gsh-muted); }
.pg-course .crs-who__list { list-style: none; padding: 0; margin: var(--gsh-sp-5) 0 0; }
.pg-course .crs-who__list li { padding: var(--gsh-sp-4) 0; border-top: 1px solid var(--gsh-sand); font-size: .98rem; color: var(--gsh-ink); max-width: 48ch; }
.pg-course .crs-who__list li:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-course .crs-who__col--not .crs-who__list li { color: var(--gsh-muted); }
.pg-course .crs-who__list a { color: var(--gsh-sage-700); }

/* --- 6 · COMPLETION RECORD (crs-built grid retired with the section redesign) --- */
/* the completion record — deliberately quieter than the gold assessment seal: no gold, no seal */
.pg-course .crs-record { margin: 0; }
.pg-course .crs-record__inner { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-md); padding: var(--gsh-sp-7) var(--gsh-sp-6); text-align: center; box-shadow: var(--gsh-shadow-sm); }
.pg-course .crs-record__kicker { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-sage-700); }
.pg-course .crs-record__name { font-size: .9rem; color: var(--gsh-muted); margin-top: var(--gsh-sp-4); }
.pg-course .crs-record__course { font-family: var(--gsh-font-display); font-size: 1.3rem; color: var(--gsh-ink-strong); margin-top: var(--gsh-sp-2); }
.pg-course .crs-record__rule { width: 150px; height: auto; margin: var(--gsh-sp-4) auto; opacity: .85; }
.pg-course .crs-record__issuer { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .06em; text-transform: uppercase; color: var(--gsh-sage-700); }
.pg-course .crs-record__cap { font-size: .8rem; color: var(--gsh-muted); text-align: center; margin-top: var(--gsh-sp-4); max-width: 42ch; margin-inline: auto; line-height: 1.5; }

/* --- 7 · ENROL (crs-enrol card retired with the section redesign; the live page
       buys through crs-price-line + crs-cta + the crs-stick affordance) --- */

/* --- 8 · FAQ --- */
.pg-course .crs-faq__h { max-width: 60ch; margin-bottom: var(--gsh-sp-5); }

/* --- 9 · CLOSE (crs-close__motif/exits/sep retired — the live close uses __alt) --- */
.pg-course .crs-close { text-align: center; }
.pg-course .crs-close__h { max-width: 24ch; margin-inline: auto; }
.pg-course .crs-close__sub { margin: var(--gsh-sp-4) auto 0; max-width: 52ch; color: var(--gsh-ink); }
.pg-course .crs-close__cta { margin-top: var(--gsh-sp-6); }
.pg-course .crs-textlink { color: var(--gsh-sage-700); font-size: .9rem; text-decoration: none; }
.pg-course .crs-textlink:hover { color: var(--gsh-clay-btn); text-decoration: underline; text-underline-offset: .2em; }
.pg-course .crs-close__scope { margin-top: var(--gsh-sp-5); max-width: 60ch; margin-inline: auto; }

/* --- sticky enrol affordance (visible by default; JS only toggles between hero and close) --- */
.pg-course .crs-stick { position: fixed; left: 50%; bottom: 1rem; transform: translate(-50%, 160%); z-index: var(--gsh-z-sticky); display: flex; align-items: center; gap: var(--gsh-sp-4); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); box-shadow: var(--gsh-shadow-md); padding: .55rem .65rem .55rem 1.2rem; max-width: calc(100% - 2rem); opacity: 0; pointer-events: none; transition: transform .4s var(--gsh-ease), opacity .4s var(--gsh-ease); }
.pg-course .crs-stick.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.pg-course .crs-stick__price { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-700); white-space: nowrap; }
.pg-course .crs-stick__btn { white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .pg-course .crs-stick { transition: opacity .2s linear; transform: translate(-50%, 0); }
}

/* --- responsive --- */
@media (max-width: 900px) {
  .pg-course .crs-record { max-width: 420px; margin-inline: auto; order: -1; }
}
@media (max-width: 820px) {
  .pg-course .crs-hero { grid-template-columns: 1fr; }
  .pg-course .crs-hero__art { order: -1; justify-content: flex-start; }
  .pg-course .crs-arch { width: 150px; }
  .pg-course .crs-who { grid-template-columns: 1fr; gap: var(--gsh-sp-6); }
}
@media (max-width: 560px) {
  .pg-course .crs-mod__static { flex-wrap: wrap; }
  .pg-course .crs-mod__inline { padding-left: 2.3rem; }
  .pg-course .crs-stick__price { display: none; }
  .pg-course .crs-hero__img-wrap { width: min(300px, 80%); }
  .pg-course .crs-loop-svg { max-width: 100%; height: auto; }
  .pg-course .crs-cert-inner { grid-template-columns: 1fr; }
  .pg-course .crs-cert-art { overflow: hidden; max-width: 100%; }
  .pg-course .crs-cert-art .gsh-cert--course,
  .pg-course .crs-cert-art .gsh-cert { max-width: 100%; box-sizing: border-box; }
  /* cert inner content wraps on very narrow screens */
  .pg-course .crs-cert-art .gsh-cert__inner { padding: 16px 12px; }
  .pg-course .crs-cert-art .gsh-cert__id { font-size: .6rem; }
  /* accordion summary: chev stays within bounds */
  .pg-course .crs-mod__d summary { overflow: hidden; }
  .pg-course .crs-agency-strip__inner { flex-direction: column; align-items: flex-start; }
}

/* --- entry chips (dual hero anchors) --- */
.pg-course .crs-entry-chips { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: var(--gsh-sp-5); }
.pg-course .crs-entry-chip { font-size: .88rem; font-weight: 600; color: var(--gsh-sage-700); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sage-2); border-radius: var(--gsh-r-pill); padding: .38rem .85rem; text-decoration: none; transition: background var(--gsh-dur) var(--gsh-ease), border-color var(--gsh-dur) var(--gsh-ease); }
.pg-course .crs-entry-chip:hover { background: var(--gsh-sand); border-color: var(--gsh-clay); color: var(--gsh-clay-btn); }
.pg-course .crs-hero__scope { margin-top: var(--gsh-sp-4); font-size: .82rem; color: var(--gsh-muted); max-width: 56ch; }

/* --- hero image (arch-masked 4:5) --- */
.pg-course .crs-hero__img-wrap { width: min(360px, 100%); border-radius: 50% 50% var(--gsh-r-arch) var(--gsh-r-arch) / 46% 46% var(--gsh-r-arch) var(--gsh-r-arch); overflow: hidden; box-shadow: var(--gsh-shadow-md); }
.pg-course .crs-hero__img { width: 100%; height: auto; display: block; object-fit: cover; }

/* --- module meta (lesson count + est time in summary) --- */
.pg-course .crs-mod__meta { display: flex; gap: .45rem; align-items: center; flex: none; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-muted); white-space: nowrap; }
.pg-course .crs-mod__meta span + span::before { content: "·"; margin-right: .45rem; }

/* --- 2 · Loop device --- */
.pg-course .crs-loop-section { text-align: center; }
.pg-course .crs-loop__h { max-width: 32ch; margin-inline: auto; margin-bottom: var(--gsh-sp-6); }
.pg-course .crs-loop-wrap { display: flex; justify-content: center; align-items: center; }
.pg-course .crs-loop-svg { max-width: 480px; width: 100%; height: auto; }
.pg-course .crs-loop__note { margin-top: var(--gsh-sp-5); font-size: .94rem; color: var(--gsh-muted); max-width: 52ch; margin-inline: auto; }

/* Loop draw animation — paths animate from armed (invisible) to drawn.
   SVG child order: <title>(1), <defs>(2), then the four .crs-loop-path at 3-6.
   Armed dashoffset must equal each path's own dasharray (170 long / 60 short)
   or the short connectors pop instead of drawing. */
.pg-course .crs-loop-svg.is-loop-armed .crs-loop-path { stroke-dashoffset: 170; }
.pg-course .crs-loop-svg.is-loop-armed .crs-loop-path:nth-child(4),
.pg-course .crs-loop-svg.is-loop-armed .crs-loop-path:nth-child(6) { stroke-dashoffset: 60; }
.pg-course .crs-loop-svg.is-loop-drawn .crs-loop-path { stroke-dashoffset: 0; transition: stroke-dashoffset .9s var(--gsh-ease); }
/* stagger in circuit order: top(3) 0s → right(4) → bottom(5) → left(6) */
.pg-course .crs-loop-svg.is-loop-drawn .crs-loop-path:nth-child(4) { transition-delay: .15s; }
.pg-course .crs-loop-svg.is-loop-drawn .crs-loop-path:nth-child(5) { transition-delay: .3s; }
.pg-course .crs-loop-svg.is-loop-drawn .crs-loop-path:nth-child(6) { transition-delay: .45s; }
/* under reduced-motion: always drawn, no transition */
@media (prefers-reduced-motion: reduce) {
  .pg-course .crs-loop-svg .crs-loop-path { stroke-dashoffset: 0 !important; transition: none !important; }
}

/* --- 4 · Completion certificate section --- */
.pg-course .crs-cert-section { position: relative; }
.pg-course .crs-cert-section .crs-cert-pat { color: var(--gsh-sage-2); }
.pg-course .crs-cert-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(1.8rem, 4vw, 3.2rem); align-items: center; }
.pg-course .crs-cert-copy h2 { margin-bottom: var(--gsh-sp-4); }
.pg-course .crs-cert-copy__p { font-size: .96rem; color: var(--gsh-ink); max-width: 52ch; margin-top: var(--gsh-sp-4); }
.pg-course .crs-cert-copy__p a { color: var(--gsh-sage-700); }
/* min-width:0 + max-width:100% down the chain: as a grid item the artifact (and the
   flex item inside it) must be allowed to shrink below the certificate's max-content,
   or the cert pushes the page wide at tablet widths */
.pg-course .crs-cert-art { display: flex; justify-content: center; min-width: 0; }
.pg-course .crs-cert-art .gsh-cert--course { max-width: 100%; min-width: 0; }
.pg-course .crs-cert-art .gsh-cert { max-width: 100%; }

/* gsh-cert--course modifier: recolour seal strokes sand/gold, not sage */
.gsh-cert--course .gsh-cert__seal path { stroke: #C9A96E; }
.gsh-cert--course .gsh-cert__seal text { fill: #C9A96E; }
.gsh-cert--course .gsh-cert__title { font-size: 1.2rem; }

/* --- 5 · Agency strip --- */
.pg-course .crs-agency-strip { padding-block: clamp(2rem, 4vw, 3rem); }
.pg-course .crs-agency-strip__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--gsh-sp-6); flex-wrap: wrap; }
.pg-course .crs-agency-strip__h { font-size: clamp(1.2rem, 1rem + 1vw, 1.55rem); color: var(--gsh-on-dark); max-width: 32ch; }
.pg-course .crs-agency-strip__p { color: var(--gsh-on-dark); opacity: .88; font-size: .94rem; margin-top: var(--gsh-sp-3); max-width: 46ch; }
.pg-course .crs-agency-strip__copy { flex: 1 1 280px; }
.pg-course .crs-agency-strip__cta { flex: none; }
.btn--outline-light { border: 2px solid var(--gsh-on-dark); color: var(--gsh-on-dark); background: transparent; border-radius: var(--gsh-r-pill); padding: .6rem 1.4rem; font-weight: 600; font-size: .94rem; text-decoration: none; transition: background var(--gsh-dur) var(--gsh-ease), color var(--gsh-dur) var(--gsh-ease); }
.btn--outline-light:hover { background: var(--gsh-on-dark); color: var(--gsh-sage-700); }

/* --- 6 · Close --- */
.pg-course .crs-close { text-align: center; }
.pg-course .crs-close__h { max-width: 28ch; margin-inline: auto; }
.pg-course .crs-close__sub { margin: var(--gsh-sp-4) auto 0; max-width: 44ch; color: var(--gsh-ink); }
.pg-course .crs-close__cta { margin-top: var(--gsh-sp-6); }
.pg-course .crs-close__alt { margin-top: var(--gsh-sp-4); }
.pg-course .crs-textlink { color: var(--gsh-sage-700); font-size: .9rem; text-decoration: none; }
.pg-course .crs-textlink:hover { color: var(--gsh-clay-btn); text-decoration: underline; text-underline-offset: .2em; }
.pg-course .crs-close__scope { margin-top: var(--gsh-sp-5); max-width: 60ch; margin-inline: auto; font-size: .82rem; color: var(--gsh-muted); }

/* ---- page-methodology-and-validity.php (methodology) ---- */
/* ===================================================================
   Methodology & Validity — page-scoped styles. All selectors under .pg-methodology.
   Signature device: the Evidence Ledger (sticky margin rail) + the ARCH (no waves).
   =================================================================== */

/* ---- shared status token (Hanken pill, tinted; the page's recurring motif — mono chip retired) ---- */
.pg-methodology .tok { font-family: var(--gsh-font-body); font-weight: 600; font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; padding: .24rem .6rem; border-radius: var(--gsh-r-pill); border: 1px solid currentColor; white-space: nowrap; line-height: 1; display: inline-block; }
.pg-methodology .tok--pub    { color: var(--gsh-sage-700); }
.pg-methodology .tok--prog   { color: var(--gsh-clay-deep); } /* A11Y-3: --gsh-gold #b8923c was 3.5:1 on cream */
.pg-methodology .tok--stated { color: var(--gsh-muted); border-color: var(--gsh-sand); }
.pg-methodology .sep { color: var(--gsh-sand); margin-inline: .35rem; }

/* a status line: token sits as a lead-in to a sentence (folded into prose, not a footer) */
.pg-methodology .status-line { font-size: .92rem; color: var(--gsh-ink); margin-top: 1rem; max-width: 60ch; display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap; }
.pg-methodology .status-line .tok { transform: translateY(.05em); }

/* ---- 1. HERO + the ledger device ---- */
.pg-methodology .hero-wrap { padding-bottom: clamp(2rem, 4vw, 3rem); }
.pg-methodology .hero { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.pg-methodology .hero h1 { max-width: 16ch; }
.pg-methodology .hero .lead-in { max-width: 64ch; color: var(--gsh-ink); }
.pg-methodology .hero .cta { display: flex; gap: .7rem; flex-wrap: wrap; }
/* long CTA labels ("Request the methodology pack and construct map") must wrap, not widen the grid past 390 */
.pg-methodology .btn { white-space: normal; text-align: center; }

.pg-methodology .ledger { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 14px; box-shadow: var(--gsh-shadow-md); padding: 1.3rem 1.4rem; position: relative; }
/* aged-paper ledger margin: a single muted-gold hairline down the left */
.pg-methodology .ledger::before { content: ""; position: absolute; top: 1.1rem; bottom: 1.1rem; left: .7rem; width: 1px; background: var(--gsh-gold); opacity: .4; }
.pg-methodology .ledger-head { padding-left: .8rem; border-bottom: 1px solid var(--gsh-sand); padding-bottom: .8rem; margin-bottom: .6rem; }
.pg-methodology .ledger-title { display: block; font-family: var(--gsh-font-display); font-size: 1.05rem; color: var(--gsh-forest); }
.pg-methodology .ledger-sub { display: block; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .06em; color: var(--gsh-muted); margin-top: .25rem; }
.pg-methodology .ledger-rows { list-style: none; padding: 0; margin: 0; }
.pg-methodology .ledger-rows li { border-bottom: 1px dashed var(--gsh-sand); }
.pg-methodology .ledger-rows li:last-child { border-bottom: 0; }
.pg-methodology .ledger-rows a { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .7rem .2rem .7rem .8rem; text-decoration: none; color: var(--gsh-ink); }
.pg-methodology .ledger-rows a:hover .lr-label { color: var(--gsh-clay-btn); }
.pg-methodology .lr-label { font-size: .86rem; font-weight: 500; line-height: 1.3; }
.pg-methodology .ledger-foot { padding-left: .8rem; font-size: var(--gsh-text-floor); color: var(--gsh-muted); margin-top: .7rem; line-height: 1.45; }

/* desktop: ledger detaches into a sticky margin rail */
@media (min-width: 1080px) {
  .pg-methodology .ledger { position: sticky; top: 92px; }
}
@media (max-width: 940px) {
  .pg-methodology .hero { grid-template-columns: 1fr; }
  .pg-methodology .ledger { order: -1; }
}

/* ---- 2. STATUS KEY band ---- */
.pg-methodology .keyband { background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); padding-block: clamp(2.4rem, 5vw, 3.6rem); }
.pg-methodology .key-h { font-size: var(--gsh-h3); margin-bottom: 1.6rem; }
.pg-methodology .key-rows { display: grid; gap: 1.4rem; }
.pg-methodology .key-row { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.1rem; align-items: start; }
.pg-methodology .key-row .tok { justify-self: start; transform: translateY(.15em); }
.pg-methodology .key-row p { color: var(--gsh-ink); max-width: 62ch; }
.pg-methodology .key-foot { margin-top: 1.6rem; font-family: var(--gsh-font-display); color: var(--gsh-muted); font-size: 1.05rem; } /* upright — Fredoka has no italic */
@media (max-width: 600px) { .pg-methodology .key-row { grid-template-columns: 1fr; gap: .5rem; } }

/* ---- 3. CONSTRUCTS — prose + arch construct map ---- */
.pg-methodology .constructs { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.pg-methodology .archmap svg { width: 100%; max-width: 340px; margin-inline: auto; height: auto; }
.pg-methodology .archmap figcaption { font-size: .78rem; color: var(--gsh-muted); text-align: center; margin-top: .6rem; max-width: 34ch; margin-inline: auto; line-height: 1.45; }
.pg-methodology .map-core { font-family: var(--gsh-font-mono); font-size: 9px; fill: var(--gsh-sage-700); letter-spacing: .04em; }
.pg-methodology .map-lab  { font-family: var(--gsh-font-body); font-size: 10px; fill: var(--gsh-forest-2); font-weight: 500; }
.pg-methodology .map-node { transform-box: fill-box; transform-origin: center; }
@media (max-width: 860px) { .pg-methodology .constructs { grid-template-columns: 1fr; } }

/* worked example — labelled block, not a card grid */
.pg-methodology .worked { margin-top: clamp(2rem, 4vw, 3rem); max-width: 720px; }
.pg-methodology .worked-h { font-family: var(--gsh-font-display); font-size: 1.2rem; color: var(--gsh-forest); margin-bottom: .9rem; }
.pg-methodology .worked-rows { margin: 0; }
.pg-methodology .worked-rows > div { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--gsh-sand); }
.pg-methodology .worked-rows > div:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-methodology .worked-rows dt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); padding-top: .15rem; }
.pg-methodology .worked-rows dd { margin: 0; color: var(--gsh-ink); font-size: .95rem; }
.pg-methodology .worked-note { font-size: .85rem; color: var(--gsh-muted); font-style: italic; margin-top: .9rem; max-width: 60ch; }
.pg-methodology .worked .btn { margin-top: 1rem; }
@media (max-width: 600px) { .pg-methodology .worked-rows > div { grid-template-columns: 1fr; gap: .25rem; } }

/* ---- 4. ITEM DEVELOPMENT ---- */
.pg-methodology .items { position: relative; }
.pg-methodology .items > h2 { border-top: 1px solid var(--gsh-sand); padding-top: clamp(2rem, 4vw, 3rem); }
.pg-methodology .items .sprout { position: absolute; right: 0; top: 2.4rem; width: 40px; height: 56px; opacity: .55; }
.pg-methodology .checks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin: 1.4rem 0; padding: 1.2rem 0; border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); }
.pg-methodology .ck-lab { display: block; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); font-style: normal; margin-bottom: .35rem; }
.pg-methodology .check p { font-size: .9rem; color: var(--gsh-ink); }
@media (max-width: 720px) { .pg-methodology .checks { grid-template-columns: 1fr; gap: 1rem; } .pg-methodology .items .sprout { display: none; } }

/* ---- 5. SCORING — reversed sage band + inverted-arch sweep ---- */
.pg-methodology .scoreband { position: relative; padding-block: clamp(3.2rem, 6vw, 5rem) clamp(4rem, 7vw, 6rem); }
.pg-methodology .scoreband h2 { font-size: var(--gsh-h2); max-width: 18ch; }
.pg-methodology .scoreband .sb-lede { font-family: var(--gsh-font-display); font-size: 1.25rem; color: var(--gsh-on-dark); margin-top: 1rem; max-width: 52ch; } /* upright — Fredoka has no italic */
.pg-methodology .scoreband .sb-body { color: var(--gsh-on-dark); margin-top: 1.1rem; max-width: 64ch; opacity: .95; }
.pg-methodology .neverlist { margin: 1.6rem 0; padding-left: 1.4rem; border-left: 1px solid rgba(244,241,231,.3); }
.pg-methodology .nl-intro { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-on-dark-muted); margin-bottom: .6rem; } /* A11Y-3: blush too light on the dark band */
.pg-methodology .neverlist ul { list-style: none; padding: 0; margin: 0; }
.pg-methodology .neverlist li { color: var(--gsh-on-dark); padding: .4rem 0; max-width: 62ch; position: relative; padding-left: 1.3rem; }
.pg-methodology .neverlist li::before { content: "\2014"; position: absolute; left: 0; color: var(--gsh-blush); }
.pg-methodology .sb-links { margin-top: 1.8rem; font-size: .9rem; }
.pg-methodology .sb-links a { color: var(--gsh-on-dark); text-decoration: underline; text-underline-offset: .2em; } /* A11Y-3/1.4.1: AA on dark band + non-colour cue */
.pg-methodology .arch-sweep { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: clamp(40px, 5vw, 70px); display: block; }

/* ---- 6. RELIABILITY — editorial moment, arch-framed, NO figure, NO fill ---- */
.pg-methodology .reliability { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; position: relative; }
.pg-methodology .reliability::before { content: ""; position: absolute; inset: -1.6rem -1.4rem; border: 1px solid var(--gsh-gold); opacity: .22; border-radius: 60% 60% 14px 14px / 22% 22% 14px 14px; pointer-events: none; }
.pg-methodology .rel-status { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-sm); padding: 1.1rem 1.2rem; margin: 1.3rem 0; display: flex; gap: .9rem; align-items: flex-start; }
.pg-methodology .rel-status .tok { transform: translateY(.15em); flex: none; }
.pg-methodology .rel-status p { color: var(--gsh-ink); font-size: .95rem; max-width: 56ch; margin: 0; }
.pg-methodology .relscale svg { width: 100%; max-width: 320px; margin-inline: auto; height: auto; }
.pg-methodology .relscale figcaption { font-size: .78rem; color: var(--gsh-muted); text-align: center; margin-top: .5rem; max-width: 32ch; margin-inline: auto; line-height: 1.45; }
.pg-methodology .rs-num   { font-family: var(--gsh-font-mono); font-size: 9px; fill: var(--gsh-muted); }
.pg-methodology .rs-band  { font-family: var(--gsh-font-mono); font-size: 8px; fill: var(--gsh-sage-700); letter-spacing: .04em; }
.pg-methodology .rs-await { font-family: var(--gsh-font-body); font-size: 9px; fill: var(--gsh-muted); font-style: italic; }
@media (max-width: 860px) { .pg-methodology .reliability { grid-template-columns: 1fr; } .pg-methodology .reliability::before { display: none; } }

/* ---- 7. FAIRNESS ---- */
.pg-methodology .fairness { max-width: 720px; }
.pg-methodology .fair-inset { margin-top: 1.2rem; padding: .2rem 0 0 1.6rem; border-top: 1px solid var(--gsh-sand); }
.pg-methodology .fair-inset p { color: var(--gsh-muted); padding-top: 1rem; max-width: 60ch; }

/* ---- 8. ACCREDITATION — lockup + two status rows ---- */
.pg-methodology .accred { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.pg-methodology .accred-lockup svg { width: 100%; max-width: 230px; margin-inline: auto; height: auto; }
.pg-methodology .accred-lockup figcaption { font-size: .78rem; color: var(--gsh-muted); text-align: center; margin-top: .5rem; }
.pg-methodology .lk-mark { font-family: var(--gsh-font-mono); font-size: 11px; fill: var(--gsh-muted); letter-spacing: .04em; }
.pg-methodology .lk-sub  { font-family: var(--gsh-font-body); font-size: 8px; fill: var(--gsh-muted); font-style: italic; }
.pg-methodology .lk-ref  { font-family: var(--gsh-font-mono); font-size: 9px; fill: var(--gsh-sage-700); letter-spacing: .06em; }
.pg-methodology .accred-rows { margin-top: 1.4rem; }
.pg-methodology .accred-rows .status-line { border-top: 1px solid var(--gsh-sand); padding-top: 1rem; }
@media (max-width: 860px) { .pg-methodology .accred { grid-template-columns: 1fr; } .pg-methodology .accred-lockup { max-width: 240px; } }

/* ---- 9. SCOPE — locked duty-of-care sentence, upright Literata display ---- */
.pg-methodology .scopeblock { background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); padding: clamp(2.4rem, 5vw, 3.6rem) clamp(1.2rem, 4vw, 2.6rem); border-radius: var(--gsh-r-sm); }
.pg-methodology .scopeblock h2 { font-size: var(--gsh-h3); }
.pg-methodology .sc-intro { color: var(--gsh-ink); margin-top: .7rem; max-width: 60ch; }
.pg-methodology .sc-locked { font-family: var(--gsh-font-display); font-style: normal; font-weight: 500; font-size: clamp(1.4rem, 1.05rem + 1.6vw, 2rem); line-height: 1.22; color: var(--gsh-forest); margin: 1.3rem 0; max-width: 24ch; }
.pg-methodology .sc-body { color: var(--gsh-ink); }
.pg-methodology .sc-body p { max-width: 64ch; }

/* ---- 10. DATA — labelled-line list (mono label : body) ---- */
.pg-methodology .data { max-width: 760px; }
.pg-methodology .data-rows { margin: 1.3rem 0 0; }
.pg-methodology .data-rows > div { display: grid; grid-template-columns: 13rem 1fr; gap: 1.2rem; padding: .85rem 0; border-top: 1px solid var(--gsh-sand); }
.pg-methodology .data-rows > div:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-methodology .data-rows dt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); padding-top: .15rem; }
.pg-methodology .data-rows dd { margin: 0; color: var(--gsh-ink); font-size: .95rem; max-width: 58ch; }
.pg-methodology .data-links { margin: 1.4rem 0 1.5rem; font-size: .9rem; }
@media (max-width: 640px) { .pg-methodology .data-rows > div { grid-template-columns: 1fr; gap: .25rem; } }

/* ---- 11. DELIVERABLE — reused certificate part + prose ---- */
.pg-methodology .deliverable { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.pg-methodology .del-rows { margin: 1.2rem 0 0; }
.pg-methodology .del-rows > div { display: grid; grid-template-columns: 13rem 1fr; gap: 1.2rem; padding: .85rem 0; border-top: 1px solid var(--gsh-sand); }
.pg-methodology .del-rows > div:last-child { border-bottom: 1px solid var(--gsh-sand); }
.pg-methodology .del-rows dt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); padding-top: .15rem; }
.pg-methodology .del-rows dd { margin: 0; color: var(--gsh-ink); font-size: .95rem; max-width: 56ch; }
.pg-methodology .del-note { font-size: .85rem; color: var(--gsh-muted); font-style: italic; margin: 1rem 0 1.2rem; max-width: 60ch; }
@media (max-width: 860px) { .pg-methodology .deliverable { grid-template-columns: 1fr; } .pg-methodology .del-art { max-width: 380px; } }
@media (max-width: 640px) { .pg-methodology .del-rows > div { grid-template-columns: 1fr; gap: .25rem; } }

/* certificate + bar primitives — these live in home.css (front-page only); the reused
   certificate template part needs them here on pages.css. Scoped so they cannot leak. */

/* ---- 12. CLOSING ---- */
.pg-methodology .close { text-align: center; }
.pg-methodology .close h2 { font-size: var(--gsh-h2); max-width: 22ch; margin-inline: auto; }
.pg-methodology .close-lede { color: var(--gsh-ink); max-width: 64ch; margin: 1.1rem auto 0; }
.pg-methodology .close .cta { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; margin-top: 1.6rem; }
.pg-methodology .close-second { margin-top: 1rem; font-size: .92rem; }
.pg-methodology .close-second a { color: var(--gsh-sage-700); }
.pg-methodology .close-micro { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .06em; color: var(--gsh-muted); margin-top: 1.4rem; }

/* ---- scroll-reveal: visible by default, enhanced where supported, off for reduced motion ---- */
.pg-methodology .reveal { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .pg-methodology .reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--gsh-ease), transform .7s var(--gsh-ease); }
  .pg-methodology .reveal.is-in,
  .pg-methodology .reveal:not(.js-reveal) { opacity: 1; transform: none; }
  .pg-methodology .archmap .map-node,
  .pg-methodology .archmap.is-in .map-node { opacity: 1; }
}
/* if JS marks the document, hide reveals until observed; otherwise they stay visible (no-JS safe) */
.js-reveal .pg-methodology .reveal:not(.is-in) { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .pg-methodology .reveal, .js-reveal .pg-methodology .reveal:not(.is-in) { opacity: 1 !important; transform: none !important; }
}

/* ---- page-faq.php (faq) ---- */
/* ===== FAQ page (pg-faq) =====
   NOTE: home.css (which carries the global .acc accordion styling) loads ONLY on the
   front page. This standalone FAQ enqueues pages.css, so the accordion styling MUST be
   restated here, scoped under .pg-faq, or the faq-accordion template part renders bare. */

/* intro */
.pg-faq .faq-intro { padding-bottom: var(--gsh-sp-5); }
.pg-faq .faq-intro .h1 { margin-top: var(--gsh-sp-2); }
.pg-faq .faq-intro .sub { max-width: 60ch; margin-top: var(--gsh-sp-3); }

/* signature device: an editorial index rail of audience "doors" with a quiet arch keystone */
.pg-faq .faq-rail { display: flex; flex-wrap: wrap; gap: var(--gsh-sp-3); margin-top: var(--gsh-sp-5); }
.pg-faq .faq-rail__door {
	display: inline-flex; align-items: center; gap: .6rem;
	padding: .65rem 1.05rem .65rem .85rem;
	border: 1px solid var(--gsh-sage); border-radius: 999px;
	color: var(--gsh-forest); text-decoration: none;
	font-family: var(--gsh-font-body); font-weight: 600; font-size: .92rem;
	background: var(--gsh-cream-2);
	transition: background .2s var(--gsh-ease), border-color .2s var(--gsh-ease), transform .2s var(--gsh-ease);
}
.pg-faq .faq-rail__key { width: 22px; height: 15px; color: var(--gsh-clay-btn); flex: none; }
.pg-faq .faq-rail__door:hover,
.pg-faq .faq-rail__door:focus-visible { background: var(--gsh-sage-2); border-color: var(--gsh-sage-700); transform: translateY(-1px); }
.pg-faq .faq-rail__door:focus-visible { outline: 2px solid var(--gsh-clay-btn); outline-offset: 2px; }

/* groups: vary the rhythm — tighter top padding, a section label that is NOT an eyebrow */
.pg-faq .faq-group { padding-block: var(--gsh-sp-7); scroll-margin-top: var(--gsh-sp-6); }
.pg-faq .faq-group__head { max-width: 60ch; margin-bottom: var(--gsh-sp-4); }
.pg-faq .faq-group__label {
	font-family: var(--gsh-font-display); font-weight: 500;
	font-size: var(--gsh-h3); color: var(--gsh-forest); line-height: 1.15;
}
.pg-faq .faq-group__head .lead-in { margin-top: var(--gsh-sp-2); color: var(--gsh-ink); }

/* one group lifted onto a raised cream-2 card so the page does not read as a flat stack */
.pg-faq .faq-group--card {
	background: var(--gsh-cream-2);
	border-radius: var(--gsh-r-arch);
	box-shadow: var(--gsh-shadow-md);
	max-width: var(--gsh-container);
	margin-inline: auto;
	padding-block: var(--gsh-sp-6);
}

/* accordion (restated from home.css, scoped) */
.pg-faq .acc { max-width: 70ch; }
.pg-faq .acc details { border-bottom: 1px solid var(--gsh-sand); padding: .3rem 0; }
.pg-faq .acc details:first-child { border-top: 1px solid var(--gsh-sand); }
.pg-faq .acc summary {
	list-style: none; cursor: pointer; display: flex; gap: .75rem; align-items: flex-start;
	padding: .9rem 0; font-family: var(--gsh-font-display); font-size: 1.08rem;
	color: var(--gsh-forest); line-height: 1.35;
}
.pg-faq .acc summary::-webkit-details-marker { display: none; }
.pg-faq .acc summary:focus-visible { outline: 2px solid var(--gsh-clay-btn); outline-offset: 3px; border-radius: 3px; }
.pg-faq .acc summary .key { flex: none; width: 18px; height: 18px; margin-top: .35rem; transition: transform .3s var(--gsh-ease); }
.pg-faq .acc details[open] summary .key { transform: rotate(180deg); }
.pg-faq .acc .a { font-size: .95rem; line-height: 1.65; color: var(--gsh-ink); padding: 0 0 1rem 1.55rem; max-width: 65ch; }
.pg-faq .acc .a a { color: var(--gsh-clay-btn); text-decoration: underline; text-underline-offset: 2px; }

/* the privacy/data answer is set visually distinct so the block is not a stock FAQ */
.pg-faq .faq-flag {
	display: inline-block; margin-right: .35rem;
	font-family: var(--gsh-font-display); font-style: italic; font-weight: 500;
	color: var(--gsh-forest);
}

/* dark closing band */
.pg-faq .faq-close { text-align: center; }
.pg-faq .faq-close .sub { max-width: 52ch; margin-inline: auto; margin-top: var(--gsh-sp-3); color: var(--gsh-on-dark); opacity: .92; }
.pg-faq .faq-close__cta { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: var(--gsh-sp-5); }
.pg-faq .faq-close__links { margin-top: var(--gsh-sp-4); font-size: .9rem; color: var(--gsh-on-dark-muted); }
.pg-faq .faq-close__links a { color: var(--gsh-on-dark); text-decoration: underline; text-underline-offset: 2px; }
.pg-faq .faq-close__scope { margin-top: var(--gsh-sp-5); color: var(--gsh-on-dark-muted); max-width: 60ch; margin-inline: auto; }

@media (max-width: 640px) {
	.pg-faq .faq-rail__door { font-size: .86rem; }
	.pg-faq .acc summary { font-size: 1.02rem; }
}

/* reduced motion: no rotation/transform, instant open/close */
@media (prefers-reduced-motion: reduce) {
	.pg-faq .faq-rail__door,
	.pg-faq .acc summary .key { transition: none; }
	.pg-faq .acc details[open] summary .key { transform: none; }
}

/* ---- page-contact.php (contact) ---- */
/* ===== Contact (pg-contact) — The Switchboard ===== */

/* 1. Hero — reception line. Asymmetric, arch-masked art on the right. */
.pg-contact .reception { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--gsh-sp-7); align-items: center; }
.pg-contact .reception__copy h1 { margin-top: var(--gsh-sp-3); }
.pg-contact .reception__copy h1 em { color: var(--gsh-sage); }
.pg-contact .reception__sub { color: var(--gsh-muted); font-size: 1.05rem; max-width: 56ch; margin: var(--gsh-sp-4) 0 var(--gsh-sp-5); }
.pg-contact .reception__art { display: flex; justify-content: center; }
.pg-contact .reception__arch {
  width: min(340px, 100%); aspect-ratio: 5 / 6; border-radius: var(--gsh-r-arch);
  background: radial-gradient(120% 100% at 30% 20%, var(--gsh-blush), var(--gsh-sand) 55%, var(--gsh-sage-2) 120%);
  box-shadow: var(--gsh-shadow-md); border: 1px solid var(--gsh-sand);
  animation: gsh-c-archdraw 0.7s var(--gsh-ease) both;
}
/* photo variant: real image replaces the gradient; arch masking is preserved via border-radius */
.pg-contact .reception__arch--photo {
  display: block; object-fit: cover; object-position: center top; background: none;
}
@keyframes gsh-c-archdraw { from { clip-path: inset(0 0 100% 0); opacity: 0; } to { clip-path: inset(0 0 0 0); opacity: 1; } }
.pg-contact .reception__copy { animation: gsh-c-rise 0.6s var(--gsh-ease) both; }
@keyframes gsh-c-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* 2. Direct lines — editorial hairline rows on cream-2, no glyphs. */
.pg-contact .lines { background: var(--gsh-cream-2); border-block: 1px solid var(--gsh-line); padding-block: var(--gsh-sp-7); }
.pg-contact .lines__h { font-size: var(--gsh-h4); margin-bottom: var(--gsh-sp-5); }
.pg-contact .lines__list { margin: 0; }
.pg-contact .lines__row { display: grid; grid-template-columns: 7.5rem 1fr; gap: var(--gsh-sp-5); padding: var(--gsh-sp-4) 0; border-top: 1px solid var(--gsh-line); align-items: baseline; }
.pg-contact .lines__row:first-child { border-top: 0; }
.pg-contact .lines__row dt { font-weight: 600; color: var(--gsh-ink-strong); }
.pg-contact .lines__row dd a { text-decoration: underline; text-underline-offset: .18em; } /* WCAG 1.4.1: contact detail links need a non-colour cue */
.pg-contact .lines__row dd { margin: 0; color: var(--gsh-ink); max-width: 60ch; }
.pg-contact .lines__privacy { margin-top: var(--gsh-sp-5); font-size: 0.86rem; color: var(--gsh-muted); max-width: 65ch; border-left: 0; }

/* 3. Switchboard — one arched reception panel, four desk states. */
.pg-contact .switchboard__h { font-size: var(--gsh-h3); text-align: center; margin-bottom: var(--gsh-sp-6); }
.pg-contact .switch { display: block; }
.pg-contact .switch__radio { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tiles — four arch-top doors in one row, each washed in its desk's tint (the tile you
   pick matches the desk strip that opens). Lead door slightly wider. Arch use 2 of 3. */
.pg-contact .switch__tiles { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr; gap: var(--gsh-sp-4); align-items: stretch; }
.pg-contact .tile {
  display: flex; flex-direction: column; gap: 0.35rem; cursor: pointer; text-align: left;
  background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand);
  border-radius: var(--gsh-r-arch); padding: var(--gsh-sp-6) var(--gsh-sp-5) var(--gsh-sp-5);
  transition: transform var(--gsh-dur) var(--gsh-ease), box-shadow var(--gsh-dur) var(--gsh-ease), border-color var(--gsh-dur) var(--gsh-ease);
}
.pg-contact .tile:hover { transform: translateY(-3px); box-shadow: var(--gsh-shadow-md); }
.pg-contact .tile__cap { font-size: var(--gsh-text-floor); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--gsh-sage-700); }
.pg-contact .tile__name { font-family: var(--gsh-font-display); font-size: 1.12rem; color: var(--gsh-ink-strong); line-height: 1.18; }
.pg-contact .tile__hint { font-size: 0.85rem; color: var(--gsh-muted); line-height: 1.5; }
/* per-desk tints — mirror the desk__head strips below */
.pg-contact .tile--a { background: var(--gsh-blush-tint); border-color: var(--gsh-blush); }
.pg-contact .tile--a .tile__cap { color: var(--gsh-clay-deep); }
.pg-contact .tile--b { background: var(--gsh-sage-tint); border-color: color-mix(in srgb, var(--gsh-sage-2) 50%, transparent); }
.pg-contact .tile--c { background: var(--gsh-sand-tint); }
.pg-contact .tile--lead .tile__name { font-size: 1.3rem; }

/* active door: clay underline-grow + raised ring (driven per-radio) */
.pg-contact .tile { position: relative; }
.pg-contact .tile::after { content: ""; position: absolute; left: var(--gsh-sp-5); right: var(--gsh-sp-5); bottom: 0.9rem; height: 2px; background: var(--gsh-clay-btn); transform: scaleX(0); transform-origin: left; transition: transform var(--gsh-dur) var(--gsh-ease); }
#gsh-desk-a:checked ~ .switch__tiles label[for="gsh-desk-a"]::after,
#gsh-desk-b:checked ~ .switch__tiles label[for="gsh-desk-b"]::after,
#gsh-desk-c:checked ~ .switch__tiles label[for="gsh-desk-c"]::after,
#gsh-desk-d:checked ~ .switch__tiles label[for="gsh-desk-d"]::after { transform: scaleX(1); }
#gsh-desk-a:checked ~ .switch__tiles label[for="gsh-desk-a"],
#gsh-desk-b:checked ~ .switch__tiles label[for="gsh-desk-b"],
#gsh-desk-c:checked ~ .switch__tiles label[for="gsh-desk-c"],
#gsh-desk-d:checked ~ .switch__tiles label[for="gsh-desk-d"] { border-color: var(--gsh-clay-btn); box-shadow: var(--gsh-shadow-md); transform: translateY(-3px); }
.pg-contact .tile:focus-within { outline: 3px solid var(--gsh-clay-btn); outline-offset: 3px; }

/* Switchboard section — dots pattern behind the section, not the whole page */
.pg-contact .switchboard-sec { position: relative; }

/* Desks panel — r-lg rounded card, overflow VISIBLE on the panel itself so content is
   never amputated (Task 8 lesson). The arch lives ONLY on the inner .desk__head strips. */
.pg-contact .desks { margin-top: var(--gsh-sp-6); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-top: 2px solid var(--gsh-clay); border-radius: var(--gsh-r-lg); box-shadow: var(--gsh-shadow-md); padding: var(--gsh-sp-7) var(--gsh-sp-6); }
.pg-contact .desk { animation: gsh-c-slide 0.45s var(--gsh-ease) both; }
@keyframes gsh-c-slide { from { opacity: 0; transform: translateX(1.5rem); } to { opacity: 1; transform: none; } }
.pg-contact .desk--idle { text-align: center; padding-block: var(--gsh-sp-4); }
/* four organic dots in the desk tints — the switchboard at rest */
.pg-contact .desk__idle-dots { display: flex; justify-content: center; gap: 0.55rem; margin-bottom: var(--gsh-sp-4); }
.pg-contact .desk__idle-dots i {
  width: 13px; height: 13px;
  border-radius: 46% 54% 52% 48% / 54% 46% 54% 46%;
}
.pg-contact .desk__idle-dots .is-a { background: var(--gsh-clay); transform: rotate(-6deg); }
.pg-contact .desk__idle-dots .is-b { background: var(--gsh-sage); transform: rotate(8deg); border-radius: 52% 48% 46% 54% / 46% 54% 46% 54%; }
.pg-contact .desk__idle-dots .is-c { background: var(--gsh-blush); transform: rotate(-4deg); }
.pg-contact .desk__idle-dots .is-d { background: var(--gsh-sage-700); transform: rotate(5deg); border-radius: 48% 52% 54% 46% / 52% 48% 52% 48%; }
.pg-contact .desk__idle-line { font-family: var(--gsh-font-display); font-size: 1.3rem; color: var(--gsh-ink-strong); max-width: 52ch; margin-inline: auto; }
.pg-contact .desk__idle-hours { margin-top: var(--gsh-sp-3); color: var(--gsh-muted); font-size: 0.92rem; }

/* Desk header strip — arch use 3 of 3. Arch on top corners only; content below is NOT
   inside this element so no overflow clipping risk. Strip is decorative (aria-hidden). */
.pg-contact .desk__head {
  grid-column: 1 / -1; /* span full desk width */
  padding: 0.7rem var(--gsh-sp-5) 0.65rem;
  border-radius: var(--gsh-r-arch); /* arch on top, small radius on bottom */
  margin-bottom: var(--gsh-sp-5);
}
.pg-contact .desk__head--a { background: var(--gsh-blush-tint); border: 1px solid var(--gsh-blush); }
.pg-contact .desk__head--b { background: var(--gsh-sage-tint);  border: 1px solid color-mix(in srgb, var(--gsh-sage-2) 40%, transparent); }
.pg-contact .desk__head--c { background: var(--gsh-sand-tint);  border: 1px solid var(--gsh-sand); }
.pg-contact .desk__head--d { background: var(--gsh-cream-2);    border: 1px solid var(--gsh-line); }
.pg-contact .desk__head-label {
  font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--gsh-clay-deep); /* clay-btn was 3.9-4.1:1 on the head tints */
}

/* Active desk = header strip spanning full width + two content columns. */
.pg-contact .desk--a, .pg-contact .desk--b, .pg-contact .desk--c, .pg-contact .desk--d {
  display: grid;
  grid-template-columns: 0.85fr 1.4fr;
  grid-template-rows: auto 1fr;
  gap: 0 var(--gsh-sp-7);
}
.pg-contact .desk__rail { border-right: 1px solid var(--gsh-line); padding-right: var(--gsh-sp-6); }
.pg-contact .desk__label { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: var(--gsh-sp-3); }
.pg-contact .desk__promise { font-family: var(--gsh-font-display); font-size: 1.15rem; color: var(--gsh-ink-strong); line-height: 1.3; }
.pg-contact .desk__channel { margin-top: var(--gsh-sp-3); font-size: 0.9rem; color: var(--gsh-muted); }
.pg-contact .desk__change { display: inline-block; margin-top: var(--gsh-sp-4); font-size: 0.82rem; color: var(--gsh-clay-btn); }
.pg-contact .desk__intro { font-size: 1.02rem; color: var(--gsh-ink); margin-bottom: var(--gsh-sp-5); max-width: 60ch; }

/* Fields */
.pg-contact .fld { display: block; margin-bottom: var(--gsh-sp-4); }
.pg-contact .fld > span { display: block; font-size: 0.82rem; font-weight: 600; color: var(--gsh-ink-strong); margin-bottom: 0.3rem; }
.pg-contact .fld input, .pg-contact .fld select, .pg-contact .fld textarea {
  width: 100%; font-family: var(--gsh-font-body); font-size: 0.95rem; color: var(--gsh-ink);
  background: var(--gsh-cream); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-sm);
  padding: 0.62rem 0.75rem;
}
.pg-contact .fld textarea { resize: vertical; }
.pg-contact .fld input:focus-visible, .pg-contact .fld select:focus-visible, .pg-contact .fld textarea:focus-visible { border-color: var(--gsh-clay-btn); }
.pg-contact .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--gsh-sp-5); }
.pg-contact .consent { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem; align-items: start; font-size: 0.86rem; color: var(--gsh-ink); margin: var(--gsh-sp-3) 0 var(--gsh-sp-5); }
.pg-contact .consent input { margin-top: 0.25rem; }
.pg-contact .desk__actions { display: flex; flex-wrap: wrap; gap: var(--gsh-sp-3); align-items: center; }
.pg-contact .desk__reassure { margin-top: var(--gsh-sp-4); font-size: 0.86rem; color: var(--gsh-muted); max-width: 62ch; }
.pg-contact .desk__next { margin-top: var(--gsh-sp-3); font-size: 0.84rem; color: var(--gsh-ink); }
.pg-contact .desk__fine { margin-top: var(--gsh-sp-3); font-size: 0.76rem; color: var(--gsh-muted); max-width: 62ch; }
.pg-contact .desk .scope { margin-top: var(--gsh-sp-4); display: block; }

/* Desk B reads calmer than A: looser field rhythm, single-column */
.pg-contact .desk--b .desk__form { max-width: 48ch; }

/* CSS-only routing: by default ALL desks visible (crawler/no-CSS fallback). With CSS,
   hide non-active desks and reveal the one whose radio is :checked. */
.pg-contact .desks .desk { display: none; }
#gsh-desk-idle:checked ~ .desks .desk--idle { display: block; }
#gsh-desk-a:checked ~ .desks .desk--a { display: grid; }
#gsh-desk-b:checked ~ .desks .desk--b { display: grid; }
#gsh-desk-c:checked ~ .desks .desk--c { display: grid; }
#gsh-desk-d:checked ~ .desks .desk--d { display: grid; }

/* 4. Where we are — prose only, thin sand rule. No map, no arch. */
.pg-contact .where { padding-block: var(--gsh-sp-7); }
.pg-contact .where__rule { border: 0; border-top: 1px solid var(--gsh-sand); margin-bottom: var(--gsh-sp-5); }
.pg-contact .where__h { font-size: var(--gsh-h4); margin-bottom: var(--gsh-sp-4); }
.pg-contact .where__body p { color: var(--gsh-ink); }
.pg-contact .where__micro { margin-top: var(--gsh-sp-3); font-size: 0.86rem; color: var(--gsh-muted); }

/* 5. Neutrality close — centred narrow measure, no card. */
.pg-contact .close { max-width: 640px; margin-inline: auto; text-align: center; }
.pg-contact .close__h { font-size: var(--gsh-h3); }
.pg-contact .close__sub { margin-top: var(--gsh-sp-4); color: var(--gsh-muted); }
.pg-contact .close__cta { display: flex; gap: var(--gsh-sp-3); justify-content: center; flex-wrap: wrap; margin-top: var(--gsh-sp-5); }
.pg-contact .close__scope { display: block; margin-top: var(--gsh-sp-5); color: var(--gsh-muted); }

/* RTL — mirror tile row, slide direction, field/rail alignment, change-line link */
.pg-contact[dir="rtl"] .desk__rail, html[dir="rtl"] .pg-contact .desk__rail { border-right: 0; border-left: 1px solid var(--gsh-line); padding-right: 0; padding-left: var(--gsh-sp-6); }
html[dir="rtl"] .pg-contact .lines__privacy { border-left: 0; }
html[dir="rtl"] .pg-contact .tile::after { transform-origin: right; }
@keyframes gsh-c-slide-rtl { from { opacity: 0; transform: translateX(-1.5rem); } to { opacity: 1; transform: none; } }
html[dir="rtl"] .pg-contact .desk { animation-name: gsh-c-slide-rtl; }

/* Responsive */
@media (max-width: 920px) {
  .pg-contact .reception { grid-template-columns: 1fr; }
  /* Content-first: words before art on mobile. Art stays BELOW the copy (natural DOM order).
     Do NOT use order: -1 — that would push the empty art gradient into the first viewport. */
  .pg-contact .switch__tiles { grid-template-columns: 1fr 1fr; }
  .pg-contact .tile--lead { grid-column: 1 / -1; }
  .pg-contact .desk--a, .pg-contact .desk--b, .pg-contact .desk--c, .pg-contact .desk--d {
    grid-template-columns: 1fr; grid-template-rows: auto auto auto;
  }
  .pg-contact .desk__head { grid-column: 1; }
  .pg-contact .desk__rail { border-right: 0; border-bottom: 1px solid var(--gsh-line); padding-right: 0; padding-bottom: var(--gsh-sp-5); }
  html[dir="rtl"] .pg-contact .desk__rail { border-left: 0; padding-left: 0; }
}
@media (max-width: 540px) {
  /* Hide decorative arch art below 540 px — words fill the first viewport */
  .pg-contact .reception__art { display: none; }
}
@media (max-width: 560px) {
  .pg-contact .grid2 { grid-template-columns: 1fr; }
  .pg-contact .lines__row { grid-template-columns: 1fr; gap: 0.2rem; }
  .pg-contact .desks { padding: var(--gsh-sp-5) var(--gsh-sp-4); }
  .pg-contact .switch__tiles { grid-template-columns: 1fr; }
}

/* Reduced motion — reveals enhance an already-visible default; no slide, no draw, no rise. */
@media (prefers-reduced-motion: reduce) {
  .pg-contact .reception__arch, .pg-contact .reception__copy, .pg-contact .desk { animation: none; }
  .pg-contact .reception__arch { clip-path: none; opacity: 1; }
  .pg-contact .tile::after { transition: none; }
}


/* ---- page-legal.php (legal) ---- */
/* ===== Legal template (pg-legal): one shell for six policy pages ===== */
.pg-legal .legal-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}

/* Left document rail: quiet, sticky, sets the doc apart from a plain article */
.pg-legal .legal-rail{position:sticky;top:96px;align-self:start;font-size:.86rem}
.pg-legal .legal-rail__kicker{font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);letter-spacing:.14em;text-transform:uppercase;color:var(--gsh-clay-deep);margin-bottom:var(--gsh-sp-4)}
.pg-legal .legal-meta{display:grid;gap:.55rem;margin:0 0 var(--gsh-sp-5);padding-bottom:var(--gsh-sp-5);border-bottom:1px solid var(--gsh-sand)}
.pg-legal .legal-meta div{display:flex;justify-content:space-between;gap:1rem}
.pg-legal .legal-meta dt{font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);letter-spacing:.08em;text-transform:uppercase;color:var(--gsh-muted)}
.pg-legal .legal-meta dd{margin:0;color:var(--gsh-ink);text-align:right}
.pg-legal .legal-stamp{display:inline-block;font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);letter-spacing:.06em;color:var(--gsh-sage-700);border:1px dashed var(--gsh-sage-2);border-radius:var(--gsh-r-pill);padding:.1rem .5rem}

/* Table of contents — numbered list set in mono, jump links */
.pg-legal .legal-toc__h{font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);letter-spacing:.1em;text-transform:uppercase;color:var(--gsh-muted);margin-bottom:var(--gsh-sp-3)}
.pg-legal .legal-toc ol{list-style:none;counter-reset:toc;padding:0;margin:0;display:grid;gap:.3rem}
.pg-legal .legal-toc li{counter-increment:toc}
.pg-legal .legal-toc a{display:grid;grid-template-columns:1.6em 1fr;gap:.4rem;color:var(--gsh-ink);text-decoration:none;line-height:1.4;padding:.12rem 0}
.pg-legal .legal-toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);color:var(--gsh-sage-2)}
.pg-legal .legal-toc a:hover{color:var(--gsh-clay-btn)}

/* Body column */
.pg-legal .legal-body{min-width:0}
.pg-legal .legal-head h1{max-width:18ch}
.pg-legal .legal-summary{color:var(--gsh-muted);font-size:1.08rem;line-height:1.55;max-width:62ch;margin-top:var(--gsh-sp-4)}

/* Honest draft note — set off, reads as candour not fine print */
.pg-legal .legal-draft{margin:var(--gsh-sp-5) 0 0;padding:var(--gsh-sp-4) var(--gsh-sp-5);background:var(--gsh-cream-2);border:1px solid var(--gsh-sand);border-radius:var(--gsh-r-md);font-size:.92rem;color:var(--gsh-ink);max-width:64ch}

/* Prose sections */
.pg-legal .legal-prose{max-width:64ch;margin-top:var(--gsh-sp-7)}
.pg-legal .legal-section{padding-top:var(--gsh-sp-6);scroll-margin-top:96px}
.pg-legal .legal-section + .legal-section{border-top:1px solid var(--gsh-sand)}
.pg-legal .legal-section h2{font-size:var(--gsh-h4);margin-bottom:var(--gsh-sp-4)}
.pg-legal .legal-section p{margin-bottom:var(--gsh-sp-4)}
.pg-legal .legal-section p:last-child{margin-bottom:0}
.pg-legal .legal-section ul{margin:0 0 var(--gsh-sp-4);padding-left:1.1rem;display:grid;gap:.5rem}
.pg-legal .legal-section li{padding-left:.2rem}
.pg-legal .legal-section li::marker{color:var(--gsh-sage-2)}
.pg-legal .legal-section a{color:var(--gsh-clay-deep);text-decoration:underline}

/* Footer of the document: related links + contact */
.pg-legal .legal-foot{margin-top:var(--gsh-sp-7);padding-top:var(--gsh-sp-5);border-top:1px solid var(--gsh-sand);max-width:64ch}
.pg-legal .legal-foot__related{display:flex;flex-wrap:wrap;gap:.45rem .9rem;align-items:baseline;font-size:.85rem}
.pg-legal .legal-foot__related span{font-family:var(--gsh-font-mono);font-size: var(--gsh-text-floor);letter-spacing:.08em;text-transform:uppercase;color:var(--gsh-muted)}
.pg-legal .legal-foot__related a{color:var(--gsh-ink);text-decoration:none}
.pg-legal .legal-foot__related a:hover{color:var(--gsh-clay-btn)}
.pg-legal .legal-foot__contact{margin-top:var(--gsh-sp-4);font-size:.9rem;color:var(--gsh-muted)}
.pg-legal .legal-foot__contact a{color:var(--gsh-clay-deep);text-decoration:underline}

/* Responsive: rail drops above the body, contents collapse to inline chips */
@media (max-width:880px){
  .pg-legal .legal-shell{grid-template-columns:1fr;gap:var(--gsh-sp-6)}
  .pg-legal .legal-rail{position:static;border-bottom:1px solid var(--gsh-sand);padding-bottom:var(--gsh-sp-5)}
  .pg-legal .legal-meta{border-bottom:none;padding-bottom:0;margin-bottom:var(--gsh-sp-4)}
  .pg-legal .legal-meta div{justify-content:flex-start;gap:.5rem}
  .pg-legal .legal-meta dd{text-align:left}
  .pg-legal .legal-toc ol{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
}

/* ---- page-insights.php (insights) ---- */
/* ===== Insights (honest interim landing) ===== */
.pg-insights .ins-head { max-width: 64ch; }
.pg-insights .ins-head .h1 { margin-top: .4rem; }

/* Forthcoming contents — a journal's "in preparation" list, not a card grid */
.pg-insights .ins-coming { margin-top: clamp(2.4rem, 5vw, 3.6rem); }
.pg-insights .ins-coming__label {
  font-family: var(--gsh-font-mono);
  font-size: var(--gsh-text-floor);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gsh-sage-700);
  padding-bottom: .8rem;
  border-bottom: 1px solid var(--gsh-sand);
}
.pg-insights .ins-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: ins;
}
.pg-insights .ins-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "kicker status"
    "title  status"
    "note   status";
  align-items: start;
  gap: .15rem 1.4rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--gsh-sand);
}
.pg-insights .ins-item__kicker {
  grid-area: kicker;
  font-family: var(--gsh-font-mono);
  font-size: var(--gsh-text-floor);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gsh-clay-deep); /* A11Y-3: clay-btn 4.35:1 on cream */
}
.pg-insights .ins-item__title {
  grid-area: title;
  font-family: var(--gsh-font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, .9rem + 1vw, 1.5rem);
  line-height: 1.18;
  color: var(--gsh-ink);
  margin: .2rem 0 0;
  max-width: 40ch;
}
.pg-insights .ins-item__note {
  grid-area: note;
  color: var(--gsh-muted);
  font-size: .92rem;
  margin: .4rem 0 0;
  max-width: 52ch;
}
.pg-insights .ins-item__status {
  grid-area: status;
  align-self: center;
  white-space: nowrap;
  font-family: var(--gsh-font-mono);
  font-size: var(--gsh-text-floor);
  letter-spacing: .04em;
  color: var(--gsh-sage-700);
  background: var(--gsh-cream-2);
  border: 1px solid var(--gsh-sand);
  border-radius: 999px;
  padding: .3rem .7rem;
}
.pg-insights .ins-coming__foot {
  margin-top: 1.4rem;
  color: var(--gsh-muted);
  font-size: .95rem;
  max-width: 62ch;
}
.pg-insights .ins-coming__foot a { color: var(--gsh-sage-700); }

/* Notify invitation — single blush arched panel (founding-partner pattern, no list churn) */
.pg-insights .ins-invite {
  margin-top: clamp(2.6rem, 5vw, 4rem);
  background: var(--gsh-blush);
  border-radius: var(--gsh-r-arch);
  padding: clamp(1.8rem, 4vw, 2.8rem) clamp(1.6rem, 4vw, 2.6rem);
  box-shadow: var(--gsh-shadow-md);
}
.pg-insights .ins-invite__body { max-width: 60ch; }
.pg-insights .ins-invite__h {
  font-family: var(--gsh-font-display);
  font-weight: 500;
  font-size: clamp(1.3rem, 1rem + 1.2vw, 1.7rem);
  color: var(--gsh-ink);
}
.pg-insights .ins-invite__p {
  color: var(--gsh-ink);
  font-size: 1rem;
  margin-top: .6rem;
}
.pg-insights .ins-invite__cta {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.4rem;
}

@media (max-width: 640px) {
  .pg-insights .ins-item {
    grid-template-columns: 1fr;
    grid-template-areas:
      "kicker"
      "title"
      "note"
      "status";
    gap: .25rem 0;
  }
  .pg-insights .ins-item__status { justify-self: start; align-self: start; margin-top: .7rem; }
}

/* ---- page-sample-report.php (sample) ---- */
/* ============================================================
   page-sample-report.php  ·  KEY = pg-sample
   Signature device: the "sample dossier" — a redacted, watermarked
   report sheet on an offset baseline beside the certificate artifact.
   All selectors scoped under .pg-sample. Globals reused, never restated.
   ============================================================ */

/* walkthrough section — dots pattern behind the annotated spread.
   No spread CTA here: the page passes an empty cta_url and the partial
   skips the anchor entirely. */
.pg-sample .sample-walkthrough {
  background: color-mix(in srgb, var(--gsh-cream-2) 70%, var(--gsh-sage-2));
  border-radius: var(--gsh-r-lg);
  padding-block: var(--gsh-section-y);
}

/* ---- the dossier band: curated gallery, not a tidy 50/50 ---- */
.pg-sample .dossier-band {
  padding-block: var(--gsh-section-y);
  background:
    radial-gradient(120% 80% at 12% 0%, color-mix(in srgb, var(--gsh-sage-2) 16%, transparent), transparent 60%),
    var(--gsh-cream-2);
  border-block: 1px solid var(--gsh-sand);
}
.pg-sample .dossier {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}

/* the report sheet — bespoke artifact */
.pg-sample .report {
  position: relative; overflow: hidden;
  background: var(--gsh-cream);
  border: 1px solid var(--gsh-sand);
  /* gentle arched top that hints the motif without the full 50% dome clipping the header */
  border-radius: 28px 28px var(--gsh-r-md) var(--gsh-r-md);
  padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.3rem, 3vw, 2rem) clamp(1.3rem, 3vw, 1.9rem);
  box-shadow: var(--gsh-shadow-md);
}
/* the diagonal watermark stamp */
.pg-sample .report__stamp {
  position: absolute; top: 1.4rem; right: -2.6rem;
  transform: rotate(18deg);
  font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .42em;
  text-transform: uppercase; color: var(--gsh-clay-deep);
  border: 1.5px solid color-mix(in srgb, var(--gsh-clay) 55%, transparent);
  border-radius: 4px; padding: .3rem 3rem; pointer-events: none;
  background: var(--gsh-cream-2); /* A11Y-3: opaque so the aria-hidden SPECIMEN stamp has a computable, passing contrast */
}
.pg-sample .report__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding-bottom: .8rem; border-bottom: 1px solid var(--gsh-sand);
}
.pg-sample .report__kicker {
  font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .14em;
  text-transform: uppercase; color: var(--gsh-clay-deep);
}
.pg-sample .report__ref {
  font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em;
  color: var(--gsh-sage-700); white-space: nowrap;
}
.pg-sample .redact {
  background: var(--gsh-forest); color: var(--gsh-forest);
  border-radius: 2px; letter-spacing: -.06em; user-select: none;
}
.pg-sample .report__name { margin-top: .9rem; font-size: .92rem; color: var(--gsh-muted); }
.pg-sample .redact-name { font-weight: 500; color: var(--gsh-sage-700); font-style: italic; }

.pg-sample .report__overall {
  margin: 1.1rem 0 1.3rem;
  padding: .85rem 1rem;
  background: color-mix(in srgb, var(--gsh-sage-2) 22%, var(--gsh-cream-2));
  border-radius: var(--gsh-r-sm);
}
.pg-sample .report__overall-lab {
  display: block; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em;
  text-transform: uppercase; color: var(--gsh-sage-700); margin-bottom: .25rem;
}
.pg-sample .report__overall-val {
  font-family: var(--gsh-font-display); font-size: 1.12rem; color: var(--gsh-forest);
}

/* the bar set comes from gsh_trait_bars() (.proof/.bar/.track/.fill are global).
   tone the shell down so it reads as part of the sheet, not a floating card */
.pg-sample .report .proof {
  background: transparent; border: 0; box-shadow: none; padding: 0;
}
.pg-sample .report .proof .rt { color: var(--gsh-muted); }

.pg-sample .report__notes {
  margin-top: 1.3rem; padding-top: 1.1rem; border-top: 1px solid var(--gsh-sand);
}
.pg-sample .report__notes-lab {
  font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em;
  text-transform: uppercase; color: var(--gsh-clay-btn); margin-bottom: .4rem;
}
.pg-sample .report__notes p { font-size: .92rem; color: var(--gsh-ink); max-width: 60ch; }
.pg-sample .report__cap {
  margin-top: 1.2rem; font-size: .76rem; font-style: italic; color: var(--gsh-muted);
  max-width: 56ch;
}

/* the certificate column — showcase: generous shadow, subtle rotation */
.pg-sample .dossier__cert { position: relative; margin-top: clamp(0px, 4vw, 3.2rem); }
/* certificate showcase: full presentation with generous shadow + slight lean */
.pg-sample .sample-cert-showcase .gsh-cert {
  box-shadow: 0 18px 52px rgba(88,101,71,.18), 0 4px 12px rgba(88,101,71,.10);
  transform: rotate(-1.2deg);
  transform-origin: center top;
  transition: transform .35s var(--gsh-ease), box-shadow .35s var(--gsh-ease);
}
.pg-sample .sample-cert-showcase .gsh-cert:hover {
  transform: rotate(0deg) translateY(-2px);
  box-shadow: 0 24px 64px rgba(88,101,71,.22), 0 4px 14px rgba(88,101,71,.12);
}
.pg-sample .dossier__cert-note {
  margin-top: 1.2rem; font-size: .82rem; color: var(--gsh-muted); max-width: 42ch;
  /* restore to upright so the note reads normally under the rotated cert */
  transform: rotate(0deg);
}
.pg-sample .dossier__scope { display: block; margin-top: var(--gsh-sp-6); }

@media (max-width: 860px) {
  .pg-sample .dossier { grid-template-columns: 1fr; }
  .pg-sample .dossier__cert { margin-top: 0; max-width: 420px; }
  .pg-sample .report__stamp { right: -2rem; padding: .3rem 2.4rem; }
}

/* ---- what's inside: an editorial read-list, hairline-ruled, not icon cards ---- */
.pg-sample .contents { list-style: none; padding: 0; margin-top: var(--gsh-sp-5); }
.pg-sample .contents li {
  position: relative; padding: .85rem 0 .85rem 1.6rem;
  border-bottom: 1px solid var(--gsh-sand); max-width: 66ch;
}
.pg-sample .contents li:first-child { border-top: 1px solid var(--gsh-sand); }
.pg-sample .contents li::before {
  content: ""; position: absolute; left: 0; top: 1.35rem;
  width: 9px; height: 9px; border-radius: 2px;
  background: var(--gsh-clay-btn); transform: rotate(45deg);
}
.pg-sample .contents li b { color: var(--gsh-forest); font-weight: 600; }
.pg-sample .contents__note {
  margin-top: var(--gsh-sp-4); font-size: .82rem; color: var(--gsh-muted); font-style: italic;
}

/* ---- why-band (reuses .band--dark; just the inner layout) ---- */
.pg-sample .why-band { border-radius: var(--gsh-r-lg); }
.pg-sample .why {
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start; padding-block: var(--gsh-section-y);
}
.pg-sample .why__body p { color: var(--gsh-on-dark); }
.pg-sample .why__body p + p { margin-top: var(--gsh-sp-4); }
.pg-sample .why__body a { color: var(--gsh-on-dark); text-decoration: underline; text-underline-offset: .18em; }
@media (max-width: 760px) { .pg-sample .why { grid-template-columns: 1fr; } }

/* ---- FAQ head row (accordion itself is the shared .acc part) ---- */
.pg-sample .sample-faq__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  margin-bottom: var(--gsh-sp-4); flex-wrap: wrap;
}
.pg-sample .sample-faq__head .all {
  font-family: var(--gsh-font-body); font-weight: 600; font-size: .9rem;
  color: var(--gsh-clay-deep); text-decoration: none; white-space: nowrap;
}
.pg-sample .sample-faq__head .all:hover { text-decoration: underline; }

/* ---- closing ---- */
.pg-sample .sample-close { text-align: center; }
.pg-sample .sample-close .sub { max-width: 60ch; }
.pg-sample .sample-close .cta {
  display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap;
  margin-top: var(--gsh-sp-5);
}
/* duty-of-care scope line near the buy decision — one instance, unobtrusive */
.pg-sample .sample-close__scope {
  margin-top: var(--gsh-sp-5); font-size: .82rem; color: var(--gsh-muted);
  max-width: 72ch; margin-inline: auto;
}

/* motion: the stamp/sheet are static by default; nothing relies on JS or reveal.
   honour reduced-motion explicitly for any inherited transition. */
@media (prefers-reduced-motion: reduce) {
  .pg-sample .report, .pg-sample .dossier__cert { transition: none; }
}

/* ---- page-redeem.php (redeem) ---- */
/* ===== /redeem/ — pg-redeem (noindex utility page, in-system restyle) =====
   The working form (and its Task-7-era error/help states) is the [gsh_redeem]
   shortcode chrome further down (.gsh-redeem). This block sets only the page frame. */
.pg-redeem .rd-band { position: relative; overflow: hidden; }
.pg-redeem .rd-wrap { max-width: var(--gsh-container-narrow); }
.pg-redeem .rd-sub { margin-top: 1rem; max-width: 50ch; }
.pg-redeem .rd-scope { margin-top: var(--gsh-sp-6); max-width: 62ch; }

/* ---- 404.php (not found) ---- */
.pg-notfound .nf { max-width: var(--gsh-container-narrow); text-align: center; }
.pg-notfound .nf-mark { width: 84px; margin: 0 auto var(--gsh-sp-5); }
.pg-notfound .nf-mark svg { width: 100%; height: auto; }
.pg-notfound .nf-sub { margin-top: 1rem; }
.pg-notfound .nf-cta { margin-top: var(--gsh-sp-5); }
.pg-notfound .nf-links { margin-top: var(--gsh-sp-4); font-size: .9rem; }
.pg-notfound .nf-links a { color: var(--gsh-sage-700); }

/* ---- page-bundle.php (bundle) ---- */
.pg-bundle .bundle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: var(--gsh-sp-6); }
.pg-bundle .bundle-item { display: block; background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 16px; padding: 1.4rem; box-shadow: var(--gsh-shadow-md); text-decoration: none; transition: transform .4s var(--gsh-ease); }
.pg-bundle .bundle-item:hover { transform: translateY(-2px); }
.pg-bundle .bundle-item h3 { font-size: 1.12rem; }
.pg-bundle .bundle-item p { font-size: .88rem; color: var(--gsh-muted); margin: .4rem 0 .7rem; }
.pg-bundle .bundle-item .amt { font-family: var(--gsh-font-display); font-size: 1.15rem; color: var(--gsh-forest); }
.pg-bundle .bundle-buy { margin-top: var(--gsh-sp-6); background: linear-gradient(120deg, rgba(232,201,168,.35), rgba(232,201,168,.12)); border: 1px solid var(--gsh-blush); border-radius: var(--gsh-r-arch); padding: 1.8rem; display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.pg-bundle .bundle-buy__cta { display: flex; flex-direction: column; gap: .6rem; }
@media (max-width: 760px) { .pg-bundle .bundle-grid { grid-template-columns: 1fr; } }

/* ---- page-bundle.php (additions for the richer build) ---- */
.pg-bundle .bundle-case { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.pg-bundle .bundle-case__q { background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 16px; padding: 1.4rem; box-shadow: var(--gsh-shadow-sm); }
.pg-bundle .bundle-case__q h3 { font-size: 1.12rem; }
.pg-bundle .bundle-case__q p { font-size: .9rem; color: var(--gsh-muted); margin-top: .4rem; }
.pg-bundle .bundle-item--heavy { background: linear-gradient(120deg, rgba(126,140,106,.08), var(--gsh-cream-2)); }
.pg-bundle .bundle-item .amt { display: block; margin-top: .7rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .04em; color: var(--gsh-sage-700); }
.pg-bundle .bundle-points { list-style: none; padding: 0; margin: 1rem 0 0; font-size: .92rem; }
.pg-bundle .bundle-points li { padding: .3rem 0 .3rem 1.5rem; position: relative; }
.pg-bundle .bundle-points li::before { content: "\2713"; position: absolute; left: 0; color: var(--gsh-clay-btn); font-weight: 700; }
@media (max-width: 760px) { .pg-bundle .bundle-case { grid-template-columns: 1fr; } .pg-bundle .faq { grid-template-columns: 1fr !important; } }

/* ---- page-impartiality-statement.php (impartiality) ---- */
.pg-impartiality .imp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--gsh-sand); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-md); overflow: hidden; }
.pg-impartiality .imp-item { display: flex; gap: 1.4rem; align-items: flex-start; background: var(--gsh-cream-2); padding: 1.6rem clamp(1.2rem, 3vw, 2rem); }
.pg-impartiality .imp-num { font-family: var(--gsh-font-display); font-style: italic; font-size: 1.6rem; color: var(--gsh-sage); flex: none; width: 2.4rem; line-height: 1.2; }
.pg-impartiality .imp-h { font-size: 1.22rem; line-height: 1.2; }
.pg-impartiality .imp-body { font-size: .95rem; color: var(--gsh-ink); margin-top: .4rem; max-width: 64ch; }
.pg-impartiality .imp-why { max-width: 64ch; }
.pg-impartiality .imp-why p { color: var(--gsh-on-dark); opacity: .9; margin-top: .8rem; }
.pg-impartiality .imp-why__cta { display: flex; gap: 1.6rem; flex-wrap: wrap; margin-top: 1.4rem; }
.pg-impartiality .imp-why__cta a { color: var(--gsh-on-dark); font-weight: 600; text-decoration: underline; text-underline-offset: .18em; padding-bottom: 2px; } /* A11Y-3/1.4.1: blush too light on the dark band + non-colour cue */
.pg-impartiality .imp-close { text-align: center; }
.pg-impartiality .imp-close p { color: var(--gsh-muted); }
@media (max-width: 600px) { .pg-impartiality .imp-item { gap: .9rem; padding: 1.3rem 1.1rem; } .pg-impartiality .imp-num { font-size: 1.3rem; width: 1.8rem; } }

/* ---- gsh-seats: buyer portal v2 (My Account) + redeem flow ----
   Per the approved portal-experience prototype: intro strip + copyable redeem
   URL chip, batch cards with order meta + quota RING, invite bar + "Invite
   many" details, one-time code panel (gsh-codecard), seats table with date
   lines, chips and per-seat actions, CSV/top-up footer. Mobile <=640px: the
   table stacks into labelled rows (prototype's call). */
.gsh-portal__h { font-family: var(--gsh-font-display); margin: 0; }
.gsh-portal__intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin: 0 0 1.2rem; }
.gsh-portal__sub { font-size: .9rem; color: var(--gsh-muted); margin: .3rem 0 0; }
.gsh-portal__chip { display: inline-flex; align-items: center; gap: .55rem; background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .35rem .45rem .35rem .9rem; font-size: .82rem; color: var(--gsh-forest-2); white-space: nowrap; }
.gsh-portal__chip b { font-weight: 600; color: var(--gsh-forest); }

.gsh-batch { border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-card); padding: 1.4rem 1.5rem; margin-bottom: 1.4rem; background: var(--gsh-cream-2); }
.gsh-batch__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--gsh-sand); }
.gsh-batch__head strong { font-family: var(--gsh-font-display); font-size: 1.1rem; color: var(--gsh-forest); }
.gsh-batch__meta { font-size: .8rem; color: var(--gsh-muted); margin-top: .2rem; }
.gsh-batch__meta a { color: inherit; }

/* quota ring — same dasharray math as the agencies-page ring */
.gsh-ring { position: relative; width: 64px; height: 64px; flex: none; }
.gsh-ring svg { width: 100%; height: 100%; display: block; }
.gsh-ring__val { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--gsh-font-display); font-weight: 600; font-size: .88rem; color: var(--gsh-forest); }

.gsh-quota-note { font-size: .85rem; color: var(--gsh-muted); margin-top: .7rem; }
.gsh-invite { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1rem 0 .4rem; }
.gsh-invite input { padding: .55rem .8rem; border: 1.5px solid var(--gsh-sand); border-radius: 10px; font: inherit; font-size: .9rem; background: #fff; }
.gsh-invite input:focus-visible { border-color: var(--gsh-clay-btn); }
.gsh-invite input[type="text"] { flex: 1; min-width: 160px; }

/* "Invite many at once" */
.gsh-bulk { margin: 0 0 .8rem; }
.gsh-bulk summary { font-size: .82rem; color: var(--gsh-sage-700); cursor: pointer; text-decoration: underline; width: max-content; }
.gsh-bulk__form { display: grid; gap: .6rem; margin-top: .7rem; max-width: 480px; justify-items: start; }
.gsh-bulk__form textarea { width: 100%; padding: .55rem .8rem; border: 1.5px solid var(--gsh-sand); border-radius: 10px; font: inherit; font-size: .88rem; background: #fff; min-height: 110px; resize: vertical; }
.gsh-bulk__form textarea:focus-visible { border-color: var(--gsh-clay-btn); }
.gsh-bulk__hint { font-size: .78rem; color: var(--gsh-muted); margin: 0; }

/* one-time code panel (minted/reissued codes — shown once) */
.gsh-codecard { background: var(--gsh-sage-tint); border-radius: 12px; padding: .9rem 1.1rem; margin: .9rem 0; }
.gsh-codecard__h { font-size: .88rem; color: var(--gsh-forest-2); margin: 0 0 .35rem; }
.gsh-codecard__h strong { color: var(--gsh-forest); }
.gsh-codecard__row { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; padding: .3rem 0; }
.gsh-codecard__who { font-size: .88rem; font-weight: 600; color: var(--gsh-forest); min-width: 7rem; }
.gsh-code { font-family: var(--gsh-font-mono); font-size: 1rem; font-weight: 700; letter-spacing: .08em; color: var(--gsh-forest); background: var(--gsh-cream-2); border: 1px dashed var(--gsh-sage); border-radius: 8px; padding: .3rem .7rem; }
.gsh-codecard__note { font-size: .78rem; color: var(--gsh-muted); margin: .5rem 0 0; }
.gsh-codecard__fail { font-size: .82rem; color: #8a4a30; margin: .6rem 0 0; }
.gsh-codecard__fail p { margin: 0 0 .25rem; }
.gsh-codecard__fail ul { margin: 0; padding-left: 1.2rem; }

/* copy buttons (is-copied set by theme.js) */
.gsh-copybtn { font: inherit; font-size: .78rem; font-weight: 600; color: var(--gsh-sage-700); background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .3rem .8rem; cursor: pointer; transition: background var(--gsh-dur) var(--gsh-ease), border-color var(--gsh-dur) var(--gsh-ease); }
.gsh-copybtn:hover { border-color: var(--gsh-sage-700); }
.gsh-copybtn.is-copied { background: var(--gsh-sage-700); border-color: var(--gsh-sage-700); color: var(--gsh-on-dark); }

/* seats table */
.gsh-seats { width: 100%; border-collapse: collapse; margin-top: .6rem; font-size: .88rem; }
.gsh-seats th { text-align: left; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-muted); padding: .5rem .6rem; border-bottom: 1px solid var(--gsh-sand); }
.gsh-seats td { padding: .55rem .6rem; border-bottom: 1px solid var(--gsh-sand); vertical-align: top; }
.gsh-em { color: var(--gsh-muted); font-size: .8rem; }
.gsh-dt { font-size: .76rem; color: var(--gsh-muted); margin-top: .15rem; }
.gsh-st { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); padding: .15rem .5rem; border-radius: 999px; white-space: nowrap; }
.gsh-st--invited { background: var(--gsh-sand); color: var(--gsh-sage-700); }
.gsh-st--started { background: var(--gsh-blush); color: var(--gsh-clay-deep); } /* 4.92:1 on blush (clay-btn was 2.98:1) */
.gsh-st--completed { background: var(--gsh-sage-700); color: var(--gsh-on-dark); }
.gsh-st--revoked { background: #e6d6d0; color: #8a4a30; }

/* per-seat actions: link-styled buttons inside tiny inline forms */
.gsh-actform { display: inline-block; }
.gsh-actform + .gsh-actform { margin-left: .6rem; }
.gsh-act { background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; font-weight: 600; color: var(--gsh-clay-btn); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.gsh-act:hover { text-decoration: none; }
.gsh-act--mut { color: var(--gsh-muted); font-weight: 400; }

/* batch footer: CSV left, top-up right */
.gsh-batch__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: .9rem; }
.gsh-csv { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-700); }
.gsh-topup { font-size: .82rem; font-weight: 600; color: var(--gsh-clay-btn); text-decoration: none; }
.gsh-topup:hover { text-decoration: underline; }

/* certificate view page (?gsh_cert=) */
.gsh-certpage { max-width: 760px; }
.gsh-certpage__back { font-size: .88rem; margin: 0 0 1.2rem; }
.gsh-certpage__back a { color: var(--gsh-sage-700); }
.gsh-certpage__hint { font-size: .82rem; color: var(--gsh-muted); margin-top: 1.2rem; }

/* mobile: the seats table stacks into labelled card rows (prototype) */
@media (max-width: 640px) {
  .gsh-portal__chip { white-space: normal; }
  .gsh-batch { padding: 1.1rem 1rem; }
  .gsh-seats thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .gsh-seats, .gsh-seats tbody, .gsh-seats tr, .gsh-seats td { display: block; width: 100%; }
  .gsh-seats tr { border: 1px solid var(--gsh-sand); border-radius: 12px; padding: .55rem .8rem; margin-top: .7rem; background: var(--gsh-cream); }
  .gsh-seats td { border: 0; padding: .25rem 0; }
  .gsh-seats td:empty { display: none; }
  .gsh-seats td[data-th]::before { content: attr(data-th) ": "; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); text-transform: uppercase; letter-spacing: .08em; color: var(--gsh-muted); margin-right: .35rem; }
}

.gsh-redeem { margin-top: var(--gsh-sp-5); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-lg); padding: clamp(1.4rem, 4vw, 2rem); box-shadow: var(--gsh-shadow-md); }
.gsh-redeem__form { display: grid; gap: .7rem; max-width: 420px; }
.gsh-redeem__form label { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); }
.gsh-redeem__form input { padding: .75rem .9rem; border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-sm); font: inherit; font-size: 1.1rem; letter-spacing: .1em; text-align: center; font-family: var(--gsh-font-mono); background: #fff; }
.gsh-redeem__help { font-size: .82rem; color: var(--gsh-muted); margin-top: .2rem; }
.gsh-redeem__err { color: #8a4a30; background: #f3e3dd; border: 1px solid #e6c7bb; border-radius: var(--gsh-r-sm); padding: .7rem .9rem; margin-bottom: 1rem; font-size: .9rem; }
.gsh-redeem__lead { font-size: 1.2rem; font-family: var(--gsh-font-display); color: var(--gsh-forest); }
.gsh-redeem__pending { color: var(--gsh-muted); margin: .6rem 0; }

/* success panel: component cards + re-entry notice */
.gsh-redeem__ok { display: grid; gap: 1rem; }
.gsh-redeem__reentry { font-size: .9rem; background: var(--gsh-blush); color: var(--gsh-clay-btn); border: 1px solid color-mix(in srgb, var(--gsh-blush) 60%, var(--gsh-clay-btn)); border-radius: var(--gsh-r-sm); padding: .55rem .9rem; margin-bottom: .25rem; }
.gsh-redeem__part { background: var(--gsh-cream); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-md); padding: 1rem 1.2rem; }
.gsh-redeem__part-h { margin: 0 0 .5rem; font-size: 1rem; }
.gsh-redeem__status { margin-top: .15rem; }
.gsh-redeem__status--ready { display: flex; align-items: center; }
.gsh-redeem__scope { font-size: .8rem; color: var(--gsh-muted); border-top: 1px solid var(--gsh-sand); padding-top: .75rem; margin-top: .25rem; }

/* 360px clean */
@media (max-width: 400px) {
  .gsh-redeem { padding: 1.1rem; }
  .gsh-redeem__part { padding: .85rem; }
}

/* lead form states (gsh-leads) */
.form-note { border-radius: 12px; padding: .8rem 1rem; font-size: .9rem; margin-bottom: 1rem; }
.form-note--ok { background: color-mix(in srgb, var(--gsh-sage-2) 30%, var(--gsh-cream)); color: var(--gsh-forest); }
.form-note--err { background: color-mix(in srgb, var(--gsh-blush) 45%, var(--gsh-cream)); color: #8A4A2B; }
.form-note-anchor { scroll-margin-top: 90px; }
.gsh-hp { position: absolute !important; left: -9999px !important; }
.ag-rfq-compact__msg { grid-column: 1 / -1; }

/* ============================================================
   Ambient AI imagery (Replicate FLUX; warm still-life, NO people per claims rule).
   Layered over the arch gradients, which remain as the fallback if an image 404s.
   ============================================================ */
.pg-about .about-introband__photo {
  background-image: url(../img/about-care.webp), linear-gradient(165deg, var(--gsh-blush), var(--gsh-sage-2) 70%, var(--gsh-sage));
}
.pg-offerings .intro__arch {
  background-image: url(../img/hero-care.webp), linear-gradient(160deg, var(--gsh-blush), var(--gsh-sage-2));
  background-size: cover; background-position: center;
}

/* ---- page-insights.php: published article list ---- */
.pg-insights .ins-published { margin-top: var(--gsh-sp-6); }
.pg-insights .ins-list--live { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.4rem; }
.pg-insights .ins-list--live .ins-item__title { font-size: 1.3rem; margin: .15rem 0 .3rem; }
.pg-insights .ins-list--live .ins-item__title a { color: var(--gsh-forest); text-decoration: none; }
.pg-insights .ins-list--live .ins-item__title a:hover { color: var(--gsh-clay-btn); }
.pg-insights .ins-item__more { display: inline-block; margin-top: .35rem; color: var(--gsh-clay-deep); font-weight: 600; font-size: .9rem; text-decoration: none; }

/* ====================================================================
   ASSESSMENT SELL PAGES — shared retune components
   (.pg-knowledge + .pg-psychometric; worry-led arc, Tasks 14+15)
   Dignity timeline (.as-dig/.as-tl), pair band (.as-pair), annotated
   report spread (template-parts/report-spread.php → .gsh-spread).
   Uniquely prefixed and declared ONCE for both page scopes.
   ==================================================================== */

/* ---- dignity timeline (dots pattern rides behind; section is positioned) ---- */
.as-dig { position: relative; background: var(--gsh-cream-2); border-top: 1px solid var(--gsh-sand); border-bottom: 1px solid var(--gsh-sand); }
.as-dig__h { max-width: 26ch; }
.as-dig__lede { margin-top: .7rem; max-width: 56ch; }
/* a real sequence, so the steps carry numbers — in organic blob markers (logo-echo),
   one brand tint per step, joined by a dashed path */
.as-tl { list-style: none; padding: 0; margin: clamp(1.8rem, 4vw, 2.6rem) 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; counter-reset: astl; }
.as-tl__step { position: relative; padding-top: 2.4rem; font-size: .98rem; font-weight: 500; color: var(--gsh-forest); line-height: 1.45; max-width: 24ch; counter-increment: astl; }
.as-tl__step::before { content: ""; position: absolute; top: 13px; left: 2.2rem; right: -1.2rem; border-top: 2px dashed color-mix(in srgb, var(--gsh-sage) 55%, transparent); }
.as-tl__step:last-child::before { display: none; }
.as-tl__dot {
  position: absolute; top: 0; left: 0; width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--gsh-sage-700); color: var(--gsh-on-dark);
  border-radius: 46% 54% 52% 48% / 54% 46% 54% 46%; transform: rotate(-4deg);
}
.as-tl__dot::after { content: counter(astl); font-family: var(--gsh-font-display); font-weight: 600; font-size: .82rem; transform: rotate(4deg); }
.as-tl__step:nth-child(2) .as-tl__dot { background: var(--gsh-clay-btn); border-radius: 52% 48% 46% 54% / 46% 54% 46% 54%; transform: rotate(3deg); }
.as-tl__step:nth-child(2) .as-tl__dot::after { transform: rotate(-3deg); }
.as-tl__step:nth-child(3) .as-tl__dot { background: var(--gsh-sage); border-radius: 48% 52% 54% 46% / 52% 48% 52% 48%; transform: rotate(-2deg); }
.as-tl__step:nth-child(3) .as-tl__dot::after { transform: rotate(2deg); }
.as-tl__step:nth-child(4) .as-tl__dot { background: var(--gsh-forest); transform: rotate(4deg); }
.as-tl__step:nth-child(4) .as-tl__dot::after { transform: rotate(-4deg); }
@media (max-width: 760px) {
  .as-tl { grid-template-columns: 1fr; gap: 1.1rem; }
  .as-tl__step { padding: .1rem 0 0 2.6rem; max-width: 60ch; min-height: 30px; }
  .as-tl__step::before { top: 30px; left: 13px; right: auto; bottom: -1.2rem; border-top: 0; border-left: 2px dashed color-mix(in srgb, var(--gsh-sage) 55%, transparent); }
  .as-tl__step:last-child::before { display: none; }
  .as-tl__dot { top: 0; }
}

/* ---- dignity timeline — visual variant with generated stills (.as-tl--visual) ---- */
.as-tl--visual .as-tl__step { max-width: none; }
.as-tl--visual .as-tl__img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 14px 14px var(--gsh-r-sm) var(--gsh-r-sm);
  margin: 0 0 0.7rem;
  box-shadow: var(--gsh-shadow-sm);
}
@media (max-width: 760px) {
  .as-tl--visual { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .as-tl--visual { grid-template-columns: 1fr; }
  .as-tl--visual .as-tl__img { aspect-ratio: 16 / 9; }
}

/* ---- pair band (sage-700 strip; .band--dark supplies the surface) ---- */
.as-pair { padding-block: clamp(2.2rem, 4vw, 3.2rem); }
.as-pair__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; flex-wrap: wrap; }
.as-pair__line { font-family: var(--gsh-font-display); font-size: clamp(1.2rem, 1rem + 1vw, 1.7rem); color: var(--gsh-on-dark); max-width: 32ch; line-height: 1.3; }
.as-pair__line strong { color: var(--gsh-blush); font-weight: 600; }

/* ---- annotated report spread (static; no JS) ---- */
.gsh-spread { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(1.6rem, 4vw, 3.2rem); align-items: center; margin-top: clamp(1.8rem, 4vw, 2.6rem); }
.gsh-spread__page { margin: 0; position: relative; background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-md); box-shadow: var(--gsh-shadow-md); padding: 1.7rem 1.7rem 1.4rem; }
/* inset rule — hairline frame floated just inside the paper edge */
.gsh-spread__page::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid color-mix(in srgb, var(--gsh-sand) 70%, transparent);
  border-radius: calc(var(--gsh-r-md) - 5px);
  pointer-events: none;
}
/* report header band: logo + title, keep clear of the portrait top-right */
.gsh-spread__head {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding-bottom: .65rem;
  margin-bottom: .9rem;
  border-bottom: 1px solid color-mix(in srgb, var(--gsh-sand) 80%, transparent);
  padding-right: clamp(64px, 8vw, 96px);
}
.gsh-spread__logo { flex: none; line-height: 0; }
.gsh-spread__logo svg { width: 90px; height: auto; display: block; }
.gsh-spread__head .gsh-spread__rt { margin: 0; }
/* microtext — decorative running line, aria-hidden; width:0 + min-width:100% prevents overflow */
.gsh-spread__micro {
  margin-top: 1rem;
  padding-top: .55rem;
  border-top: 1px solid color-mix(in srgb, var(--gsh-sand) 80%, transparent);
  font-size: 7px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gsh-sage-700); /* A11Y-3: was a faint sand/sage mix below 4.5:1 */
  width: 0;
  min-width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
/* specimen report portrait (top-right absolute) */
.gsh-spread__portrait {
  position: absolute;
  top: 1.1rem;
  right: 1.2rem;
  width: clamp(56px, 7vw, 84px);
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50% 50% 14px 14px / 34% 34% 14px 14px;
  border: 2px solid var(--gsh-cream-2);
  box-shadow: var(--gsh-shadow-sm);
}
@media (max-width: 480px) {
  .gsh-spread__logo svg { width: 72px; }
  .gsh-spread__head { padding-right: 64px; }
  .gsh-spread__portrait { width: 48px; top: 0.9rem; right: 0.9rem; }
}
.gsh-spread__rt { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-clay-btn); }
.gsh-spread__band { margin-top: .8rem; font-family: var(--gsh-font-display); font-size: 1.1rem; color: var(--gsh-forest); }
.gsh-spread__band b { color: var(--gsh-sage-700); }
.gsh-spread__rows { list-style: none; padding: 0; margin: 1rem 0 0; }
.gsh-spread__row { padding: .45rem 0; }
.gsh-spread__nm { display: block; font-size: .88rem; font-weight: 500; color: var(--gsh-forest); }
.gsh-spread__track { display: block; position: relative; height: 8px; border-radius: 6px; background: var(--gsh-sand); overflow: hidden; margin-top: .3rem; }
.gsh-spread__fill { display: block; height: 100%; border-radius: 6px; background: var(--gsh-sage); width: calc(var(--s, 0) * 100%); }
.gsh-spread__row--gap .gsh-spread__fill { background: var(--gsh-clay-btn); }
.gsh-spread__next { margin-top: 1rem; padding-top: .8rem; border-top: 1px dashed var(--gsh-sand); font-size: .86rem; color: var(--gsh-forest-2); }
.gsh-spread__stamp { margin-top: .9rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .06em; text-transform: uppercase; color: var(--gsh-clay-btn); }
.gsh-spread__callouts { list-style: none; padding: 0; margin: 0; display: grid; gap: clamp(.9rem, 2.5vw, 1.6rem); }
.gsh-spread__callout { position: relative; background: var(--gsh-sage-700); color: var(--gsh-on-dark); border-radius: var(--gsh-r-md); padding: .8rem 1.1rem .8rem 2.4rem; font-size: .92rem; max-width: 34ch; }
.gsh-spread__arrow { position: absolute; left: 1rem; top: .8rem; color: var(--gsh-blush); }
.gsh-spread__cta { margin-top: 1.4rem; font-size: .95rem; }
.gsh-spread__cta a { color: var(--gsh-clay-deep); font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--gsh-clay-deep) 40%, transparent); padding-bottom: 2px; }
.gsh-spread__cta a:hover { border-bottom-color: var(--gsh-clay-btn); }
@media (max-width: 860px) {
  .gsh-spread { grid-template-columns: 1fr; }
  .gsh-spread__callout { max-width: none; }
}

/* ====================================================================
   PSYCHOMETRIC ASSESSMENT — /offerings/psychometric-assessment/  (.pg-psychometric)
   Worry-led retune. Shared devices live in the .as-/.gsh-spread block above;
   the FAQ accordion (.acc) chrome comes from base.css. Bespoke here: hero,
   the 5C tiles (card-line deltas only), the PDPL consent chrome (position
   beside the trait model unchanged), close, sticky bar.
   ==================================================================== */

/* ---- 1 · HERO ---- */
.pg-psychometric .psy-hero { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(2rem, 4vw, 3.4rem); align-items: center; padding-top: clamp(1rem, 3vw, 2.6rem); }
.pg-psychometric .psy-hero__lede { max-width: 56ch; }
.pg-psychometric .psy-hero__sub { margin-top: 1rem; max-width: 48ch; }
.pg-psychometric .psy-cta { display: flex; gap: .8rem; margin-top: 1.5rem; flex-wrap: wrap; }
.pg-psychometric .psy-chips { list-style: none; padding: 0; margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pg-psychometric .psy-chips li { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .04em; color: var(--gsh-sage-700); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .3rem .75rem; }
.pg-psychometric .psy-chips__price { color: var(--gsh-forest); border-color: var(--gsh-sage); background: #fff; font-weight: 600; }
.pg-psychometric .psy-pnote { margin-top: .6rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-muted); letter-spacing: .02em; }
.pg-psychometric .psy-hero__doors { margin-top: 1.3rem; font-size: .9rem; line-height: 1.9; }
.pg-psychometric .psy-hero__door { display: block; color: var(--gsh-sage-700); text-decoration: none; font-weight: 600; }
.pg-psychometric .psy-hero__door:hover { text-decoration: underline; }
.pg-psychometric .psy-hero__code { font-size: .84rem; color: var(--gsh-muted); }
.pg-psychometric .psy-hero__code a { color: var(--gsh-sage-700); }
.pg-psychometric .psy-hero__img { display: block; width: 100%; height: auto; border-radius: var(--gsh-r-arch); object-fit: cover; box-shadow: var(--gsh-shadow-md); }

/* ---- 2 · THE 5C TRAIT MODEL — card-line deltas only (chrome from base.css) ---- */
.pg-psychometric .psy-traits__head { max-width: 60ch; }
.pg-psychometric .psy-traits__head .lead-in { margin-top: .8rem; }
/* five trait pebbles — tints, radii, and marker angles all vary so the row reads as
   five river stones, not five clone cards */
.pg-psychometric .psy-5c { list-style: none; padding: 0; margin: clamp(1.6rem, 4vw, 2.4rem) 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(.7rem, 1.5vw, 1.1rem); align-items: stretch; }
.pg-psychometric .psy-5c__tile { padding: 1.2rem 1.1rem 1.3rem; border: 1px solid var(--gsh-sand); }
.pg-psychometric .psy-5c__tile:nth-child(1) { background: var(--gsh-sage-tint); border-color: color-mix(in srgb, var(--gsh-sage-2) 50%, transparent); border-radius: 26px 18px 22px 16px / 20px 24px 16px 22px; }
.pg-psychometric .psy-5c__tile:nth-child(2) { background: var(--gsh-blush-tint); border-color: var(--gsh-blush); border-radius: 18px 24px 16px 26px / 24px 18px 24px 16px; }
.pg-psychometric .psy-5c__tile:nth-child(3) { background: var(--gsh-cream-2); border-radius: 22px 16px 26px 18px / 16px 24px 18px 24px; }
.pg-psychometric .psy-5c__tile:nth-child(4) { background: var(--gsh-sand-tint); border-radius: 16px 26px 18px 22px / 24px 16px 22px 18px; }
.pg-psychometric .psy-5c__tile:nth-child(5) { background: var(--gsh-sage-tint); border-color: color-mix(in srgb, var(--gsh-sage-2) 50%, transparent); border-radius: 24px 18px 24px 16px / 18px 26px 16px 24px; }
.pg-psychometric .psy-5c__pebble {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-bottom: .55rem;
  font-family: var(--gsh-font-display); font-weight: 600; font-size: .85rem;
  background: var(--gsh-sage-700); color: var(--gsh-on-dark);
  border-radius: 46% 54% 52% 48% / 54% 46% 54% 46%; transform: rotate(-4deg);
}
.pg-psychometric .psy-5c__tile:nth-child(2) .psy-5c__pebble { background: var(--gsh-clay-btn); transform: rotate(3deg); border-radius: 52% 48% 46% 54% / 46% 54% 46% 54%; }
.pg-psychometric .psy-5c__tile:nth-child(3) .psy-5c__pebble { background: var(--gsh-sage); transform: rotate(-2deg); }
.pg-psychometric .psy-5c__tile:nth-child(4) .psy-5c__pebble { background: var(--gsh-forest); transform: rotate(4deg); border-radius: 48% 52% 54% 46% / 52% 48% 52% 48%; }
.pg-psychometric .psy-5c__tile:nth-child(5) .psy-5c__pebble { background: var(--gsh-clay); transform: rotate(-3deg); }
.pg-psychometric .psy-5c__name { font-size: 1.1rem; color: var(--gsh-forest); }
.pg-psychometric .psy-5c__read { margin-top: .45rem; font-size: .88rem; color: var(--gsh-muted); }
.pg-psychometric .psy-5c__note { margin-top: 1.2rem; padding-top: .8rem; border-top: 1px dashed var(--gsh-sand); font-size: .82rem; font-style: italic; color: var(--gsh-muted); max-width: 72ch; }

/* ---- PDPL granular-consent note (chrome only; position beside the model kept) ---- */
.pg-psychometric .psy-consent-wrap { padding-bottom: var(--gsh-section-y); }
.pg-psychometric .psy-consent { max-width: 860px; border: 1px solid var(--gsh-blush); background: color-mix(in srgb, var(--gsh-blush) 14%, var(--gsh-cream-2)); border-radius: 26px 26px var(--gsh-r-lg) var(--gsh-r-lg); padding: 1.8rem 1.9rem; box-shadow: var(--gsh-shadow-sm); }
.pg-psychometric .psy-consent__kicker { font-size: var(--gsh-text-floor); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-clay-deep); }
.pg-psychometric .psy-consent__h { margin-top: .5rem; font-size: 1.4rem; }
/* the long paragraph, re-grouped into a 2×2 of scannable facts */
.pg-psychometric .psy-consent__facts { margin: 1.1rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 2rem; }
.pg-psychometric .psy-consent__fact dt { font-family: var(--gsh-font-display); font-weight: 600; font-size: .98rem; color: var(--gsh-forest); }
.pg-psychometric .psy-consent__fact dd { margin: .25rem 0 0; font-size: .9rem; line-height: 1.55; color: var(--gsh-ink); }
@media (max-width: 700px) { .pg-psychometric .psy-consent__facts { grid-template-columns: 1fr; } }
.pg-psychometric .psy-consent__links { margin-top: .9rem; font-size: .9rem; }
.pg-psychometric .psy-consent__links a { color: var(--gsh-sage-700); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--gsh-sand); padding-bottom: 2px; }
.pg-psychometric .psy-consent__links a:hover { color: var(--gsh-clay-btn); }

/* ---- 6 · FAQ + CLOSE ---- */
.pg-psychometric .psy-faq__h { margin-bottom: 1rem; text-align: center; }
.pg-psychometric .psy-faq__inner { max-width: 760px; margin-inline: auto; }
.pg-psychometric .psy-faq__more { margin-top: 1.2rem; font-size: .9rem; color: var(--gsh-muted); }
.pg-psychometric .psy-faq__more a { color: var(--gsh-sage-700); }
.pg-psychometric .psy-close { text-align: center; }
.pg-psychometric .psy-close__h { max-width: 24ch; margin-inline: auto; }
.pg-psychometric .psy-close__price { margin-top: 1rem; font-family: var(--gsh-font-display); font-size: 1.2rem; color: var(--gsh-forest); }
.pg-psychometric .psy-close__cta { margin-top: 1.2rem; }
.pg-psychometric .psy-close__pairline { margin-top: 1.2rem; font-size: .95rem; color: var(--gsh-forest-2); }
.pg-psychometric .psy-close__pairline a { color: var(--gsh-sage-700); font-weight: 600; }
.pg-psychometric .psy-close__scope { display: block; margin: 1.2rem auto 0; max-width: 60ch; }

/* ---- sticky assess bar (hidden by default; no JS = stays hidden) ---- */
.pg-psychometric .psy-stick { position: fixed; left: 50%; bottom: 1rem; transform: translate(-50%, 160%); z-index: var(--gsh-z-sticky); display: flex; align-items: center; gap: 1rem; background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); box-shadow: var(--gsh-shadow-md); padding: .55rem .7rem .55rem 1.2rem; opacity: 0; pointer-events: none; transition: transform .4s var(--gsh-ease), opacity .4s var(--gsh-ease); max-width: calc(100vw - 2rem); }
.pg-psychometric .psy-stick.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.pg-psychometric .psy-stick__price { font-family: var(--gsh-font-mono); font-size: .76rem; color: var(--gsh-forest); white-space: nowrap; }
.pg-psychometric .psy-stick__btn { white-space: nowrap; }

/* ---- responsive ---- */
@media (max-width: 1040px) {
  .pg-psychometric .psy-5c { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 880px) {
  .pg-psychometric .psy-hero { grid-template-columns: 1fr; }
  .pg-psychometric .psy-hero__art { order: -1; max-width: 420px; }
}
@media (max-width: 700px) {
  .pg-psychometric .psy-5c { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .pg-psychometric .psy-5c { grid-template-columns: 1fr; }
  .pg-psychometric .psy-stick__price { display: none; }
  .pg-psychometric .psy-stick { padding: .5rem; }
}

/* ---- reduced motion: drop transitions only (states already visible) ---- */
@media (prefers-reduced-motion: reduce) {
  .pg-psychometric .psy-stick { transition: none; }
}

/* ============================================================
   /offerings/knowledge-assessment/ — Child Caregiver Knowledge
   Assessment (CCKA™) sell page  (.pg-knowledge)
   Worry-led retune. Signature device kept: "The Competency Map",
   now with a tap-a-domain sample item behind each area (JS-enhanced
   via .is-enhanced/.is-open; fully composed without JS). Shared
   devices live in the .as-/.gsh-spread block above; the FAQ
   accordion (.acc) chrome comes from base.css.
   ============================================================ */

/* ---- 1 · HERO ---- */
.pg-knowledge .kn-hero { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(2rem, 4vw, 3.4rem); align-items: center; padding-top: clamp(1rem, 3vw, 2.6rem); }
.pg-knowledge .kn-hero__lede { max-width: 56ch; }
.pg-knowledge .kn-hero__sub { margin-top: 1rem; max-width: 48ch; }
.pg-knowledge .kn-cta { display: flex; gap: .8rem; margin-top: 1.5rem; flex-wrap: wrap; }
.pg-knowledge .kn-chips { list-style: none; padding: 0; margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pg-knowledge .kn-chips li { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .03em; color: var(--gsh-sage-700); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: .3rem .7rem; }
.pg-knowledge .kn-chips__price { color: var(--gsh-forest); border-color: var(--gsh-sage); background: #fff; font-weight: 600; }
.pg-knowledge .kn-pnote { margin-top: .6rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-muted); letter-spacing: .02em; }
.pg-knowledge .kn-hero__doors { margin-top: 1.3rem; font-size: .9rem; line-height: 1.9; }
.pg-knowledge .kn-hero__door { display: block; color: var(--gsh-sage-700); text-decoration: none; font-weight: 600; }
.pg-knowledge .kn-hero__door:hover { text-decoration: underline; }
.pg-knowledge .kn-hero__code { font-size: .84rem; color: var(--gsh-muted); }
.pg-knowledge .kn-hero__code a { color: var(--gsh-sage-700); }
.pg-knowledge .kn-hero__img { display: block; width: 100%; height: auto; border-radius: var(--gsh-r-arch); object-fit: cover; box-shadow: var(--gsh-shadow-md); }

/* ---- 2 · THE COMPETENCY MAP (signature device, kept; chrome restyled) ---- */
.pg-knowledge .kn-map__head { max-width: 56ch; }
.pg-knowledge .kn-map__head .lead-in { margin-top: .8rem; }
.pg-knowledge .kn-mapcard { margin: clamp(1.8rem, 4vw, 2.8rem) auto 0; max-width: 760px; background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: 28px 28px var(--gsh-r-md) var(--gsh-r-md); box-shadow: var(--gsh-shadow-md); padding: 1.8rem 1.7rem 1.6rem; position: relative; overflow: hidden; }
.pg-knowledge .kn-mapcard::before { content: "ILLUSTRATIVE"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--gsh-font-mono); font-size: 2rem; letter-spacing: .35em; color: rgba(88, 101, 71, .06); transform: rotate(-18deg); pointer-events: none; z-index: 0; }
.pg-knowledge .kn-mapcard__stamp { position: absolute; top: 1rem; right: 1.1rem; z-index: 3; margin: 0; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-clay-deep); background: color-mix(in srgb, var(--gsh-blush) 60%, #fff); border: 1px solid var(--gsh-blush); border-radius: var(--gsh-r-pill); padding: .22rem .6rem; }
.pg-knowledge .kn-mapcard__lab { position: relative; z-index: 1; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .12em; text-transform: uppercase; color: var(--gsh-sage-700); margin-bottom: 1rem; }
.pg-knowledge .kn-rows { list-style: none; padding: 0; margin: 0; position: relative; z-index: 1; }
.pg-knowledge .kn-row { padding: .55rem 0; border-bottom: 1px solid color-mix(in srgb, var(--gsh-sand) 65%, transparent); }
.pg-knowledge .kn-row:last-child { border-bottom: 0; }
.pg-knowledge .kn-row__head { display: flex; align-items: center; gap: .6rem; width: 100%; border: 0; background: none; padding: .15rem 0; cursor: pointer; text-align: left; font: inherit; }
.pg-knowledge .kn-row__name { flex: 1; font-size: .92rem; font-weight: 500; color: var(--gsh-forest); }
.pg-knowledge .kn-row__chip { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .05em; text-transform: uppercase; color: var(--gsh-clay-deep); border: 1px dashed var(--gsh-blush); border-radius: var(--gsh-r-pill); padding: .12rem .55rem; white-space: nowrap; }
.pg-knowledge .kn-row__chev { flex: none; width: 9px; height: 9px; border-right: 1.6px solid var(--gsh-clay-btn); border-bottom: 1.6px solid var(--gsh-clay-btn); transform: rotate(45deg); transition: transform .3s var(--gsh-ease); margin-bottom: 3px; }
.pg-knowledge .kn-row.is-open .kn-row__chev { transform: rotate(-135deg); margin-bottom: -3px; }
.pg-knowledge .kn-row__track { position: relative; height: 9px; border-radius: 6px; background: var(--gsh-sand); overflow: hidden; display: block; margin-top: .35rem; }
.pg-knowledge .kn-row__fill { display: block; height: 100%; border-radius: 6px; background: var(--gsh-sage); width: 100%; transform: scaleX(var(--s, 0)); transform-origin: left; transition: transform .9s var(--gsh-ease); }
.pg-knowledge .kn-row--gap .kn-row__fill { background: var(--gsh-clay-btn); }
.pg-knowledge .kn-row__tag { display: inline-block; margin-top: .3rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .06em; text-transform: uppercase; color: var(--gsh-muted); }
.pg-knowledge .kn-row--gap .kn-row__tag { color: var(--gsh-clay-deep); }
/* JS-armed grow-in: flat to baked --s; visible-by-default (no .is-armed = full width) */
.pg-knowledge .kn-mapcard.is-armed .kn-row__fill { transform: scaleX(0); }
.pg-knowledge .kn-mapcard.is-in .kn-row__fill { transform: scaleX(var(--s, 0)); }
/* sample-item panel: composed (visible) without JS; collapsed once .is-enhanced lands */
.pg-knowledge .kn-row__panel { margin-top: .6rem; padding: .8rem .9rem; background: #fff; border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-sm); }
.pg-knowledge .kn-mapcard.is-enhanced .kn-row__panel { display: none; }
.pg-knowledge .kn-mapcard.is-enhanced .kn-row.is-open .kn-row__panel { display: block; }
.pg-knowledge .kn-row__q { font-family: var(--gsh-font-display); font-size: .98rem; color: var(--gsh-forest); }
.pg-knowledge .kn-row__a { margin-top: .4rem; font-size: .88rem; color: var(--gsh-forest-2); }
.pg-knowledge .kn-row__a strong { color: var(--gsh-sage-700); }
.pg-knowledge .kn-row__mark { margin-top: .5rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .03em; color: var(--gsh-muted); }
.pg-knowledge .kn-mapcard__read { position: relative; z-index: 1; margin-top: 1.2rem; padding-top: .9rem; border-top: 1px dashed var(--gsh-sand); font-size: .86rem; color: var(--gsh-forest-2); line-height: 1.5; }
.pg-knowledge .kn-map__micro { margin: 1rem auto 0; max-width: 760px; font-size: .82rem; color: var(--gsh-muted); font-style: italic; }
.pg-knowledge .kn-map__micro a { color: var(--gsh-sage-700); }

/* ---- 6 · FAQ + CLOSE ---- */
.pg-knowledge .kn-faq { max-width: 760px; margin-inline: auto; }
.pg-knowledge .kn-faq__h { max-width: 24ch; margin-bottom: 1rem; }
.pg-knowledge .kn-faq__more { margin-top: 1.2rem; font-size: .9rem; color: var(--gsh-muted); }
.pg-knowledge .kn-faq__more a { color: var(--gsh-sage-700); }
.pg-knowledge .kn-close { text-align: center; }
.pg-knowledge .kn-close__h { max-width: 24ch; margin-inline: auto; }
.pg-knowledge .kn-close__price { margin-top: 1rem; font-family: var(--gsh-font-display); font-size: 1.2rem; color: var(--gsh-forest); }
.pg-knowledge .kn-close__cta { margin-top: 1.2rem; }
.pg-knowledge .kn-close__pairline { margin-top: 1.2rem; font-size: .95rem; color: var(--gsh-forest-2); }
.pg-knowledge .kn-close__pairline a { color: var(--gsh-sage-700); font-weight: 600; }
.pg-knowledge .kn-close__scope { margin: 1.2rem auto 0; display: block; max-width: 60ch; }

/* ---- sticky buy bar (hidden by default; no JS = stays hidden) ---- */
.pg-knowledge .kn-stick { position: fixed; left: 50%; bottom: 1rem; transform: translate(-50%, 160%); z-index: var(--gsh-z-sticky); display: flex; align-items: center; gap: var(--gsh-sp-4); background: var(--gsh-cream-2); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); box-shadow: var(--gsh-shadow-md); padding: .55rem .65rem .55rem 1.2rem; max-width: calc(100% - 2rem); opacity: 0; pointer-events: none; transition: transform .4s var(--gsh-ease), opacity .4s var(--gsh-ease); }
.pg-knowledge .kn-stick.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.pg-knowledge .kn-stick__price { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); color: var(--gsh-sage-700); white-space: nowrap; }
.pg-knowledge .kn-stick__btn { white-space: nowrap; }

/* ---- reduced motion: map renders at final width; sticky bar fades only ---- */
@media (prefers-reduced-motion: reduce) {
  .pg-knowledge .kn-mapcard.is-armed .kn-row__fill { transform: scaleX(var(--s, 0)); }
  .pg-knowledge .kn-row__fill { transition: none; }
  .pg-knowledge .kn-row__chev { transition: none; }
  .pg-knowledge .kn-stick { transition: opacity .2s linear; }
}

/* ---- responsive ---- */
@media (max-width: 880px) {
  .pg-knowledge .kn-hero { grid-template-columns: 1fr; }
  .pg-knowledge .kn-hero__art { order: -1; max-width: 420px; }
}
@media (max-width: 560px) {
  .pg-knowledge .kn-row__chip { display: none; }
  .pg-knowledge .kn-stick__price { display: none; }
}

/* ============================================================================
   PRICING — /pricing/ (.pg-pricing), the single conversion surface.
   Redesign M3: quiet hero, anchored psychometric column (trio__flagtag),
   Fredoka prices, checkmark value lists, pill steppers, sage/forest pack cards,
   rigor strip chips, payment honesty row. Tier math + ids untouched.
   ========================================================================== */

/* ---- 1. Hero (quiet — one-liner, no eyebrow, no accent) ---- */
.pg-pricing .prc-hero { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding-bottom: clamp(1.2rem, 2.5vw, 2rem); }
.pg-pricing .prc-hero__h1 { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); font-weight: 500; margin: 0; }
.pg-pricing .prc-jump { display: flex; flex-direction: column; gap: .15rem; justify-self: end; align-self: center; }
.pg-pricing .prc-jump a { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .05em; color: var(--gsh-sage-700); text-decoration: none; padding: .42rem 0; border-bottom: 1px solid var(--gsh-sand); }
.pg-pricing .prc-jump a:first-child { border-top: 1px solid var(--gsh-sand); }
.pg-pricing .prc-jump a:hover { color: var(--gsh-clay-btn); }

/* ---- 2. The ledger ---- */
/* the hero h1 owns the page title; this heading steps down a clear tier and the
   section pulls up, so the two no longer read as duplicate titles */
.pg-pricing .prc-ledger { padding-top: clamp(1.2rem, 2.5vw, 2rem); }
.pg-pricing .prc-ledger__head { max-width: 720px; }
.pg-pricing .prc-ledger__head h2 { font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.7rem); font-weight: 500; }
.pg-pricing .prc-ledger__head .lead-in { margin-top: .7rem; }
.pg-pricing .prc-cols { display: grid; grid-template-columns: 1fr 1.08fr 1fr; gap: clamp(.9rem, 2vw, 1.4rem); align-items: start; margin-top: clamp(2.2rem, 5vw, 3.2rem); /* extra top clearance for the flagtag overhang */ }
.pg-pricing .prc-col { position: relative; background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-line); border-radius: 28px 28px var(--gsh-r-md) var(--gsh-r-md); padding: 1.6rem 1.4rem 1.4rem; display: flex; flex-direction: column; }
.pg-pricing .prc-col--anchor { border-color: var(--gsh-sage-700); box-shadow: 0 12px 28px rgba(88,101,71,.14); transform: translateY(-12px); }
.pg-pricing .prc-col--quiet { background: color-mix(in srgb, var(--gsh-sand) 32%, var(--gsh-cream)); }

/* flagtag — reuses trio__flagtag from base.css; scoped position correction */
.pg-pricing .prc-col__flagtag { z-index: 1; }

.pg-pricing .prc-col__tag { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-sage-700); margin-top: .2rem; }
.pg-pricing .prc-col h3 { font-family: var(--gsh-font-display); font-size: 1.35rem; color: var(--gsh-forest); margin-top: .45rem; }
.pg-pricing .prc-col__blurb { font-size: .9rem; color: var(--gsh-muted); margin-top: .35rem; min-height: 2.6em; }
.pg-pricing .prc-col__price { font-family: var(--gsh-font-display); font-weight: 700; font-size: 2.1rem; color: var(--gsh-forest); margin-top: .9rem; line-height: 1.1; }
.pg-pricing .prc-col__unit { display: block; font-family: var(--gsh-font-body); font-size: .78rem; color: var(--gsh-muted); margin-top: .2rem; font-weight: 400; }
.pg-pricing .prc-col__note { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .03em; color: var(--gsh-muted); margin-top: .35rem; }

/* checkmark value list */
.pg-pricing .prc-col__incl { list-style: none; padding: 0; margin: 1rem 0 0; flex: 1; }
.pg-pricing .prc-col__incl li { position: relative; font-size: .86rem; line-height: 1.5; color: var(--gsh-ink); padding: .5rem 0 .5rem 1.4rem; border-top: 1px solid var(--gsh-sand); }
.pg-pricing .prc-col__incl li::before { content: '✓'; position: absolute; left: 0; top: .52rem; color: var(--gsh-sage-700); font-weight: 700; font-size: .82rem; line-height: 1; }

.pg-pricing .prc-col__scope { font-size: var(--gsh-text-floor); font-style: italic; color: var(--gsh-muted); margin-top: .8rem; }
.pg-pricing .prc-ledger__sample { margin-top: clamp(1.4rem, 3vw, 2rem); font-size: .92rem; color: var(--gsh-muted); }
.pg-pricing .prc-ledger__sample a { color: var(--gsh-clay-deep); font-weight: 600; } /* A11Y-3: clay-btn 4.35:1 on cream */

/* ---- buy block — chip/pill stepper chrome ---- */
.pg-pricing .prc-buy { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px dashed var(--gsh-sand); }
.pg-pricing .prc-qty { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.pg-pricing .prc-qty__lab { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); }
/* pill shell */
.pg-pricing .prc-qty__ctl { display: inline-flex; align-items: center; background: var(--gsh-sage-tint); border: 1px solid var(--gsh-sand); border-radius: var(--gsh-r-pill); padding: 2px; gap: 0; }
/* ± circle chips — min 40 × 40 for tap target */
.pg-pricing .prc-qty__btn { width: 40px; height: 40px; border: 0; background: rgba(255,255,255,.75); color: var(--gsh-sage-700); font-size: 1.05rem; cursor: pointer; border-radius: var(--gsh-r-pill); line-height: 1; font-weight: 700; transition: background var(--gsh-dur) var(--gsh-ease); }
.pg-pricing .prc-qty__btn:hover { background: #fff; color: var(--gsh-clay-btn); }
.pg-pricing .prc-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
/* number field inside the pill */
.pg-pricing .prc-qty__n { width: 2.8em; border: 0; background: none; text-align: center; font-family: var(--gsh-font-display); font-size: 1rem; color: var(--gsh-forest); -moz-appearance: textfield; appearance: textfield; }
.pg-pricing .prc-qty__n::-webkit-outer-spin-button, .pg-pricing .prc-qty__n::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pg-pricing .prc-total { margin-top: .8rem; font-size: .9rem; color: var(--gsh-ink); min-height: 1.4em; }
.pg-pricing .prc-total__n { font-family: var(--gsh-font-display); font-size: 1.2rem; color: var(--gsh-forest); font-weight: 600; }
.pg-pricing .prc-total__per { font-size: .78rem; color: var(--gsh-muted); margin-left: .3rem; }
.pg-pricing .prc-cta { margin-top: .8rem; width: 100%; text-align: center; }
.pg-pricing .prc-tiernote { font-size: var(--gsh-text-floor); color: var(--gsh-muted); margin-top: .6rem; }
.pg-pricing .prc-tiernote a { color: var(--gsh-sage-700); text-decoration: underline; text-underline-offset: .18em; } /* WCAG 1.4.1: in-text link needs a non-colour cue */

/* ---- 3. Packs band — sage/forest dark cards ---- */
.pg-pricing .prc-packs { background: var(--gsh-sage-700); border-block: 1px solid var(--gsh-line); }
.pg-pricing .prc-packs h2 { color: var(--gsh-on-dark); font-size: clamp(1.5rem, 1.2rem + 1.3vw, 2.1rem); }
.pg-pricing .prc-packs__lead { color: var(--gsh-on-dark-muted); max-width: 64ch; margin-top: .7rem; font-size: .95rem; }
.pg-pricing .prc-packgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(.9rem, 2vw, 1.4rem); margin-top: clamp(1.6rem, 3.5vw, 2.4rem); }

/* sage card (default) */
.pg-pricing .prc-pack { position: relative; background: var(--gsh-sage-700); border: 1.5px solid rgba(244,241,231,.18); border-radius: var(--gsh-r-md); padding: 1.5rem 1.4rem 1.4rem; color: var(--gsh-on-dark); }
/* forest card (best / assurance) */
.pg-pricing .prc-pack--best { background: var(--gsh-forest); border-color: rgba(184,146,60,.32); }

.pg-pricing .prc-pack__chip { position: absolute; top: -0.7em; left: 1.2rem; font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-forest); background: var(--gsh-blush); border: 1px solid var(--gsh-gold); border-radius: var(--gsh-r-pill); padding: .18rem .6rem; }
.pg-pricing .prc-pack h3 { font-family: var(--gsh-font-display); font-size: 1.2rem; color: var(--gsh-on-dark); }
.pg-pricing .prc-pack__what { font-size: .86rem; color: var(--gsh-on-dark-muted); margin-top: .35rem; min-height: 2.6em; }

/* à-la-carte savings line */
.pg-pricing .prc-pack__math { margin-top: .8rem; font-size: .78rem; color: var(--gsh-on-dark-muted); }
.pg-pricing .prc-pack__math s { opacity: .7; }

.pg-pricing .prc-pack__price { font-family: var(--gsh-font-display); font-weight: 700; font-size: 1.75rem; color: var(--gsh-on-dark); margin-top: .15rem; }
.pg-pricing .prc-pack__save { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .05em; text-transform: uppercase; color: var(--gsh-forest); background: var(--gsh-blush); border-radius: var(--gsh-r-pill); padding: .2rem .55rem; margin-left: .4rem; vertical-align: middle; }

/* buy block inside pack cards — invert colours for dark surface */
.pg-pricing .prc-pack .prc-buy { border-top-color: rgba(244,241,231,.22); }
.pg-pricing .prc-pack .prc-qty__lab { color: var(--gsh-on-dark-muted); }
.pg-pricing .prc-pack .prc-qty__ctl { background: rgba(255,255,255,.10); border-color: rgba(244,241,231,.24); }
.pg-pricing .prc-pack .prc-qty__btn { background: rgba(255,255,255,.14); color: var(--gsh-on-dark); }
.pg-pricing .prc-pack .prc-qty__btn:hover { background: rgba(255,255,255,.28); color: #fff; }
.pg-pricing .prc-pack .prc-qty__n { color: var(--gsh-on-dark); }
.pg-pricing .prc-pack .prc-total { color: var(--gsh-on-dark); }
.pg-pricing .prc-pack .prc-total__n { color: var(--gsh-on-dark); }
.pg-pricing .prc-pack .prc-total__per { color: var(--gsh-on-dark-muted); }
.pg-pricing .prc-pack .prc-tiernote { color: var(--gsh-on-dark-muted); }
.pg-pricing .prc-pack .prc-tiernote a { color: var(--gsh-on-dark); text-decoration: underline; text-underline-offset: .18em; } /* A11Y-3/1.4.1: AA contrast on the dark pack + non-colour cue */

/* ---- 4. Volume / invoicing ---- */
.pg-pricing .prc-volume__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(1.6rem, 4vw, 3rem); align-items: start; }
.pg-pricing .prc-volume__copy h2 { font-size: clamp(1.5rem, 1.2rem + 1.3vw, 2.1rem); }
.pg-pricing .prc-volume__copy .lead-in { margin-top: .7rem; }
.pg-pricing .prc-volume__cta { margin-top: 1.4rem; }
.pg-pricing .prc-volume__reassure { font-size: .82rem; color: var(--gsh-muted); margin-top: .8rem; max-width: 46ch; }
/* .card-line scoped delta — chrome (cream-2 bg, 1.5px sand hairline, r-card radius) from base.css */
.pg-pricing .prc-tiers-wrap { background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-card); padding: 1.2rem 1.4rem; box-shadow: var(--gsh-shadow-sm); }
.pg-pricing .prc-tiers { width: 100%; border-collapse: collapse; font-size: .9rem; }
.pg-pricing .prc-tiers th { font-family: var(--gsh-font-mono); font-size: var(--gsh-text-floor); letter-spacing: .1em; text-transform: uppercase; color: var(--gsh-sage-700); text-align: left; padding: .55rem .6rem .55rem 0; border-bottom: 1px solid var(--gsh-forest); }
.pg-pricing .prc-tiers td { padding: .65rem .6rem .65rem 0; border-bottom: 1px solid var(--gsh-sand); color: var(--gsh-ink); vertical-align: top; }
.pg-pricing .prc-tiers td:first-child { font-family: var(--gsh-font-mono); font-size: .82rem; color: var(--gsh-forest); white-space: nowrap; }
.pg-pricing .prc-tiers a { color: var(--gsh-clay-btn); font-weight: 600; text-decoration: none; }
.pg-pricing .prc-tiers a:hover { text-decoration: underline; }

/* ---- 5. The editorial close: "the fine print, in plain sight" (merged 5+6;
        spec docs/superpowers/specs/2026-06-12-pricing-fineprint-redesign-design.md) ---- */
.pg-pricing .prc-close { border-top: 1px solid var(--gsh-sand); }
.pg-pricing .prc-close__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.6rem, 4vw, 3.5rem); align-items: start; }
.pg-pricing .prc-close__intro h2 { font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.3rem); max-width: 14ch; }
.pg-pricing .prc-close__lede { margin-top: .8rem; font-size: .95rem; color: var(--gsh-muted); max-width: 38ch; line-height: 1.6; }
.pg-pricing .prc-close__seal { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.4rem; background: var(--gsh-sage-tint); border: 1px solid rgba(88, 101, 71, .18); border-radius: var(--gsh-r-pill); padding: .4rem 1.1rem .4rem .45rem; font-size: .85rem; color: var(--gsh-forest); text-decoration: none; transition: border-color var(--gsh-dur) var(--gsh-ease); }
.pg-pricing .prc-close__seal:hover { border-color: var(--gsh-sage-700); }
.pg-pricing .prc-close__sealmark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--gsh-r-arch); background: var(--gsh-sage-700); color: var(--gsh-cream-2); font-family: var(--gsh-font-display); font-weight: 600; font-size: .72rem; letter-spacing: .04em; }
.pg-pricing .prc-close__ledger { margin: 0; }
.pg-pricing .prc-close__row { display: grid; grid-template-columns: 130px 1fr; gap: .4rem 1.4rem; padding-block: 1.1rem; border-top: 1px solid var(--gsh-sand); }
.pg-pricing .prc-close__row:first-child { border-top: 0; padding-top: 0; }
.pg-pricing .prc-close__row dt { font-size: var(--gsh-text-floor); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gsh-sage-700); padding-top: .15rem; }
.pg-pricing .prc-close__row dd { margin: 0; font-size: .9rem; color: var(--gsh-ink); line-height: 1.6; }
.pg-pricing .prc-close__row dd a { color: var(--gsh-sage-700); }
.pg-pricing .prc-close__chk { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 2rem; }
.pg-pricing .prc-close__chk li { position: relative; padding: .25rem 0 .25rem 1.3rem; break-inside: avoid; font-size: .88rem; }
.pg-pricing .prc-close__chk li::before { content: '✓'; position: absolute; left: 0; top: .35rem; color: var(--gsh-sage-700); font-weight: 700; font-size: .8rem; line-height: 1; }
.pg-pricing .prc-close__marks { list-style: none; margin: 0 0 .7rem; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.pg-pricing .prc-close__marks li { display: inline-flex; align-items: center; background: #fff; border: 1px solid var(--gsh-sand); border-radius: 6px; padding: .4rem .7rem; line-height: 0; }
.pg-pricing .prc-close__paynote { margin: 0; }
.pg-pricing .prc-close__foot { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem 1.5rem; flex-wrap: wrap; margin-top: clamp(1.6rem, 3.5vw, 2.4rem); padding-top: 1.1rem; border-top: 1px solid var(--gsh-sand); }
.pg-pricing .prc-close__scope { font-size: var(--gsh-text-floor); font-style: italic; color: var(--gsh-muted); max-width: 58ch; margin: 0; }
.pg-pricing .prc-close__links { font-size: .88rem; color: var(--gsh-muted); margin: 0; }
.pg-pricing .prc-close__links a { color: var(--gsh-clay-deep); } /* A11Y-3: clay-btn 4.35:1 on cream */

/* ---- responsive ---- */
@media (max-width: 960px) {
  .pg-pricing .prc-hero { grid-template-columns: 1fr; align-items: start; }
  .pg-pricing .prc-jump { flex-direction: row; flex-wrap: wrap; gap: .3rem 1.4rem; justify-self: start; }
  .pg-pricing .prc-jump a, .pg-pricing .prc-jump a:first-child { border: 0; padding: .2rem 0; }
  .pg-pricing .prc-cols { grid-template-columns: 1fr; }
  .pg-pricing .prc-col--anchor { transform: none; }
}
@media (max-width: 860px) {
  .pg-pricing .prc-volume__grid { grid-template-columns: 1fr; }
  .pg-pricing .prc-close__grid { grid-template-columns: 1fr; }
  .pg-pricing .prc-close__row { grid-template-columns: 1fr; }
  .pg-pricing .prc-close__foot { flex-direction: column; }
}
@media (max-width: 560px) {
  .pg-pricing .prc-close__chk { columns: 1; }
}
@media (max-width: 480px) {
  .pg-pricing .prc-qty__btn { width: 44px; height: 44px; } /* generous tap target at 360px */
}

/* ============================================================
   ACCOUNT / PORTAL CHROME — /my-account/ (pg-account)
   Scope = Woo body classes (.woocommerce-account): index.php renders the page,
   so there is no .pg wrapper to hang off. Covers:
   1. the branded split login (theme override woocommerce/myaccount/form-login.php)
   2. Woo notices on the account page -> the form-note look
   3. the gsh-seats order-received panel (.gsh-next) — card-line chrome
   4. Full-width logged-in shell: 220px nav card + 1fr content grid (Task 25)
   5. Dashboard orientation cards (Task 25)
   ============================================================ */

/* ---- 1. Logged-out shell: the split login owns the page ---- */
body.woocommerce-account { --gshacct-login-w: 880px; } /* shared card width: login card + notices align to it */
/* index.php's generic shell: release the 65ch prose clamp so the card can split. */
body.woocommerce-account:not(.logged-in) .site-main .prose { max-width: none; }

/* ---- 4. Logged-in shell: full-width grid (220px nav | 1fr content) ---- */
/* Release the .prose 65ch constraint on logged-in pages so the grid gets full container width. */
body.woocommerce-account.logged-in .site-main .prose { max-width: none; }

/* Grid: nav card left, content right. Only applies logged-in (the login form has different
   inner markup — .gsh-login — and is already handled by its own split-card CSS above). */
body.woocommerce-account.logged-in .site-main .woocommerce {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: start;
}

/* WooCommerce's own stylesheet (woocommerce-layout.css) floats the nav (30%) and content (68%).
   Kill the floats and fix to explicit grid columns so no Woo rule can fight us. */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  float: none;
  width: auto;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
  grid-column: 1;
  grid-row: 1;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  grid-column: 2;
  grid-row: 1;
}

/* ---- Account nav: hairline card look, styled links, active state ---- */
.woocommerce-MyAccount-navigation {
  background: var(--gsh-cream-2);
  border: 1.5px solid var(--gsh-sand);
  border-radius: var(--gsh-r-card);
  padding: 0.5rem;
  box-shadow: var(--gsh-shadow-sm);
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-MyAccount-navigation li {
  margin: 0;
}
.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 0.55rem 0.85rem;
  border-radius: 0.625rem;
  color: var(--gsh-forest-2);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
  margin-bottom: 0.125rem;
  transition: background var(--gsh-dur) var(--gsh-ease), color var(--gsh-dur) var(--gsh-ease);
}
.woocommerce-MyAccount-navigation li a:hover {
  background: var(--gsh-sage-tint);
  color: var(--gsh-forest);
}
/* Active state: Woo adds .is-active on the <li> */
.woocommerce-MyAccount-navigation li.is-active > a {
  background: var(--gsh-sage-tint);
  color: var(--gsh-forest);
  font-family: var(--gsh-font-display);
  font-weight: 600;
}
/* Log out link: quieter */
.woocommerce-MyAccount-navigation-link--customer-logout a {
  font-size: 0.82rem;
  color: var(--gsh-muted);
  margin-top: 0.25rem;
  border-top: 1px solid var(--gsh-sand);
  border-radius: 0;
  padding-top: 0.6rem;
}
.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
  background: none;
  color: var(--gsh-clay-btn);
}
/* The page <h1> ("My account") stays for AT + heading order; visually the
   in-card Fredoka "Welcome back" leads, per the approved chrome-login design. */
body.woocommerce-account:not(.logged-in) .site-main .h1 {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap;
}

/* ---- split card: warm still + ribbon left, form right ---- */
.gsh-login {
  display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  max-width: var(--gshacct-login-w, 880px); margin-inline: auto;
  background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand);
  border-radius: var(--gsh-r-lg); overflow: hidden; box-shadow: var(--gsh-shadow-md);
}
.gsh-login__art { position: relative; min-height: 460px; }
.gsh-login__art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(1.05) sepia(.16) saturate(1.04); }
.gsh-login__ribbon {
  position: absolute; left: 1rem; right: 1rem; bottom: 1rem; margin: 0;
  background: rgba(250, 246, 238, .93); border-radius: 12px; padding: .85rem 1rem;
  font-size: .88rem; line-height: 1.5; color: var(--gsh-forest-2);
}
.gsh-login__ribbon strong { display: block; font-family: var(--gsh-font-display); font-weight: 600; font-size: 1.02rem; color: var(--gsh-forest); }
.gsh-login__formside { padding: clamp(1.6rem, 4vw, 2.6rem); align-self: center; min-width: 0; }
.gsh-login__h { font-size: var(--gsh-h3); line-height: 1.1; margin: 0; }
.gsh-login__sub { font-size: .9rem; color: var(--gsh-muted); margin: .35rem 0 1.5rem; }

/* ---- the Woo form internals (stock classes), restyled in-system ----
   Selectors carry .woocommerce-account + element qualifiers on purpose: they must
   out-rank woocommerce.css (.woocommerce form.login bordered box, .woocommerce
   button.button gray) and wc-blocks.css form-control rules. */
.woocommerce-account .gsh-login form.login { border: 0; border-radius: 0; padding: 0; margin: 0; background: none; }
.woocommerce-account .gsh-login .woocommerce-form-row { margin: 0 0 1.05rem; }
.woocommerce-account .gsh-login .woocommerce-form-login label { display: block; font-size: .82rem; font-weight: 600; color: var(--gsh-ink-strong); margin-bottom: .3rem; }
.woocommerce-account .gsh-login .woocommerce-form-login .required { color: var(--gsh-clay); text-decoration: none; }
.woocommerce-account .gsh-login .woocommerce-form-login input.woocommerce-Input {
  width: 100%; font-family: var(--gsh-font-body); font-size: .95rem; color: var(--gsh-ink);
  background: #fff; border: 1.5px solid var(--gsh-sand); border-radius: 12px; padding: .68rem .9rem;
}
.woocommerce-account .gsh-login .woocommerce-form-login input.woocommerce-Input:focus,
.woocommerce-account .gsh-login .woocommerce-form-login input.woocommerce-Input:focus-visible { border-color: var(--gsh-clay-btn); }
.woocommerce-account .gsh-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: .5rem; font-size: .88rem; font-weight: 400; color: var(--gsh-ink); margin-bottom: 1.1rem; cursor: pointer; }
.woocommerce-account .gsh-login .woocommerce-form-login__rememberme input { width: 1rem; height: 1rem; accent-color: var(--gsh-sage-700); margin: 0; flex: none; }
.woocommerce-account .gsh-login button.woocommerce-form-login__submit {
  display: block; width: 100%; font-family: var(--gsh-font-body); font-weight: 600; font-size: .98rem; line-height: 1.1;
  background: var(--gsh-btn-bg); color: var(--gsh-btn-ink); border: 1.5px solid transparent;
  border-radius: var(--gsh-r-pill); padding: .85rem 1.5rem; cursor: pointer; box-shadow: var(--gsh-shadow-clay);
  transition: transform var(--gsh-dur) var(--gsh-ease), box-shadow var(--gsh-dur) var(--gsh-ease);
}
.woocommerce-account .gsh-login button.woocommerce-form-login__submit:hover { background: var(--gsh-btn-bg); color: var(--gsh-btn-ink); transform: translateY(-2px); }
/* Woo's JS show-password eye: center it against the restyled input */
.woocommerce-account .gsh-login .password-input { position: relative; display: block; }
.woocommerce-account .gsh-login .show-password-input { top: 50%; transform: translateY(-50%); right: .9rem; color: var(--gsh-sage-700); }
.woocommerce-account .gsh-login .show-password-input::after { color: var(--gsh-sage-700); }
.woocommerce-account .gsh-login .lost_password { margin: .8rem 0 0; font-size: .85rem; text-align: center; }
.woocommerce-account .gsh-login .lost_password a { color: var(--gsh-clay-btn); font-weight: 600; text-decoration: none; }
.woocommerce-account .gsh-login .lost_password a:hover { text-decoration: underline; }

/* ---- cross-links: seat-code redeem + start-an-assessment ---- */
.gsh-login__alt { border-top: 1px solid var(--gsh-sand); margin-top: 1.4rem; padding-top: 1.1rem; font-size: .9rem; color: var(--gsh-ink); }
.gsh-login__alt p { margin: 0; }
.gsh-login__alt p + p { margin-top: .45rem; }
.gsh-login__alt a { color: var(--gsh-clay-btn); font-weight: 600; text-decoration: none; white-space: nowrap; }
.gsh-login__alt a:hover { text-decoration: underline; }

/* ---- 2. Woo notices on the account page -> form-note look ----
   Wrong-password errors render as ul.woocommerce-error: strip list chrome,
   recolor to the form-note--err system so the failure reads in-brand. */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
  list-style: none; margin: 0 0 1.2rem; padding: .8rem 1rem; border: 0; border-radius: 12px;
  font-size: .9rem; line-height: 1.5; color: var(--gsh-forest);
  background: color-mix(in srgb, var(--gsh-sage-2) 30%, var(--gsh-cream));
}
.woocommerce-account .woocommerce-error { background: color-mix(in srgb, var(--gsh-blush) 45%, var(--gsh-cream)); color: #8A4A2B; }
/* kill woocommerce.css's icon-font glyphs on notices */
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-info::before { display: none; content: none; }
.woocommerce-account .woocommerce-error li,
.woocommerce-account .woocommerce-message li,
.woocommerce-account .woocommerce-info li { margin: 0; }
.woocommerce-account .woocommerce-error a,
.woocommerce-account .woocommerce-message a,
.woocommerce-account .woocommerce-info a { color: inherit; font-weight: 600; }
/* Woo focuses the alert programmatically (tabindex=-1, not keyboard-operable):
   the global 3px :focus-visible ring reads as a loud border here — quiet it. */
.woocommerce-account .woocommerce-error:focus,
.woocommerce-account .woocommerce-message:focus,
.woocommerce-account .woocommerce-info:focus { outline: none; }
/* logged out, notices align over the split card, not the full container.
   header.php prints them into .gsh-notices (a .container) under the masthead. */
body.woocommerce-account:not(.logged-in) .gsh-notices { max-width: calc(var(--gshacct-login-w, 880px) + 2 * var(--gsh-sp-5)); margin-top: 1rem; }
body.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper { max-width: var(--gshacct-login-w, 880px); margin-inline: auto; }

/* ---- 3. gsh-seats order-received panel — card-line chrome ---- */
.gsh-next { background: var(--gsh-cream-2); border: 1.5px solid var(--gsh-sand); border-radius: var(--gsh-r-card); padding: 1.3rem 1.4rem; margin-top: 1.2rem; }
.gsh-next p { margin: 0; }
.gsh-next p + p { margin-top: .8rem; }
.gsh-next strong { color: var(--gsh-forest); }

/* ---- 5. Dashboard orientation cards (.gsh-dash) ---- */
.gsh-dash__greeting {
  font-size: 1.05rem;
  color: var(--gsh-forest-2);
  margin: 0 0 1.1rem;
}
.gsh-dash__greeting strong { color: var(--gsh-forest); }
.gsh-dash__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.9rem;
}
.gsh-dash__card {
  background: var(--gsh-cream-2);
  border: 1.5px solid var(--gsh-sand);
  border-radius: var(--gsh-r-card);
  padding: 1.1rem 1.2rem 1rem;
  box-shadow: var(--gsh-shadow-sm);
}
.gsh-dash__card--empty {
  grid-column: 1 / -1;
}
.gsh-dash__n {
  display: block;
  font-family: var(--gsh-font-display);
  font-size: 2rem;
  font-weight: 600;
  color: var(--gsh-forest);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.gsh-dash__label {
  display: block;
  font-size: 0.82rem;
  color: var(--gsh-muted);
  margin-bottom: 0.65rem;
}
.gsh-dash__link {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--gsh-clay-btn);
  text-decoration: none;
}
.gsh-dash__link:hover { text-decoration: underline; }

/* ---- responsive: stack <=760px, form first; account grid collapses to 1-col ---- */
@media (max-width: 760px) {
  body.woocommerce-account { --gshacct-login-w: 480px; } /* card + notices narrow together */
  .gsh-login { grid-template-columns: 1fr; }
  .gsh-login__formside { order: 1; }
  .gsh-login__art { order: 2; min-height: 240px; }
  /* logged-in grid: nav stacks above content */
  body.woocommerce-account.logged-in .site-main .woocommerce {
    grid-template-columns: 1fr;
  }
  /* Reset explicit column/row placements so auto-placement stacks vertically */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    grid-column: auto;
    grid-row: auto;
  }
  .gsh-dash__cards { grid-template-columns: 1fr; }
}

/* ── Accessibility (WCAG 1.4.1 Use of Color): in-text links keep a permanent underline.
   The theme resets link decoration per-context and re-adds it on hover only; these links
   sit inside body prose of a similar colour, so colour alone is not a sufficient cue. ── */
.pg p a:not([class]),
.pg li a:not([class]),
.pg .about-reach__posture a,
.pg .lead-in a,
.pg .ag-pricing__lead a,
.pg .ag-proof a,
.pg .ag-human a,
.pg .close__sub a,
.pg dd a,
.pg-pricing .prc-tiernote a,
.pg-pricing .prc-ledger__sample a,
.pg-pricing .prc-close__links a,
.pg-knowledge .kn-map__micro a,
.pg-knowledge .kn-faq__more a,
.pg .psy-faq__more a,
.pg details .a a,
.pg-contact .lines__row dd a { text-decoration: underline !important; text-underline-offset: .18em; }

/* base cream-button: the --cream variant must carry its own light ground + dark ink on EVERY
   page; the only prior rule was scoped to home's .certband, so off-home it was a transparent
   forest-on-dark button = fail. */
.btn--cream { background: var(--gsh-cream-2); color: var(--gsh-ink-strong); border-color: color-mix(in srgb, var(--gsh-sand) 70%, var(--gsh-gold)); }

/* a transparent secondary button on a dark band must use reversed ink/border, not forest. */
.band--dark .btn--secondary { color: var(--gsh-on-dark); border-color: var(--gsh-on-dark-muted); }
.band--dark .btn--secondary:hover { background: rgba(253,253,241,.12); }

/* ── M6.3: the instrument score-bars are the brand's credibility engine — make them read bolder
   for the GCC/gov audience: taller tracks, a darker (more saturated) sage-700 fill, heavier
   labels. Contrast-safe (darker only). The clay "gap" variants keep their higher-specificity
   colour, so a flagged area still stands out. ── */
.bar .track, .pg-agencies .bar .track, .pg-offering .bar .track,
.gsh-spread__track, .pg-knowledge .kn-row__track { height: 11px; }
.bar .fill, .pg-agencies .bar .fill, .pg-offering .bar .fill,
.gsh-spread__fill, .pg-knowledge .kn-row__fill { background: var(--gsh-sage-700); }
.bar .nm, .pg-agencies .bar .nm, .pg-offering .bar .nm { font-weight: 600; }
