/* ── Homepage-only styles (hero, medallion, framework, about strips) ── */
.hero {
      position: relative;
      z-index: 1;
      min-height: 100vh;
      display: flex;
      align-items: center;
      padding: 120px 2rem 80px;
    }

    .hero-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6rem;
      align-items: center;
    }

    .hero-eyebrow {
      font-family: var(--serif-body);
      font-size: 0.8rem;
      font-weight: 400;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1.5rem;
    }

    .hero-title {
      font-family: var(--serif-display);
      font-size: clamp(2.8rem, 5vw, 4.2rem);
      font-weight: 300;
      line-height: 1.15;
      color: var(--green-deep);
      margin-bottom: 1.5rem;
    }

    .hero-title em { font-style: italic; color: var(--green-soft); }

    .hero-subtitle-main {
      font-size: 2.0rem;
      font-weight: 300;
      color: var(--ink-soft);
      line-height: 1.8;
      margin-bottom: 2.5rem;
      max-width: 42ch;
    }

    .hero-subtitle {
      font-size: 1.15rem;
      font-weight: 300;
      color: var(--ink-soft);
      line-height: 1.8;
      margin-bottom: 2.5rem;
      max-width: 42ch;
    }

    .hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

    /* ── Hero visual / medallion ── */
    .hero-visual { display: flex; align-items: center; justify-content: center; }

    .hero-medallion { position: relative; width: 380px; height: 380px; }

    .medallion-ring {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      border: 1px solid rgba(196,149,74,0.25);
    }

    .medallion-ring:nth-child(2) { inset: 20px; border-color: rgba(196,149,74,0.2); transform: rotate(15deg); }
    .medallion-ring:nth-child(3) { inset: 40px; border-color: rgba(28,53,40,0.15); }

    .medallion-center {
      position: absolute;
      inset: 60px;
      background: var(--green-deep);
      border-radius: 50%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.25rem;
    }

    .medallion-lq {
      font-family: var(--serif-display);
      font-size: 3.5rem;
      font-weight: 600;
      color: var(--cream);
      letter-spacing: 0.1em;
      line-height: 1;
    }

    .medallion-tagline {
      font-family: var(--serif-body);
      font-size: 0.65rem;
      font-weight: 300;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold-light);
      opacity: 0.8;
    }

    .medallion-dots {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      animation: rotateSlow 40s linear infinite;
    }

    .medallion-dots::before,
    .medallion-dots::after {
      content: '';
      position: absolute;
      width: 6px;
      height: 6px;
      background: var(--gold);
      border-radius: 50%;
      opacity: 0.6;
    }

    .medallion-dots::before { top: 8px; left: 50%; transform: translateX(-50%); }
    .medallion-dots::after  { bottom: 8px; left: 50%; transform: translateX(-50%); }

    /* ── Section base (shared design-system component, currently only used here) ── */
    section { position: relative; z-index: 1; padding: 6rem 2rem; }
    .section-inner { max-width: 1100px; margin: 0 auto; }

    .section-label {
      font-family: var(--serif-body);
      font-size: 0.75rem;
      font-weight: 400;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1rem;
    }

    .section-title {
      font-family: var(--serif-display);
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 300;
      color: var(--green-deep);
      line-height: 1.2;
      margin-bottom: 1.5rem;
    }

    .section-body {
      font-size: 1.1rem;
      font-weight: 300;
      color: var(--ink-soft);
      max-width: 60ch;
      line-height: 1.8;
    }

    /* ── Framework section (Learn / Love / Live) ── */
    .framework { background: var(--green-deep); }
    .framework .section-label { color: var(--gold-light); }
    .framework .section-title { color: var(--cream); margin-bottom: 0.75rem; }

    .framework-intro {
      font-size: 1.1rem;
      font-weight: 300;
      color: rgba(247,242,232,0.7);
      max-width: 60ch;
      line-height: 1.8;
      margin-bottom: 4rem;
    }

    .framework-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }

    .framework-step {
      background: rgba(255,255,255,0.04);
      padding: 3rem 2.5rem;
      border-top: 2px solid transparent;
      transition: border-color 0.3s, background 0.3s;
    }

    .framework-step:hover { background: rgba(255,255,255,0.07); border-color: var(--gold); }

    .step-number {
      font-family: var(--serif-display);
      font-size: 4rem;
      font-weight: 300;
      color: rgba(196,149,74,0.2);
      line-height: 1;
      margin-bottom: 1rem;
    }

    .step-title {
      font-family: var(--serif-display);
      font-size: 1.8rem;
      font-weight: 500;
      color: var(--cream);
      margin-bottom: 1rem;
    }

    .step-body { font-size: 1rem; font-weight: 300; color: rgba(247,242,232,0.65); line-height: 1.8; }

    .step-arrow { display: inline-block; margin-top: 1.5rem; color: var(--gold); font-size: 1.2rem; opacity: 0.6; }

    /* ── About strips ── */
    .about-begin-strip { background: var(--green-deep); padding: 4rem 2rem; }

    .about-begin-strip-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 5rem;
      align-items: start;
    }

    .about-begin-strip-label {
      font-family: var(--serif-display);
      font-size: 2.5rem;
      font-weight: 300;
      color: var(--cream);
      line-height: 1.2;
    }

    .about-begin-strip-text {
      font-size: 1.05rem;
      font-weight: 300;
      color: rgba(247,242,232,0.7);
      line-height: 1.85;
    }

    .about-begin-strip-text p + p { margin-top: 1rem; }

    .about-strip { background: var(--cream-dark); padding: 4rem 2rem; }

    .about-strip-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 5rem;
      align-items: start;
    }

    .about-strip-label {
      font-family: var(--serif-display);
      font-size: 2.5rem;
      font-weight: 300;
      color: var(--green-deep);
      line-height: 1.2;
    }

    .about-strip-text { font-size: 1.05rem; font-weight: 300; color: var(--ink-soft); line-height: 1.85; }
    .about-strip-text p + p { margin-top: 1rem; }

    /* ── Fade in on load ── */
    .hero-eyebrow       { animation: fadeUp 0.6s ease both; }
    .hero-title         { animation: fadeUp 0.6s 0.1s ease both; }
    .hero-subtitle-main { animation: fadeUp 0.6s 0.2s ease both; }
    .hero-subtitle      { animation: fadeUp 0.6s 0.2s ease both; }
    .hero-actions       { animation: fadeUp 0.6s 0.3s ease both; }
    .hero-visual        { animation: fadeUp 0.8s 0.2s ease both; }

    /* ── Homepage-only responsive rules ── */
    @media (max-width: 768px) {
      .hero-inner { grid-template-columns: 1fr; gap: 3rem; text-align: center; }
      .hero-subtitle { max-width: 100%; }
      .hero-subtitle-main { max-width: 100%; }
      .hero-actions { justify-content: center; }
      .hero-visual { order: -1; }
      .hero-medallion { width: 260px; height: 260px; }
      .medallion-lq { font-size: 2.5rem; }
      .framework-steps { grid-template-columns: 1fr; gap: 2px; }
      .about-strip-inner { grid-template-columns: 1fr; gap: 2rem; }
      .about-begin-strip-inner { grid-template-columns: 1fr; gap: 2rem; }
    }