/* September content refresh: a quieter, consistent reading experience. */
:root { --pla-ink:#173d32; --pla-muted:#52675e; --pla-line:#dbe6de; --pla-paper:#fbfaf5; }
html { scroll-padding-top:120px; }
body { line-height:1.65; }
:is(.section-title,.hp-section-title) { letter-spacing:-.035em; line-height:1.12; text-wrap:balance; }
:is(.section-intro,.section-sub,.hp-section-sub,.page-hero-subtitle) { max-width:65ch; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #a55518; outline-offset:5px; }
:is(.btn,.hp-text-link,.nav-link) { touch-action:manipulation; }
:is(.btn,.btn-whatsapp) { min-height:44px; }
:is(.program-card,.testi-card,.hp-program-card,.hp-blog-card) { border:1px solid var(--pla-line); box-shadow:0 8px 24px #173d3208; }
.pla-section-heading { max-width:680px; margin:0 auto 40px; text-align:center; }
.pla-section-heading p { color:var(--pla-muted); margin:16px 0 0; }
.pla-pricing,.pla-learning-path { background:var(--pla-paper); }
.pla-price-grid,.pla-guide-grid,.pla-progress-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pla-price-grid--single { max-width:680px; margin:auto; grid-template-columns:1fr; }
.pla-price-card { display:flex; flex-direction:column; background:white; border:1px solid var(--pla-line); border-top:4px solid #22744d; border-radius:20px; padding:30px; box-shadow:0 12px 36px #173d3208; }
.pla-step-label { display:block; color:#38634e; font-size:.73rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.pla-price-card h3,.pla-guide-card h3,.pla-progress-grid h3 { color:var(--pla-ink); font-size:1.55rem; line-height:1.2; margin:12px 0 20px; }
.pla-price { margin:0; line-height:1.3; }
.pla-price strong { color:var(--pla-ink); font-size:2.8rem; letter-spacing:-.04em; }
.pla-price span { display:block; color:var(--pla-muted); font-size:.88rem; }
.pla-price-breakdown { font-size:.8rem; color:var(--pla-muted); margin:10px 0 20px; }
.pla-price-card dl { margin:0 0 24px; }
.pla-price-card dl div { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid #edf1eb; }
.pla-price-card dt { color:var(--pla-muted); font-size:.85rem; }
.pla-price-card dl div:last-child { min-height:68px; }
.pla-price-card dd { margin:0; text-align:right; font-weight:600; font-size:.85rem; max-width:65%; }
.pla-trial-total { display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px; background:#eff6ed; border-radius:12px; padding:16px; }
.pla-trial-total span { font-size:.85rem; font-weight:600; }
.pla-trial-total strong { font-size:1.6rem; color:var(--pla-ink); }
.pla-trial-total small { grid-column:1/-1; color:var(--pla-muted); }
.pla-registration { font-size:.83rem; color:var(--pla-muted); padding:16px 0; margin:0; }
.pla-price-card .btn { margin-top:auto; font-size:.85rem; white-space:normal; text-align:center; }
.pla-pricing-note { text-align:center; max-width:750px; margin:24px auto 0; font-size:.9rem; color:var(--pla-muted); }
.pla-guides { background:#fff; }
.pla-guide-card { display:flex; flex-direction:column; text-decoration:none; border:1px solid var(--pla-line); border-radius:16px; padding:28px; color:var(--pla-ink); transition:box-shadow .2s; }
.pla-guide-card:hover { box-shadow:0 12px 30px #173d3210; }
.pla-guide-card p,.pla-progress-grid p { color:var(--pla-muted); font-size:.95rem; }
.pla-guide-link { color:#236944; margin-top:auto; padding-top:24px; font-weight:700; }
.pla-progress { background:#f0f6ee; }
.pla-progress-grid article { padding:24px; border-left:2px solid #adc8af; }
.pla-skill-path { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:skill; }
.pla-skill-path li { background:#fff; padding:24px; border:1px solid var(--pla-line); border-radius:16px; counter-increment:skill; }
.pla-skill-path li:before { content:"0" counter(skill); display:block; color:#477a4e; margin-bottom:12px; font-weight:700; }
.pla-skill-path strong,.pla-skill-path span { display:block; }
.pla-skill-path span { color:var(--pla-muted); margin-top:8px; }
.pla-word-example { max-width:650px; margin:30px auto 0; text-align:center; }
.pla-word-example strong { font-size:2rem; color:var(--pla-ink); }
.pla-word-example p { margin:12px 0; }
.home .hp-hero-title { font-size:clamp(2.8rem,5.5vw,5rem); line-height:1.04; letter-spacing:-.045em; }
.home .hp-hero-sub { max-width:54ch; font-size:1.05rem; }
.home .hp-proof-pill { background:transparent; box-shadow:none; border-radius:0; border-right:1px solid var(--pla-line); }
.home .hp-pill-icon,.home .hp-worries-quote,.home .hp-worries-badge { display:none; }
.home .hp-proof-pill:last-child { border-right:0; }
.home .hp-hero-float-badge { transform:none; box-shadow:0 8px 24px #173d3212; }
.home .hp-testi-card--featured { background:#fff; color:var(--pla-ink); border:1px solid var(--pla-line); }
.home .hp-testi-quote { font-size:1rem; line-height:1.75; }
.home .hp-testi-card--featured :is(.hp-testi-quote,.hp-testi-info strong) { color:var(--pla-ink); }
.home .hp-worry-icon { font-size:1rem; }
.home .hp-why-card { box-shadow:none; border:1px solid var(--pla-line); }
.home .hp-booking-form-wrap { box-shadow:none; padding:32px; }
.home :is(.hp-worries,.hp-programs,.hp-why,.hp-testi,.hp-blog,.hp-gallery) { padding-block:80px; }
.home .hp-hero-content { background:rgba(255,252,245,.94); padding:32px; border-radius:24px; }
.home .hp-hero .hp-hero-title { color:#173d32; text-shadow:none; text-transform:none; }
.home .hp-hero .hp-hero-title em { color:#276c43; }
.home .hp-hero .hp-hero-sub,.home .hp-hero .hp-hero-trust { color:#40594c; text-shadow:none; }
.home .hp-hero .hp-btn-hero-primary { color:#fff; background:#236944; box-shadow:none; }
.home .hp-hero .hp-btn-hero-outline { color:#236944; border-color:#93ad96; background:transparent; }
.home .hp-hero .hp-hero-trust span { color:#40594c; }
.pla-article-fees { overflow-x:auto; }
.hp-booking-inner > *,.booking-grid > *,.online-booking-grid > *,.form-row > * { min-width:0; }
.contact-form :is(input,select,textarea) { max-width:100%; box-sizing:border-box; }
.contact-form input[type="submit"] { white-space:normal; }
.pla-footer-links { display:flex; flex-wrap:wrap; gap:12px 24px; padding-bottom:28px; margin-bottom:28px; border-bottom:1px solid #ffffff30; }
.pla-footer-links a { color:inherit; font-size:.9rem; text-decoration:underline; text-underline-offset:4px; }
.blog-post-content { font-size:1.05rem; line-height:1.85; }
.blog-post-content h2 { margin-top:2em; }
.blog-post-content a { text-decoration:underline; text-underline-offset:3px; }
.blog-post-content table { width:100%; border-collapse:collapse; }
.blog-post-content :is(th,td) { text-align:left; padding:12px; border-bottom:1px solid var(--pla-line); }
@media(max-width:1000px) {
 .pla-price-grid { gap:14px; } .pla-price-card { padding:22px; }
}
@media(max-width:760px) {
 .hp-booking-inner,.booking-grid,.online-booking-grid { grid-template-columns:minmax(0,1fr); }
 .contact-form .form-row { grid-template-columns:minmax(0,1fr); }
 .hp-booking-form-wrap,.booking-form-wrapper { padding:20px!important; }
 .booking-tab-panel { padding:20px; }
 .hp-booking-section h2,.booking-info h3 { overflow-wrap:anywhere; }
 .pla-price-grid,.pla-guide-grid,.pla-progress-grid,.pla-skill-path { grid-template-columns:1fr; }
 .pla-section-heading { margin-bottom:28px; }
 .pla-price-card { padding:26px; }
 .home :is(.hp-worries,.hp-programs,.hp-why,.hp-testi,.hp-blog,.hp-gallery) { padding-block:52px; }
 .home .hp-hero-content { padding:24px; }
 .home .hp-hero-title { font-size:clamp(2.7rem,11vw,4rem); }
 .home .hp-hero-ctas .btn { width:100%; white-space:normal; }
 .home .hp-hero-mascot { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; max-width:340px; margin:0 auto; }
 .home .hp-hero-mascot .hp-mascot-img { width:100%; max-width:210px; height:auto; justify-self:center; animation:none; }
 .home .hp-hero-mascot .hp-hero-float-badge { position:static; padding:12px; animation:none; transform:none; }
 .home .hp-hero-mascot .hp-hero-stars { position:static; grid-column:1/-1; justify-self:center; max-width:100%; white-space:normal; transform:none; margin-top:0; }
 .home .hp-hero { min-height:0; padding:44px 0 65px; }
 .home .hp-proof-pill { border:0; }
 .pla-progress-grid article { padding:16px 24px; }
}
/* Subject choices on the homepage: shared layout, distinct enquiry routes. */
.hp-subjects { padding:64px 0; background:#fffcf5; text-align:center; scroll-margin-top:100px; }
.hp-subject-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:32px; text-align:left; }
.hp-subject-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid #dce7dc; border-radius:24px; background:#f0faf5; }
.hp-subject-card--maths { background:#fff4e8; }
.hp-subject-card > img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.hp-subject-body { display:flex; flex:1; flex-direction:column; padding:28px; }
.hp-subject-body h3 { font-size:clamp(1.6rem,3vw,2rem); color:#173d32; margin:8px 0 16px; }
.hp-subject-body p,.hp-subject-body li { color:#40594c; line-height:1.65; }
.hp-subject-body ul { padding-left:20px; margin:16px 0 24px; }
.hp-subject-body li + li { margin-top:8px; }
.hp-subject-actions { display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-top:auto; }
.hp-subject-actions .btn { max-width:100%; white-space:normal; text-align:center; }
.hp-subject-note { font-size:.875rem; line-height:1.5; color:#40594c; }
@media(max-width:760px) {
 .hp-subjects { padding:44px 0; }
 .hp-subject-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .hp-subject-body { padding:22px; }
 .hp-subject-actions .btn { width:100%; }
}
/* Balanced homepage: teach, show examples, then choose a next step. */
.hp-shared-teaching,.hp-learning-examples,.hp-next-steps { padding:64px 0; text-align:center; }
.hp-shared-teaching { background:#f0faf5; }
.hp-learning-examples { background:#fffcf5; }
.hp-teaching-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:32px; text-align:left; }
.hp-teaching-grid article { padding:28px; background:#fff; border:1px solid #dce7dc; border-radius:20px; }
.hp-teaching-number { color:#236944; font-weight:800; font-size:1.4rem; }
.hp-teaching-grid h3 { margin:12px 0; color:#173d32; font-size:1.35rem; }
.hp-teaching-grid p,.hp-format-note { color:#40594c; line-height:1.7; }
.hp-format-note { margin:28px auto 0; max-width:680px; }
.hp-learning-grid,.hp-next-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin:32px 0; text-align:left; }
.hp-learning-grid figure { margin:0; overflow:hidden; border-radius:20px; border:1px solid #dce7dc; background:#fff; }
.hp-learning-grid img { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.hp-learning-grid figcaption { padding:24px; color:#40594c; line-height:1.65; }
.hp-learning-grid figcaption strong { display:block; color:#173d32; font-size:1.25rem; margin-bottom:8px; }
.hp-next-steps { background:#173d32; color:#fff; scroll-margin-top:100px; }
.hp-next-steps .hp-section-sub { color:inherit; }
.hp-next-steps .hp-section-title { color:#fff; }
.hp-next-steps .hp-section-eyebrow { color:#f7eead; }
.hp-next-grid article { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:28px; border-radius:20px; background:#f0faf5; }
.hp-next-grid article + article { background:#fff4e8; }
.hp-next-grid h3 { color:#173d32; font-size:1.5rem; margin:0 0 12px; }
.hp-next-grid p { color:#40594c; line-height:1.7; margin-bottom:24px; }
.hp-next-grid .btn { margin-top:auto; max-width:100%; white-space:normal; text-align:center; }
.hp-next-grid article > span { margin-top:16px; color:#40594c; font-size:.875rem; }
@media(max-width:760px) {
 .hp-shared-teaching,.hp-learning-examples,.hp-next-steps { padding:44px 0; }
 .hp-teaching-grid,.hp-learning-grid,.hp-next-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
 .hp-teaching-grid article,.hp-next-grid article { padding:22px; }
 .hp-next-grid .btn { width:100%; }
}
/* Centre the header CTA, including League Spartan's high visual baseline. */
.nav-cta.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; text-align:center; }
.nav-cta.btn > span { display:block; transform:translateY(2px); }
/* The programme wave must meet the following green section without a cream gap. */
.home .hp-programs { padding-bottom:0; }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto!important; }
 *,*:before,*:after { animation:none!important; transition:none!important; }
 .hp-animate { opacity:1!important; transform:none!important; }
}
