/* page-the-year.css — extracted from source-mockups/03-the-year.html */
/* This file holds page-specific styles. Tokens live in style.css; reusable
   components in fb-components.css. Move CSS upward when it generalizes. */

:root {
    --navy:        #0d1b2a;
    --navy-soft:   #1a2a3d;
    --teal:        #2fa68c;
    --teal-soft:   #d6ebe5;
    --teal-deep:   #1f7a66;
    --cream:       #faf7f2;
    --cream-warm:  #f3ede2;
    --ink:         #0d1b2a;
    --ink-mid:     #5a6776;
    --hairline:    #e7e1d6;
    --fb-warm:        #e8662a;
    --fb-warm-soft:   #f6d4bc;
    --fb-warm-deep:   #c84e15;
    --fb-blue:        #21ACCB;
    --fb-blue-soft:   #B8E4ED;
    --fb-blue-deep:   #1A88A3;
    --radius:      14px;
  }
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body {
    font-family: 'Epilogue', sans-serif;
    background: var(--cream-warm);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
    line-height: 1.6;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  .container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
  .container-tight { max-width: 1020px; margin: 0 auto; padding: 0 32px; }

  /* ========== HEADER ========== */
  .fb-header { padding: 26px 0; }
  .fb-header .nav-row { display: flex; align-items: center; gap: 40px; }
  .fb-header .wordmark {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 24px; letter-spacing: -0.01em;
  }
  .fb-header .wordmark .fitness { color: var(--fb-blue); font-style: normal; }
  .fb-header .wordmark em { font-style: italic; color: var(--fb-warm); }
  .fb-header nav.main {
    display: flex; gap: 26px; margin-left: auto; align-items: center;
  }
  .fb-header nav.main a {
    font-size: 13.5px; font-weight: 500;
    color: var(--ink); transition: color 0.18s;
    position: relative;
  }
  .fb-header nav.main a:hover { color: var(--fb-warm); }
  .fb-header nav.main a.active { color: var(--fb-warm); }
  .fb-header nav.main a.active::after {
    content: ""; position: absolute;
    bottom: -8px; left: 0; right: 0;
    height: 2px; background: var(--fb-warm);
    border-radius: 1px;
  }
  .fb-header .cta-mini {
    background: var(--fb-warm); color: var(--cream);
    padding: 11px 22px;
    border-radius: 8px 0 8px 8px;
    font-size: 12px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
  }
  .fb-header .cta-mini:hover { background: var(--navy); }

  /* ========== BREADCRUMB ========== */
  .crumbs {
    padding: 18px 0;
    border-bottom: 1px solid var(--hairline);
    font-size: 12px;
    color: var(--ink-mid);
    letter-spacing: 0.06em;
  }
  .crumbs a { color: var(--ink-mid); }
  .crumbs a:hover { color: var(--fb-warm); }
  .crumbs .sep { margin: 0 10px; color: var(--hairline); }
  .crumbs em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--navy); font-weight: 500;
  }

  /* ========== HERO ========== */
  .yr-hero {
    padding: 56px 0 112px;
    position: relative; overflow: hidden;
  }
  .yr-hero .watermark {
    position: absolute;
    top: 80px; right: -180px;
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 400;
    font-size: 600px; line-height: 1;
    color: var(--navy);
    opacity: 0.045;
    letter-spacing: -0.04em;
    pointer-events: none; z-index: 1;
  }
  .yr-hero .container { position: relative; z-index: 2; }
  .yr-hero .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 28px;
  }
  .yr-hero h1 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 140px; line-height: 0.88;
    letter-spacing: -0.04em; color: var(--navy);
    max-width: 920px;
  }
  .yr-hero h1 em { font-style: italic; color: var(--fb-warm); }
  .yr-hero .deck {
    margin-top: 36px;
    font-size: 20px; line-height: 1.55; color: var(--ink);
    max-width: 640px;
  }
  .yr-hero .deck em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--fb-warm); font-weight: 500;
  }
  .yr-hero .meta-strip {
    margin-top: 56px;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding-top: 36px;
    border-top: 1px solid var(--hairline);
  }
  .yr-hero .meta-strip .item .k {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--ink-mid);
    margin-bottom: 8px;
  }
  .yr-hero .meta-strip .item .v {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 24px; letter-spacing: -0.015em;
    color: var(--navy);
  }
  .yr-hero .meta-strip .item .v em { color: var(--fb-warm); }
  .yr-hero .ctas {
    margin-top: 44px;
    display: flex; gap: 16px; align-items: center;
  }
  .btn-warm {
    background: var(--fb-warm); color: var(--cream);
    padding: 16px 30px; border-radius: 10px 0 10px 10px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
    display: inline-block;
  }
  .btn-warm:hover { background: var(--navy); }
  .btn-ghost {
    border: 1px solid var(--navy); color: var(--navy);
    padding: 15px 28px; border-radius: 10px 0 10px 10px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
    display: inline-block;
  }
  .btn-ghost:hover { background: var(--navy); color: var(--cream); }

  /* ========== MANIFESTO ========== */
  .manifesto {
    padding: 104px 0;
    background: var(--cream);
    border-top: 1px solid var(--hairline);
  }
  .manifesto .row {
    display: grid; grid-template-columns: 1fr 1.4fr;
    gap: 80px; align-items: start;
  }
  .manifesto .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 20px;
  }
  .manifesto h2 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 52px; line-height: 1.02;
    letter-spacing: -0.025em; color: var(--navy);
  }
  .manifesto h2 em { font-style: italic; color: var(--fb-warm); }
  .manifesto .body p {
    font-size: 17px; line-height: 1.7;
    color: var(--ink); margin-bottom: 22px;
  }
  .manifesto .body p:first-letter {
    font-family: 'Fraunces', serif; font-style: italic;
    font-weight: 400; font-size: 56px;
    line-height: 1; float: left;
    margin-right: 12px; margin-top: 4px;
    color: var(--fb-warm);
  }
  .manifesto .body em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--fb-warm); font-weight: 500;
    font-size: 1.05em;
  }
  .manifesto .signature {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--hairline);
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 16px; color: var(--ink-mid);
  }
  .manifesto .signature strong {
    font-style: normal;
    font-family: 'Epilogue', sans-serif;
    font-weight: 600; color: var(--navy);
    text-transform: uppercase; letter-spacing: 0.08em;
    font-size: 12px;
  }

  /* ========== FIVE STEPS — expanded ========== */
  .steps {
    padding: 104px 0;
    background: var(--cream-warm);
    border-top: 1px solid var(--hairline);
  }
  .steps .head {
    margin-bottom: 64px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: end;
  }
  .steps .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 22px;
  }
  .steps h2 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 56px; line-height: 1; letter-spacing: -0.025em;
  }
  .steps h2 em { font-style: italic; color: var(--fb-warm); }
  .steps .head p {
    font-size: 16px; line-height: 1.65; color: var(--ink-mid);
  }
  .steps .step-card {
    display: grid;
    grid-template-columns: 120px 1.2fr 1fr;
    gap: 48px;
    padding: 48px 0;
    border-top: 1px solid var(--hairline);
    align-items: start;
  }
  .steps .step-card:last-of-type { border-bottom: 1px solid var(--hairline); }
  .steps .step-card .marker .num {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 68px; color: var(--fb-warm);
    line-height: 1; letter-spacing: -0.02em;
  }
  .steps .step-card .marker .when {
    margin-top: 12px;
    font-size: 11px; text-transform: uppercase;
    letter-spacing: 0.14em; color: var(--ink-mid);
    font-weight: 600;
  }
  .steps .step-card .main h3 {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 32px; line-height: 1.08;
    letter-spacing: -0.018em;
    margin-bottom: 16px;
    color: var(--navy);
  }
  .steps .step-card .main h3 em { font-style: italic; color: var(--fb-warm); }
  .steps .step-card .main p {
    font-size: 15.5px; line-height: 1.65;
    color: var(--ink); margin-bottom: 18px;
  }
  .steps .step-card .main p:last-child { margin-bottom: 0; }
  .steps .step-card .detail {
    background: var(--cream);
    border-radius: 14px 0 14px 14px;
    padding: 26px 28px;
    border: 1px solid var(--hairline);
  }
  .steps .step-card .detail .key {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--ink-mid); margin-bottom: 14px;
  }
  .steps .step-card .detail ul {
    list-style: none; padding: 0;
  }
  .steps .step-card .detail ul li {
    font-size: 13.5px; line-height: 1.55;
    padding: 8px 0 8px 18px; position: relative;
    color: var(--ink);
  }
  .steps .step-card .detail ul li::before {
    content: "—"; position: absolute; left: 0;
    color: var(--fb-warm);
    font-family: 'Fraunces', serif; font-style: italic;
  }
  .steps .step-card .detail .link {
    margin-top: 14px;
    display: inline-block;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 13px; color: var(--fb-warm);
    border-bottom: 1px solid var(--fb-warm);
    padding-bottom: 1px;
  }
  .steps .step-card.retreat { background: linear-gradient(180deg, rgba(232,102,42,0.07), rgba(232,102,42,0)); }
  .steps .step-card.retreat .marker .num { color: var(--fb-warm-deep); }
  .steps .step-card.retreat .main h3 em { color: var(--fb-warm-deep); }
  .steps .step-card.retreat .reward {
    display: inline-block;
    margin-bottom: 14px;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 13px; color: var(--fb-warm-deep);
    padding: 4px 12px;
    border: 1px solid var(--fb-warm-deep);
    border-radius: 4px 0 4px 4px;
  }

  /* ========== THREE TRACKS — deeper ========== */
  .tracks {
    padding: 104px 0;
    background: var(--cream);
    border-top: 1px solid var(--hairline);
  }
  .tracks .head {
    margin-bottom: 56px;
    text-align: center;
  }
  .tracks .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 22px;
  }
  .tracks h2 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 60px; line-height: 1;
    letter-spacing: -0.025em; max-width: 760px; margin: 0 auto;
  }
  .tracks h2 em { font-style: italic; color: var(--fb-warm); }
  .tracks .head p {
    margin: 22px auto 0;
    font-size: 16.5px; line-height: 1.65;
    color: var(--ink-mid); max-width: 640px;
  }
  .tracks .grid3 {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .tracks .track {
    background: var(--cream-warm);
    border: 1px solid var(--hairline);
    border-radius: 14px 0 14px 14px;
    padding: 36px 36px 40px;
    position: relative;
    display: flex; flex-direction: column;
  }
  .tracks .track.senior {
    background: linear-gradient(180deg, var(--cream-warm), rgba(232,102,42,0.05));
  }
  .tracks .track.senior::before {
    content: "for elders";
    position: absolute; top: 24px; right: 30px;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 12px; color: var(--fb-warm);
    font-weight: 500;
  }
  .tracks .track .tag {
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 14px; color: var(--ink-mid);
    margin-bottom: 8px;
  }
  .tracks .track h3 {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 32px; line-height: 1;
    letter-spacing: -0.018em;
    margin-bottom: 16px;
    color: var(--navy);
  }
  .tracks .track h3 em { font-style: italic; color: var(--fb-warm); }
  .tracks .track .summary {
    font-size: 14.5px; line-height: 1.6;
    color: var(--ink); margin-bottom: 24px;
  }
  .tracks .track .block {
    margin-top: 16px; padding-top: 18px;
    border-top: 1px solid var(--hairline);
  }
  .tracks .track .block .key {
    font-size: 10.5px; text-transform: uppercase;
    letter-spacing: 0.14em; color: var(--ink-mid);
    font-weight: 600; margin-bottom: 12px;
  }
  .tracks .track .block ul {
    list-style: none; padding: 0;
  }
  .tracks .track .block ul li {
    font-size: 13.5px; line-height: 1.55;
    padding: 6px 0 6px 16px;
    position: relative; color: var(--ink);
  }
  .tracks .track .block ul li::before {
    content: "—"; position: absolute; left: 0;
    color: var(--fb-warm);
    font-family: 'Fraunces', serif; font-style: italic;
  }
  .tracks .track .block ul li em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--navy); font-weight: 500;
  }
  .tracks .track .commitment {
    margin-top: 20px; padding-top: 18px;
    border-top: 1px solid var(--hairline);
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .tracks .track .commitment .c {
    font-size: 11px; color: var(--ink-mid);
  }
  .tracks .track .commitment .c .v {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 17px; color: var(--navy);
    letter-spacing: -0.01em; margin-top: 2px;
  }
  .tracks .track .commitment .c .v em { color: var(--fb-warm); }
  .tracks .track .commitment .c .k {
    text-transform: uppercase;
    letter-spacing: 0.12em; font-weight: 600;
  }

  /* ========== PRICING ========== */
  .pricing {
    padding: 104px 0;
    background: var(--navy);
    color: var(--cream);
    position: relative; overflow: hidden;
  }
  .pricing::before {
    content: "$420";
    position: absolute;
    bottom: -120px; left: -40px;
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 360px; color: var(--cream);
    opacity: 0.03;
    letter-spacing: -0.04em;
    pointer-events: none; line-height: 1;
  }
  .pricing .container { position: relative; z-index: 2; }
  .pricing .head {
    margin-bottom: 56px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: end;
  }
  .pricing .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 22px;
  }
  .pricing h2 {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 60px; line-height: 1;
    letter-spacing: -0.028em; color: var(--cream);
  }
  .pricing h2 em { font-style: italic; color: var(--fb-warm); }
  .pricing .head p {
    font-size: 16px; line-height: 1.65;
    color: rgba(250,247,242,0.72);
  }
  .pricing .paths {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .pricing .path {
    background: var(--navy-soft);
    border: 1px solid rgba(250,247,242,0.1);
    border-radius: 14px 0 14px 14px;
    padding: 40px 40px 44px;
    position: relative;
  }
  .pricing .path .path-tag {
    position: absolute;
    top: -12px; left: 32px;
    background: var(--fb-warm);
    color: var(--cream);
    padding: 4px 14px;
    font-size: 10px; font-weight: 600;
    letter-spacing: 0.14em; text-transform: uppercase;
    border-radius: 4px 0 4px 4px;
  }
  .pricing .path h3 {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 28px; line-height: 1.1;
    letter-spacing: -0.015em; color: var(--cream);
    margin-bottom: 18px;
  }
  .pricing .path h3 em { font-style: italic; color: var(--fb-warm); }
  .pricing .path .price-row {
    padding: 24px 0;
    border-top: 1px solid rgba(250,247,242,0.14);
    border-bottom: 1px solid rgba(250,247,242,0.14);
    margin: 24px 0;
    display: flex; align-items: baseline; gap: 16px;
  }
  .pricing .path .price-row .price {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 56px; line-height: 1; letter-spacing: -0.02em;
    color: var(--cream);
  }
  .pricing .path .price-row .price em { color: var(--fb-warm); }
  .pricing .path .price-row .unit {
    font-size: 14px; color: rgba(250,247,242,0.7);
    font-family: 'Fraunces', serif; font-style: italic;
  }
  .pricing .path .includes-key {
    font-size: 11px; text-transform: uppercase;
    letter-spacing: 0.14em; color: rgba(250,247,242,0.55);
    font-weight: 600; margin-bottom: 12px;
  }
  .pricing .path ul {
    list-style: none; padding: 0;
  }
  .pricing .path ul li {
    font-size: 14px; line-height: 1.55;
    padding: 7px 0 7px 18px; position: relative;
    color: rgba(250,247,242,0.85);
  }
  .pricing .path ul li::before {
    content: "—"; position: absolute; left: 0;
    color: var(--fb-warm);
    font-family: 'Fraunces', serif; font-style: italic;
  }
  .pricing .path ul li em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--cream); font-weight: 500;
  }
  .pricing .path .footnote {
    margin-top: 24px; padding-top: 20px;
    border-top: 1px solid rgba(250,247,242,0.14);
    font-size: 12px; color: rgba(250,247,242,0.55);
    line-height: 1.55;
  }
  .pricing .path .footnote em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--fb-warm); font-weight: 500;
  }

  .pricing .retreat-row {
    margin-top: 56px;
    padding: 32px 40px;
    background: rgba(232,102,42,0.08);
    border: 1px solid rgba(232,102,42,0.25);
    border-radius: 14px 0 14px 14px;
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 32px; align-items: center;
  }
  .pricing .retreat-row .lead {
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 22px; line-height: 1.25;
    color: var(--cream); letter-spacing: -0.01em;
  }
  .pricing .retreat-row .lead em { color: var(--fb-warm); }
  .pricing .retreat-row .col .k {
    font-size: 11px; text-transform: uppercase;
    letter-spacing: 0.14em; color: rgba(250,247,242,0.55);
    margin-bottom: 6px; font-weight: 600;
  }
  .pricing .retreat-row .col .v {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 28px; color: var(--cream); letter-spacing: -0.01em;
  }
  .pricing .retreat-row .col .v em { color: var(--fb-warm); }
  .pricing .retreat-row .col .save {
    margin-top: 8px;
    font-size: 12px;
    color: var(--fb-warm);
    font-family: 'Fraunces', serif; font-style: italic;
  }

  /* ========== FAQ ========== */
  .faq {
    padding: 104px 0;
    background: var(--cream-warm);
    border-top: 1px solid var(--hairline);
  }
  .faq .head {
    margin-bottom: 56px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: end;
  }
  .faq .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--fb-warm); margin-bottom: 22px;
  }
  .faq h2 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 56px; line-height: 1; letter-spacing: -0.025em;
  }
  .faq h2 em { font-style: italic; color: var(--fb-warm); }
  .faq .head p {
    font-size: 16px; line-height: 1.65;
    color: var(--ink-mid);
  }
  .faq .grid2 {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 28px 64px;
  }
  .faq .q {
    border-top: 1px solid var(--hairline);
    padding: 24px 0;
  }
  .faq .q h4 {
    font-family: 'Fraunces', serif; font-weight: 500;
    font-size: 20px; line-height: 1.25;
    letter-spacing: -0.012em;
    margin-bottom: 12px;
    color: var(--navy);
  }
  .faq .q h4 em { font-style: italic; color: var(--fb-warm); }
  .faq .q p {
    font-size: 14.5px; line-height: 1.6;
    color: var(--ink);
  }
  .faq .q p em {
    font-family: 'Fraunces', serif; font-style: italic;
    color: var(--fb-warm); font-weight: 500;
  }

  /* ========== FINAL CTA ========== */
  .enrol {
    padding: 112px 0;
    background: var(--fb-warm);
    color: var(--cream);
    position: relative; overflow: hidden;
    text-align: center;
  }
  .enrol::before {
    content: "the year";
    position: absolute;
    bottom: -80px; right: -40px;
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 400;
    font-size: 280px; color: var(--cream);
    opacity: 0.08;
    letter-spacing: -0.04em;
    pointer-events: none; line-height: 1;
  }
  .enrol .container { position: relative; z-index: 2; }
  .enrol .eyebrow {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: rgba(250,247,242,0.8);
    margin-bottom: 24px;
  }
  .enrol h2 {
    font-family: 'Fraunces', serif; font-weight: 400;
    font-size: 80px; line-height: 0.98;
    letter-spacing: -0.03em;
    color: var(--cream);
    max-width: 920px; margin: 0 auto;
  }
  .enrol h2 em { font-style: italic; }
  .enrol p {
    margin: 28px auto 40px;
    font-size: 17px; line-height: 1.65;
    color: rgba(250,247,242,0.9);
    max-width: 580px;
  }
  .enrol .ctas {
    display: flex; gap: 16px; justify-content: center;
    flex-wrap: wrap;
  }
  .enrol .btn-cream {
    background: var(--cream);
    color: var(--navy);
    padding: 16px 32px;
    border-radius: 10px 0 10px 10px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
  }
  .enrol .btn-outline {
    border: 1px solid rgba(250,247,242,0.5);
    color: var(--cream);
    padding: 15px 30px;
    border-radius: 10px 0 10px 10px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
  }
  .enrol .footnote {
    margin-top: 40px;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 14px; color: rgba(250,247,242,0.75);
  }
  .enrol .footnote em { color: var(--cream); font-weight: 500; }

  /* ========== FOOTER (Culturis, shared) ========== */
  .fb-footer {
    background: var(--navy); color: rgba(250,247,242,0.65);
    padding: 80px 0 40px; font-size: 13.5px;
    position: relative; overflow: hidden;
  }
  .fb-footer::before {
    content: "Culturis";
    position: absolute;
    bottom: -100px; left: -40px;
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 360px; color: var(--cream);
    opacity: 0.025;
    letter-spacing: -0.04em;
    pointer-events: none; line-height: 1;
  }
  .fb-footer .footer-top {
    display: flex; justify-content: space-between;
    align-items: end; padding-bottom: 48px;
    border-bottom: 1px solid rgba(250,247,242,0.12);
    flex-wrap: wrap; gap: 32px;
    position: relative; z-index: 2;
  }
  .fb-footer .col-brand .wordmark-lg {
    font-family: 'Fraunces', serif; font-weight: 500;
    color: var(--cream); font-size: 36px;
    margin-bottom: 14px; display: block; letter-spacing: -0.02em;
    line-height: 1;
  }
  .fb-footer .col-brand .wordmark-lg .fitness { color: var(--fb-blue); font-style: normal; }
  .fb-footer .col-brand .wordmark-lg em { font-style: italic; color: var(--fb-warm); }
  .fb-footer .col-brand p {
    max-width: 380px; line-height: 1.6;
    color: rgba(250,247,242,0.55); font-size: 13px;
  }
  .fb-footer .culturis-tagline {
    text-align: right;
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 26px; color: var(--cream);
    letter-spacing: -0.015em; line-height: 1.2;
  }
  .fb-footer .culturis-tagline em { color: var(--fb-warm); }
  .fb-footer .culturis-tagline .url {
    display: block; margin-top: 12px;
    font-family: 'Epilogue', sans-serif; font-style: normal;
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em;
    color: rgba(250,247,242,0.55); font-weight: 600;
  }
  .fb-footer .grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 48px; padding: 48px 0 32px;
    border-bottom: 1px solid rgba(250,247,242,0.12);
    position: relative; z-index: 2;
  }
  .fb-footer .grid h6 {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 500;
    font-size: 16px; color: var(--cream); margin-bottom: 18px;
    letter-spacing: -0.005em;
  }
  .fb-footer ul { list-style: none; }
  .fb-footer ul li { padding: 5px 0; }
  .fb-footer ul li a:hover { color: var(--fb-warm); }
  .fb-footer ul li.platform a {
    display: flex; justify-content: space-between; align-items: baseline;
  }
  .fb-footer ul li.platform .role {
    font-family: 'Fraunces', serif; font-style: italic;
    font-size: 11px; color: rgba(250,247,242,0.4);
  }
  .fb-footer .bottom {
    padding-top: 28px;
    display: flex; justify-content: space-between;
    font-size: 12px; color: rgba(250,247,242,0.45);
    flex-wrap: wrap; gap: 12px;
    position: relative; z-index: 2;
  }
  .fb-footer .bottom em {
    font-family: 'Fraunces', serif; font-style: italic; color: var(--fb-warm);
  }

  /* ========== RESPONSIVE ========== */
  @media (max-width: 1024px) {
    .yr-hero h1 { font-size: 96px; }
    .steps .step-card { grid-template-columns: 80px 1fr; }
    .steps .step-card .detail { grid-column: 1 / -1; }
    .pricing .retreat-row { grid-template-columns: 1fr; gap: 20px; }
  }
  @media (max-width: 760px) {
    .manifesto .row, .steps .head, .tracks .grid3, .pricing .head, .pricing .paths,
    .faq .head, .faq .grid2, .fb-footer .grid {
      grid-template-columns: 1fr !important;
    }
    .yr-hero h1 { font-size: 60px; }
    .yr-hero .meta-strip { grid-template-columns: 1fr 1fr; }
    .steps h2, .tracks h2, .pricing h2, .faq h2 { font-size: 40px; }
    .enrol h2 { font-size: 48px; }
    .steps .step-card { grid-template-columns: 1fr; gap: 24px; }
    .fb-footer .footer-top { flex-direction: column; align-items: flex-start; }
    .fb-footer .culturis-tagline { text-align: left; }
  }
