/* Public tutoring pages and footer. Scoped to leave account screens unchanged. */
.seo-landing{--seo-ink:#162942;--seo-muted:#52647a;--seo-line:#dbe4ed;--seo-blue:#145ec4;font-family:'DM Sans',Arial,sans-serif;background:#f8fafc;color:var(--seo-ink)}
.seo-landing h1,.seo-landing h2,.seo-landing h3{font-family:'DM Sans',Arial,sans-serif;font-weight:700;text-wrap:balance}
.seo-landing .seo-hero{background:linear-gradient(120deg,#102440 0%,#153c68 70%,#165878 100%)}
.seo-landing .seo-hero h1{font-size:clamp(2.35rem,4.6vw,4.3rem);line-height:1.09;letter-spacing:-.045em;font-weight:700}
.seo-landing .seo-hero-subtitle{font-size:1.125rem;font-weight:400;line-height:1.75;max-width:58ch}
.seo-hero-copy>.seo-hero-actions+p{color:#d0deee;font-size:.9375rem;line-height:1.7;max-width:65ch;margin:20px 0 0}
.seo-landing .seo-section{padding:64px 0}
.seo-landing .seo-section-muted{background:#eef3f8}
.seo-landing .seo-grid-2{align-items:start;gap:28px}
.seo-landing .seo-content-panel{padding:34px;border-radius:24px;border-color:var(--seo-line);box-shadow:0 8px 30px #10244006}
.seo-landing .seo-content-panel h2{font-size:clamp(1.5rem,2.1vw,2rem);line-height:1.25;letter-spacing:-.035em;margin:14px 0 22px}
.seo-landing .seo-content-panel p{font-size:1rem;line-height:1.8;font-weight:400;color:var(--seo-muted);margin:0 0 20px}
.seo-landing .seo-content-panel p:last-child{margin-bottom:0}
.seo-landing .seo-section-label{font-size:.8125rem;letter-spacing:.1em;font-weight:700}
.seo-landing .seo-section-title{font-size:clamp(1.75rem,3vw,2.65rem);line-height:1.2;letter-spacing:-.035em;margin:0 0 16px}
.seo-landing .seo-related-grid+.seo-section-title{margin-top:40px}
.seo-landing .seo-related-grid{margin-top:24px;gap:16px}
.seo-landing .seo-related-card{padding:26px;border-radius:18px;border-color:var(--seo-line);box-shadow:none;border-top:3px solid #3378bd}
.seo-landing .seo-related-card strong{font-size:1.0625rem;line-height:1.5;font-weight:700}
.seo-landing .seo-related-card span{font-size:.9375rem;line-height:1.7;color:var(--seo-muted)}
.seo-landing .seo-related-card:hover{background:#f0f6ff;border-color:#3378bd;box-shadow:0 8px 24px #1024400b}
.seo-landing .seo-feature-list li{font-weight:500;line-height:1.65}
.seo-landing .seo-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.seo-landing .seo-focus-card{padding:24px;border-radius:18px;min-height:0;box-shadow:none}
.seo-landing .seo-focus-card p{font-size:1rem;line-height:1.65;font-weight:500}
.seo-landing .seo-primary-cta,.seo-landing .seo-secondary-cta{font-size:.9375rem;font-weight:700;line-height:1.5;padding:14px 22px;gap:12px;min-height:50px;text-align:center}
.seo-landing .seo-content-panel .seo-primary-cta{background:#155cb7;color:#fff;box-shadow:0 6px 18px #123b7020}
.seo-landing .seo-content-panel a:not([class]){color:#145cb7;text-decoration:underline;text-underline-offset:4px}
.seo-landing .seo-planning-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:start}
.seo-landing .seo-plan-panel{background:transparent;border:0;box-shadow:none;padding:12px 14px 12px 0}
.seo-preparation-steps{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0}
.seo-preparation-steps li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:18px;padding:22px 0;border-top:1px solid #cedae5}
.seo-step-number{font-size:.9375rem;font-weight:700;color:#185998;letter-spacing:.03em;padding-top:3px}
.seo-landing .seo-preparation-steps p{margin:0;line-height:1.8}
.seo-landing .seo-booking-panel{background:linear-gradient(145deg,#142c4c,#1d4269);color:white;border:1px solid #294e77;padding:34px;box-shadow:0 18px 38px #152d4b18}
.seo-landing .seo-booking-panel h2{color:#fff}
.seo-landing .seo-booking-panel p{color:#e0e9f3;font-size:1rem}
.seo-landing .seo-booking-panel .seo-section-label{color:#a9d8ed}
.seo-timezone-note{border-left:3px solid #83c6e5;background:#ffffff09;padding:18px 20px;margin:24px 0;border-radius:0 12px 12px 0}
.seo-timezone-note strong{display:block;font-size:.9375rem;font-weight:700;margin-bottom:8px;color:#fff}
.seo-landing .seo-timezone-note p{margin:0;font-size:.9375rem;line-height:1.75}
.seo-booking-actions{border-top:1px solid #ffffff26;padding-top:24px;margin-top:26px;display:grid;gap:18px}
.seo-landing .seo-booking-panel .seo-primary-cta{background:#f5ce83;color:#142c4c;box-shadow:none;width:100%;border-radius:12px}
.seo-landing .seo-booking-question{color:#e4f2ff;font-size:.9375rem;text-align:center;text-decoration:underline;text-underline-offset:5px;line-height:1.6}
.seo-landing .seo-faq-list summary{font-weight:600;font-size:1.0625rem;line-height:1.55;padding-right:10px}
.seo-landing .seo-faq-list details{padding:22px 26px;box-shadow:none}
.seo-landing .seo-faq-list p{font-size:1rem;line-height:1.8}
.seo-landing a:focus-visible,.footer-directory a:focus-visible,.footer-directory summary:focus-visible{outline:3px solid #d99927;outline-offset:5px}
.footer-refined{background:radial-gradient(ellipse at 100% 0%,#24457455,transparent 55%),linear-gradient(125deg,#101f3e,#152d54)!important}
.footer-directory{position:relative;z-index:1;padding:0 0 40px;margin-bottom:40px;border-bottom:1px solid #ffffff20;font-family:'DM Sans',Arial,sans-serif}
.footer-directory-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:30px}
.footer-kicker{display:inline-flex;align-items:center;gap:10px;color:#dfbd80;font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.footer-kicker::before{content:"";width:24px;height:1px;background:currentColor}
.footer-directory-heading h2{font-family:inherit;font-size:clamp(1.65rem,2.8vw,2.35rem);font-weight:600;color:#fff;margin:12px 0 0;line-height:1.2;letter-spacing:-.035em}
.footer-directory-intro{margin:12px 0 0;color:#b7c6db;font-size:.9375rem;line-height:1.65}
.footer-directory-heading>a{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:48px;padding:12px 20px;border:1px solid #dfbd8066;border-radius:999px;background:#dfbd800a;color:#f4d397;font-size:.9375rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s}
.footer-directory-heading>a:hover{background:#dfbd801a;border-color:#dfbd80}
.footer-directory-heading>a span{font-size:1.25rem}
.footer-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.footer-directory-group{background:#ffffff04;border:1px solid #ffffff24;border-radius:16px;min-width:0;transition:background .2s,border-color .2s}
.footer-directory-group:hover,.footer-directory-group[open]{background:#ffffff08;border-color:#dfbd8055}
.footer-directory-group summary{display:flex;align-items:center;gap:16px;padding:22px;cursor:pointer;color:#f1f5fb;line-height:1.5;list-style:none;border-radius:16px}
.footer-directory-group summary::-webkit-details-marker{display:none}
.footer-course-icon{display:flex;align-items:center;justify-content:center;flex:0 0 44px;height:44px;border-radius:12px;background:#dfbd800d;border:1px solid #dfbd802b;color:#dfbd80;font-size:1.3rem;font-weight:500}
.footer-course-copy{flex:1;min-width:0}
.footer-course-title{display:block;font-size:.9375rem;font-weight:600}
.footer-course-description{display:block;margin-top:4px;font-size:.8125rem;font-weight:400;color:#b7c6db}
.footer-course-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 26px;height:26px;color:#dfbd80;font-size:1.25rem;transition:transform .2s}
.footer-directory-group[open] .footer-course-toggle{transform:rotate(45deg)}
.footer-directory-group ul{list-style:none;padding:18px 0 22px;margin:0 22px;border-top:1px solid #ffffff20;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
.footer-directory-group a{font-size:.875rem;line-height:1.65;color:#c8d4e4;text-decoration:none;overflow-wrap:anywhere;display:block}
.footer-directory-group a:hover{color:#f4d397;text-decoration:underline;text-underline-offset:4px}
.footer-refined .footer-col a,.footer-refined .footer-contact-text{color:#b7c6db}
.footer-refined .footer-col a:hover{color:#f4d397}
.footer-refined .footer-bottom p{color:#9aaec8}
[data-theme='dark'] .seo-landing{--seo-ink:#edf3fa;--seo-muted:#bacbdd;--seo-line:#314760;background:#0e1e32}
[data-theme='dark'] .seo-landing .seo-section-muted{background:#13253c}
[data-theme='dark'] .seo-landing .seo-content-panel,[data-theme='dark'] .seo-landing .seo-related-card,[data-theme='dark'] .seo-landing .seo-focus-card,[data-theme='dark'] .seo-landing .seo-route-card,[data-theme='dark'] .seo-landing .seo-faq-list details{background:#182d46}
[data-theme='dark'] .seo-landing h2,[data-theme='dark'] .seo-landing .seo-related-card strong,[data-theme='dark'] .seo-landing .seo-focus-card p,[data-theme='dark'] .seo-landing summary{color:#edf3fa}
[data-theme='dark'] .seo-landing .seo-soft-panel{background:#182d46}
[data-theme='dark'] .seo-landing .seo-plan-panel{background:transparent}
[data-theme='dark'] .seo-landing .seo-feature-list li{background:#223b57;color:#edf3fa}
[data-theme='dark'] .seo-landing .seo-section-label,[data-theme='dark'] .seo-step-number{color:#97c9ff}
[data-theme='dark'] .seo-landing .seo-section-intro,[data-theme='dark'] .seo-landing .seo-route-card p,[data-theme='dark'] .seo-landing .seo-faq-list p{color:#bacbdd}
[data-theme='dark'] .seo-landing .seo-route-card strong{color:#cfe2f8}
[data-theme='dark'] .seo-landing .seo-content-panel a:not([class]){color:#a4d0ff}
@media(max-width:1000px){.footer-directory-group ul{grid-template-columns:1fr}.seo-landing .seo-planning-grid{grid-template-columns:1fr}.seo-landing .seo-plan-panel{padding:0}.seo-landing .seo-booking-panel{max-width:none}}
@media(max-width:700px){.seo-landing .seo-section{padding:42px 0}.seo-landing .seo-content-panel{padding:24px}.seo-landing .seo-plan-panel{padding:0}.seo-landing .seo-grid-2,.seo-landing .seo-focus-grid{grid-template-columns:1fr}.seo-landing .seo-content-panel h2{margin-bottom:20px}.seo-preparation-steps li{grid-template-columns:30px minmax(0,1fr);gap:12px;padding:20px 0}.seo-landing .seo-hero-subtitle{font-size:1rem}.footer-directory-heading{align-items:flex-start;flex-direction:column}.footer-directory-grid{grid-template-columns:1fr}.footer-directory-group summary{padding:18px 16px;gap:12px}.footer-course-icon{flex-basis:38px;height:38px}.footer-course-description{font-size:.75rem}.footer-directory-heading{gap:20px}.footer-directory{padding-bottom:30px;margin-bottom:30px}.footer-directory-group ul{grid-template-columns:1fr;margin:0 18px;padding:16px 0 20px;gap:14px}.seo-landing .seo-faq-list details{padding:20px}.seo-landing .seo-primary-cta{white-space:normal}}
@media(prefers-reduced-motion:reduce){.seo-landing *, .footer-directory *{transition:none!important;scroll-behavior:auto!important}}

/* Expanded programmes use the available width, with compact category cards. */
.footer-directory-group[data-program-directory][open]{grid-column:1 / -1}
.footer-program-sections{margin:0 22px;padding:22px 0;border-top:1px solid #ffffff20}
.footer-program-section{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.footer-program-section+ .footer-program-section{margin-top:26px;padding-top:24px;border-top:1px solid #ffffff20}
.footer-program-section h3{grid-column:1 / -1;font-family:inherit;font-size:1.35rem;font-weight:700;line-height:1.35;letter-spacing:-.015em;color:#f0cd8c;margin:0 0 2px}
.footer-program-subsection{min-width:0;padding:18px;border:1px solid #ffffff16;border-radius:12px;background:#ffffff04;--category-color:#9bcaff}
.footer-program-subsection h4{font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.5;color:var(--category-color);margin:0 0 14px}
.footer-directory-group .footer-program-section ul{grid-template-columns:1fr;margin:0;padding:0;border:0;gap:10px}
.footer-directory-group .footer-program-years ul{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer-program-section[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1000px){.footer-program-section{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.footer-program-sections{margin:0 16px;padding:18px 0}.footer-program-section,.footer-program-section[data-columns="2"]{grid-template-columns:1fr}.footer-program-section h3{font-size:1.2rem}.footer-program-subsection{padding:16px}}

/* Mathematics: provider > qualification > level > course. */
.math-directory{margin:0 22px;padding:24px 0;border-top:1px solid rgba(255,255,255,.16)}
.math-directory-intro h3{font-size:1.35rem;color:#f0cd8c;margin:0 0 8px}
.math-directory-intro p{color:#c2cde0;margin:6px 0;line-height:1.6}
.math-directory-intro .math-directory-key{font-size:.8rem;color:#aebdd3}
.math-directory-key span{color:#9bcaff}
.math-provider-list{display:grid;gap:12px;margin-top:22px}
.math-provider{border:1px solid rgba(255,255,255,.17);border-radius:14px;background:rgba(255,255,255,.025);overflow:hidden}
.footer-directory-group .math-provider>summary{padding:20px;display:flex;justify-content:space-between;align-items:center;gap:18px;list-style:none;cursor:pointer}
.math-provider>summary::-webkit-details-marker{display:none}
.math-provider-title{display:block;font-size:1.3rem;font-weight:750;color:#f0cd8c}
.math-provider-summary{display:block;color:#b9c8dd;font-size:.85rem;font-weight:400;margin-top:6px;line-height:1.5}
.math-provider-toggle{color:#f0cd8c;font-size:1.35rem;transition:transform .15s}
.math-provider[open]>.math-provider-toggle,.math-provider[open]>summary>.math-provider-toggle{transform:rotate(45deg)}
.math-provider-content{padding:0 20px 20px}
.math-provider-description{margin:0 0 18px;color:#bdcbe0;font-size:.875rem;line-height:1.6}
.math-qualification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.math-qualification-grid[data-cards="5"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.math-qualification-grid[data-cards="1"]{grid-template-columns:1fr}
.math-qualification{padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.025);min-width:0}
.math-stage{font-size:.72rem;color:#aebed6;margin:0 0 6px}
.math-qualification h4{color:#9bcaff;font-size:1rem;line-height:1.45;margin:0 0 14px}
.footer-directory-group .math-qualification ul{display:grid;grid-template-columns:1fr;margin:0;padding:0;border:0;gap:12px;list-style:none}
.footer-directory-group .math-qualification a{display:flex;justify-content:space-between;align-items:baseline;gap:14px;line-height:1.5;font-size:.9rem}
.math-enquire{color:#9bcaff;white-space:nowrap;font-size:.72rem}
.math-course-detail{display:block;color:#aabbd3;font-size:.76rem;line-height:1.5;margin-top:4px}
.math-directory-resources{display:flex;flex-wrap:wrap;gap:10px 20px;border-top:1px solid rgba(255,255,255,.12);margin-top:22px;padding-top:18px;font-size:.8rem}
.math-directory-resources>span{width:100%;color:#aebdd3}
.footer-directory-group .math-directory-resources a{font-size:.8rem}
.math-provider>summary:focus-visible{outline:2px solid #9bcaff;outline-offset:-4px}
@media(max-width:1000px){.math-qualification-grid[data-cards="5"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.math-directory{margin:0 16px}.math-qualification-grid,.math-qualification-grid[data-cards="5"]{grid-template-columns:1fr}.footer-directory-group .math-provider>summary{padding:16px}.math-provider-content{padding:0 12px 14px}.math-provider-title{font-size:1.15rem}.math-qualification{padding:14px}.footer-directory-group .math-qualification a{flex-wrap:wrap;gap:4px 12px}}

/* Refined mathematics directory: compact course rows and balanced stages. */
.math-directory-intro{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.math-directory-intro h3{font-size:1.15rem;margin:0;color:#eef4ff}
.math-directory-intro p{font-size:.85rem;margin:0}
.math-provider-list{gap:10px;margin-top:18px}
.math-provider{background:rgba(8,20,42,.18);border-color:rgba(174,199,236,.18)}
.footer-directory-group .math-provider>summary{padding:18px 22px}
.math-provider-title{font-size:1.2rem;letter-spacing:-.015em}
.math-provider-summary{font-size:.78rem;margin-top:4px}
.math-provider-toggle{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(240,205,140,.08);font-size:1.1rem;flex-shrink:0}
.math-provider-content{padding:0 22px 22px}
.math-provider-description{font-size:.8rem;border-top:1px solid rgba(255,255,255,.09);padding-top:14px;margin-bottom:16px}
.math-qualification-grid,.math-qualification-grid[data-cards="5"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.math-qualification{padding:16px;background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.1);border-radius:10px}
.math-stage{font-size:.65rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px;color:#b4c4dc}
.math-qualification h4{font-size:.95rem;margin-bottom:12px;font-weight:650}
.footer-directory-group .math-qualification ul{gap:6px}
.footer-directory-group .math-qualification a{padding:10px 12px;min-height:42px;align-items:center;border-radius:7px;background:rgba(7,20,41,.22);font-size:.86rem;transition:background .15s,color .15s;line-height:1.4;text-decoration:none}
.footer-directory-group .math-qualification a:hover{background:rgba(155,202,255,.12);color:#fff}
.footer-directory-group .math-qualification a:focus-visible{outline:2px solid #9bcaff;outline-offset:2px}
.math-course-detail{padding:0 12px;margin:5px 0 8px;font-size:.72rem}
.math-link-arrow{color:#9bcaff;font-size:.95rem;flex-shrink:0}
#footer-maths-ib .math-qualification:nth-child(3){grid-column:1/-1;grid-row:1}
#footer-maths-ib .math-qualification:nth-child(3) ul{grid-template-columns:repeat(5,minmax(0,1fr))}
#footer-maths-ib .math-qualification:nth-child(3) a{justify-content:center;text-align:center;background:rgba(155,202,255,.065);border:1px solid rgba(155,202,255,.13)}
#footer-maths-ib .math-qualification:nth-child(3) .math-link-arrow{display:none}
.math-directory-resources{gap:8px 18px;margin-top:16px;padding-top:14px}
.math-directory-resources>span{width:auto;color:#9bcaff}
@media(max-width:700px){.math-directory-intro{display:block}.math-directory-intro p{margin-top:6px}.math-qualification-grid,.math-qualification-grid[data-cards="5"]{grid-template-columns:1fr}.footer-directory-group .math-provider>summary{padding:16px}.math-provider-content{padding:0 12px 14px}.math-qualification{padding:14px}#footer-maths-ib .math-qualification:nth-child(3) ul{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-directory-group .math-qualification a{flex-wrap:nowrap}.math-provider-title{font-size:1.08rem}.math-provider-summary{max-width:95%}}
