/* DEFINE Academy — shared by the overview, course pages and homepage. */
.academy-starts { padding-block:70px; background:#fcf4f8; scroll-margin-top:120px; }
.academy-start-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.academy-start-grid--single { grid-template-columns:minmax(0,1fr); max-width:830px; }
.academy-start-card { min-width:0; display:flex; flex-direction:column; padding:26px; background:#fff; border:1px solid #dfc9d6; }
.academy-main .academy-start-card h3 { font:400 1.7rem/1.2 var(--serif); margin:8px 0 13px; overflow-wrap:break-word; }
.academy-start-card>p { font-size:.86rem; color:#685d65; margin:0 0 16px; }
.academy-start-card .academy-start-date { color:#8b456a; font-size:.8rem; font-weight:600; }
.academy-start-card .academy-start-route { color:#211b1f; font-size:.8rem; }
.academy-start-card details { font-size:.8rem; padding-block:14px 22px; border-top:1px solid #e8e0e5; }
.academy-start-card summary { cursor:pointer; font-weight:600; line-height:1.6; color:#4e2b40; }
.academy-start-card summary:focus-visible { outline:2px solid #9b4771; outline-offset:5px; }
.academy-start-dates { padding-left:20px; margin:15px 0 0; line-height:1.75; }
.academy-start-dates li { margin-bottom:7px; break-inside:avoid; }
.academy-start-grid--single .academy-start-dates { columns:2; column-gap:40px; }
.academy-start-actions { display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:auto; }
.academy-start-actions .button { height:auto; min-height:48px; white-space:normal; text-align:center; line-height:1.5; padding:14px 20px; }
.academy-start-actions .academy-calendar-hint { margin:-10px 0 0; font-size:.76rem; color:#685d65; }
.academy-main .academy-start-note { font-size:.8rem; color:#685d65; margin:28px 0 0; max-width:800px; }
.academy-start-note a { color:#703d59; text-underline-offset:5px; }
.academy-home .academy-start-home-link { color:#f7b0df; font-size:.85rem; text-underline-offset:5px; display:inline-block; padding-block:10px; }
.academy-intake-group-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 28px; padding:18px 22px 18px 40px; background:#fbf3f7; color:#4e2b40; font-size:.8rem; line-height:1.65; }
@media (max-width:1000px) { .academy-start-grid:not(.academy-start-grid--single) { grid-template-columns:1fr; } }
@media (max-width:640px) {
 .academy-starts { padding-block:50px; }
 .academy-start-card { padding:23px 20px; }
 .academy-start-grid--single .academy-start-dates { columns:1; }
 .academy-intake-group-dates { grid-template-columns:1fr; }
}
.academy-main,.academy-home { --academy-line:#e8e0e5; --academy-muted:#685d65; color:#171416; }
.academy-main { background:#fff; }
.academy-main *, .academy-home * { box-sizing:border-box; }
.academy-wrap { width:min(1220px,100%); margin-inline:auto; padding-inline:clamp(22px,5vw,72px); }
.academy-main h1,.academy-main h2,.academy-main h3,.academy-home h3 { font-family:var(--serif); font-weight:400; }
.academy-main p,.academy-home p { line-height:1.75; }
.academy-hero { color:#fff; background:#0b0a0b; }
.academy-hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(230px,.75fr); gap:clamp(36px,6vw,90px); align-items:center; padding-block:70px 80px; }
.academy-main .academy-hero h1 { margin:14px 0 25px; font-size:clamp(3.2rem,6.5vw,6.2rem); line-height:1.03; letter-spacing:-.035em; overflow-wrap:break-word; }
.academy-main .academy-hero h1 em { color:#f7b0df; font-weight:400; }
.academy-main .academy-hero .eyebrow { color:#f7b0df; }
.academy-promise { color:#e5dce2; font-size:.9rem; letter-spacing:.08em; }
.academy-main .academy-hero-lead { max-width:620px; color:#e6dfe3; font-size:1.02rem; }
.academy-actions { display:flex; align-items:center; gap:15px; flex-wrap:wrap; margin-top:28px; }
.academy-actions .button { height:auto; min-height:48px; text-align:center; white-space:normal; }
.academy-login-note { margin:14px 0 0; font-size:.82rem; line-height:1.6; }
.academy-hero .academy-login-note,.academy-banner .academy-login-note { color:#e6dfe3; }
.academy-hero-book { display:flex; align-items:center; flex-direction:column; justify-content:center; gap:20px; margin:0; color:inherit; text-decoration:none; text-align:center; padding:26px; background:linear-gradient(145deg,#34212d,#171016); border:1px solid #674259; }
.academy-hero-book img { display:block; width:min(220px,100%); height:auto; aspect-ratio:2/3; object-fit:contain; box-shadow:0 14px 32px #0005; }
.academy-book-caption { display:grid; gap:7px; font-size:.82rem; line-height:1.55; }
.academy-book-caption strong { font-weight:600; font-size:1rem; }
.academy-book-caption>span:last-child { color:#f7b0df; }
.academy-fact-strip { border-bottom:1px solid var(--academy-line); background:#fcf4f8; }
.academy-fact-strip>.academy-wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px 25px; padding-block:23px; }
.academy-fact-strip span { font-size:.82rem; font-weight:600; }
.academy-catalog,.academy-faq { padding-block:80px; }
.academy-section-heading { max-width:740px; margin-bottom:38px; }
.academy-kicker { color:#8b456a; text-transform:uppercase; font:600 .68rem/1.5 var(--sans); letter-spacing:.13em; margin:0 0 12px; }
.academy-main .academy-section-heading h2,.academy-home .academy-section-heading h2 { margin:10px 0 20px; font:400 clamp(2.2rem,4vw,3.9rem)/1.08 var(--serif); letter-spacing:-.025em; }
.academy-section-heading>p:last-child { color:var(--academy-muted); }
.academy-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.academy-card { border:1px solid var(--academy-line); background:#fff; display:flex; flex-direction:column; min-width:0; scroll-margin-top:115px; }
.academy-card-top { position:relative; display:flex; align-items:center; justify-content:center; min-height:240px; padding:26px 20px 44px; background:#f8f0f4; text-decoration:none; }
.academy-card-top img { display:block; width:112px; height:168px; object-fit:contain; box-shadow:0 8px 18px #23121c24; transition:transform .2s ease; }
.academy-card-top:hover img { transform:translateY(-4px); }
.academy-card-top>span { position:absolute; bottom:12px; left:12px; right:12px; text-align:center; font-size:.73rem; color:#5d3b50; }
.academy-card-copy { flex:1; padding:25px; display:flex; flex-direction:column; align-items:stretch; }
.academy-card-copy .academy-kicker { min-height:2.5em; }
.academy-main .academy-card h3,.academy-home .academy-card h3 { margin:0 0 14px; font:400 1.7rem/1.17 var(--serif); color:#171416; }
.academy-card h3 a { text-decoration:none; color:inherit; }
.academy-card h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.academy-card-copy>p:not(.academy-kicker):not(.academy-price-note) { font-size:.86rem; margin:0 0 22px; color:var(--academy-muted); }
.academy-prices { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:18px; border-top:1px solid var(--academy-line); margin:0; }
.academy-card-copy .academy-prices { margin-top:auto; }
.academy-prices dt { font-size:.65rem; line-height:1.4; color:var(--academy-muted); }
.academy-prices dd { font-size:1.32rem; font-weight:600; margin:7px 0 0; white-space:nowrap; }
.academy-price-note { font-size:.64rem; color:var(--academy-muted); margin:10px 0 20px; }
.academy-text-link { font-size:.8rem; font-weight:600; line-height:1.65; color:#4e2b40; text-underline-offset:5px; }
.academy-card .academy-text-link { padding-top:17px; border-top:1px solid var(--academy-line); text-decoration:none; }
.academy-card .academy-text-link:hover { text-decoration:underline; }
.academy-included { padding-block:75px; background:#fcf4f8; }
.academy-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.academy-benefits article>span { font-size:.7rem; color:#8b456a; }
.academy-main .academy-benefits h3 { margin:10px 0 13px; font-size:1.7rem; line-height:1.2; }
.academy-benefits p { color:var(--academy-muted); font-size:.9rem; }
.academy-note { background:#f9f3f6; border-left:3px solid #b87098; padding:23px 27px; }
.academy-included .academy-note { background:#fff; margin-top:32px; }
.academy-note p { margin:0 0 13px; font-size:.88rem; }
.academy-note p:last-child { margin-bottom:0; }
.academy-faq-list { max-width:900px; }
.academy-faq-list details { border-top:1px solid var(--academy-line); }
.academy-faq-list details:last-child { border-bottom:1px solid var(--academy-line); }
.academy-faq-list summary { font-weight:600; font-size:.94rem; padding:22px 0; cursor:pointer; line-height:1.5; }
.academy-faq-list p { margin:0 0 24px; padding-right:20px; font-size:.91rem; color:var(--academy-muted); }
.academy-enrollment { padding-block:75px; background:#f8edf3; scroll-margin-top:100px; }
.academy-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding:0; margin:36px 0; }
.academy-steps li { min-width:0; border-top:1px solid #d9bfce; padding-top:18px; }
.academy-steps li>span { color:#8b456a; font-size:.72rem; }
.academy-main .academy-steps h3 { font-size:1.55rem; margin:15px 0 10px; line-height:1.2; }
.academy-steps p { font-size:.87rem; color:#5d4c57; }
.academy-enrollment .academy-small { margin:25px 0 18px; font-size:.76rem; color:#65525e; max-width:920px; }
.academy-enrollment a { overflow-wrap:anywhere; }
.academy-address { font-size:.7rem; color:#65525e; }
.academy-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; color:#d4c2cd; font-size:.71rem; padding-top:24px; line-height:1.7; }
.academy-breadcrumb a { color:inherit; text-underline-offset:4px; }
.academy-course-hero .academy-hero-grid { padding-top:48px; }
.academy-main .academy-course-hero h1 { font-size:clamp(2.8rem,4.8vw,4.6rem); }
.academy-course-subtitle { font-family:var(--serif); font-size:1.5rem; color:#f7b0df; margin:0 0 20px; }
.academy-course-hero figcaption { font-size:.75rem; color:#e6dfe3; line-height:1.6; }
.academy-course-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 30px; padding-block:36px; border-bottom:1px solid var(--academy-line); }
.academy-course-facts>div { display:flex; flex-direction:column; gap:8px; }
.academy-course-facts>div>span,.academy-course-facts small { color:var(--academy-muted); font-size:.75rem; }
.academy-course-facts strong { font-size:1.8rem; font-weight:500; white-space:nowrap; }
.academy-course-facts>p { grid-column:1/-1; font-size:.72rem; margin:0; color:var(--academy-muted); }
.academy-course-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:55px; padding-block:65px 80px; }
.academy-main .academy-course-content h2 { font-size:2.15rem; line-height:1.12; margin:9px 0 22px; }
.academy-course-content p,.academy-course-content li { color:var(--academy-muted); font-size:.94rem; }
.academy-course-content ul { padding-left:20px; }
.academy-course-content li { padding-left:6px; margin-bottom:13px; line-height:1.65; }
.academy-course-content li::marker { color:#9b4771; }
.academy-course-content .academy-note { margin-top:22px; }
.academy-wide { grid-column:1/-1; }
.academy-program { display:grid; gap:20px; }
.academy-program p { margin:0; padding:23px 27px; border:1px solid var(--academy-line); background:#fdfbfc; line-height:1.95; }
.academy-course-content .academy-wide.academy-note { margin:0; }
.academy-preparation { padding-block:65px; background:#fdf9fb; border-top:1px solid var(--academy-line); scroll-margin-top:120px; }
.academy-preparation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.academy-preparation-grid article { min-width:0; padding:24px; background:#fff; border:1px solid var(--academy-line); }
.academy-main .academy-preparation-grid h3 { margin:0 0 16px; font-size:1.6rem; line-height:1.2; }
.academy-preparation-grid p,.academy-model-dates li { color:var(--academy-muted); font-size:.86rem; line-height:1.8; }
.academy-preparation-grid p { margin:0; }
.academy-model-dates { margin-top:20px; border-top:1px solid var(--academy-line); padding-top:16px; }
.academy-model-dates summary { font-weight:600; font-size:.82rem; line-height:1.7; cursor:pointer; color:#703d59; }
.academy-model-dates summary:focus-visible { outline:2px solid #9b4771; outline-offset:5px; }
.academy-model-dates p { margin-top:15px; }
.academy-model-dates ol { padding-left:20px; margin:15px 0 0; }
.academy-model-dates li { margin-bottom:10px; }
.academy-main .academy-preparation-note { max-width:900px; margin:26px 0 18px; font-size:.82rem; color:#65525e; }
.academy-preparation-contact { margin-bottom:0; font-size:.88rem; }
.academy-intake .academy-preparation-link { font-size:.82rem; margin-top:12px; }
@media (max-width:1000px) { .academy-preparation-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .academy-preparation { padding-block:45px; } .academy-preparation-grid article { padding:22px 20px; } }
.academy-back { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; padding-block:35px; }
.original-theme .academy-home { background:#fff; }
.academy-home-content { padding-block:65px 80px; }
.academy-home-foundation { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1.4fr); gap:48px; align-items:center; padding:38px; background:#fbf3f7; margin-bottom:65px; scroll-margin-top:110px; }
.academy-home-foundation>img { display:block; width:min(220px,100%); height:auto; margin-inline:auto; box-shadow:0 8px 25px #5c2c4624; }
.academy-home .academy-home-foundation h3 { font-size:2rem; line-height:1.16; margin:0 0 20px; }
.academy-home-foundation p:not(.academy-kicker):not(.academy-price-note) { color:var(--academy-muted); font-size:.9rem; }
.academy-home .academy-section-heading h3 { font-size:2.2rem; line-height:1.15; margin:12px 0; }
.academy-home-links { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; margin-block:30px; }
.academy-home-links a { color:#4e2b40; padding-block:17px; border-bottom:1px solid var(--academy-line); font-size:.8rem; line-height:1.7; text-decoration:none; scroll-margin-top:110px; }
.academy-home-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.academy-home-content>.academy-note { font-size:.85rem; color:var(--academy-muted); }
.academy-anchor { display:block; scroll-margin-top:110px; }
.academy-main :is(a,summary):focus-visible,.academy-home a:focus-visible { outline:3px solid #a6477e; outline-offset:5px; }
@media (max-width:1000px) {
 .academy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .academy-home-grid .academy-card:last-child { grid-column:1/-1; }
 .academy-home-grid .academy-card:last-child .academy-card-top { min-height:215px; }
 .academy-hero-grid { gap:35px; grid-template-columns:minmax(0,1.3fr) minmax(210px,.7fr); }
 .academy-hero-book { padding:20px; }
 .academy-steps { gap:22px; }
}
@media (max-width:720px) {
 .academy-hero-grid { grid-template-columns:1fr; padding-block:45px 50px; }
 .academy-main .academy-hero h1 { font-size:clamp(2.8rem,10vw,4.5rem); }
 .academy-main .academy-course-hero h1 { font-size:clamp(2.5rem,9vw,3.7rem); }
 .academy-hero-book { max-width:380px; width:100%; margin-inline:auto; }
 .academy-hero-book img { width:170px; }
 .academy-hero-lead { font-size:.95rem; }
 .academy-fact-strip>.academy-wrap { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
 .academy-fact-strip span { font-size:.74rem; }
 .academy-catalog,.academy-faq,.academy-included,.academy-enrollment { padding-block:50px; }
 .academy-steps,.academy-benefits,.academy-course-content { grid-template-columns:1fr; gap:32px; }
 .academy-steps { margin-bottom:28px; }
 .academy-steps li { padding-top:15px; }
 .academy-wide { grid-column:auto; }
 .academy-course-facts { gap:22px; }
 .academy-course-facts strong { font-size:1.45rem; }
 .academy-course-facts>div>span,.academy-course-facts small { font-size:.65rem; line-height:1.6; }
 .academy-home-foundation { grid-template-columns:1fr; gap:30px; padding:28px 23px; margin-bottom:45px; }
 .academy-home-foundation>img { width:175px; }
 .academy-home-content { padding-block:45px; }
 .academy-home-links { grid-template-columns:1fr; }
 .academy-note { padding:20px; }
}
@media (max-width:540px) {
 .academy-grid { grid-template-columns:1fr; gap:24px; }
 .academy-home-grid .academy-card:last-child { grid-column:auto; }
 .academy-card-top { min-height:220px; }
 .academy-card-copy .academy-kicker { min-height:0; }
 .academy-card-copy { padding:24px; }
 .academy-actions { align-items:stretch; }
 .academy-actions>.button { width:100%; justify-content:center; }
 .academy-course-facts { grid-template-columns:1fr 1fr; gap:24px; }
 .academy-course-facts>div:first-child { grid-column:1/-1; }
 .academy-course-facts strong { font-size:1.65rem; }
 .academy-course-content { padding-block:45px; }
 .academy-section-heading { margin-bottom:28px; }
}
@media (prefers-reduced-motion:reduce) { .academy-card-top img { transition:none; } }

/* Intake preparation stays on the visitor's device until they send their email. */
.academy-intake-hero .academy-intake-intro { max-width:880px; padding-block:50px 65px; }
.academy-main .academy-intake-hero h1 { font-size:clamp(2.8rem,5.5vw,5rem); }
.academy-intake-process { max-width:740px; color:#ead4e1; font-size:.85rem; margin-top:24px; }
.academy-intake-process a { color:#f7b0df; text-underline-offset:4px; }
.academy-intake { padding-block:40px 65px; }
.academy-intake-learning { max-width:950px; margin:0 0 35px; }
.academy-intake [hidden] { display:none!important; }
.academy-intake-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:0 0 34px; margin:0 0 35px; border-bottom:1px solid #e8e0e5; }
.academy-intake-steps li { font-size:.8rem; line-height:1.6; }
.academy-intake-steps span { display:block; color:#9b4771; font-size:.68rem; letter-spacing:.12em; margin-bottom:6px; }
.academy-intake-form { max-width:950px; scroll-margin-top:130px; }
.academy-intake-form>fieldset { border:0; padding:0; margin:0 0 40px; min-width:0; }
.academy-intake-form>fieldset>legend { width:100%; font:400 2rem/1.2 var(--serif); padding:0 0 21px; }
.academy-form-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 28px; }
.academy-form-wide { grid-column:1/-1; }
.academy-form-field { min-width:0; margin-bottom:23px; }
.academy-form-columns .academy-form-field { margin-bottom:0; }
.academy-intake :is(label,legend) { line-height:1.55; }
.academy-form-field>label,.academy-intake-review>label { display:block; margin:0 0 8px; color:#211b1f; font-size:.84rem; font-weight:600; }
.academy-form-field>label>span,.academy-intake-days>legend>span { font-size:.72rem; font-weight:400; color:#74656e; }
.academy-intake :is(input:not([type="checkbox"]),select,textarea) { display:block; width:100%; min-width:0; font:400 16px/1.6 var(--sans); color:#211b1f; background:#fff; border:1px solid #cdbfc8; border-radius:0; padding:12px 14px; box-shadow:none; }
.academy-intake select { padding-right:30px; }
.academy-intake :is(input,select,textarea):focus-visible { outline:2px solid #9b4771; outline-offset:3px; }
.academy-intake textarea { resize:vertical; min-height:120px; }
.academy-intake-price { background:#fbf3f7; border-left:3px solid #bc7b9f; padding:19px 22px; margin-top:24px; }
.academy-intake-price p:first-child { margin:0; font-weight:600; font-size:.93rem; }
.academy-intake-price p:last-child:not(:first-child) { margin:9px 0 0; font-size:.83rem; color:#685d65; }
.academy-intake-price p:empty { display:none; }
.academy-intake .academy-intake-hint { color:#74656e; font-size:.76rem; line-height:1.75; margin:13px 0 0; }
.academy-intake-days { border:0; min-width:0; margin:0 0 24px; padding:0; }
.academy-intake-days>legend { padding:0 0 12px; font-size:.84rem; font-weight:600; }
.academy-days-options { display:flex; flex-wrap:wrap; gap:12px; }
.academy-days-options>label { display:flex; align-items:center; gap:9px; padding:11px 15px; border:1px solid #d9cbd3; cursor:pointer; font-size:.8rem; }
.academy-days-options input { width:18px; height:18px; margin:0; accent-color:#9b4771; }
.academy-intake-marathon { margin:25px 0 0; padding:23px; background:#fbf7f9; }
.academy-intake-before-submit { border-top:1px solid #e8e0e5; padding-top:22px; }
.academy-intake-before-submit p { max-width:800px; color:#685d65; font-size:.84rem; margin:0 0 24px; }
.academy-intake-before-submit a,.academy-intake-review p a,.academy-intake-alternative a { color:#703d59; text-underline-offset:4px; overflow-wrap:anywhere; }
.academy-intake-status { font-size:.87rem; color:#703d59; margin:25px 0; }
.academy-intake-status:empty { margin:0; }
.academy-intake-review { background:#fbf3f7; padding:30px; border:1px solid #dfc5d4; margin:35px 0; }
.academy-main .academy-intake-review h2 { font-size:2.2rem; line-height:1.15; margin:10px 0 20px; scroll-margin-top:130px; }
.academy-intake-review>p:not(.academy-kicker) { font-size:.88rem; max-width:800px; margin-bottom:22px; color:#685d65; }
.academy-intake-review textarea { max-height:420px; background:#fff; font-size:.84rem; }
.academy-intake-review .academy-actions { margin-block:25px; }
.academy-intake-review .button { white-space:normal; }
.academy-intake-alternative { max-width:850px; padding-top:32px; margin-top:40px; border-top:1px solid #e8e0e5; }
.academy-main .academy-intake-alternative h2 { font-size:1.8rem; line-height:1.2; margin:0 0 18px; }
.academy-intake-alternative p { font-size:.86rem; color:#685d65; }
@media (max-width:640px) {
 .academy-intake-hero .academy-intake-intro { padding-block:35px 45px; }
 .academy-intake-steps { gap:15px; }
 .academy-intake-steps li { font-size:.72rem; }
 .academy-form-columns { grid-template-columns:1fr; gap:22px; }
 .academy-form-wide { grid-column:auto; }
 .academy-intake-form>fieldset { margin-bottom:32px; }
 .academy-intake-form>fieldset>legend { font-size:1.75rem; }
 .academy-days-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
 .academy-days-options>label { padding:10px; font-size:.76rem; }
 .academy-intake-review { padding:22px 18px; margin-inline:-3px; }
 .academy-intake-review textarea { max-height:340px; }
 .academy-intake-before-submit>.button { width:100%; justify-content:center; }
}
