/*
 * Visual redesign for the Hero Project premium program — sales page
 * (hero-project-sales.css) and the paid chapter/module reader
 * (premium-program.css). Same 8a/10a palette as the rest of the site.
 * Additive layer; structure/behaviour stay owned by the page JS.
 */

/* Pull the whole reader onto Archivo and the light palette: the custom properties
   these files build on cascade straight through every var(--premium-*). */
.home-v2.premium-guide-body,
.home-v2.premium-guide-body * { font-family: "Archivo", Arial, sans-serif !important; }
.home-v2.premium-guide-body {
  --premium-accent: var(--v2-purple);
  --premium-border: transparent;
  --premium-panel: var(--v2-paper);
  --premium-muted: var(--v2-copy);
  --premium-nav-height: 76px;
  background: var(--v2-bg);
  color: var(--v2-ink);
}
.home-v2.premium-guide-body::before,
.home-v2.premium-guide-body::after { display: none; }
.home-v2 .premium-kicker { color: var(--v2-copy); }
.home-v2 .premium-guide h1, .home-v2 .premium-guide h2, .home-v2 .premium-guide h3 { color: var(--v2-ink); }
.home-v2 .premium-hero .premium-back,
.home-v2 .premium-hero__copy > p:not(.premium-kicker) { color: #fff; }
/* Program at a glance: one translucent card, small illustrated icons and short dividers between stats. */
.home-v2 .premium-hero__stats {
  display: inline-flex; flex-wrap: wrap; align-items: center; max-width: 100%; margin: 22px 0 0; padding: 8px 4px; list-style: none;
  border: 1px solid rgba(255, 255, 255, .6); border-radius: 16px; background: rgba(255, 255, 255, .3);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); text-shadow: none;
}
.home-v2 .premium-hero__stats li { position: relative; display: flex; align-items: center; gap: 10px; padding: 6px 18px; }
.home-v2 .premium-hero__stats li + li::before { content: ""; position: absolute; left: 0; top: 24%; bottom: 24%; width: 1px; background: rgba(31, 58, 95, .2); }
.home-v2 .premium-hero__stats img { flex: 0 0 auto; width: 26px; height: 26px; object-fit: contain; }
.home-v2 .premium-hero__stats span { display: grid; gap: 2px; }
.home-v2 .premium-hero__stats b { color: var(--v2-ink); font-size: .92rem; font-weight: 800; line-height: 1.15; }
.home-v2 .premium-hero__stats small { color: var(--v2-copy); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 760px) {
  .home-v2 .premium-hero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; padding: 6px 2px; }
  .home-v2 .premium-hero__stats li { gap: 8px; padding: 6px 12px; }
  .home-v2 .premium-hero__stats li + li::before { content: none; }
  .home-v2 .premium-hero__stats li:nth-child(even)::before { content: ""; }
  .home-v2 .premium-hero__stats img { width: 22px; height: 22px; }
  .home-v2 .premium-hero__stats b { font-size: .84rem; }
  .home-v2 .premium-hero__stats small { font-size: .54rem; }
}
.home-v2 .premium-hero .premium-kicker,
.home-v2 .premium-guide .premium-hero h1 { color: var(--v2-ink); text-shadow: none; }
/* The hero art fades out at the top and bottom edges instead of being cut by the header box. */
.home-v2 .premium-hero::before {
  -webkit-mask-image: radial-gradient(ellipse 76% 86% at 56% 44%,#000 30%,rgba(0,0,0,.88) 49%,rgba(0,0,0,.28) 69%,transparent 94%), linear-gradient(to bottom, transparent 0%, #000 18%, #000 66%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: radial-gradient(ellipse 76% 86% at 56% 44%,#000 30%,rgba(0,0,0,.88) 49%,rgba(0,0,0,.28) 69%,transparent 94%), linear-gradient(to bottom, transparent 0%, #000 18%, #000 66%, transparent 100%);
  mask-composite: intersect;
}
/* Hero Project on phones: a light star backdrop and the character levitating, with the edition logo floating behind it on its own rhythm. */
.home-v2 .premium-hero__float { display: none; }
@media (max-width: 900px) {
  .home-v2 .premium-hero--mobile-art::before {
    background-image: url('/images/programs/hero-mobile-bg.webp'); background-position: center top; opacity: 1;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 82%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0%, #000 82%, transparent 100%);
  }
  .home-v2 .premium-hero--mobile-art .premium-hero__visual { min-height: 0; padding: 14px 0 22px; }
  .home-v2 .premium-hero__float { position: relative; display: block; width: 200px; height: 262px; margin: 0 auto; }
  .home-v2 .premium-hero__visual .premium-hero__float img {
    position: absolute; max-height: none; opacity: 1; object-fit: contain; -webkit-mask-image: none; mask-image: none;
  }
  .home-v2 .premium-hero__visual .premium-hero__float-logo { z-index: 0; top: -12px; left: 118px; width: 106px; height: auto; filter: none; animation: heroLevitateLogo 4.6s ease-in-out -1.7s infinite; }
  .home-v2 .premium-hero__visual .premium-hero__float-character { z-index: 1; top: 20px; left: 4px; width: 182px; height: auto; filter: drop-shadow(0 10px 14px rgba(31, 58, 95, .22)); animation: heroLevitate 3.6s ease-in-out infinite; }
  /* Zero To Growth: one artwork with both figures and the logo, levitating as a whole. */
  .home-v2 .premium-hero__float--art { width: 220px; height: 336px; }
  .home-v2 .premium-hero__visual .premium-hero__float--art .premium-hero__float-character { top: 0; left: 0; width: 220px; }
  .home-v2 .premium-hero__float-shadow {
    position: absolute; z-index: 0; bottom: 0; left: 50%; width: 140px; height: 18px; margin-left: -76px; border-radius: 50%;
    background: radial-gradient(closest-side, rgba(31, 58, 95, .34), rgba(31, 58, 95, 0)); animation: heroLevitateShadow 3.6s ease-in-out infinite;
  }
}
@keyframes heroLevitate { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes heroLevitateLogo { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(1deg); } }
@keyframes heroLevitateShadow { 0%, 100% { transform: scaleX(1); opacity: 1; } 50% { transform: scaleX(.74); opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .home-v2 .premium-hero__visual .premium-hero__float img, .home-v2 .premium-hero__float-shadow { animation: none; } }

/* ── Sales page hero ─────────────────────────────────────────────── */
.home-v2.hero-sales-body .dash-bg,
.home-v2.hero-sales-body .dash-halo { display: none !important; }
.home-v2 .hero-sales-notice { color: var(--v2-ink); border: 0; background: var(--v2-soft); }
.home-v2 .hero-sales-hero { border: 0; background: var(--v2-illustration); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .hero-sales-hero::after { display: none; }
.home-v2 .hero-sales-back { color: var(--v2-ink); }
.home-v2 .hero-sales-hero h1 { color: var(--v2-ink); }
.home-v2 .hero-sales-hero h1 span { color: inherit; }
.home-v2 .hero-sales-hero__copy > p:not(.info-kicker) { color: var(--v2-ink); }
.home-v2 .hero-sales-text-link { color: var(--v2-ink); }
.home-v2 .hero-sales-proof span { color: var(--v2-ink); }
.home-v2 .hero-sales-proof b { color: var(--v2-ink); }
.home-v2 .hero-sales-hero__visual img { filter: none; }
.home-v2 .hero-sales-orbit { border: 0; background: rgba(255, 255, 255, .3); box-shadow: none; }
.home-v2 .hero-sales-dashboard-note { border: 0; color: var(--v2-ink); background: var(--v2-paper); backdrop-filter: none; }
.home-v2 .hero-sales-bestseller { color: #fff; background: var(--v2-purple); }
.home-v2 .hero-sales-strip { border-block-color: var(--v2-outline); color: var(--v2-copy); }
.home-v2 .hero-sales-strip i { background: var(--v2-purple); box-shadow: none; }
.home-v2 .hero-sales-heading h2 { color: var(--v2-ink); }
.home-v2 .hero-sales-heading > p { color: var(--v2-copy); }
/* Coach trio: three bordered square visuals with a hard shadow, uppercase titles and centred copy. */
.home-v2 .hero-coach-trio__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.home-v2 .hero-coach-trio article { display: grid; align-content: start; gap: 0; text-align: center; }
.home-v2 .hero-coach-trio figure { margin: 0 12px 26px 0; overflow: hidden; border: 2px solid var(--v2-ink); border-radius: 6px; background: var(--v2-paper); box-shadow: 12px 12px 0 var(--v2-ink); aspect-ratio: 1; }
.home-v2 .hero-coach-trio img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-v2 .hero-coach-trio h2, .home-v2 .hero-coach-trio h3 { margin: 0 0 8px; color: var(--v2-ink); font-size: clamp(1.05rem, 1.7vw, 1.45rem); font-weight: 900; line-height: 1.1; letter-spacing: .01em; text-transform: uppercase; }
.home-v2 .hero-coach-trio p { max-width: 520px; margin: 0 auto; color: var(--v2-ink); font-size: .92rem; line-height: 1.45; }
.home-v2 .hero-coach-trio__copy { flex: 1; margin: 0 12px 12px 0; padding: 20px 22px 22px; border: 2px solid var(--v2-ink); background: var(--v2-paper); box-shadow: 12px 12px 0 var(--v2-ink); }
.home-v2 .hero-coach-trio article { display: flex; flex-direction: column; }
@media (max-width: 760px) {
  .home-v2 .hero-coach-trio__grid { display: flex; gap: 18px; overflow-x: auto; padding: 2px 2px 14px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .home-v2 .hero-coach-trio article { flex: 0 0 min(82vw, 340px); scroll-snap-align: start; }
}
/* The cut-out character group has wide transparent margins, so it is scaled up to fill the orbit. */
.home-v2 .hero-sales-hero__visual img[src$="program-product-mockup.webp"] { transform: scale(1.45); transform-origin: center 55%; filter: drop-shadow(0 18px 22px rgba(31, 58, 95, .28)); }
/* Member stories from the home page, shown inside Customer Reviews under the summary. */
.home-v2 .hero-review-stories-wrap { margin: 0 0 26px; padding: 0; }
.home-v2 .hero-review-stories { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%); }
/* Section intros sit under their title, left-aligned, on every sales section. */
.home-v2 .hero-sales-heading { display: block; }
.home-v2 .hero-sales-heading > p { max-width: 780px; margin: 18px 0 0; text-align: left; }
.home-v2 .hero-presentation__frame { background: var(--v2-ink); box-shadow: 0 6px 18px rgba(46,81,130,.16); }
.home-v2 .hero-pillar-grid article { border: 0; background: var(--v2-paper); box-shadow: 0 4px 14px rgba(46, 81, 130, .12); }
.home-v2 .hero-pillar-grid article::after { display: none; }
.home-v2 .hero-pillar-grid img { filter: none; }
/* Pillars show the matching program chapter art on top, with the copy on white below. */
.home-v2 .hero-pillar-grid article { flex-direction: column; align-items: stretch; justify-content: flex-start; }
.home-v2 .hero-pillar-grid article img { position: relative; inset: auto; flex: none; height: 220px; object-fit: cover; object-position: center 22%; transform-origin: center top; }
.home-v2 .hero-pillar-grid article > div { padding: 24px 28px 28px; background: var(--v2-paper); }
.home-v2 .hero-pillar-points { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.home-v2 .hero-pillar-points li { position: relative; padding-left: 32px; color: var(--v2-ink); font-size: .82rem; font-weight: 800; font-style: italic; line-height: 1.35; text-transform: uppercase; letter-spacing: .01em; }
.home-v2 .hero-pillar-points li::before { content: ''; position: absolute; top: -1px; left: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--v2-purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat; }
@media (max-width: 760px) {
  .home-v2 .hero-pillar-grid article img { height: 180px; }
  .home-v2 .hero-pillar-grid article > div { padding: 20px 22px 24px; }
}
.home-v2 .hero-pillar-grid article > span { color: #fff; border: 0; background: var(--v2-purple); }
.home-v2 .hero-pillar-grid h3 { color: var(--v2-ink); }
.home-v2 .hero-pillar-grid p { color: var(--v2-copy); }
.home-v2 .hero-system-intro { border: 0; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .hero-system-intro__copy h2 { color: var(--v2-ink); }
.home-v2 .hero-system-intro__copy > p:last-child { color: var(--v2-copy); }
.home-v2 .hero-system-principles article { border: 0; background: var(--v2-soft); }
.home-v2 .hero-system-principles span { color: #fff; background: var(--v2-purple); }
.home-v2 .hero-system-principles h3 { color: var(--v2-ink); }
.home-v2 .hero-system-principles p { color: var(--v2-copy); }
.home-v2 .hero-sales-member { border-left-color: var(--v2-purple); background: var(--v2-soft); }
.home-v2 .hero-sales-member h2 { color: var(--v2-ink); }
.home-v2 .hero-sales-member > div > p:last-child { color: var(--v2-copy); }
.home-v2 .hero-sales-member li { border: 0; background: var(--v2-paper); }
.home-v2 .hero-sales-member li > span { color: #fff; background: var(--v2-purple); }
.home-v2 .hero-sales-member strong { color: var(--v2-ink); }
.home-v2 .hero-sales-member small { color: var(--v2-copy); }
.home-v2 .hero-edition { color: var(--v2-ink); border: 0; background: var(--v2-paper); box-shadow: 0 4px 14px rgba(46, 81, 130, .12); }
.home-v2 .hero-edition:hover { border: 0; box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .hero-edition.is-selected { border: 0; background: var(--v2-paper); box-shadow: 0 0 0 2px var(--v2-purple); }
.home-v2 .hero-edition.is-upcoming { filter: none; opacity: .6; }
.home-v2 .hero-edition-status { color: var(--v2-copy); background: var(--v2-soft); }
.home-v2 .hero-edition.is-selected .hero-edition-status { color: #fff; background: var(--v2-purple); }
.home-v2 .hero-edition i { color: var(--v2-action); }
.home-v2 .hero-edition strong { color: var(--v2-ink); }
.home-v2 .hero-edition small { color: var(--v2-copy); }
.home-v2 .hero-edition b { color: var(--v2-purple); }
.home-v2 .hero-edition em { color: var(--v2-copy); }
.home-v2 .hero-edition.is-selected em { color: var(--v2-purple); }
.home-v2 .hero-checkout-card { border: 0; background: var(--v2-paper); box-shadow: 0 4px 14px rgba(46, 81, 130, .12); }
.home-v2 .hero-checkout-card h3 { color: var(--v2-ink); }
.home-v2 .hero-checkout-card > div > p:last-child { color: var(--v2-copy); }
.home-v2 .hero-checkout-card__action > strong { color: var(--v2-ink); }
.home-v2 .hero-checkout-card__action > strong small { color: var(--v2-copy); }
.home-v2 .hero-checkout-card__action > small { color: var(--v2-copy); }
.home-v2 .hero-sales-faq h2 { color: var(--v2-ink); }
.home-v2 .hero-purchase-dialog { border: 0; color: var(--v2-ink); background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .hero-purchase-dialog::backdrop { background: rgba(31, 58, 95, .45); }
.home-v2 .hero-purchase-dialog__spinner { border-color: var(--v2-outline); border-top-color: var(--v2-purple); }
.home-v2 .hero-purchase-dialog h2 { color: var(--v2-ink); }
.home-v2 .hero-purchase-dialog [data-purchase-message] { color: var(--v2-copy); }
.home-v2 .hero-purchase-dialog.is-confirmed { width:min(520px,calc(100% - 32px)); }
.home-v2 .hero-purchase-dialog.is-error { border: 0; }
.home-v2 .hero-purchase-dialog.is-error .hero-purchase-dialog__spinner { border-color: rgba(211, 115, 93, .4); }

/* ── Sales page: expanded sections (mythbust / results / coach / fit / faq) ── */
/* Myths: six round icons in one row, captions centred below, no cards. */
.home-v2 .hero-mythbust-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px 18px; }
.home-v2 .hero-mythbust-grid article { display: grid; justify-items: center; align-content: start; gap: 16px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; text-align: center; }
.home-v2 .hero-mythbust-grid img { width: min(140px, 100%); height: auto; aspect-ratio: 1; }
.home-v2 .hero-mythbust-grid span { max-width: 230px; color: var(--v2-ink); font-size: .95rem; font-weight: 500; line-height: 1.3; }
@media (max-width: 1000px) { .home-v2 .hero-mythbust-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .home-v2 .hero-mythbust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-v2 .hero-mythbust-grid img { width: 110px; } .home-v2 .hero-mythbust-grid span { font-size: .85rem; } }

.home-v2 .hero-results-grid figure { border: 0; background: var(--v2-soft); box-shadow: 0 4px 14px rgba(46, 81, 130, .12); }
.home-v2 .hero-results-grid figcaption { top: 16px; right: 16px; bottom: auto; left: auto; padding: 9px 18px; color: var(--v2-ink); background: var(--v2-paper); font-size: .82rem; box-shadow: 0 4px 12px rgba(31, 58, 95, .18); backdrop-filter: none; }

.home-v2 .hero-why-table-wrap { border: 3px solid var(--v2-ink); background: var(--v2-paper); box-shadow: 5px 5px 0 var(--v2-ink); }
.home-v2 .hero-why-table { color: var(--v2-ink); background: var(--v2-paper); }
.home-v2 .hero-why-table th,.home-v2 .hero-why-table td { border-color: var(--v2-ink); }
.home-v2 .hero-why-table thead th { color: var(--v2-ink); }
.home-v2 .hero-why-table thead th { vertical-align: middle; }
.home-v2 .hero-why-table__brand img { display: block; width: min(100%, 230px); height: auto; margin: 0 auto 0 0; }
.home-v2 .hero-why-table thead th:nth-child(2),.home-v2 .hero-why-table tbody td:first-of-type { background: rgba(91, 74, 158, .12); }
.home-v2 .hero-why-table tbody th { color: var(--v2-ink); }
.home-v2 .hero-why-table td span { color: var(--v2-purple); }
.home-v2 .hero-why-table td:last-child span { color: #a13f2c; }

.home-v2 .hero-startpoint-grid img { box-shadow: 0 0 0 3px var(--v2-soft); }
.home-v2 .hero-startpoint-grid figcaption { color: var(--v2-copy); }

.home-v2 .hero-sales-coach { border: 0; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .hero-sales-coach__copy h2 { color: var(--v2-ink); }
.home-v2 .hero-sales-coach__copy > p:not(.info-kicker) { color: var(--v2-copy); }
.home-v2 .hero-coach-points article { border: 0; background: var(--v2-soft); }
.home-v2 .hero-coach-points b { color: var(--v2-purple); }
.home-v2 .hero-coach-points strong { color: var(--v2-ink); }
.home-v2 .hero-coach-points small { color: var(--v2-copy); }

.home-v2 .hero-fit-grid .is-yes { border: 0; background: var(--v2-soft); box-shadow: inset 0 0 0 1px var(--v2-purple); }
.home-v2 .hero-fit-grid .is-no { border: 0; background: rgba(211, 115, 93, .08); box-shadow: inset 0 0 0 1px rgba(211, 115, 93, .35); }
.home-v2 .hero-fit-grid h3 { color: var(--v2-ink); }
.home-v2 .hero-fit-grid li { color: var(--v2-copy); }
.home-v2 .hero-fit-grid .is-yes li::before { color: var(--v2-purple); }
.home-v2 .hero-fit-grid .is-no li::before { color: #a13f2c; }

.home-v2 .hero-included-list li { border: 0; background: var(--v2-soft); color: var(--v2-ink); }
.home-v2 .hero-included-list li::before { color: var(--v2-purple); }
/* What you get: bordered boxes with a hard shadow either side of the store phone visual. */
.home-v2 .hero-included-title { margin: 0 0 34px; color: var(--v2-ink); font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 900; line-height: 1; letter-spacing: -.01em; text-align: center; text-transform: uppercase; }
.home-v2 .hero-included-showcase { grid-template-columns: minmax(0, 1fr) minmax(280px, 1.25fr) minmax(0, 1fr); align-items: center; gap: clamp(20px, 3vw, 44px); }
.home-v2 .hero-included-column { gap: 30px; }
.home-v2 .hero-included-column article { display: block; min-height: 0; margin: 0 12px 12px 0; padding: 18px 22px 20px; border: 2px solid var(--v2-ink); border-radius: 0; background: var(--v2-paper); box-shadow: 12px 12px 0 var(--v2-ink); text-align: center; }
.home-v2 .hero-included-column h3 { margin: 0 0 6px; color: var(--v2-ink); font-size: clamp(1.05rem, 1.6vw, 1.35rem); font-weight: 900; line-height: 1.05; letter-spacing: .01em; text-transform: uppercase; }
.home-v2 .hero-included-column p { margin: 0; color: var(--v2-ink); font-size: .92rem; line-height: 1.4; }
.home-v2 .hero-included-product { margin: 0; overflow: visible; border-radius: 0; background: none; box-shadow: none; }
.home-v2 .hero-included-product img { width: 100%; height: auto; max-height: none; object-fit: contain; }
@media (max-width: 760px) {
  .home-v2 .hero-included-showcase { display: grid; grid-template-columns: 1fr; gap: 24px; overflow: visible; padding: 0; }
  .home-v2 .hero-included-product { order: -1; }
  .home-v2 .hero-included-column { display: grid; gap: 22px; }
  .home-v2 .hero-included-column article, .home-v2 .hero-included-product { flex: none; min-height: 0; }
  .home-v2 .hero-included-product img { height: auto; }
}
.home-v2 .hero-offer { background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46,81,130,.16); }
.home-v2 .hero-offer-details h2,.home-v2 .hero-offer-price { color: var(--v2-ink); }
.home-v2 .hero-offer-price small { color: var(--v2-copy); }
/* Product images: the same 2:3 visuals as the store, shown whole. */
.home-v2 .hero-offer-gallery { align-self: center; grid-auto-columns: minmax(260px, 62%); }
.home-v2 .hero-offer-gallery figure { height: auto; aspect-ratio: 2 / 3; }
.home-v2 .hero-offer-gallery img { object-fit: cover; object-position: center; }
/* Product features: icon row, focus dots and an included list, laid out like the store page. */
.home-v2 .hero-offer-icons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 26px 0 22px; padding: 0; list-style: none; }
.home-v2 .hero-offer-icons li { display: grid; justify-items: center; gap: 8px; color: var(--v2-ink); font-size: .74rem; line-height: 1.3; text-align: center; }
.home-v2 .hero-offer-icon { display: block; width: 48px; height: 48px; border: 1.5px solid var(--v2-ink); border-radius: 50%; color: var(--v2-ink); background: #cfc6ea; }
.home-v2 .hero-offer-icon svg { display: block; width: 100%; height: 100%; }
.home-v2 .hero-offer-ratings { display: grid; gap: .7em; margin: 0 0 16px; padding: 0; list-style: none; }
.home-v2 .hero-offer-ratings li { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--v2-ink); font-size: .86rem; }
.home-v2 .hero-offer-dots { display: flex; gap: 4px; }
.home-v2 .hero-offer-dots i { width: 14px; height: 14px; border: 1.5px solid var(--v2-ink); border-radius: 50%; }
.home-v2 .hero-offer-dots i.is-on { background: var(--v2-ink); }
.home-v2 .hero-offer-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border: 0; border-top: 1.5px solid var(--v2-ink); color: var(--v2-ink); font-size: .86rem; }
.home-v2 .hero-offer-list li:first-child { border-top: 0; }
.home-v2 .hero-offer-list li::before { content: none; }
.home-v2 .hero-offer-check { display: block; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--v2-purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat; }
.home-v2 .hero-offer-check svg { display: none; }
@media (max-width: 600px) {
  .home-v2 .hero-offer-gallery { grid-auto-columns: 78%; }
  .home-v2 .hero-offer-icons { gap: 6px; }
  .home-v2 .hero-offer-icons li { font-size: .68rem; }
}
/* Reviews: a compact store-style summary; the form stays folded until "Write a review". */
.home-v2 .hero-review-summary { display: grid; justify-items: center; gap: 20px; margin-bottom: 26px; text-align: center; }
.home-v2 .hero-review-summary h2 { margin: 0; color: var(--v2-ink); font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 700; letter-spacing: -.01em; }
.home-v2 .hero-review-summary__row { display: flex; align-items: center; justify-content: center; }
.home-v2 .hero-review-summary__score { display: grid; justify-items: start; gap: 4px; padding: 6px 48px 6px 0; border-right: 1px solid var(--v2-outline); text-align: left; }
.home-v2 .hero-review-summary__score p { margin: 0; color: var(--v2-ink); font-size: .9rem; }
.home-v2 .hero-review-stars-display { display: flex; gap: 3px; color: var(--v2-purple); }
.home-v2 .hero-review-stars-display svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.home-v2 .hero-review-stars-display svg.is-filled { fill: currentColor; }
.home-v2 .hero-review-toggle { min-width: 240px; margin-left: 48px; padding: 13px 28px; border: 0; border-radius: 12px; color: #fff; background: var(--v2-purple); font-size: .9rem; font-weight: 800; cursor: pointer; }
.home-v2 .hero-review-toggle:hover { background: #4a3c81; }
.home-v2 .hero-review-toggle[aria-expanded="true"] { color: var(--v2-ink); background: var(--v2-soft); }
.home-v2 .hero-review-list { margin-bottom: 22px; }
.home-v2 .hero-review-form { display: grid; grid-template-columns: 1fr; gap: 18px; max-width: 720px; margin: 0 auto; padding: 26px 28px; border-radius: 18px; }
.home-v2 .hero-review-form[hidden] { display: none; }
.home-v2 .hero-review-rating { margin: 0; padding: 0; border: 0; }
.home-v2 .hero-review-rating legend { margin-bottom: 6px; padding: 0; color: var(--v2-ink); font-size: .72rem; font-weight: 750; }
.home-v2 .hero-review-rating__stars { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.home-v2 .hero-review-rating__stars input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.home-v2 .hero-review-rating__stars label { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; color: var(--v2-purple); cursor: pointer; }
.home-v2 .hero-review-rating__stars svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; transition: fill .12s ease, transform .12s ease; }
.home-v2 .hero-review-rating__stars input:checked ~ label svg,
.home-v2 .hero-review-rating__stars label:hover svg,
.home-v2 .hero-review-rating__stars label:hover ~ label svg { fill: currentColor; }
.home-v2 .hero-review-rating__stars label:hover svg { transform: scale(1.08); }
.home-v2 .hero-review-rating__stars input:focus-visible + label { outline: 2px solid var(--v2-purple); outline-offset: 1px; }
.home-v2 .hero-review-fields { gap: 12px 14px; }
.home-v2 .hero-review-fields label { font-size: .72rem; }
.home-v2 .hero-review-fields input, .home-v2 .hero-review-fields textarea { min-height: 44px; padding: 10px 13px; border-radius: 10px; }
.home-v2 .hero-review-photo { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px !important; cursor: pointer; }
.home-v2 .hero-review-photo input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.home-v2 .hero-review-photo__button { padding: 8px 14px; border: 1.5px dashed var(--v2-outline); border-radius: 10px; color: var(--v2-ink); background: var(--v2-soft); font-weight: 750; }
.home-v2 .hero-review-photo:focus-within .hero-review-photo__button { outline: 2px solid var(--v2-purple); outline-offset: 2px; }
.home-v2 .hero-review-send { padding: 12px 26px; border: 0; border-radius: 12px; color: #fff; background: var(--v2-purple); font-size: .86rem; font-weight: 800; cursor: pointer; }
.home-v2 .hero-review-send:hover { background: #4a3c81; }
.home-v2 .hero-review-send:disabled { cursor: wait; opacity: .65; }
@media (max-width: 600px) {
  .home-v2 .hero-review-summary__row { flex-direction: column; gap: 16px; }
  .home-v2 .hero-review-summary__score { justify-items: center; padding: 0; border: 0; text-align: center; }
  .home-v2 .hero-review-toggle { width: 100%; min-width: 0; margin: 0; }
  .home-v2 .hero-review-form { padding: 20px 16px; }
  .home-v2 .hero-review-send { width: 100%; }
}
.home-v2 .hero-review-card,.home-v2 .hero-review-form { border: 0; background: var(--v2-paper); box-shadow: 0 4px 14px rgba(46,81,130,.12); }
.home-v2 .hero-review-stars { color: var(--v2-purple); }
.home-v2 .hero-review-card h3 { color: var(--v2-ink); }
.home-v2 .hero-review-card p { color: var(--v2-copy); }
.home-v2 .hero-review-card footer,.home-v2 .hero-review-fields label { color: var(--v2-ink); }
.home-v2 .hero-review-fields input,.home-v2 .hero-review-fields select,.home-v2 .hero-review-fields textarea { border: 0; color: var(--v2-ink); background: var(--v2-soft); }
.home-v2 .hero-review-photo small,.home-v2 .hero-review-submit p { color: var(--v2-copy); }

@media (max-width:700px) {
  .home-v2 .hero-why-table-wrap { border-width: 2px; box-shadow: 4px 4px 0 var(--v2-ink); }
  .home-v2 .hero-why-table__brand img { width: 100%; }
}

/* FAQ: two independent columns on desktop. */
@media (min-width: 900px) { .home-v2 .hero-faq-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px 22px; } }
/* Same cards and type as the Hero Hub FAQ, with a chevron to open each answer. */
.home-v2 .hero-faq-list details { border: 2px solid var(--v2-ink); border-radius: 18px; background: var(--v2-paper); box-shadow: 4px 4px 0 var(--v2-ink); }
.home-v2 .hero-faq-list summary { padding: 20px 22px; color: var(--v2-ink); font-size: 1.02rem; font-weight: 800; line-height: 1.35; }
.home-v2 .hero-faq-list summary:focus-visible { outline: 3px solid var(--v2-purple); outline-offset: 3px; border-radius: 16px; }
.home-v2 .hero-faq-chevron { width: 20px; height: 20px; color: var(--v2-purple); }
.home-v2 .hero-faq-list details p,
.home-v2 .hero-faq-list details > div { padding: 0 22px 20px; color: var(--v2-copy); font-size: 1rem; line-height: 1.6; }
.home-v2 .hero-faq-list details > div p { padding: 0; }
.home-v2 .hero-faq-list details strong { color: var(--v2-ink); }
.home-v2 .hero-faq-list details a { color: var(--v2-purple); }

.home-v2 .hero-sales-closing { background: var(--v2-soft); }
.home-v2 .hero-sales-closing h2 { color: var(--v2-ink); }
.home-v2 .hero-sales-closing > p:not(.info-kicker) { color: var(--v2-copy); }

/* ── Reader: state/loading panels ────────────────────────────────── */
.home-v2 .premium-state { border: 0; box-shadow: 0 4px 14px rgba(46, 81, 130, .12); backdrop-filter: none; }
.home-v2 .premium-state small { color: var(--v2-copy); }
.home-v2 .premium-spinner { border-color: var(--v2-outline); }
.home-v2 .premium-state__icon { color: #fff; background: var(--v2-purple); }
.home-v2 .premium-state p:not(.premium-kicker) { color: var(--v2-copy); }
.home-v2 .premium-state > a, .home-v2 .premium-state > button { color: #fff; border: 0; background: var(--v2-purple); }
.home-v2 .premium-state--error { border: 0; }

/* ── Reader: global progress bar ─────────────────────────────────── */
.home-v2 .premium-global > div:first-child span { color: var(--v2-copy); }
.home-v2 .premium-global > div:first-child strong { color: var(--v2-ink); }
.home-v2 .premium-global__track { background: var(--v2-soft); box-shadow: none; }
.home-v2 .premium-global__track::after { display: none; }
.home-v2 .premium-global__track span {
  background-color: #8477b6;
  background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,.32) 0, rgba(255,255,255,.32) 8px, rgba(255,255,255,0) 8px, rgba(255,255,255,0) 16px);
  background-size: 32px 32px;
  box-shadow: none;
  filter: none;
  animation: v2ProgressShine 1.2s linear infinite;
}
.home-v2 .premium-global > b { color: var(--v2-action); background: var(--v2-soft); border: 0; }
@keyframes v2ProgressShine { to { background-position: 32px 0; } }

/* ── Reader: chapter sidebar / summary ────────────────────────────── */
.home-v2 .premium-chapters, .home-v2 .premium-summary, .home-v2 .premium-chapter {
  border: 0; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); backdrop-filter: none;
}
.home-v2 .premium-panel-title { border-bottom-color: var(--v2-outline); }
.home-v2 .premium-panel-title span { color: var(--v2-ink); }
.home-v2 .premium-panel-title small { color: var(--v2-copy); }
.home-v2 .premium-collapse-done { color: var(--v2-action); }
.home-v2 .premium-collapse-done i { border: 0; background: var(--v2-soft); }
.home-v2 .premium-collapse-done.is-active i { color: #fff; background: var(--v2-purple); }
.home-v2 .premium-chapter-button { color: var(--v2-ink); border: 0; background: #8d939c; }
.home-v2 .premium-chapter-button::after { display: none; }
.home-v2 .premium-chapter-image img { opacity: 1; filter: grayscale(1) brightness(.84) contrast(.95); }
.home-v2 .premium-chapter-button:hover .premium-chapter-image img,
.home-v2 .premium-chapter-button.is-active .premium-chapter-image img { opacity: 1; filter: none; }
.home-v2 .premium-chapter-button.is-active { border: 0; box-shadow: 0 0 0 2px var(--v2-purple); }
.home-v2 .premium-chapter-copy small { color: rgba(255, 255, 255, .82); }
.home-v2 .premium-chapter-copy strong { color: #fff; }
.home-v2 .premium-chapter-button > b { color: #fff; }
.home-v2 .premium-chapter-button > i { color: #fff; background: var(--v2-purple); }
.home-v2 .premium-all-done { color: var(--v2-copy); }

/* Module banners show the artwork in its true colors. A neutral dark scrim under the text
   (bottom and left, where the copy sits) keeps white type readable on light or busy illustrations. */
.home-v2 .premium-module-hero::after {
  content: ""; display: block; position: absolute; inset: 0; z-index: 0; pointer-events: none; box-shadow: none;
  background:
    linear-gradient(0deg, rgba(9, 15, 25, .82) 0%, rgba(9, 15, 25, .5) 34%, rgba(9, 15, 25, .12) 64%, rgba(9, 15, 25, 0) 82%),
    linear-gradient(90deg, rgba(9, 15, 25, .38) 0%, rgba(9, 15, 25, 0) 58%);
}
/* Chapter title: a numbered badge and the chapter name, kept compact above the modules. */
.home-v2 .premium-chapter-title { display: flex; align-items: center; gap: 12px; margin: 0; padding: 22px 26px 6px; color: var(--v2-ink); font-size: 1.3rem; font-weight: 800; letter-spacing: -.01em; line-height: 1.2; }
.home-v2 .premium-chapter-title span { display: inline-grid; flex: 0 0 auto; place-items: center; min-width: 32px; height: 32px; padding: 0 8px; border-radius: 9px; color: #fff; background: var(--v2-purple); font-size: 1rem; font-weight: 900; }
.home-v2 .premium-chapter-intro + .premium-chapter-title { padding-top: 6px; }
@media (max-width: 900px) { .home-v2 .premium-chapter-title { padding: 18px 16px 4px; font-size: 1.15rem; } }
.home-v2 .premium-chapter-intro h3 { color: var(--v2-ink); }
.home-v2 .premium-chapter-intro > p:not(.premium-kicker) { color: var(--v2-copy); }
.home-v2 .premium-module-card { border: 0; background: var(--v2-soft); }
.home-v2 .premium-module-card:hover { background: var(--v2-outline); }
.home-v2 .premium-module-card.is-complete { background: var(--v2-tint, var(--v2-soft)); }
.home-v2 .premium-module-check { color: var(--v2-purple); border: 0; background: var(--v2-paper); box-shadow: 0 4px 14px rgba(46, 81, 130, .12); backdrop-filter: none; }
.home-v2 .premium-module-check[aria-pressed="true"] { border: 0; background: var(--v2-illustration); box-shadow: none; }
.home-v2 .premium-module-card__link { color: var(--v2-ink); }
.home-v2 .premium-module-card__number { color: var(--v2-action); border: 0; background: var(--v2-paper); }
.home-v2 .premium-module-card__copy small { color: var(--v2-action); }
.home-v2 .premium-module-card__copy strong { color: var(--v2-ink); }
.home-v2 .premium-module-card__copy p { color: var(--v2-copy); }
.home-v2 .premium-module-card__arrow { color: var(--v2-action); }

.home-v2 .premium-reward { border: 0; background: var(--v2-illustration); }
.home-v2 .premium-reward::after { background: linear-gradient(90deg, rgba(200, 219, 247, .7), rgba(200, 219, 247, .3), rgba(200, 219, 247, .8)); }
.home-v2 .premium-reward__check { color: var(--v2-ink); border: 0; background: var(--v2-paper); }
.home-v2 .premium-reward.is-unlocked .premium-reward__check { background: var(--v2-purple); color: #fff; }
/* Chapter reward: the trophy floats over the achievement pedestal, grey until the chapter is complete. */
.home-v2 .premium-reward { grid-template-columns: 48px 260px minmax(0, 1fr); }
.home-v2 .premium-reward__stage {
  --ped-w: 400px;
  --ped-h: calc(var(--ped-w) * .1994);
  --plateau: calc(var(--ped-h) * .7);
  position: relative; align-self: stretch; min-height: 200px; margin: -26px 0;
}
.home-v2 .premium-reward__pedestal {
  position: absolute; bottom: 4px; left: 50%;
  width: var(--ped-w); max-width: none; height: var(--ped-h);
  transform: translateX(-50%);
  filter: grayscale(.55) brightness(1.02);
  -webkit-mask-image: radial-gradient(ellipse 46% 80% at 50% 36%, #000 40%, rgba(0,0,0,.6) 62%, rgba(0,0,0,.18) 80%, transparent 97%);
  mask-image: radial-gradient(ellipse 46% 80% at 50% 36%, #000 40%, rgba(0,0,0,.6) 62%, rgba(0,0,0,.18) 80%, transparent 97%);
}
.home-v2 .premium-reward__icon {
  position: absolute; left: 50%; bottom: calc(4px + var(--plateau) + 6px);
  width: 128px; margin-left: -64px;
  filter: grayscale(1) brightness(1.05) drop-shadow(0 8px 12px rgba(31, 58, 95, .25));
  opacity: .72;
  animation: rewardFloat 3.4s ease-in-out infinite;
}
.home-v2 .premium-reward__shadow {
  position: absolute; left: 50%; bottom: calc(4px + var(--plateau) - 6px);
  width: 96px; height: 14px; margin-left: -48px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(31, 58, 95, .32), rgba(31, 58, 95, 0));
  animation: rewardShadow 3.4s ease-in-out infinite;
}
.home-v2 .premium-reward__glow, .home-v2 .premium-reward__rays { display: none; position: absolute; left: 50%; }
.home-v2 .premium-reward__particles { position: absolute; left: 50%; bottom: calc(4px + var(--plateau) - 8px); width: 240px; height: 170px; margin-left: -120px; pointer-events: none; }
.home-v2 .premium-reward__particles i {
  position: absolute; left: var(--x); bottom: var(--y);
  width: var(--size); height: var(--size); border-radius: 50%;
  background: #fff; box-shadow: 0 0 5px 1px rgba(255, 255, 255, .8);
  opacity: 0;
  animation: rewardParticle var(--duration) ease-in-out var(--delay) infinite;
}
/* Program trophies are square badges, a little narrower than the default egg so they sit on the plateau. */
.home-v2 .premium-reward__icon--badge { width: 116px; margin-left: -58px; }
.home-v2 .premium-reward.is-unlocked .premium-reward__pedestal { filter: none; }
.home-v2 .premium-reward.is-unlocked .premium-reward__icon { opacity: 1; filter: drop-shadow(0 0 12px rgba(255, 196, 90, .55)) drop-shadow(0 0 28px rgba(255, 220, 140, .35)); }
.home-v2 .premium-reward.is-unlocked .premium-reward__glow {
  display: block; bottom: calc(4px + var(--plateau) + 4px);
  width: 210px; height: 160px; margin-left: -105px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 214, 120, .6), rgba(255, 190, 90, .2) 52%, rgba(255, 190, 90, 0));
  animation: rewardGlow 3.4s ease-in-out infinite;
}
.home-v2 .premium-reward.is-unlocked .premium-reward__rays {
  display: block; bottom: calc(4px + var(--plateau) + 60px);
  width: 320px; height: 320px; margin: 0 0 -160px -160px;
  background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .7) 0deg 7deg, rgba(255, 255, 255, 0) 7deg 30deg);
  -webkit-mask-image: radial-gradient(circle, #000 0%, rgba(0,0,0,.4) 34%, transparent 64%);
  mask-image: radial-gradient(circle, #000 0%, rgba(0,0,0,.4) 34%, transparent 64%);
  animation: rewardRays 36s linear infinite;
}
.home-v2 .premium-reward.is-unlocked .premium-reward__particles i { background: #fff3c4; box-shadow: 0 0 6px 2px rgba(255, 196, 84, .9), 0 0 14px 4px rgba(255, 214, 130, .45); }
.home-v2 .premium-reward.is-unlocked .premium-reward__particles i.is-cool { background: #fff; box-shadow: 0 0 6px 2px rgba(120, 170, 255, .85), 0 0 14px 4px rgba(160, 200, 255, .5); }
@keyframes rewardFloat { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-10px) rotate(2deg); } }
@keyframes rewardShadow { 0%, 100% { transform: scaleX(1); opacity: 1; } 50% { transform: scaleX(.78); opacity: .6; } }
@keyframes rewardGlow { 0%, 100% { opacity: .78; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes rewardRays { to { transform: rotate(360deg); } }
@keyframes rewardParticle {
  0% { opacity: 0; transform: translate(0, 0) scale(.6); }
  18% { opacity: .9; }
  70% { opacity: .75; }
  100% { opacity: 0; transform: translate(var(--drift), calc(var(--rise) * -1)) scale(1.1); }
}
/* The trophy card stacks whenever the chapter column is too narrow to keep the title beside the pedestal
   (phones, and desktops where both sidebars squeeze the chapter). */
.home-v2 .premium-chapter, .home-v2 .premium-module-article { container: premium-chapter / inline-size; }
@container premium-chapter (max-width: 760px) {
  .home-v2 .premium-reward { grid-template-columns: minmax(0, 1fr); row-gap: 8px; padding: 22px 16px; }
  .home-v2 .premium-reward__check { position: absolute; top: 18px; left: 18px; align-self: start; }
  .home-v2 .premium-reward__stage { --ped-w: min(330px, 112%); width: 100%; min-width: 0; min-height: 190px; margin: 0; align-self: center; }
  .home-v2 .premium-reward > div:not(.premium-reward__stage) { grid-column: 1; min-width: 0; text-align: center; }
  .home-v2 .premium-reward h3 { overflow-wrap: anywhere; }
  .home-v2 .premium-reward__icon { width: 104px; margin-left: -52px; }
  .home-v2 .premium-reward__icon--badge { width: 92px; margin-left: -46px; }
  .home-v2 .premium-reward__shadow { width: 76px; margin-left: -38px; }
  .home-v2 .premium-reward__particles { width: 200px; height: 140px; margin-left: -100px; }
  .home-v2 .premium-reward.is-unlocked .premium-reward__glow { width: 140px; height: 110px; margin-left: -70px; }
  .home-v2 .premium-reward.is-unlocked .premium-reward__rays { width: 220px; height: 220px; margin: 0 0 -110px -110px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-v2 .premium-reward__icon, .home-v2 .premium-reward__shadow, .home-v2 .premium-reward__glow, .home-v2 .premium-reward__rays { animation: none; }
  .home-v2 .premium-reward__particles i { animation: none; opacity: .6; }
}
.home-v2 .premium-reward p:not(.premium-kicker) { color: var(--v2-ink); }
.home-v2 .premium-reward small { color: var(--v2-ink); }
.home-v2 .premium-chapter-footer button { color: var(--v2-ink); border: 0; background: var(--v2-soft); }
.home-v2 .premium-chapter-footer button:last-child { color: #fff; border: 0; background: var(--v2-purple); }

.home-v2 .premium-summary__track { stroke: var(--v2-soft); }
.home-v2 .premium-summary__fill { stroke: var(--v2-purple); }
.home-v2 .premium-summary__label { color: var(--v2-ink); }
.home-v2 .premium-summary__label span { color: var(--v2-copy); }
.home-v2 .premium-summary__caption { color: var(--v2-copy); }

/* ── Module reader page ───────────────────────────────────────────── */
.home-v2 .premium-module-article { border: 0; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); backdrop-filter: none; }
.home-v2 .premium-module-article.is-complete { box-shadow: 0 0 0 2px var(--v2-purple); }
.home-v2 .premium-module-hero { isolation: isolate; background: var(--v2-illustration); }
.home-v2 .premium-module-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: var(--chapter-image, none) center / cover no-repeat; opacity: 1; }
.home-v2 .premium-module-hero::after { background: linear-gradient(180deg, rgba(9, 15, 25, .42) 0%, rgba(9, 15, 25, 0) 26%), linear-gradient(0deg, rgba(9, 15, 25, .84) 0%, rgba(9, 15, 25, .52) 38%, rgba(9, 15, 25, .1) 70%, rgba(9, 15, 25, 0) 86%); }
.home-v2 .premium-module-hero > *:not(span) { text-shadow: 0 2px 14px rgba(0, 0, 0, .45); }
.home-v2 .premium-module-hero > a { color: rgba(255, 255, 255, .92); }
.home-v2 .premium-module-hero h1 { color: #fff; }
.home-v2 .premium-module-hero .premium-kicker { color: rgba(255, 255, 255, .86); }
.home-v2 .premium-module-hero > p:not(.premium-kicker) { color: rgba(255, 255, 255, .92); }
.home-v2 .premium-module-hero > span { color: rgba(255, 255, 255, .08); }
.home-v2 .premium-module-lead, .home-v2 .premium-prose { color: var(--v2-ink); }
.home-v2 .premium-program-video { border: 0; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .16); }
.home-v2 .premium-program-video figcaption { color: var(--v2-ink); }
.home-v2 .premium-content-callout { border-left-color: var(--v2-purple); background: var(--v2-soft); }
.home-v2 .premium-content-callout h3 { color: var(--v2-ink); }
.home-v2 .premium-content-callout p { color: var(--v2-ink); }
.home-v2 .premium-content-list { border: 0; background: var(--v2-soft); }
.home-v2 .premium-content-list h3 { color: var(--v2-ink); }
.home-v2 .premium-content-list li { color: var(--v2-ink); }
.home-v2 .premium-content-list li::marker { color: var(--v2-purple); }
.home-v2 .premium-task-list { border: 0; background: var(--v2-soft); }
.home-v2 .premium-task-list h3, .home-v2 .premium-task strong { color: var(--v2-ink); }
.home-v2 .premium-task { border-color: var(--v2-outline); background: var(--v2-paper); }
.home-v2 .premium-task > span { border-color: var(--v2-purple); }
.home-v2 .premium-task.is-complete > span { background: var(--v2-purple); }
.home-v2 .premium-task:focus-within { outline-color: var(--v2-purple); }
.home-v2 .premium-glossary div { border: 0; background: var(--v2-soft); }
.home-v2 .premium-glossary dt { color: var(--v2-ink); }
.home-v2 .premium-glossary dd { color: var(--v2-copy); }
.home-v2 .premium-workout { border: 0; box-shadow: 0 4px 14px rgba(46, 81, 130, .12); }
.home-v2 .premium-workout > header { background: var(--v2-soft); }
.home-v2 .premium-workout > header strong { color: var(--v2-ink); }
.home-v2 .premium-workout > header span { color: var(--v2-copy); }
.home-v2 .premium-exercise-row { color: var(--v2-copy); border-top-color: var(--v2-outline); }
.home-v2 .premium-exercise-row strong { color: var(--v2-ink); }
.home-v2 .premium-exercise-row small { color: var(--v2-copy); }
.home-v2 .premium-meal-card { border: 0; background: var(--v2-soft); }
.home-v2 .premium-meal-card strong { color: var(--v2-ink); }
.home-v2 .premium-meal-card b { color: var(--v2-purple); }
.home-v2 .premium-meal-card p { color: var(--v2-copy); }
/* Program FAQs use the Hero Hub FAQ cards: outlined, offset shadow, round + / − toggle. */
.home-v2 .premium-faq-list { display: grid; gap: 12px; padding: 0; border: 0; background: transparent; }
.home-v2 .premium-faq { border: 2px solid var(--v2-ink); border-radius: 18px; background: var(--v2-paper); box-shadow: 4px 4px 0 var(--v2-ink); }
.home-v2 .premium-faq:first-child { border-top: 2px solid var(--v2-ink); }
.home-v2 .premium-faq summary { position: relative; padding: 20px 60px 20px 22px; color: var(--v2-ink); font-size: 1.02rem; font-weight: 800; line-height: 1.35; list-style: none; cursor: pointer; }
.home-v2 .premium-faq summary::-webkit-details-marker { display: none; }
.home-v2 .premium-faq summary::after {
  content: ''; position: absolute; top: 50%; right: 22px; width: 20px; height: 20px; margin-top: -10px;
  background: var(--v2-purple); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='m5 14 18.38 20.722a.827.827 0 0 0 1.238 0L43 14'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='m5 14 18.38 20.722a.827.827 0 0 0 1.238 0L43 14'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .25s ease;
}
.home-v2 .premium-faq[open] summary::after { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .home-v2 .premium-faq summary::after { transition: none; } }
.home-v2 .premium-faq summary:focus-visible { outline: 3px solid var(--v2-purple); outline-offset: 3px; border-radius: 16px; }
.home-v2 .premium-faq p { margin: 0; padding: 0 22px 20px; color: var(--v2-copy); font-size: .98rem; line-height: 1.6; }
.home-v2 .premium-callout-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 9px 16px; border-radius: 999px; color: #fff; background: var(--v2-action); font-size: .86rem; font-weight: 800; text-decoration: none; }
.home-v2 .premium-callout-link:hover { color: #fff; background: #3a5f98; }
.home-v2 .premium-callout-link:focus-visible { outline: 3px solid var(--v2-purple); outline-offset: 3px; }
/* The body-type picture sits at the top of each starting-protocol card. */
.home-v2 .premium-protocol-figure { display: grid; place-items: center; margin: 4px 0 0; padding: 10px; border-radius: 14px; background: var(--v2-paper); }
.home-v2 .premium-protocol-figure img { display: block; width: min(220px, 70%); height: auto; }
.home-v2 .premium-content-visual, .home-v2 .premium-content-gallery { border: 0; background: var(--v2-soft); box-shadow: 0 5px 16px rgba(46, 81, 130, .13); }
/* Exercise visuals: start and finish positions in one compact frame. */
.home-v2 .premium-content-visual--exercise { width: 100%; max-width: 560px; justify-self: center; }
.home-v2 .premium-content-visual--exercise img { padding: 14px 14px 6px; }
/* A tall coaching illustration inside a text lesson should support the copy,
   not fill the complete reading column. */
.home-v2 .premium-content-visual--compact-portrait { width: min(100%, 320px); justify-self: center; }
.home-v2 .premium-content-visual--compact-portrait img { width: 100%; height: auto; object-fit: contain; }
@media (max-width: 640px) {
  .home-v2 .premium-content-visual--compact-portrait { width: min(72vw, 280px); }
}
/* The measurement figure is tall: keep the complete PDF silhouette visible
   without letting it dominate the lesson. */
.home-v2 .premium-content-visual--measurement { width: min(100%, 240px); justify-self: center; }
.home-v2 .premium-content-visual--measurement img { width: 100%; height: auto; object-fit: contain; }
@media (max-width: 640px) {
  .home-v2 .premium-content-visual--measurement { width: min(68vw, 220px); }
}
/* Chapter artwork (the Captain character) illustrates the text: a modest frame sized to the picture. */
.home-v2 .premium-content-visual:has(> img[src*="/chapter-"]) { width: fit-content; min-width: 180px; max-width: 100%; justify-self: center; }
.home-v2 .premium-content-visual > img[src*="/chapter-"] { width: auto; max-width: 100%; max-height: 360px; margin-inline: auto; }
.home-v2 .premium-content-visual:has(> img[src*="/chapter-"]) figcaption { width: 0; min-width: 100%; box-sizing: border-box; }
@media (max-width: 640px) {
  .home-v2 .premium-content-visual > img[src*="/chapter-"] { max-height: 300px; }
}
.home-v2 .premium-content-visual figcaption, .home-v2 .premium-content-gallery figcaption { color: var(--v2-copy); background: var(--v2-soft); }
.home-v2 .premium-reference-pages > header h3, .home-v2 .premium-meal-atlas > header h3, .home-v2 .premium-protocols > header h3 { color: var(--v2-ink); }
.home-v2 .premium-reference-pages > header p, .home-v2 .premium-meal-atlas > header p, .home-v2 .premium-protocols > header p, .home-v2 .premium-reference-pages figcaption { color: var(--v2-copy); }
.home-v2 .premium-reference-pages article, .home-v2 .premium-meal-level, .home-v2 .premium-protocol { border: 0; background: var(--v2-soft); box-shadow: 0 4px 14px rgba(46, 81, 130, .1); }
.home-v2 .premium-source-pages > header h3 { color: var(--v2-ink); }
.home-v2 .premium-source-pages > header > p:last-child { color: var(--v2-copy); }
.home-v2 .premium-source-page { border:0; background:#fff; box-shadow:0 5px 18px rgba(46,81,130,.12); }
.home-v2 .premium-source-page > header strong { color:var(--v2-ink); }
.home-v2 .premium-source-page > header a { color:var(--v2-purple); }
.home-v2 .premium-source-page__transcript { border-color:rgba(31,58,95,.1); background:var(--v2-soft); }
.home-v2 .premium-source-page__transcript summary { color:var(--v2-ink); }
.home-v2 .premium-source-page__transcript > div { color:var(--v2-copy); }
.home-v2 .premium-reference-pages article > strong, .home-v2 .premium-meal-level > summary, .home-v2 .premium-protocol > summary span, .home-v2 .premium-protocol aside b, .home-v2 .premium-protocol-exit b, .home-v2 .premium-protocol li strong { color: var(--v2-ink); }
.home-v2 .premium-meal-level > summary span, .home-v2 .premium-protocol > summary small, .home-v2 .premium-protocol aside p, .home-v2 .premium-protocol-exit, .home-v2 .premium-protocol li p { color: var(--v2-copy); }
.home-v2 .premium-meal-level > summary::after, .home-v2 .premium-protocol > summary::after { color: var(--v2-purple); }
.home-v2 .premium-meal-level h4 { color: var(--v2-ink); background: var(--v2-soft); }
.home-v2 .premium-protocol aside { border-left-color: var(--v2-purple); background: var(--v2-paper); }
.home-v2 .premium-protocol h4 { color:var(--v2-ink); }
.home-v2 .premium-protocol-identify, .home-v2 .premium-protocol-monitor { background:var(--v2-paper); }
.home-v2 .premium-protocol-identify li, .home-v2 .premium-protocol-monitor li { color:var(--v2-copy); }
.home-v2 .premium-protocol-identify li::marker, .home-v2 .premium-protocol-monitor li::marker { color:var(--v2-purple); }
.home-v2 .premium-protocol li::marker { color: var(--v2-purple); }
.home-v2 .premium-exercise-stat i { color: var(--v2-copy); }
.home-v2 .premium-faq summary { color: var(--v2-ink); }
.home-v2 .premium-faq p { color: var(--v2-ink); }
.home-v2 .premium-module-finish { border: 0; background: var(--v2-soft); }
.home-v2 .premium-module-finish--compact { background: transparent; }
.home-v2 .premium-module-finish h2 { color: var(--v2-ink); }
.home-v2 .premium-module-finish > p:not(.premium-kicker) { color: var(--v2-copy); }
.home-v2 .premium-complete-button { color: var(--v2-action); border: 0; background: var(--v2-paper); }
.home-v2 .premium-complete-button.is-complete { color: #fff; border: 0; background: var(--v2-purple); }
.home-v2 .premium-module-pagination a { color: var(--v2-ink); border: 0; background: var(--v2-soft); }
.home-v2 .premium-module-pagination small { color: var(--v2-copy); }
/* Progress feedback belongs to the light program reader, so it uses the same
   frosted-glass language instead of inheriting the green dashboard toast. */
.home-v2.premium-guide-body .dash-toast {
  color: var(--v2-ink);
  border: 1px solid rgba(255, 255, 255, .76);
  background: rgba(255, 255, 255, .52);
  box-shadow: 0 18px 42px rgba(31, 58, 95, .2), inset 0 1px 0 rgba(255, 255, 255, .72);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
}
.home-v2.premium-guide-body .dash-toast::before {
  color: #fff;
  background: rgba(95, 75, 174, .88);
  box-shadow: 0 4px 12px rgba(95, 75, 174, .24);
}
.home-v2.premium-guide-body .dash-toast.is-error { border-color: rgba(214, 69, 69, .38); }
.home-v2.premium-guide-body .dash-toast.is-error::before { color: #fff; background: rgba(214, 69, 69, .9); }

/* Web edition note: the site is the minimalist edition, the complete guide is a PDF download. */
.home-v2 .premium-edition-note {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px 28px;
  margin: 0 0 22px; padding: 22px 26px; border-radius: 20px; background: var(--v2-paper); box-shadow: 0 6px 18px rgba(46, 81, 130, .14);
}
.home-v2 .premium-edition-note h2 { margin: 4px 0 6px; color: var(--v2-ink); font-size: 1.25rem; font-weight: 800; }
.home-v2 .premium-edition-note__copy > p:not(.premium-kicker) { max-width: 64ch; margin: 0; color: var(--v2-copy); font-size: .95rem; line-height: 1.55; }
.home-v2 .premium-edition-note__action { display: grid; justify-items: center; gap: 6px; }
.home-v2 .premium-edition-note__button {
  display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border: 0; border-radius: 999px;
  color: #fff; background: var(--v2-action); font-size: .92rem; font-weight: 800; white-space: nowrap; cursor: pointer;
}
.home-v2 .premium-edition-note__button:hover { background: #3a5f98; }
.home-v2 .premium-edition-note__button:focus-visible { outline: 3px solid var(--v2-purple); outline-offset: 3px; }
.home-v2 .premium-edition-note__button:disabled { opacity: .7; cursor: progress; }
.home-v2 .premium-edition-note__status { min-height: 1em; margin: 0; color: var(--v2-copy); font-size: .8rem; text-align: center; }
@media (max-width: 720px) {
  .home-v2 .premium-edition-note { grid-template-columns: 1fr; padding: 18px; }
  .home-v2 .premium-edition-note__action { justify-items: stretch; }
  .home-v2 .premium-edition-note__button { justify-content: center; }
}
