/* Site system: loaded last, so it has the final say on type, calls to action
   and photos across every page.

   Type: two fonts (Archivo Narrow for headings and numbers, Archivo for
   everything else) and five sizes:
     display 56 / title 40 / card 22 / body 18 / small 14   (desktop)
     display 36 / title 28 / card 20 / body 16 / small 14   (phone)
   Headings are semibold, text is regular, labels are medium and never
   uppercase. The !important flags are deliberate: this layer replaces the
   one-off sizes and weights scattered through the older stylesheets. */

:root {
  --font-mono: var(--font-standard);
  --t-display: clamp(38px, 4.2vw, 56px);
  --t-title: clamp(28px, 3vw, 40px);
  --t-card: 22px;
  --t-body: 18px;
  --t-small: 14px;
}
@media (max-width: 720px) {
  :root { --t-display: 36px; --t-title: 28px; --t-card: 20px; --t-body: 16px; }
}

strong, b { font-weight: 600; }

/* Display */
.h2-h1, .contact-lead h1, .contact-lead h2#c-headline {
  font-family: var(--font-condensed) !important; font-size: var(--t-display) !important;
  font-weight: 600 !important; line-height: 1.04 !important; letter-spacing: -0.02em !important; }

/* Section titles */
.h2-h2, .h2-why-h, .pg-problem-h, .h2-note-lead, .h2-quick-thanks,
.form-success h2, .pg-product-t {
  font-family: var(--font-condensed) !important; font-size: var(--t-title) !important;
  font-weight: 600 !important; line-height: 1.1 !important; letter-spacing: -0.015em !important; }

/* Numbers */
.pg-stat-n, .h2-stat-num {
  font-family: var(--font-condensed) !important; font-size: var(--t-display) !important; font-weight: 600 !important; }
.pg-stat-n span { font-size: var(--t-card) !important; font-weight: 500; }

/* Card titles */
.h2-why-title, .h2-svc-tile h3, .pg-step h3, .pg-tile h3, .pg-product-lead, .pg-faq summary,
.h2-testimonial blockquote {
  font-family: var(--font-condensed) !important; font-size: var(--t-card) !important;
  font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: -0.005em !important; }

/* Body */
.h2-sub, .h2-intro, .h2-why-body, .h2-why-line, .h2-detail-body, .h2-detail-sub, .h2-note-p, .h2-cta-body,
.pg-lead, .pg-hero-sub, .pg-punch, .pg-problem-lead, .pg-problem-more, .pg-matters p, .pg-step p, .pg-tile p,
.h2-svc-tile p, .pg-voice blockquote, .pg-faq p, .pg-product p, .pg-also, .pg-head-row p, .contact-lead .lead-copy {
  font-family: var(--font-standard) !important; font-size: var(--t-body) !important;
  font-weight: 400 !important; line-height: 1.55 !important; letter-spacing: 0 !important; }
.pg-punch, .h2-detail-sub, .pg-matters p.pg-strong { font-weight: 500 !important; color: #1A1A2E; }
.h2-testimonial blockquote { font-weight: 500 !important; line-height: 1.35 !important; }

/* Small labels, captions and roles */
.h2-kicker, .h2-eyebrow, .h2-why-what, .h2-chip, .h2-cn-cap, .h2-note-role, .h2-swipe, .h2-route .copy-tag,
.h2-member-role, .h2-door-num, .h2-testimonial-sub, .pg-compare-head, .pg-fns span, .pg-tile-n, .pg-product-kind,
.pg-person-role, .pg-count, .pg-vc-pos, .pg-voice-member, .pg-step-k, .pg-opt, .pg-hero-title, .footer-col h4,
.intent-label, .intent-btn .ib-n, .contact-next .cn-title, .stat-cap, .h2-stat-cap {
  font-family: var(--font-standard) !important; font-size: var(--t-small) !important;
  font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.45 !important; }
/* Tags sitting on photos */
.h2-cn-chip, .pg-slant-tag, .h2-member-ribbon, .h2-member-ribbon span {
  font-family: var(--font-standard) !important; font-size: 12px !important; font-weight: 500 !important;
  letter-spacing: 0 !important; text-transform: none !important; }

/* Names */
.h2-member-name, .pg-person-name, .pg-hero-name { font-size: 16px !important; font-weight: 600 !important; }
.pg-compare-row > :nth-child(3) { font-weight: 500; }

/* Calls to action
   Lime is kept for anything that leads to the form; it is smaller and lighter.
   Everything else is a quiet text link with an arrow. */
.h2-btn-lime, .nav-cta { padding: 10px 18px !important; font-size: 15px !important; font-weight: 500 !important; }
.pg-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none;
  font: 500 16px var(--font-standard); color: #1A1A2E; text-decoration: none; cursor: pointer;
  transition: color var(--dur-cta, 300ms) var(--ease-cta, ease); }
.pg-link:hover { color: #0052CC; }
.pg-link .h2-arr { transition: transform var(--dur-cta-move, 300ms) var(--ease-cta, ease); }
.pg-link:hover .h2-arr { transform: translateX(4px); }
.pg-link-down:hover .h2-arr { transform: translateY(3px); }
.h2-why-cta { font-weight: 500 !important; }

/* Photos: natural colour, no tints */
.h2-tint-coach::after, .h2-tint-fractional::after, .h2-tint-lime::after, .pg-slant::after { content: none !important; }
.pg-slant { background: #E9E3D8; }

/* Inner-page hero: three members, still */
.pg-hero-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px; width: 100%; max-width: 560px; justify-self: end; }
.pg-hero-photo { aspect-ratio: 4 / 5; border-radius: 6px; overflow: hidden; background: #E9E3D8; }
.pg-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-hero-name { display: block; margin-top: 12px; }
.pg-hero-title { display: block; color: rgba(26,26,46,0.65); margin-top: 2px; }

/* Parallax glow inside the soft colour bands */
.h2-why, .pg-band-blue, .pg-band-lime { position: relative; overflow: hidden; }
.h2-why > .wide, .pg-band-blue > .wide, .pg-band-lime > .wide { position: relative; }
.pg-glow { position: absolute; right: -180px; top: -160px; width: 680px; height: 680px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(255,255,255,0.75), rgba(255,255,255,0)); }

@media (max-width: 920px) {
  .pg-hero-people { justify-self: start; }
}

/* ---------- Phones ---------- */
@media (max-width: 720px) {
  /* Shorter rhythm */
  .h2-section { padding: 40px 0 !important; }
  .pg-hero, .h2-hero { padding: 40px 0 36px !important; }
  .h2-section-head, .pg-head-row { margin-bottom: 24px !important; }
  .pg-hero-people { display: none; }
  .pg-glow { width: 420px; height: 420px; right: -160px; top: -120px; }

  /* Less copy */
  .pg-head-row p, .pg-also, .pg-problem-more, .h2-why-body, .h2-detail-body, .h2-intro, .pg-hero-sub,
  .pg-lead, .h2-note-p + .h2-note-p { display: none !important; }

  .pg-tile p, .pg-step-num, .pg-product p:last-child, .h2-why-num { display: none !important; }
  .h2-testimonial { padding: 28px 20px !important; margin-top: 32px !important; gap: 18px !important; }
  .h2-why-door { padding-top: 24px !important; padding-bottom: 24px !important; }

  .pg-fns svg, .pg-meet-l, .h2-cta-body, .pg-matters p:not(.pg-strong) { display: none !important; }
  .pg-fns li { padding: 14px 14px 12px !important; }
  .pg-meet { padding-top: 12px !important; }
  .pg-vc-track { align-items: flex-start; }
  .pg-voice { padding: 24px 22px 20px !important; gap: 12px !important; }
  .pg-voice-mark { font-size: 44px !important; }
  .pg-member { padding: 6px 0 !important; grid-template-columns: 40px minmax(0,1fr) !important; }
  .pg-member .pg-slant { width: 40px !important; }
  .pg-tiles.is-blue .pg-tile { display: flex; align-items: baseline; gap: 12px; padding: 14px 18px !important; }
  .pg-tiles.is-blue .pg-tile h3 { margin: 0 !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 24px 16px !important; }
  .footer-brand { grid-column: 1 / -1; }

  .h2-quick-form .form-grid { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
  .h2-quick-form .col-2 { grid-column: 1 / -1; }
  .h2-quick-form textarea { min-height: 88px !important; }
  .h2-quick-form { padding: 20px !important; }
  .h2-route { margin-top: 18px !important; }
  .h2-hero-strip, .pg-hero .h2-hero-strip { margin-top: 24px !important; padding-top: 16px !important; }

  .pg-product { padding: 18px 20px !important; }
  .pg-product-t { margin: 8px 0 0 !important; }
  .pg-step, .pg-steps.is-four .pg-step { padding: 16px 18px !important; }
  .pg-coaches > div { grid-template-columns: 40px minmax(0,1fr); padding: 6px 0; }
  .pg-coaches .pg-slant { width: 40px; }

  /* One swipe row per page at most (testimonials); steps, tiles and coaches stack */
  .pg-steps, .pg-steps.is-four, .pg-tiles, .pg-tiles.is-four {
    display: grid !important; grid-template-columns: 1fr; gap: 10px; overflow: visible; margin: 0 !important; padding: 0 !important; }
  .pg-step, .pg-steps.is-four .pg-step { padding: 20px 22px !important; min-height: 0 !important; }
  .pg-step-num { font-size: 96px !important; top: -6px !important; right: 14px !important; }
  .pg-step h3, .pg-steps.is-four .pg-step h3 { margin: 6px 0 6px !important; }
  .pg-tile { padding: 12px 16px !important; }
  .pg-tile svg { display: none; }
  .pg-tiles.is-blue .pg-tile h3 { margin: 4px 0 4px !important; }
  .pg-coaches { display: grid !important; grid-template-columns: 1fr; gap: 0; overflow: visible; margin: 24px 0 20px !important;
    padding: 0 !important; border-top: 1px solid rgba(26,26,46,0.12); }
  .pg-coaches > div { display: grid; grid-template-columns: 48px minmax(0,1fr); grid-template-areas: "p n" "p r"; column-gap: 14px;
    align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(26,26,46,0.12); }
  .pg-coaches .pg-slant { grid-area: p; width: 48px; }
  .pg-coaches .pg-person-name { grid-area: n; margin: 0; align-self: end; }
  .pg-coaches .pg-person-role { grid-area: r; align-self: start; }
  .pg-products { gap: 10px; margin-top: 24px; }
  .pg-product { padding: 22px 20px !important; }
  .pg-product-t { margin: 10px 0 6px; }
  .pg-member { padding: 8px 0; }
  .pg-member .pg-slant { width: 48px; }
  .pg-vc-track { margin-top: 24px; }
  .pg-dir-bar { margin: 20px 0 12px; }
  .pg-mt-md { margin-top: 24px; }

  /* Hamburger menu: one soft unfold, the links follow a beat later */
  .nav-links {
    clip-path: inset(0 0 100% 0); opacity: 0; transform: translateY(-6px);
    transition: clip-path 420ms cubic-bezier(0.4,0,0.2,1), opacity 160ms linear 260ms, transform 420ms cubic-bezier(0.4,0,0.2,1), visibility 0s linear 420ms !important; }
  .nav-links.open {
    clip-path: inset(0 0 -48px 0); opacity: 1; transform: none;
    transition: clip-path 640ms cubic-bezier(0.32,0.72,0,1), opacity 120ms linear, transform 640ms cubic-bezier(0.32,0.72,0,1), visibility 0s !important; }
  .nav-links li { opacity: 0; transform: translateY(-4px); transition: opacity 260ms ease, transform 260ms ease !important; }
  .nav-links.open li { opacity: 1; transform: none; transition: opacity 480ms ease, transform 560ms cubic-bezier(0.32,0.72,0,1) !important; }
  .nav-links.open li:nth-child(1) { transition-delay: 120ms !important; }
  .nav-links.open li:nth-child(2) { transition-delay: 180ms !important; }
  .nav-links.open li:nth-child(3) { transition-delay: 240ms !important; }
  .nav-links a { font-family: var(--font-condensed) !important; font-size: 22px !important; font-weight: 600 !important; }
  .nav-toggle span { transition: transform 480ms cubic-bezier(0.32,0.72,0,1), opacity 240ms ease !important; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-links, .nav-links li, .nav-links.open, .nav-links.open li { transition: none !important; }
}

/* Copy is never in colour: titles and text in ink, labels in muted ink.
   Colour stays in backgrounds, chips and buttons only. */
.pg-k, .h2-kicker, .h2-why .h2-kicker, .h2-note .h2-kicker, .h2-eyebrow-blue, .pg-step-k, .pg-tile-n,
.pg-stat .h2-kicker, .pg-compare-head > *, .h2-route .copy-tag, .h2-electric-link, .pg-faq summary span,
.contact-next li span, .h2-kicker-lime { color: rgba(26,26,46,0.65) !important; }
.h2-why-em, .h2-cn-cap-em, .h2-lime, .pg-compare-row > :nth-child(3), .h2-why-cta, .h2-route:hover,
.pg-link:hover, .pg-voice-mark { color: #1A1A2E !important; }
.h2-why-num { color: #1A1A2E !important; opacity: 0.14; }
.pg-step-num, .pg-steps.is-coaching .pg-step-num { color: #1A1A2E !important; opacity: 0.05 !important; }
.h2-cn-chip.is-coach, .h2-cn-chip.is-fractional { color: #fff !important; }
.footer-col a:hover, .footer-copy:hover, .footer-copy .copy-tag { color: #fff !important; }
.pg-link:hover .h2-arr, .pg-link .h2-arr { color: inherit; }
.pg-link { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px;
  transition: text-decoration-color var(--dur-cta, 300ms) var(--ease-cta, ease); }
.pg-link:hover { text-decoration-color: currentColor; }

/* Headshots: always black and white (brand marks and client logos keep their own look) */
img[src*="/assets/featured/"], img[src*="/members/"], img[src*="benoit-simeray"] {
  filter: grayscale(100%) contrast(1.04); }

/* Founder's signature: the one handwritten touch on the site */
.h2-note-signature { font-family: 'Caveat', cursive !important; font-weight: 600 !important; font-size: 34px !important;
  line-height: 1 !important; letter-spacing: 0 !important; }

/* Service colours at 70%: blue for Fractional, pastel lime for Coaching */
.pg-hero.is-fractional, .pg-tone-blue { background: linear-gradient(rgba(184,212,255,0.7), rgba(184,212,255,0.7)), #F4EFE6 !important; }
.pg-hero.is-coaching, .pg-tone-lime { background: linear-gradient(rgba(232,255,144,0.7), rgba(232,255,144,0.7)), #F4EFE6 !important; }
.pg-tone-blue, .pg-tone-lime { position: relative; overflow: hidden; }
.pg-tone-blue > .wide, .pg-tone-lime > .wide, .pg-hero > .wide { position: relative; }
.pg-tone-blue .h2-testimonial, .pg-tone-lime .h2-testimonial { background: #F4EFE6 !important; }
.pg-tone-blue .h2-testimonial-member img, .pg-tone-lime .h2-testimonial-member img { box-shadow: 0 0 0 3px #F4EFE6, 0 0 0 4.5px #1A1A2E !important; }
.pg-hero.is-fractional .h2-hero-strip-faces img { border-color: #CADCF8 !important; }
.pg-hero.is-coaching .h2-hero-strip-faces img { border-color: #ECFAAA !important; }
.pg-hero .h2-hero-strip { border-top-color: rgba(26,26,46,0.12) !important; }

/* Why we exist: sand */
.h2-why { background: #F4EFE6 !important; border-top: 1px solid rgba(26,26,46,0.08) !important; }
.h2-why-faces img { border-color: #F4EFE6 !important; }
.h2-why .pg-glow, .h2-s-sand .pg-glow { background: radial-gradient(closest-side, rgba(184,212,255,0.55), rgba(184,212,255,0)); }

/* Highlights and the blue stat tile */
.pg-mark-blue { background: #B8D4FF; padding: 0 6px; }
.pg-stat.is-blue { background: #B8D4FF; }

/* Homepage collective: the tag inside each headshot in its service colour */
.h2-member-photo { background: #E9E3D8; }
.h2-member-ribbon.is-fractional { background: rgba(184,212,255,0.7); color: #1A1A2E; }
.h2-member-ribbon.is-coach { background: rgba(232,255,144,0.7); color: #1A1A2E; }

/* Clients, press-strip style (desktop only) */
.pg-clients { padding: 72px 0 80px; background: #F4EFE6; border-top: 1px solid rgba(26,26,46,0.08); }
.pg-clients-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.pg-clients-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.pg-clients-track::-webkit-scrollbar { display: none; }
.pg-client { flex: 0 0 300px; min-height: 200px; margin: 0; scroll-snap-align: start; background: #fff; border-radius: 6px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 28px 24px; text-align: center; }
.pg-client-name { font-family: var(--font-condensed); font-weight: 600; font-size: 34px; letter-spacing: -0.02em; line-height: 1; color: #1A1A2E; }
.pg-client figcaption { font-size: 16px; line-height: 1.45; color: rgba(26,26,46,0.65); max-width: 24ch; }

/* Fractional problem: the two ways side by side, the new way set forward */
.pg-vs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.pg-vs-card { padding: 28px 24px 26px; border-radius: 6px; }
.pg-vs-card.is-old { border: 1px solid rgba(26,26,46,0.14); }
.pg-vs-card.is-new { background: #fff; margin-top: 40px; box-shadow: 0 18px 40px rgba(26,26,46,0.08); border-top: 4px solid #B8D4FF; }
.pg-vs-tag { display: block; font-size: var(--t-small); font-weight: 600; color: rgba(26,26,46,0.65); margin-bottom: 18px; }
.pg-vs-card.is-new .pg-vs-tag { color: #1A1A2E; }
.pg-vs dl { margin: 0; display: grid; gap: 18px; }
.pg-vs dl > div { border-top: 1px solid rgba(26,26,46,0.10); padding-top: 14px; }
.pg-vs dt { font-size: var(--t-small); color: rgba(26,26,46,0.6); margin-bottom: 4px; }
.pg-vs dd { margin: 0; font-family: var(--font-condensed); font-size: var(--t-card); font-weight: 500; line-height: 1.2; color: rgba(26,26,46,0.6); }
.pg-vs-card.is-new dd { font-weight: 600; color: #1A1A2E; }

/* Collective directory: fractional members by function, then the coaches */
.pg-group + .pg-group { margin-top: 44px; }
.pg-group-h { font-family: var(--font-condensed); font-size: var(--t-card); font-weight: 600; margin: 0 0 16px; color: #1A1A2E; }
.pg-group-h span { font-family: var(--font-standard); font-size: var(--t-small); font-weight: 500; color: rgba(26,26,46,0.5); margin-left: 6px; }

/* Phone-only blocks */
.pg-phone { display: none; }
.pg-why-list { list-style: none; margin: 20px 0 0; padding: 0; }
.pg-why-list li { border-top: 1px solid rgba(26,26,46,0.12); padding: 12px 0; font-size: var(--t-body); line-height: 1.5; color: rgba(26,26,46,0.8); }
.pg-why-list strong { display: block; color: #1A1A2E; font-family: var(--font-condensed); font-size: 18px; font-weight: 600; }

@media (max-width: 720px) {
  .pg-phone { display: block; }
  /* Heroes: headline, faces, then Learn more */
  .pg-punch, .pg-hero-sub, .h2-hero .h2-sub, .h2-hero-strip p { display: none !important; }
  .h2-hero-strip { margin-top: 20px !important; }
  .h2-hero .h2-cta-row, .pg-hero .h2-cta-row { margin-top: 12px; }
  .pg-hero.is-coaching { background: linear-gradient(rgba(232,255,144,0.7), rgba(232,255,144,0.7)), #F4EFE6 !important; }
  .pg-vs { gap: 10px; }
  .pg-vs-card { padding: 18px 14px; }
  .pg-vs-card.is-new { margin-top: 20px; }
  .pg-vs dd { font-size: 17px; }
  .pg-group + .pg-group { margin-top: 28px; }
  .pg-group-h { margin-bottom: 4px; }
}

/* Collective directory: one member per row, desktop and phone alike */
.pg-groups .pg-members { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid rgba(26,26,46,0.12); }
.pg-groups .pg-member { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "p n r";
  column-gap: 20px; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(26,26,46,0.12); }
.pg-groups .pg-member .pg-slant { grid-area: p; width: 56px; }
.pg-groups .pg-member .pg-slant-tag { display: none; }
.pg-groups .pg-member .pg-person-name { grid-area: n; margin: 0; justify-content: flex-start; }
.pg-groups .pg-member .pg-person-role { grid-area: r; margin: 0; }

/* Slow auto-scrolling rows (quotes, clients, coaches): no arrows, pause on hover, focus or touch */
.pg-marquee { overflow: hidden; outline: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.pg-marquee:focus-visible { outline: 2px solid #1A1A2E; outline-offset: 4px; }
.pg-marquee-track { display: flex; width: max-content; animation: pg-marquee var(--loop, 50s) linear infinite; }
.pg-marquee-set { display: flex; gap: 16px; padding-right: 16px; }
.pg-marquee:hover .pg-marquee-track, .pg-marquee:focus-within .pg-marquee-track, .pg-marquee:active .pg-marquee-track { animation-play-state: paused; }
@keyframes pg-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .pg-marquee-track { animation-duration: calc(var(--loop, 50s) * 2); } }
.pg-vc-wrap { margin-top: 40px; }
.pg-marquee .pg-voice { flex: 0 0 400px; width: 400px; scroll-snap-align: none; }
.pg-marquee .pg-client { flex: 0 0 280px; }
.pg-clients-k { margin-bottom: 20px; }
.pg-coaches-wrap { margin: 32px auto 24px; }
.pg-coach-card { flex: 0 0 210px; width: 210px; }
.h2-member-marquee-wrap:hover .h2-member-track, .h2-member-marquee-wrap:active .h2-member-track { animation-play-state: paused; }
.h2-swipe { display: none !important; }

/* Process steps: each step arrives in turn while a bar across its top fills */
.pg-step-bar { position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: #1A1A2E; transform-origin: left;
  transform: scaleX(1); }
.pg-steps.is-fractional .pg-step-bar { background: #B8D4FF; }
.pg-steps.is-coaching .pg-step-bar { background: #E8FF90; }

/* Scroll-in motion (only once the script has run; see reveal.ts) */
.js-reveal :is([data-steps] .pg-step, .h2-section .h2-kicker, .h2-section .h2-h2, .h2-why .h2-kicker, .h2-why-h, .pg-tile, .pg-fns li,
  .h2-svc-tile, .pg-product, .pg-vs-card, .pg-vs-row, .pg-stat, .h2-why-door, .h2-testimonial, .pg-group) {
  opacity: 0; transform: translateY(28px);
  transition: opacity 900ms cubic-bezier(0.22,1,0.36,1), transform 1100ms cubic-bezier(0.22,1,0.36,1); }
.js-reveal :is([data-steps] .pg-step, .h2-section .h2-kicker, .h2-section .h2-h2, .h2-why .h2-kicker, .h2-why-h, .pg-tile, .pg-fns li,
  .h2-svc-tile, .pg-product, .pg-vs-card, .pg-vs-row, .pg-stat, .h2-why-door, .h2-testimonial, .pg-group).is-in { opacity: 1; transform: none; }
.js-reveal :is(.pg-tile, .pg-fns li, .h2-svc-tile, .pg-product, .pg-stat, .h2-why-door):nth-child(2) { transition-delay: 120ms; }
.js-reveal :is(.pg-tile, .pg-fns li, .h2-svc-tile, .pg-product, .pg-stat, .h2-why-door):nth-child(3) { transition-delay: 240ms; }
.js-reveal :is(.pg-tile, .pg-fns li, .h2-svc-tile, .pg-product, .pg-stat, .h2-why-door):nth-child(4) { transition-delay: 360ms; }
.js-reveal [data-steps] .pg-step { transition-delay: calc(var(--i, 0) * 450ms); }
.js-reveal [data-steps] .pg-step .pg-step-bar { transform: scaleX(0); transition: transform 900ms cubic-bezier(0.65,0,0.35,1);
  transition-delay: calc(var(--i, 0) * 450ms + 350ms); }
.js-reveal [data-steps] .pg-step.is-in .pg-step-bar { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  .js-reveal :is([data-steps] .pg-step, .h2-section .h2-kicker, .h2-section .h2-h2, .h2-why .h2-kicker, .h2-why-h, .pg-tile, .pg-fns li,
    .h2-svc-tile, .pg-product, .pg-vs-card, .pg-vs-row, .pg-stat, .h2-why-door, .h2-testimonial, .pg-group) { transform: translateY(10px); }
}

/* Fractional problem on phones: one row per question */
.pg-vs-list { list-style: none; margin: 8px 0 0; padding: 0; }
.pg-vs-row { display: grid; gap: 2px; padding: 14px 0; border-top: 1px solid rgba(26,26,46,0.12); }
.pg-vs-q { font-size: var(--t-small); color: rgba(26,26,46,0.6); }
.pg-vs-row strong { font-family: var(--font-condensed); font-size: 20px; font-weight: 600; color: #1A1A2E; }
.pg-vs-old { font-size: var(--t-small); color: rgba(26,26,46,0.55); }

@media (max-width: 720px) {
  .h2-hero .h2-sub { display: block !important; margin-bottom: 0 !important; }
  .pg-vs { display: none; }
  .js-reveal [data-steps] .pg-step, .js-reveal [data-steps] .pg-step .pg-step-bar { transition-delay: 0ms; }
  .js-reveal [data-steps] .pg-step.is-in .pg-step-bar { transition-delay: 300ms; }
  .pg-groups .pg-member { grid-template-columns: 44px minmax(0,1fr); grid-template-areas: "p n" "p r"; column-gap: 14px; padding: 6px 0; }
  .pg-groups .pg-member .pg-slant { width: 44px; }
  .pg-groups .pg-member .pg-person-role { align-self: start; }
  .pg-groups .pg-member .pg-person-name { align-self: end; }
  .pg-marquee .pg-voice { flex-basis: 290px; width: 290px; }
  .pg-coach-card { flex-basis: 150px; width: 150px; }
  .pg-coaches-wrap { margin: 20px auto 16px; }
}
