:root {
    --ink: #173b32;
    --green: #2f694b;
    --green-dark: #214e3b;
    --green-soft: #dfe8d7;
    --sage: #dde6cf;
    --cream: #fbf6e9;
    --paper: #fffdf7;
    --sand: #efe0c3;
    --peach: #efc7aa;
    --peach-soft: #f8e2d2;
    --terracotta: #b95f43;
    --ochre: #d69c39;
    --line: #ddd5c4;
    --muted: #4f6058;
    --shadow: 0 14px 34px rgba(39, 64, 49, .10);
    --serif: "Libre Baskerville", Georgia, serif;
    --sans: "DM Sans", Arial, sans-serif;
    --script: "Caveat", cursive;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.academy-skip { position: fixed; top: 8px; left: 8px; z-index: 9999; transform: translateY(-160%); padding: 9px 15px; color: #fff; background: var(--green-dark); border-radius: 3px; }
.academy-skip:focus { transform: none; }
.academy-container { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.academy-narrow { width: min(820px, calc(100% - 48px)); margin-inline: auto; }

h1, h2, h3 { margin: 0; color: var(--ink); font-family: var(--serif); font-weight: 700; line-height: 1.12; letter-spacing: -.035em; }
h1 { font-size: clamp(2.65rem, 5vw, 4.85rem); }
h2 { font-size: clamp(1.8rem, 3.1vw, 3.05rem); }
h3 { font-size: clamp(1.05rem, 1.6vw, 1.38rem); }
p { margin: 0 0 1rem; }
ul { padding-left: 1.15rem; }
.academy-eyebrow { margin-bottom: .7rem; color: var(--terracotta); font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.academy-lead { color: var(--muted); font-size: clamp(.98rem, 1.35vw, 1.12rem); }
.academy-script { position: relative; display: inline-block; color: #553329; font-family: var(--script); font-size: clamp(2rem, 3.5vw, 3.2rem); font-weight: 700; line-height: .95; letter-spacing: 0; transform: rotate(-1deg); }
.academy-script::after { content: ""; position: absolute; z-index: -1; inset: 45% -.25em -.16em; background: rgba(247, 214, 127, .72); clip-path: polygon(2% 14%,98% 0,100% 86%,0 100%); }
.academy-section { padding: clamp(54px, 6vw, 84px) 0; }
.academy-section--compact { padding-block: clamp(34px, 4vw, 50px); }
.academy-section--paper { background: var(--paper); }
.academy-section--mist { background: #f1f3e8; }
.academy-section--green { color: #fff; background: var(--green-dark); }
.academy-section-heading { max-width: 750px; margin: 0 auto 38px; text-align: center; }
.academy-section-heading p:not(.academy-eyebrow) { max-width: 620px; margin: 12px auto 0; color: var(--muted); }

.academy-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,253,247,.97); border-bottom: 1px solid rgba(23,59,50,.1); backdrop-filter: blur(10px); }
.academy-header__inner { min-height: 68px; display: flex; align-items: center; gap: 24px; }
.academy-brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.academy-brand img { width: 50px; height: 50px; object-fit: contain; }
.academy-brand span { display: grid; }
.academy-brand strong { font: 700 1.05rem/1 var(--serif); letter-spacing: -.035em; }
.academy-brand small { margin-top: 5px; font-size: .53rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.academy-nav { flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: clamp(12px, 1.35vw, 22px); }
.academy-nav > a { position: relative; font-size: .79rem; font-weight: 600; white-space: nowrap; }
.academy-nav > a:not(.academy-button)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px; background: var(--terracotta); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.academy-nav > a:hover::after, .academy-nav > a.is-active::after { transform: scaleX(1); }
.academy-nav-toggle { display: none; width: 42px; height: 42px; padding: 9px; border: 0; background: transparent; }
.academy-nav-toggle span:not(.sr-only) { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--ink); }
.academy-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 22px; color: #fff; background: var(--green); border: 1px solid var(--green); border-radius: 5px; font-weight: 700; line-height: 1.2; box-shadow: 0 4px 0 rgba(23,59,50,.12); cursor: pointer; transition: transform .18s ease, background .18s ease; }
.academy-button:hover { color: #fff; background: var(--green-dark); transform: translateY(-1px); }
.academy-button--small { min-height: 42px; padding: 9px 16px; font-size: .75rem !important; }
.academy-button--terracotta { background: var(--terracotta); border-color: var(--terracotta); }
.academy-button--ghost { color: var(--green); background: transparent; box-shadow: none; }
.academy-button--outline { color: var(--green); background: transparent; border-color: currentColor; box-shadow: none; }
.academy-button--outline:hover { color: #fff; background: var(--green); }
.academy-account-link { color: var(--ink); }
.academy-flash { margin-top: 18px; padding: 13px 16px; border: 1px solid #b9d2bf; background: #e9f2e6; }

.academy-hero { overflow: hidden; background: #f8eedb; }
.academy-hero__grid { min-height: 482px; display: grid; grid-template-columns: .82fr 1.18fr; }
.academy-hero__content { z-index: 2; align-self: center; padding: 42px 28px 42px 0; }
.academy-hero__content h1 { max-width: 540px; margin-bottom: 12px; }
.academy-hero__content .academy-script { max-width: 520px; margin-bottom: 21px; }
.academy-hero__content .academy-lead { max-width: 520px; margin-bottom: 22px; }
.academy-hero__note { margin: 12px 0 0; color: var(--muted); font-size: .75rem; }
.academy-hero__visual { position: relative; min-height: 482px; }
.academy-hero__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.academy-hero__visual::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 18%; background: linear-gradient(90deg,#f8eedb,transparent); }
.academy-trustbar { background: var(--paper); border-bottom: 1px solid var(--line); }
.academy-trustbar__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.academy-trust-item { min-height: 88px; display: flex; align-items: center; justify-content: center; gap: 11px; padding: 13px 16px; border-right: 1px solid var(--line); }
.academy-trust-item:last-child { border-right: 0; }
.academy-trust-icon { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 44px; color: var(--terracotta); font: 700 1.2rem var(--serif); }
.academy-trust-item strong { font: 700 .86rem/1.25 var(--serif); }

.academy-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.academy-path { position: relative; overflow: hidden; min-height: 225px; padding: 30px 43% 28px 30px; background: #f6d9c3; border: 1px solid rgba(185,95,67,.12); }
.academy-path:nth-child(2) { background: #e4ead4; border-color: rgba(47,105,75,.12); }
.academy-path h2 { margin-bottom: 10px; color: #793429; font-size: clamp(1.75rem, 3vw, 2.65rem); }
.academy-path:nth-child(2) h2 { color: var(--ink); }
.academy-path p:not(.academy-eyebrow) { color: #3f5048; font-size: .92rem; }
.academy-path img { position: absolute; inset: 0 0 0 auto; width: 45%; height: 100%; object-fit: cover; mask-image: linear-gradient(90deg,transparent 0,#000 35%); opacity: .92; }
.academy-link { display: inline-flex; padding: 9px 13px; color: #fff; background: var(--terracotta); border-radius: 4px; font-size: .75rem; font-weight: 700; }
.academy-path:nth-child(2) .academy-link { background: var(--green); }

.academy-process-home { padding: clamp(44px, 5vw, 64px) 0 clamp(50px, 5vw, 68px); background: var(--cream); }
.academy-process-home .academy-section-heading { margin-bottom: 16px; }
.academy-process-home .academy-section-heading .academy-eyebrow { margin-bottom: 4px; }
.academy-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; counter-reset: step; }
.academy-step { position: relative; min-height: 222px; padding: 37px 24px 20px; text-align: center; background: radial-gradient(ellipse at 50% 58%, rgba(244,224,180,.58) 0 54%, transparent 55%); }
.academy-step:nth-child(2) { background-image: radial-gradient(ellipse at 50% 58%, rgba(247,228,188,.52) 0 54%, transparent 55%); }
.academy-step:nth-child(3) { background-image: radial-gradient(ellipse at 50% 58%, rgba(238,226,190,.48) 0 54%, transparent 55%); }
.academy-step:nth-child(4) { background-image: radial-gradient(ellipse at 50% 58%, rgba(221,230,207,.72) 0 54%, transparent 55%); }
.academy-step::after { content: "→"; position: absolute; top: 49%; right: -19px; color: var(--ink); font: 400 1.65rem var(--serif); }
.academy-step:last-child::after { display: none; }
.academy-step::before { counter-increment: step; content: counter(step); position: absolute; top: 0; left: calc(50% - 18px); width: 36px; height: 36px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-weight: 700; }
.academy-step__icon { width: 64px; height: 64px; margin: 11px auto 8px; display: grid; place-items: center; color: #7c3828; }
.academy-step__icon svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.academy-step h3 { font-size: 1.12rem; line-height: 1.2; letter-spacing: -.025em; }
.academy-step p { max-width: 225px; margin: 7px auto 0; color: var(--muted); font-size: .79rem; line-height: 1.45; }
.academy-values { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 390px; background: var(--paper); }
.academy-values__content { padding: 48px max(28px,calc((100vw - 1180px)/2)); padding-right: 44px; align-content: center; }
.academy-values__image img { width: 100%; height: 100%; object-fit: cover; }
.academy-mini-icons { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 24px; }
.academy-mini-icons div { padding-top: 11px; border-top: 1px solid var(--line); font-size: .76rem; font-weight: 700; }
.academy-quotes { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.academy-quote { position: relative; min-height: 210px; margin: 0; padding: 34px 28px 27px; display: flex; flex-direction: column; justify-content: center; text-align: center; background: #f7e9df; border: 1px solid rgba(101,78,57,.1); border-radius: 14px; box-shadow: 0 9px 22px rgba(75,66,49,.06); }
.academy-quote:nth-child(3n+2) { background: #e8eee3; }
.academy-quote:nth-child(3n) { background: #f5e4df; }
.academy-quote::before { content: "♥"; display: block; margin-bottom: 12px; color: #c69383; font-size: 1.08rem; }
.academy-quote:nth-child(3n+2)::before { color: #8da183; }
.academy-quote p { margin-bottom: 15px; font: 400 .9rem/1.58 var(--serif); }
.academy-quote cite { margin-top: auto; color: var(--muted); font-size: .74rem; font-style: normal; font-weight: 700; }
.academy-cta { padding: 34px 0; color: var(--ink); background: linear-gradient(90deg,#e4ead6,#f1e1c5); }
.academy-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.academy-cta h2 { max-width: 760px; font-size: clamp(1.55rem,3vw,2.35rem); }

.academy-page-hero { overflow: hidden; padding: clamp(48px,6vw,76px) 0; background: linear-gradient(100deg,#fbf6e9 0,#f4ead7 55%,#e2ead7 100%); }
.academy-page-hero--centered { padding-block: clamp(68px, 8vw, 108px); text-align: center; }
.academy-page-hero--centered .academy-lead { max-width: 650px; margin: 18px auto 0; }
.academy-page-hero__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 46px; }
.academy-page-hero h1 { margin-bottom: 16px; font-size: clamp(2.55rem,4.6vw,4.6rem); }
.academy-page-hero p { max-width: 610px; }
.academy-page-hero img { width: 100%; height: clamp(280px,31vw,420px); object-fit: cover; border-radius: 4px; box-shadow: var(--shadow); }
.academy-support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.academy-support-card { padding: 29px; background: #f8f0df; border: 1px solid var(--line); }
.academy-support-card:nth-child(2) { background: #eef1e1; }
.academy-support-card ul { margin: 20px 0 0; padding: 0; list-style: none; }
.academy-support-card li { position: relative; padding: 9px 0 9px 27px; border-top: 1px solid rgba(23,59,50,.12); }
.academy-support-card li::before { content: "✓"; position: absolute; left: 2px; color: var(--green); font-weight: 700; }
.academy-audience { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.academy-audience > div { padding: 28px 24px; text-align: center; background: rgba(255,255,255,.65); border: 1px solid var(--line); }
.academy-audience--values > div { min-height: 230px; display: grid; place-content: center; }
.academy-value-mark { width: 42px; height: 42px; margin: 0 auto 17px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font: 700 .8rem var(--sans); }
.academy-lessons-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
.academy-lessons-feature img { width: 100%; box-shadow: var(--shadow); }
.academy-feature-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.academy-feature { padding: 23px 15px; text-align: center; background: var(--paper); border: 1px solid var(--line); }
.academy-feature span { display: block; margin-bottom: 8px; color: var(--terracotta); font-size: 1.7rem; }
.academy-feature h3 { font-size: .98rem; letter-spacing: -.02em; }
.academy-feature p { max-width: 210px; margin: 8px auto 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.academy-feature-row--tutoring .academy-feature { padding-block: 20px; border-width: 0 1px 0 0; }
.academy-feature-row--tutoring .academy-feature:first-child { border-left: 1px solid var(--line); }
.academy-programs { max-width: 900px; margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.academy-program-card { position: relative; padding: 28px; border: 1px solid var(--line); }
.academy-program-card--peach { background: #f7e0cf; }
.academy-program-card--sage { background: #e6ecd9; }
.academy-program-card__icon { position: absolute; top: 22px; right: 25px; color: var(--terracotta); font: 700 2rem var(--serif); }
.academy-program-card h2 { padding-right: 48px; font-size: 1.45rem; }
.academy-program-card h2 small { display: block; margin-top: 5px; font: 600 .72rem var(--sans); }
.academy-program-card ul { margin: 22px 0; padding: 0; list-style: none; }
.academy-program-card li { position: relative; padding: 7px 0 7px 24px; border-top: 1px solid rgba(23,59,50,.12); }
.academy-program-card li::before { content: "✓"; position: absolute; left: 1px; color: var(--green); font-weight: 700; }

.academy-shop-hero { overflow: hidden; background: linear-gradient(90deg,#faf4e7,#efe5d2); }
.academy-shop-hero__inner { min-height: 370px; display: grid; grid-template-columns: 1fr .95fr; align-items: center; gap: 42px; }
.academy-shop-hero__inner > div { padding: 48px 0; }
.academy-shop-hero h1 { max-width: 700px; font-size: clamp(2.45rem,4.15vw,4rem); }
.academy-shop-hero p:not(.academy-eyebrow) { max-width: 640px; margin-top: 14px; color: var(--muted); }
.academy-shop-hero img { width: 100%; height: 370px; object-fit: cover; object-position: center; }
.academy-shop-hero--resources .academy-shop-hero__inner { min-height: 380px; }
.academy-shop-hero--resources img { height: 380px; }
.academy-shop-hero + .academy-section { padding-top: clamp(42px, 4.8vw, 68px); }
.academy-resource-grid--shop { grid-template-columns: repeat(4,1fr); }
.academy-resource-grid--shop .academy-resource-card { height: 100%; }
.academy-resource-grid--shop .academy-resource-card__image { aspect-ratio: 4 / 5; overflow: hidden; padding: 0; }
.academy-resource-grid--shop .academy-resource-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.academy-resource-grid--shop .academy-resource-card__body { gap: 8px; min-height: 208px; }
.academy-resource-grid--shop .academy-resource-card__body > p { margin: 0; }
.academy-resource-grid--shop .academy-price { margin-bottom: 4px; }
.academy-resource-grid--shop .academy-card-button { width: 100%; margin-top: auto; border: 0; cursor: pointer; }

.academy-filterbar { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-bottom: 36px; }
.academy-filterbar button { min-height: 42px; padding: 9px 17px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 2px; font-size: .78rem; font-weight: 600; cursor: pointer; }
.academy-filterbar button.is-active { color: #fff; background: var(--green); border-color: var(--green); }
.academy-resource-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.academy-resource-card { display: flex; flex-direction: column; overflow: hidden; background: var(--paper); border: 1px solid #e1d6c3; border-radius: 2px; box-shadow: 0 5px 14px rgba(39,64,49,.035); }
.academy-resource-card__image { aspect-ratio: .86; padding: 12px; background: #f2ead9; }
.academy-resource-card__image img { width: 100%; height: 100%; object-fit: contain; }
.academy-resource-grid--resources { grid-template-columns: repeat(3,1fr); max-width: 980px; margin-inline: auto; }
.academy-resource-grid--resources .academy-resource-card__image { aspect-ratio: 1.12; }
.academy-section-heading--resources { margin-bottom: 30px; }
.academy-resource-paths { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.academy-resource-path { position: relative; min-height: 310px; display: flex; flex-direction: column; padding: 31px 30px 28px; overflow: hidden; background: #f7ead9; border: 1px solid var(--line); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.academy-resource-path::after { content: ""; position: absolute; right: -42px; bottom: -58px; width: 190px; height: 190px; border: 1px solid rgba(47,105,75,.16); border-radius: 50%; }
.academy-resource-path--lessons { background: #e7eddc; }
.academy-resource-path--free { background: #f4dfd2; }
.academy-resource-path:hover { transform: translateY(-3px); border-color: rgba(47,105,75,.36); box-shadow: var(--shadow); }
.academy-resource-path__number { position: absolute; top: 24px; right: 27px; color: rgba(23,59,50,.42); font: 700 .78rem var(--sans); letter-spacing: .12em; }
.academy-resource-path .academy-eyebrow { margin: 0 48px 38px 0; }
.academy-resource-path h3 { max-width: 285px; font-size: clamp(1.35rem,2vw,1.8rem); }
.academy-resource-path > p:not(.academy-eyebrow) { max-width: 310px; margin: 13px 0 24px; color: var(--muted); font-size: .88rem; }
.academy-resource-path > strong { position: relative; z-index: 1; margin-top: auto; color: var(--green); font-size: .8rem; }
.academy-resource-path > strong span { display: inline-block; margin-left: 5px; }
.academy-resource-card__placeholder { display: grid; place-items: center; background: linear-gradient(145deg,#f5e4d0,#fbf5e8); }
.academy-resource-card__placeholder span { width: 104px; aspect-ratio: 1; display: grid; place-items: center; color: var(--terracotta); background: rgba(255,255,255,.62); border: 1px solid rgba(182,93,61,.2); border-radius: 50%; font: 700 2.05rem var(--serif); }
.academy-resource-card__placeholder--2 { background: linear-gradient(145deg,#e7eedb,#fbf6e8); }
.academy-resource-card__placeholder--2 span { color: var(--green); border-color: rgba(47,105,75,.2); }
.academy-resource-card__placeholder--3 { background: linear-gradient(145deg,#f5dfd4,#f8efe5); }
.academy-resource-card--preview .academy-card-button { background: #356f51; }
.academy-resource-card__body { display: flex; flex: 1; flex-direction: column; padding: 20px 17px 18px; text-align: center; }
.academy-resource-card h2 { font-family: var(--serif); font-size: 1.02rem; line-height: 1.28; letter-spacing: -.025em; }
.academy-resource-card p { margin: 8px 0 13px; color: var(--muted); font-size: .79rem; line-height: 1.45; }
.academy-resource-card__meta { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.academy-price { color: var(--ink); font: 700 1.08rem var(--serif); }
.academy-card-button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 12px; color: #fff; background: var(--green); border-radius: 2px; font-size: .72rem; font-weight: 700; }
.academy-book-detail { display: grid; grid-template-columns: .75fr 1.25fr; gap: 54px; align-items: start; }
.academy-book-detail__cover { position: sticky; top: 92px; padding: 24px; background: var(--sand); }
.academy-book-detail__cover img { width: 100%; max-height: 650px; object-fit: contain; }
.academy-book-detail__content h1 { font-size: clamp(2.35rem,4vw,4rem); }
.academy-book-detail__content > .academy-price { display: block; margin: 17px 0; font-size: 1.55rem; }
.academy-detail-icons { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 28px 0; }
.academy-detail-icons div { padding: 15px 7px; text-align: center; background: #f8f1e2; border: 1px solid var(--line); font-size: .7rem; }
.academy-copy-panel { margin-top: 24px; padding: 25px 0; border-top: 1px solid var(--line); }
.academy-copy-panel h2 { margin-bottom: 13px; font-size: 1.3rem; }
.academy-service-meta { display: flex; flex-wrap: wrap; gap: 9px; margin: 20px 0; }
.academy-service-meta span { padding: 7px 11px; color: var(--green); background: #e4ead8; border: 1px solid #cad6c4; font-size: .78rem; font-weight: 700; }
.academy-plan-grid { max-width: 900px; margin-inline: auto; display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; }
.academy-plan-card { padding: 32px; background: #f8f0df; border: 1px solid var(--line); }
.academy-plan-card:nth-child(even) { background: #e7ecd9; }
.academy-plan-card > strong { display: block; margin: 18px 0 10px; color: var(--green); font: 700 2rem var(--serif); }

.academy-process-list { max-width: 880px; margin-inline: auto; counter-reset: process; }
.academy-process-item { position: relative; min-height: 130px; display: grid; grid-template-columns: 56px 72px 1fr; align-items: center; gap: 20px; padding: 22px 16px; border-bottom: 1px solid var(--line); }
.academy-process-item::before { counter-increment: process; content: counter(process); width: 50px; height: 50px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font: 700 1.2rem var(--serif); }
.academy-process-item__icon { width: 66px; height: 66px; display: grid; place-items: center; color: var(--terracotta); background: #f7ead2; border-radius: 50%; }
.academy-process-item__icon svg { width: 42px; height: 42px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.academy-process-item h2 { font-size: 1.35rem; }
.academy-process-item p { margin: 7px 0 0; color: var(--muted); }
.academy-form-card { padding: clamp(24px,4vw,44px); background: rgba(255,253,247,.96); border: 1px solid var(--line); box-shadow: var(--shadow); }
.academy-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.academy-field { display: grid; gap: 6px; }
.academy-field--full { grid-column: 1/-1; }
.academy-field label, .academy-field > span { font-size: .81rem; font-weight: 700; }
.academy-field input, .academy-field textarea, .academy-field select { width: 100%; padding: 12px 13px; color: var(--ink); background: #fff; border: 1px solid #cfc8b8; border-radius: 2px; }
.academy-field textarea { min-height: 130px; resize: vertical; }
.academy-error { color: #9d2f2f; font-size: .77rem; }
.academy-checklist { margin: 23px 0; padding: 0; list-style: none; }
.academy-checklist li { position: relative; padding: 6px 0 6px 27px; }
.academy-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 700; }
.academy-login-page { min-height: calc(100vh - 68px); padding: 72px 0; background: linear-gradient(90deg,rgba(250,245,233,.3),rgba(250,245,233,.2)), url('/academy/images/recorded-lessons.png') center/cover; }
.academy-login-card { max-width: 500px; margin: auto; padding: 40px; background: rgba(255,253,247,.97); border: 1px solid var(--line); box-shadow: var(--shadow); }
.academy-auth-page { padding: clamp(55px,7vw,90px) 0; background: linear-gradient(90deg,#f5ead8,#eef0df); }
.academy-auth-split { min-height: 540px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; }
.academy-auth-split__visual { overflow: hidden; box-shadow: var(--shadow); }
.academy-auth-split__visual img { width: 100%; height: 100%; object-fit: cover; }
.academy-auth-split .academy-login-card { width: 100%; max-width: none; display: grid; align-content: center; margin: 0; box-shadow: var(--shadow); }
.academy-auth-split .academy-login-card h1 { margin-bottom: 10px; font-size: clamp(2.2rem,4vw,3.7rem); text-align: center; }
.academy-auth-split .academy-login-card > p { text-align: center; }
.academy-checkbox { display: flex; align-items: center; gap: 8px; font-size: .82rem; }
.academy-form-link { color: var(--green); font-size: .8rem; font-weight: 700; text-align: center; }
.academy-auth-register { margin: 15px 0 0; color: var(--muted); font-size: .8rem; text-align: center; }
.academy-auth-register a { color: var(--green); font-weight: 700; }
.academy-form-stack { display: grid; gap: 18px; margin: 25px 0 18px; }
.academy-form-alert, .academy-form-success { padding: 13px 15px; border: 1px solid #d6a49a; background: #fff2ee; color: #7d2e24; font-size: .86rem; }
.academy-form-success { border-color: #b9d2bf; background: #e9f2e6; color: var(--green-dark); }
.academy-field-error { color: #9d2f2f; font-size: .75rem; }

.academy-compact-hero { padding: clamp(62px, 8vw, 104px) 0; background: linear-gradient(105deg, #efe6d3, #f8f1e4 58%, #e7eddd); border-bottom: 1px solid var(--line); }
.academy-compact-hero h1 { font-size: clamp(2.6rem, 5vw, 4.7rem); }
.academy-compact-hero p:not(.academy-eyebrow) { max-width: 690px; margin: 15px 0 0; color: var(--muted); font-size: 1.02rem; }

.academy-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.academy-video-card { overflow: hidden; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 10px 24px rgba(39,64,49,.07); }
.academy-video-card__media { position: relative; width: 100%; aspect-ratio: 16 / 10; display: block; overflow: hidden; padding: 0; border: 0; background: var(--green-dark); cursor: pointer; }
.academy-video-card__media img, .academy-video-card__media video { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
.academy-video-card__play { position: absolute; inset: 50% auto auto 50%; width: 56px; height: 56px; display: grid; place-items: center; padding-left: 3px; color: #fff; background: rgba(47,105,75,.94); border: 3px solid rgba(255,255,255,.82); border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 8px 22px rgba(23,59,50,.22); }
.academy-video-card__copy { min-height: 188px; padding: 24px; }
.academy-video-card__copy h3 { margin-bottom: 9px; font-size: 1.25rem; }
.academy-video-card__copy > p:last-child { margin: 0; color: var(--muted); font-size: .86rem; }
.academy-video-dialog { width: min(1100px, calc(100% - 34px)); max-width: none; max-height: calc(100dvh - 34px); padding: 50px 18px 18px; border: 0; background: #102d25; box-shadow: 0 25px 90px rgba(0,0,0,.45); }
.academy-video-dialog::backdrop { background: rgba(8,22,18,.82); backdrop-filter: blur(6px); }
.academy-video-dialog video { width: 100%; height: auto; max-height: calc(100dvh - 102px); display: block; margin: auto; object-fit: contain; background: #07110e; }
.academy-video-dialog__close { position: absolute; top: 8px; right: 10px; width: 36px; height: 36px; display: grid; place-items: center; padding: 0; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; font-size: 1.5rem; cursor: pointer; }

.academy-legal-hero { text-align: center; }
.academy-legal-hero .academy-eyebrow, .academy-legal-hero p:not(.academy-eyebrow) { margin-inline: auto; }
.academy-legal-content { width: min(900px, calc(100% - 48px)); }
.academy-legal-content h2, .academy-legal-content h3 { margin: 2.1rem 0 .75rem; }
.academy-legal-content h2 { font-size: clamp(1.45rem, 2.2vw, 2rem); }
.academy-legal-content h3 { font-size: 1.13rem; }
.academy-legal-content p, .academy-legal-content li { color: var(--muted); }
.academy-legal-content a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

.academy-admin-login__split { grid-template-columns: .95fr 1.05fr; }
.academy-admin-login__intro { position: relative; overflow: hidden; display: grid; align-content: center; padding: clamp(34px,5vw,70px); color: #fff; background: var(--green-dark); box-shadow: var(--shadow); }
.academy-admin-login__intro::after { content: ""; position: absolute; width: 290px; height: 290px; right: -110px; bottom: -115px; background: rgba(255,255,255,.06); border-radius: 50%; }
.academy-admin-login__intro h1 { color: #fff; font-size: clamp(2.7rem,5vw,4.9rem); }
.academy-admin-login__intro > p:not(.academy-eyebrow) { max-width: 460px; margin-top: 17px; color: rgba(255,255,255,.78); }
.academy-admin-login__intro .academy-eyebrow { color: #efc7aa; }
.academy-admin-login__mark { width: 74px; height: 74px; margin-top: 34px; display: grid; place-items: center; color: var(--green-dark); background: var(--cream); border-radius: 50%; font: 700 1.2rem var(--serif); }
.academy-admin-login .academy-login-card h2 { margin: 4px 0 9px; text-align: left; font-size: clamp(2rem,3vw,3rem); }
.academy-admin-login .academy-login-card > p { text-align: left; }
.academy-auth-modal { width: min(460px, calc(100% - 28px)); padding: 0; border: 0; background: transparent; }
.academy-auth-modal::backdrop { background: rgba(8,22,18,.75); backdrop-filter: blur(4px); }
.academy-auth-modal__panel { position: relative; padding: 34px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); }
.academy-auth-modal__panel h2 { margin-bottom: 10px; font-size: 1.7rem; }
.academy-auth-modal__panel .academy-field { margin: 22px 0 10px; }
.academy-auth-modal__close { position: absolute; top: 9px; right: 12px; border: 0; background: transparent; color: var(--muted); font-size: 1.7rem; cursor: pointer; }

.academy-account-hero__inner { display: flex; align-items: end; justify-content: space-between; gap: 34px; }
.academy-account-hero__inner .academy-button { flex: 0 0 auto; }
.academy-account-layout { display: grid; grid-template-columns: 240px minmax(0,1fr); align-items: start; gap: 34px; }
.academy-account-nav { position: sticky; top: 92px; overflow: hidden; padding: 15px 0; background: #f4eddf; border: 1px solid var(--line); }
.academy-account-nav__label { margin: 0; padding: 8px 20px 13px; color: var(--terracotta); font-size: .69rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.academy-account-nav a, .academy-account-nav button { width: 100%; display: block; padding: 11px 20px; color: var(--ink); background: transparent; border: 0; text-align: left; font-size: .84rem; font-weight: 600; cursor: pointer; }
.academy-account-nav a:hover, .academy-account-nav button:hover, .academy-account-nav a.is-active { color: #fff; background: var(--green); }
.academy-account-nav form { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.academy-account-nav form button { color: #8c3628; }
.academy-account-main { min-width: 0; display: grid; gap: 22px; }
.academy-account-card { padding: clamp(23px,3.5vw,38px); background: #fff; border: 1px solid var(--line); box-shadow: 0 9px 25px rgba(39,64,49,.05); }
.academy-account-card h2 { margin-bottom: 10px; font-size: clamp(1.45rem,2.2vw,2rem); }
.academy-account-card__heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.academy-account-card__heading h2, .academy-account-card__heading .academy-eyebrow { margin-bottom: 0; }
.academy-text-link { color: var(--green); font-size: .8rem; font-weight: 700; }
.academy-account-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 0; }
.academy-account-facts div { padding: 17px; background: #f8f2e6; border: 1px solid var(--line); }
.academy-account-facts dt { color: var(--muted); font-size: .69rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.academy-account-facts dd { margin: 7px 0 0; overflow-wrap: anywhere; font-size: .87rem; font-weight: 600; }
.academy-status { display: inline-flex; padding: 4px 8px; color: #5b625e; background: #ecefe9; border-radius: 999px; font-size: .7rem; font-weight: 700; }
.academy-status.is-success { color: #1d6644; background: #e0efe5; }
.academy-membership-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: linear-gradient(100deg,#f5ead7,#eef0df); }
.academy-membership-card p:not(.academy-eyebrow) { max-width: 600px; margin: 0; color: var(--muted); }
.academy-account-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 9px; }
.academy-account-table-wrap { overflow-x: auto; }
.academy-account-table { width: 100%; border-collapse: collapse; }
.academy-account-table th, .academy-account-table td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; font-size: .82rem; }
.academy-account-table th { color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.academy-account-table td a, .academy-account-empty a { color: var(--green); font-weight: 700; }
.academy-account-empty { padding: 25px; color: var(--muted); background: #f8f2e6; text-align: center; }
.academy-activity-list { margin: 18px 0 0; padding: 0; list-style: none; }
.academy-activity-list li { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 0; border-top: 1px solid var(--line); }
.academy-activity-list time { color: var(--muted); font-size: .76rem; }

.academy-dashboard-header { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.academy-progress { width: 250px; padding: 17px; background: var(--paper); border: 1px solid var(--line); }
.academy-progress__bar { height: 8px; margin-top: 8px; overflow: hidden; background: #dfe4dc; }
.academy-progress__bar span { display: block; height: 100%; background: var(--green); }
.academy-lesson-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 28px 0; }
.academy-lesson-tabs button { padding: 9px 15px; background: var(--paper); border: 1px solid var(--line); cursor: pointer; }
.academy-lesson-tabs button.is-active { color: #fff; background: var(--green); }
.academy-lesson-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.academy-lesson-card { overflow: hidden; background: var(--paper); border: 1px solid var(--line); }
.academy-lesson-card__thumb { position: relative; display: block; aspect-ratio: 16/9; background: var(--sand); }
.academy-lesson-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.academy-play { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 46px; height: 46px; display: grid; place-items: center; color: #fff; background: rgba(47,105,75,.94); border-radius: 50%; }
.academy-lesson-card__body { padding: 16px; }
.academy-lesson-card__body h3 { font-size: .95rem; }
.academy-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.academy-about-photo { min-height: 480px; overflow: hidden; }
.academy-about-photo img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; }
.academy-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-top: 38px; }
.academy-stat { padding: 22px; text-align: center; background: rgba(255,255,255,.7); border: 1px solid var(--line); }
.academy-stat strong { display: block; color: var(--terracotta); font: 700 1.5rem var(--serif); }
.academy-contact-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(34px, 6vw, 76px); align-items: start; }
.academy-contact-copy { padding-top: 14px; }
.academy-contact-list { display: grid; gap: 13px; margin-top: 24px; }
.academy-contact-list div { display: grid; grid-template-columns: 42px 1fr; align-items: start; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.academy-contact-list span { width: 38px; height: 38px; display: grid; place-items: center; color: var(--terracotta); background: #f8ead7; border-radius: 50%; font-weight: 700; }
.academy-contact-list p { margin: 0; color: var(--muted); font-size: .88rem; }
.academy-contact-list strong { color: var(--ink); }

.academy-footer { padding: 42px 0 18px; color: var(--ink); background: #eee7d6; border-top: 1px solid var(--line); }
.academy-footer__grid { display: grid; grid-template-columns: 1.7fr repeat(3,1fr); gap: 42px; }
.academy-brand--footer { color: var(--ink); }
.academy-footer p { max-width: 360px; margin-top: 16px; color: var(--muted); font-size: .84rem; }
.academy-footer h2 { margin-bottom: 13px; font: 700 .75rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.academy-footer__grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 7px; font-size: .84rem; }
.academy-footer__grid a:hover { color: var(--terracotta); }
.academy-footer__bottom { margin-top: 36px; padding-top: 17px; display: flex; justify-content: space-between; gap: 20px; color: #6e756f; border-top: 1px solid rgba(23,59,50,.14); font-size: .72rem; }

@media (max-width: 1080px) {
    .academy-nav { gap: 10px; }
    .academy-nav > a { font-size: .7rem; }
    .academy-resource-grid, .academy-lesson-grid { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 900px) {
    .academy-container { width: min(100% - 34px, 760px); }
    .academy-header__inner { min-height: 64px; }
    .academy-nav-toggle { display: block; margin-left: auto; }
    .academy-nav { position: fixed; inset: 64px 0 auto; max-height: calc(100vh - 64px); overflow: auto; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 18px 24px 28px; background: var(--paper); border-top: 1px solid var(--line); box-shadow: var(--shadow); }
    .academy-nav.is-open { display: flex; }
    .academy-nav > a { padding: 12px 3px; font-size: .95rem; }
    .academy-nav > a::after { display: none; }
    .academy-button--small { margin-top: 9px; }
    .academy-account-link { text-align: center; }
    .academy-hero__grid, .academy-page-hero__grid { grid-template-columns: 1fr; }
    .academy-hero__content { padding: 50px 0 32px; text-align: center; }
    .academy-hero__content h1, .academy-hero__content .academy-lead { margin-inline: auto; }
    .academy-hero__visual { min-height: 390px; margin-inline: -17px; }
    .academy-hero__visual::after { inset: 0 0 auto; width: 100%; height: 14%; background: linear-gradient(#f8eedb,transparent); }
    .academy-page-hero__grid { gap: 30px; }
    .academy-trustbar__grid { grid-template-columns: 1fr 1fr; }
    .academy-trust-item:nth-child(2) { border-right: 0; }
    .academy-trust-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .academy-values, .academy-about-grid, .academy-contact-grid, .academy-book-detail, .academy-lessons-feature, .academy-auth-split, .academy-account-layout { grid-template-columns: 1fr; }
    .academy-video-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .academy-account-nav { position: static; display: grid; grid-template-columns: repeat(2,1fr); padding: 8px; }
    .academy-account-nav__label, .academy-account-nav form { grid-column: 1/-1; }
    .academy-account-nav form { margin: 0; padding: 0; border: 0; }
    .academy-auth-split__visual { min-height: 360px; }
    .academy-values__content { padding: 50px 28px; }
    .academy-values__image img { height: 360px; }
    .academy-steps, .academy-feature-row, .academy-stat-grid { grid-template-columns: 1fr 1fr; }
    .academy-quotes { grid-template-columns: repeat(2,1fr); }
    .academy-step:nth-child(2)::after { display: none; }
    .academy-resource-grid, .academy-resource-grid--shop, .academy-lesson-grid { grid-template-columns: repeat(2,1fr); }
    .academy-resource-paths { grid-template-columns: 1fr 1fr; }
    .academy-resource-path:last-child { grid-column: 1/-1; min-height: 260px; }
    .academy-shop-hero__inner { grid-template-columns: 1fr; padding-top: 45px; text-align: center; }
    .academy-shop-hero__inner p { margin-inline: auto; }
    .academy-shop-hero img, .academy-shop-hero--resources img { height: 330px; }
    .academy-book-detail__cover { position: relative; top: 0; max-width: 480px; margin-inline: auto; }
    .academy-footer__grid { grid-template-columns: 1.5fr 1fr 1fr; }
    .academy-footer__grid > div:last-child { grid-column: 2; }
}

@media (max-width: 620px) {
    body { font-size: 15px; }
    .academy-container, .academy-narrow { width: min(100% - 26px, 520px); }
    h1 { font-size: clamp(2.35rem, 12vw, 3.25rem); }
    h2 { font-size: clamp(1.75rem, 9vw, 2.45rem); }
    .academy-brand img { width: 42px; height: 42px; }
    .academy-brand strong { font-size: .93rem; }
    .academy-brand small { font-size: .44rem; }
    .academy-header__inner { min-height: 58px; }
    .academy-nav { inset: 58px 0 auto; max-height: calc(100vh - 58px); }
    .academy-account-link--desktop { display: none; }
    .academy-hero__content { padding-top: 38px; }
    .academy-hero__content .academy-script { font-size: 2rem; }
    .academy-hero__visual { min-height: 290px; margin-inline: -13px; }
    .academy-trustbar__grid { grid-template-columns: 1fr 1fr; }
    .academy-trust-item { min-height: 74px; justify-content: flex-start; padding: 10px 8px; }
    .academy-trust-icon { width: 35px; height: 35px; flex-basis: 35px; font-size: 1rem; }
    .academy-trust-item strong { font-size: .68rem; }
    .academy-paths, .academy-support-grid, .academy-audience, .academy-steps, .academy-quotes, .academy-feature-row, .academy-programs, .academy-plan-grid, .academy-resource-grid, .academy-resource-grid--shop, .academy-detail-icons, .academy-lesson-grid, .academy-stat-grid, .academy-form-grid, .academy-video-grid, .academy-account-facts { grid-template-columns: 1fr; }
    .academy-resource-paths { grid-template-columns: 1fr; }
    .academy-resource-path, .academy-resource-path:last-child { grid-column: auto; min-height: 265px; padding: 27px 24px 24px; }
    .academy-resource-path .academy-eyebrow { margin-bottom: 28px; }
    .academy-resource-grid--shop .academy-resource-card__image { aspect-ratio: 1 / 1.08; }
    .academy-compact-hero { padding: 46px 0; }
    .academy-account-hero__inner, .academy-membership-card, .academy-account-card__heading { align-items: stretch; flex-direction: column; }
    .academy-account-hero__inner { display: flex; }
    .academy-account-nav { grid-template-columns: 1fr; }
    .academy-account-nav__label, .academy-account-nav form { grid-column: auto; }
    .academy-account-actions { display: grid; width: 100%; }
    .academy-video-card__copy { min-height: 0; }
    .academy-video-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); padding: 48px 8px 8px; }
    .academy-admin-login__intro { min-height: 310px; }
    .academy-quote { min-height: 0; padding: 28px 22px 24px; }
    .academy-shop-hero__inner, .academy-shop-hero--resources .academy-shop-hero__inner { min-height: 0; padding-top: 38px; }
    .academy-shop-hero__inner > div { padding: 0; }
    .academy-shop-hero img { height: 240px; margin-inline: -13px; width: calc(100% + 26px); max-width: none; }
    .academy-path { min-height: 295px; padding: 25px 28px; }
    .academy-path p, .academy-path h2, .academy-path .academy-link { position: relative; z-index: 2; }
    .academy-path p:not(.academy-eyebrow) { max-width: 67%; }
    .academy-path img { width: 62%; opacity: .55; }
    .academy-step { min-height: auto; padding-block: 26px 18px; }
    .academy-step::after { display: none; }
    .academy-mini-icons { grid-template-columns: 1fr; }
    .academy-page-hero { padding: 44px 0; }
    .academy-page-hero img { height: 260px; }
    .academy-values__image img { height: 300px; }
    .academy-cta__inner, .academy-dashboard-header, .academy-footer__bottom { align-items: stretch; flex-direction: column; }
    .academy-button { width: 100%; }
    .academy-process-item { grid-template-columns: 43px 54px 1fr; gap: 12px; padding: 17px 0; }
    .academy-process-item::before { width: 43px; height: 43px; }
    .academy-process-item__icon { width: 52px; height: 52px; }
    .academy-process-item__icon svg { width: 32px; height: 32px; }
    .academy-feature-row--tutoring .academy-feature { border: 1px solid var(--line); }
    .academy-form-card, .academy-login-card { padding: 23px; }
    .academy-auth-page { padding: 0; }
    .academy-auth-page .academy-container { width: 100%; }
    .academy-auth-split__visual { min-height: 260px; }
    .academy-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
    .academy-footer__grid > div:first-child { grid-column: 1/-1; }
    .academy-footer__grid > div:last-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
