/*
Theme Name: TSOM Twenty Twenty-Five Child
Theme URI: https://theschoolofmaths.co.za/
Description: A responsive education-focused child theme for The School of Mathematics, designed for Twenty Twenty-Five with an EFT enrolment journey.
Author: The School of Mathematics
Version: 1.5.2
Template: twentytwentyfive
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: tsom-tt5
*/

:root{--navy:#071c34;--blue:#1359c7;--blue2:#0d49a8;--gold:#f3b51b;--ink:#102033;--muted:#5a6878;--line:#dce3eb;--soft:#f4f7fb;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.announcement{background:var(--navy);color:#dbe8f8;text-align:center;font-size:.78rem;font-weight:700;letter-spacing:.09em;padding:8px 20px;text-transform:uppercase}.site-header{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:50}.brand{display:flex;align-items:center;gap:12px;line-height:1.05}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:var(--blue);color:white;border-radius:12px 4px 12px 4px;font-family:Georgia,serif;font-size:1.7rem;font-weight:700}.brand span:last-child{display:flex;flex-direction:column}.brand strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.brand b{font-size:1.15rem;color:var(--blue)}.desktop-nav{display:flex;gap:24px;font-size:.9rem;font-weight:700}.desktop-nav a:hover,.mobile-menu-panel a:hover,.text-link:hover{color:var(--blue)}.header-actions{display:flex;align-items:center;gap:14px}.text-link{font-size:.9rem;font-weight:700}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--blue);color:#fff!important;padding:14px 22px;border:2px solid var(--blue);border-radius:8px;font-weight:800;line-height:1.2;transition:.2s}.button:hover{background:var(--blue2);border-color:var(--blue2);transform:translateY(-1px)}.button.small{padding:11px 17px;font-size:.88rem}.button.secondary{background:#fff;color:var(--navy)!important;border-color:#cbd5e1}.button.secondary:hover{border-color:var(--navy)}.button.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)!important}.mobile-menu{display:none}.mobile-menu summary{width:44px;height:44px;border:1px solid var(--line);border-radius:8px;display:grid;align-content:center;justify-content:center;gap:5px;cursor:pointer;background:#fff;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px;transition:.2s}.mobile-menu[open] summary span:first-child{transform:translateY(7px) rotate(45deg)}.mobile-menu[open] summary span:nth-child(2){opacity:0}.mobile-menu[open] summary span:last-child{transform:translateY(-7px) rotate(-45deg)}.mobile-menu-panel{position:absolute;top:calc(100% - 4px);left:0;right:0;display:flex;flex-direction:column;gap:0;padding:12px 18px 18px;background:#fff;border:1px solid var(--line);border-radius:0 0 14px 14px;box-shadow:0 18px 35px rgba(7,28,52,.16);font-size:.96rem;font-weight:800}.mobile-menu-panel a{padding:12px;border-bottom:1px solid var(--line)}.mobile-menu-panel a:last-child{border-bottom:0;color:var(--blue)}
.hero{background:linear-gradient(135deg,#f4f8ff 0%,#fff 60%);border-top:1px solid #edf1f6;overflow:hidden}.hero-grid{min-height:610px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:55px}.eyebrow,.kicker{display:flex;align-items:center;gap:9px;color:var(--blue);font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.eyebrow span{display:block;width:24px;height:3px;background:var(--gold)}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,5.3vw,5.25rem);line-height:.98;letter-spacing:-.045em;margin:21px 0 25px;color:var(--navy)}h1 em{font-style:normal;color:var(--blue);display:block}.hero-copy>p{max-width:650px;color:var(--muted);font-size:1.12rem;line-height:1.75}.button-row{display:flex;gap:12px;margin:30px 0}.trust-row{display:flex;gap:24px;flex-wrap:wrap;font-size:.82rem;color:#455468;font-weight:700}.trust-row i{font-style:normal;color:var(--blue);margin-right:5px}.hero-art{height:470px;position:relative}.coordinate-grid{position:absolute;inset:25px 0 10px 40px;border-radius:30px;background-color:#e9f0fa;background-image:linear-gradient(#cbd8e8 1px,transparent 1px),linear-gradient(90deg,#cbd8e8 1px,transparent 1px);background-size:35px 35px;transform:rotate(2deg)}.coordinate-grid:before,.coordinate-grid:after{content:"";position:absolute;background:#90a4bd}.coordinate-grid:before{width:2px;top:0;bottom:0;left:50%}.coordinate-grid:after{height:2px;left:0;right:0;top:50%}.curve{position:absolute;left:55px;right:40px;bottom:66px;height:230px;border-top:7px solid var(--blue);border-radius:50% 50% 0 0;transform:rotate(-12deg)}.hero-card{position:absolute;z-index:2;left:0;bottom:50px;width:245px;background:#fff;padding:25px;border-radius:20px;box-shadow:0 20px 50px rgba(7,28,52,.18)}.hero-card-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--muted)}.hero-card strong{display:block;color:var(--navy);font-family:Georgia,serif;font-size:4rem;line-height:1.1;margin:10px 0}.hero-card strong span{font-size:1.7rem;color:var(--blue)}.hero-card p{font-size:.8rem;color:var(--muted);margin:14px 0 0}.progress{height:7px;background:#e4eaf1;border-radius:8px;overflow:hidden}.progress span{display:block;width:70%;height:100%;background:var(--gold)}.formula{position:absolute;z-index:3;background:var(--navy);color:#fff;padding:10px 15px;border-radius:8px;font-family:Georgia,serif;font-style:italic;box-shadow:0 10px 25px rgba(7,28,52,.18)}.formula-one{right:15px;top:45px;transform:rotate(4deg)}.formula-two{right:5px;bottom:45px;transform:rotate(-3deg);background:var(--gold);color:var(--navy)}
.section{padding:100px 0}.section-heading h2{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2.25rem,4vw,3.5rem);line-height:1.08;letter-spacing:-.035em;margin:14px 0 18px}.section-heading p{color:var(--muted);max-width:560px}.section-heading.split{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end;margin-bottom:48px}.section-heading.centered{text-align:center;max-width:700px;margin:0 auto 45px}.section-heading.centered .kicker{justify-content:center}.section-heading.centered p{margin-inline:auto}.grade-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.grade-card{min-height:265px;padding:23px;border-radius:14px;display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid var(--line);transition:.2s}.grade-card:hover{transform:translateY(-5px);box-shadow:0 14px 35px rgba(7,28,52,.12)}.grade-card:after{content:"";position:absolute;width:120px;height:120px;border:26px solid rgba(255,255,255,.12);border-radius:50%;right:-46px;top:-40px}.grade-card.blue{background:var(--blue);color:#fff}.grade-card.navy{background:var(--navy);color:#fff}.grade-card.gold{background:#ffd66b;color:var(--navy)}.grade-label{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:900}.grade-card>strong{font-family:Georgia,serif;font-size:5.4rem;line-height:1;margin:15px 0}.grade-card p{font-size:.83rem;margin-bottom:auto;opacity:.82}.card-link{font-weight:900;font-size:.8rem}.soft{background:var(--soft)}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.benefit-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;min-height:245px}.benefit-number{color:var(--blue);font-size:.72rem;font-weight:900}.benefit-card h3{font-family:Georgia,serif;font-size:1.55rem;color:var(--navy);margin:35px 0 12px}.benefit-card p{color:var(--muted);font-size:.9rem}
.subject-section{padding-top:90px;padding-bottom:90px}.subject-panel{background:var(--navy);color:#fff;border-radius:24px;padding:65px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;overflow:hidden;position:relative}.subject-panel:after{content:"π";position:absolute;right:-45px;bottom:-120px;font-family:Georgia,serif;font-size:23rem;color:rgba(255,255,255,.035)}.kicker.light{color:#8ab6ff}.subject-panel h2{font-family:Georgia,serif;font-size:clamp(2.2rem,4vw,3.5rem);line-height:1.07;margin:14px 0 20px}.subject-panel p{color:#b9c7d8;max-width:520px;margin-bottom:28px}.subject-list{position:relative;z-index:2}.subject-list div{display:flex;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.14)}.subject-list span{font-weight:800}.subject-list small{color:#9fb2c8}.timetable-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}.plain-link{color:var(--blue);font-weight:900}.timetable-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 12px 35px rgba(7,28,52,.07)}.table-head,.table-row{display:grid;grid-template-columns:1fr 1fr;padding:17px 26px}.table-head{background:var(--navy);color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.table-row{border-bottom:1px solid var(--line)}.table-row span{text-align:right;color:var(--blue);font-weight:800}.table-note{padding:15px 26px;background:var(--soft);font-size:.75rem;color:var(--muted)}.table-note span{color:#2ebd6b}.process{background:var(--blue);color:#fff}.process .section-heading h2{color:#fff}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.steps article{border-top:2px solid rgba(255,255,255,.28);padding-top:25px}.steps article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:900}.steps h3{margin:22px 0 8px;font-size:1.15rem}.steps p{color:#d5e4fb;font-size:.86rem}.cta-section{margin-top:80px;margin-bottom:80px;padding:55px;background:#fff6dc;border:1px solid #f7de94;border-radius:20px;display:flex;align-items:center;justify-content:space-between;gap:35px}.cta-section h2{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2rem,4vw,3rem);line-height:1.08;margin:12px 0 0;max-width:700px}
footer{background:#061629;color:#b9c7d8;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:1.8fr repeat(3,1fr);gap:55px}.footer-brand{color:#fff}.footer-brand b{color:#80adf0}.footer-grid>div:first-child p{max-width:320px;margin-top:20px}.footer-grid h3{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:10px}.footer-grid a,.footer-grid p{font-size:.85rem}.footer-grid a:hover{color:#fff}.copyright{display:flex;justify-content:space-between;border-top:1px solid #203247;margin-top:55px;padding-top:22px;font-size:.75rem}
@media(max-width:1180px){.desktop-nav{display:none}.mobile-menu{display:block}.grade-grid{grid-template-columns:repeat(3,1fr)}.benefit-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{grid-template-columns:1fr;min-height:auto;padding:80px 0 60px}.hero-art{height:400px}.subject-panel,.timetable-grid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.shell{width:min(100% - 28px,1180px)}.announcement{font-size:.66rem}.site-header{min-height:75px;gap:8px}.brand{gap:8px}.brand strong{font-size:.58rem}.brand b{font-size:.9rem}.brand-mark{width:38px;height:38px}.header-actions{gap:8px}.header-actions .button.small{width:auto;padding:9px 10px;font-size:.75rem}.text-link{display:none}.hero-grid{padding-top:55px;gap:15px}.hero-art{height:330px}.hero-card{width:205px;padding:20px}.coordinate-grid{left:25px}.formula-one{right:0}.formula-two{right:0}.section{padding:72px 0}.section-heading.split{grid-template-columns:1fr;gap:5px}.grade-grid{grid-template-columns:repeat(2,1fr)}.grade-card{min-height:220px}.grade-card>strong{font-size:4rem}.benefit-grid{grid-template-columns:1fr}.subject-panel{padding:38px 25px;gap:30px}.timetable-grid{gap:35px}.steps{grid-template-columns:1fr}.cta-section{margin:55px 14px;padding:38px 25px;align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:35px}.copyright{flex-direction:column;gap:6px}.button-row{flex-direction:column;align-items:stretch}.button{width:100%}.trust-row{gap:10px 16px}}
@media(max-width:390px){.header-actions .button.small{display:none}}

/* WordPress and course-platform integration */
.wp-site-blocks{padding:0}.wp-block-post-title,.page-title{font-family:Georgia,'Times New Roman',serif;color:var(--navy)}
.tsom-page-main{margin-block:0!important;padding:0!important}.tsom-page-main>.wp-block-post-content{margin-block:0!important}.tsom-page-hero{width:100vw;max-width:none;margin:0 calc(50% - 50vw);background:linear-gradient(135deg,#eef5ff,#fff);padding:clamp(72px,8vw,112px) 0;border-top:1px solid #edf1f6;overflow:hidden}.tsom-page-hero .shell{position:relative}.tsom-page-title{display:inline-flex;align-items:center;gap:12px;margin:0 0 28px;padding:8px 14px 8px 10px;border:1px solid rgba(227,168,74,.5);border-radius:999px;background:rgba(227,168,74,.08);color:var(--gold-soft)!important;font-family:Arial,Helvetica,sans-serif!important;font-size:clamp(.78rem,1.2vw,.9rem)!important;font-weight:900;line-height:1.1!important;letter-spacing:.15em!important;text-transform:uppercase}.tsom-page-title:before{content:"";display:block;width:24px;height:2px;background:var(--gold)}.tsom-page-hero .tsom-hero-heading{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.8rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.04em;max-width:960px;margin:0 0 25px}.tsom-page-hero p{font-size:1.08rem;color:var(--muted);max-width:720px}
.tsom-default-page-title,.tsom-article-title{max-width:960px;margin:0;color:var(--white)!important;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.8rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.04em}.tsom-article-hero .wp-block-post-date{margin-top:24px;color:#c9d4dc}.tsom-article-content{max-width:860px}.tsom-article-content>.wp-block-post-featured-image{margin-bottom:38px}.tsom-article-content .wp-block-post-content{font-size:1.03rem}
.tsom-content{padding:75px 0}.tsom-prose{max-width:780px}.tsom-prose h2{font-family:Georgia,serif;color:var(--navy);font-size:2rem;margin-top:40px}.tsom-prose p,.tsom-prose li{color:var(--muted)}
.tutor-wrap{padding-top:45px;padding-bottom:70px}.tutor-btn-primary,.tutor-btn.tutor-btn-primary,.tutor-button{background:var(--blue)!important;border-color:var(--blue)!important;border-radius:8px!important;font-weight:800!important}.tutor-btn-primary:hover,.tutor-btn.tutor-btn-primary:hover{background:var(--blue2)!important;border-color:var(--blue2)!important}.tutor-card,.tutor-course-card{border-radius:14px!important;border-color:var(--line)!important;overflow:hidden}.tutor-course-thumbnail img{aspect-ratio:16/9;object-fit:cover}.tutor-course-name,.tutor-course-details-title{color:var(--navy)!important}.tutor-dashboard .tutor-dashboard-left-menu .tutor-dashboard-menu-item.active a{background:var(--blue)!important}.tutor-dashboard-header-avatar img{border-radius:50%}.tutor-checkout-page,.tutor-cart-page{padding-top:55px;padding-bottom:70px}
body.admin-bar .site-header{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}

/* Keep classic course-template pages aligned with the block-theme shell. */
.tutor-template .wp-site-blocks,.tutor-page-wrap .wp-site-blocks{padding:0}

.tsom-page-hero .button{margin-top:18px}.center-action{text-align:center;margin-top:45px}.info-grid,.subject-choice.multi{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.info-grid article,.subject-choice article{border:1px solid var(--line);border-radius:14px;padding:30px;background:#fff}.info-grid article>span,.subject-choice article>span{color:var(--blue);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.info-grid h2,.subject-choice h2,.faq h2{font-family:Georgia,serif;color:var(--navy);font-size:1.65rem;margin:24px 0 10px}.info-grid p,.subject-choice p{color:var(--muted)}.notice-card{margin-top:30px;padding:24px 28px;background:#fff6dc;border:1px solid #f7de94;border-radius:12px}.notice-card strong{color:var(--navy)}.notice-card p{margin:4px 0 0;color:var(--muted)}.pricing-panel{background:var(--navy);color:#fff;border-radius:20px;padding:55px;max-width:900px}.pricing-panel h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);margin:14px 0}.pricing-panel p{color:#bdcad9;max-width:680px}.faq{max-width:900px;margin-top:60px}.faq details{border-top:1px solid var(--line);padding:19px 0}.faq summary{cursor:pointer;color:var(--navy);font-weight:800}.faq details p{margin:12px 0 0;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.contact-grid>a,.contact-grid>div{border:1px solid var(--line);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:10px}.contact-grid span{color:var(--blue);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.contact-grid strong{color:var(--navy);overflow-wrap:anywhere}.contact-grid small{color:var(--muted)}.subject-choice{max-width:780px}.subject-choice.multi{max-width:none;margin-bottom:30px}
@media(max-width:780px){.info-grid,.subject-choice.multi,.contact-grid{grid-template-columns:1fr}.pricing-panel{padding:36px 24px}}

/* Timetable page */
.timetable-hero{text-align:center}.timetable-hero .kicker{justify-content:center}.timetable-hero p{margin-inline:auto}.timetable-page{max-width:980px}.schedule-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}.schedule-summary div{padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--soft);text-align:center}.schedule-summary span{display:block;color:var(--blue);font-family:Georgia,serif;font-size:2.5rem;font-weight:700;line-height:1}.schedule-summary strong{display:block;margin-top:7px;color:var(--navy);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.timetable-card-large{box-shadow:0 18px 45px rgba(7,28,52,.09)}.timetable-page-head,.timetable-page-row{grid-template-columns:1fr 1.15fr 1fr}.timetable-page-row{align-items:center;padding-block:21px}.timetable-page-row span{text-align:left}.timetable-page-row small{color:var(--muted);font-weight:700}.timetable-notice{margin-top:28px}.timetable-page .center-action{margin-top:32px}
@media(max-width:640px){.schedule-summary{grid-template-columns:1fr}.timetable-page-head{display:none}.timetable-page-row{grid-template-columns:1fr auto;padding:18px}.timetable-page-row strong{font-size:1.06rem}.timetable-page-row span{text-align:right}.timetable-page-row small{grid-column:1/-1;margin-top:5px}.timetable-card-large .table-note{padding-inline:18px}.timetable-page .button{width:auto}}

/* Contact form */
.contact-form-wrap{margin-top:55px;margin-bottom:75px;padding:clamp(26px,5vw,50px);background:var(--soft);border:1px solid var(--line);border-radius:20px}.contact-form-wrap h2{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2rem,4vw,3rem);margin:10px 0}.contact-form-intro{max-width:680px;color:var(--muted);margin-bottom:30px}.contact-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.form-field{display:flex;flex-direction:column;gap:7px}.form-field.full{grid-column:1/-1}.form-field label{color:var(--navy);font-size:.85rem;font-weight:800}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #bdc8d6;border-radius:8px;background:#fff;color:var(--ink);font:inherit;padding:12px 14px}.form-field textarea{min-height:150px;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:3px solid rgba(19,89,199,.18);border-color:var(--blue)}.form-consent{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:.82rem}.form-consent input{width:auto;margin-top:5px}.contact-form-submit{margin-top:22px;border:0;cursor:pointer}.form-status{padding:14px 17px;margin-bottom:24px;border-radius:8px;font-weight:700}.form-status.success{background:#e8f7ee;color:#17683a;border:1px solid #a8dfbd}.form-status.error{background:#fff0f0;color:#9b2525;border:1px solid #efb2b2}.tsom-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:640px){.contact-form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.contact-form-submit{width:100%}}

/* Blog */
.blog-hero{text-align:center}.blog-hero .kicker{justify-content:center}.blog-hero p{margin-inline:auto}.blog-archive{max-width:1180px}.blog-query .wp-block-post-template{gap:24px}.blog-query .wp-block-post{display:flex}.blog-card{display:flex;flex-direction:column;width:100%;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(7,28,52,.06);transition:.2s}.blog-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(7,28,52,.11)}.blog-card .wp-block-post-featured-image{margin:-24px -24px 22px}.blog-card .wp-block-post-featured-image img{border-radius:16px 16px 0 0;object-fit:cover}.blog-card .wp-block-post-date{margin:0 0 9px;color:var(--blue);font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.blog-card .wp-block-post-title{margin:0 0 12px;font-family:Georgia,serif;font-size:1.5rem;line-height:1.2}.blog-card .wp-block-post-title a{color:var(--navy)}.blog-card .wp-block-post-excerpt{display:flex;flex-direction:column;flex:1;margin:0;color:var(--muted);font-size:.9rem}.blog-card .wp-block-post-excerpt__more-text{margin-top:auto;padding-top:16px}.blog-card .wp-block-post-excerpt__more-link{color:var(--blue);font-weight:900}.blog-query .wp-block-query-pagination{margin-top:45px}.single-post main.tsom-content{max-width:860px}.single-post main>.wp-block-post-title{font-size:clamp(2.5rem,5vw,4rem);line-height:1.05}.single-post .wp-block-post-content{font-size:1.03rem}.single-post .wp-block-post-content h2,.single-post .wp-block-post-content h3{font-family:Georgia,serif;color:var(--navy);margin-top:2em}.single-post .wp-block-post-content table{width:100%;border-collapse:collapse}.single-post .wp-block-post-content th,.single-post .wp-block-post-content td{padding:11px;border:1px solid var(--line);text-align:left}.single-post .wp-block-post-content th{background:var(--navy);color:#fff}

/* Testimonials and success stories */
.testimonials-hero{text-align:center}.testimonials-hero .kicker{justify-content:center}.testimonials-hero p{margin-inline:auto}.testimonial-section{padding:90px 0}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.testimonial-card{display:flex;flex-direction:column;min-height:330px;padding:30px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 12px 32px rgba(7,28,52,.07)}.quote-mark{color:var(--gold);font-family:Georgia,serif;font-size:4.5rem;line-height:.65}.testimonial-card blockquote{margin:22px 0;color:var(--ink);font-family:Georgia,serif;font-size:1.12rem;line-height:1.65}.testimonial-person{display:flex;flex-direction:column;margin-top:auto;padding-top:22px;border-top:1px solid var(--line)}.testimonial-person strong{color:var(--navy)}.testimonial-person span{color:var(--muted);font-size:.82rem}.testimonial-card .plain-link{margin-top:18px;font-size:.82rem}.testimonial-empty{max-width:700px;margin-inline:auto;padding:45px;text-align:center;border:1px dashed #aebdce;border-radius:16px;background:#fff}.testimonial-empty .quote-mark{display:block}.testimonial-empty h3{font-family:Georgia,serif;color:var(--navy);font-size:1.8rem;margin:15px 0 8px}.testimonial-empty p{color:var(--muted);margin:0}.testimonial-single .wp-block-post-title{width:min(1180px,calc(100% - 40px));margin-inline:auto}.testimonial-story{max-width:820px}.testimonial-story .wp-block-post-featured-image{margin-bottom:35px}.testimonial-story .wp-block-post-content{font-size:1.05rem}.testimonial-story .wp-block-post-content p{margin-bottom:1.4em}
@media(max-width:900px){.blog-query .wp-block-post-template,.testimonial-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:640px){.blog-query .wp-block-post-template,.testimonial-grid{grid-template-columns:1fr!important}.testimonial-section{padding:70px 0}.testimonial-empty{padding:32px 22px}.testimonial-single .wp-block-post-title{width:min(100% - 28px,1180px)}}


/* TSOM crest logo — header and footer */
.tsom-logo{
    display:block;
    width:auto;
    object-fit:contain;
    flex:0 0 auto;
}
.tsom-header-logo{
    height:72px;
    max-width:92px;
}
.tsom-footer-logo{
    height:92px;
    max-width:116px;
}
.brand-copy{
    display:flex;
    flex-direction:column;
}
.footer-brand{
    align-items:center;
}
@media (max-width: 760px){
    .tsom-header-logo{
        height:58px;
        max-width:74px;
    }
    .site-header{
        min-height:76px;
    }
    .brand-copy{
        display:none;
    }
    .tsom-footer-logo{
        height:80px;
        max-width:100px;
    }
    .footer-brand .brand-copy{
        display:flex;
    }
}


/* TSoM learner + parent information card */
.tsom-profile-information-card{
    margin-top:24px;
}
.tsom-profile-information-card textarea{
    min-height:96px;
    resize:vertical;
}


/* TSoM registration page cleanup */
.tsom-registration-title,
.tutor-student-registration-wrap h3:first-child,
.tutor-student-register-form-wrap h3:first-child,
.tutor-registration-wrap h3:first-child{
    text-align:center;
    width:100%;
    margin-left:auto;
    margin-right:auto;
}


/* v1.2.7 — keep TSoM custom course fields visually native */
.tsom-registration-extra-fields .tutor-form-group,
.tsom-profile-information-card .tutor-form-group{
    margin-bottom:0;
}
.tsom-profile-information-card .tutor-form-control,
.tsom-profile-information-card .tutor-input,
.tsom-registration-extra-fields .tutor-form-control,
.tsom-registration-extra-fields .tutor-input{
    width:100%;
}




/* v1.3.0 — TSoM registration fields now share the course form hierarchy.
 * Intentionally no custom label font-size, line-height, or weight.
 */
#tutor-registration-form > .tsom-registration-extra-fields{
    display:block;
    width:100%;
}
#tutor-registration-form > .tsom-registration-extra-fields .tutor-form-control,
#tutor-registration-form > .tsom-registration-extra-fields .tutor-input{
    width:100%;
}

/* v1.4.0 — palette sampled from the supplied TSOM crest artwork. */
:root{
    --navy:#041b2d;
    --navy-2:#0a2b45;
    --blue:#8b5a1b;
    --blue2:#6f4615;
    --gold:#e3a84a;
    --gold-soft:#f1c875;
    --ink:#142a3a;
    --muted:#5c6972;
    --line:#d7ccbc;
    --soft:#f6f1e8;
    --white:#fffdf8;
}
body{background:var(--white);overflow-x:clip}
.announcement{background:#021321;color:#e8d5ad}
.site-header{background:var(--white)}
.desktop-nav a:hover,.mobile-menu-panel a:hover,.text-link:hover,.plain-link{color:var(--blue)}
.button,.tutor-btn-primary,.tutor-btn.tutor-btn-primary,.tutor-button{background:var(--gold)!important;border-color:var(--gold)!important;color:var(--navy)!important}
.button:hover,.tutor-btn-primary:hover,.tutor-btn.tutor-btn-primary:hover{background:#c88b32!important;border-color:#c88b32!important;color:var(--navy)!important}
.button.secondary{background:var(--white)!important;border-color:#c9b995!important;color:var(--navy)!important}
.button.secondary:hover{border-color:var(--gold)!important}
.button:focus-visible,.plain-link:focus-visible,.desktop-nav a:focus-visible,.mobile-menu-panel a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.hero,.tsom-page-hero{background:linear-gradient(135deg,#021321 0%,var(--navy) 58%,var(--navy-2) 100%);border-top-color:#183c59;color:var(--white)}
.hero h1,.tsom-page-hero h1,.tsom-page-hero .tsom-hero-heading{color:var(--white)}
.hero h1 em{color:var(--gold-soft)}
.hero-copy>p,.tsom-page-hero p{color:#c9d4dc}
.hero .eyebrow,.tsom-page-hero .kicker{color:var(--gold-soft)}
.trust-row{color:#dce4e9}
.trust-row i{color:var(--gold)}
.coordinate-grid{background-color:#08243b;background-image:linear-gradient(rgba(227,168,74,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(227,168,74,.15) 1px,transparent 1px)}
.coordinate-grid:before,.coordinate-grid:after{background:rgba(227,168,74,.38)}
.curve{border-top-color:var(--gold)}
.hero-card{background:var(--white)}
.progress span{background:var(--gold)}
.formula-one{background:#102f47;color:var(--gold-soft)}
.formula-two{background:var(--gold);color:var(--navy)}
.soft{background:var(--soft)}
.grade-card.blue{background:var(--navy-2);color:var(--white)}
.grade-card.navy{background:var(--navy);color:var(--white)}
.grade-card.gold{background:var(--gold-soft);color:var(--navy)}
.subject-panel,.process{background:var(--navy)}
.kicker.light,.process .section-heading p{color:#e5ca94}
.table-head{background:var(--navy)}
.table-row span{color:var(--blue)}
.cta-section,.notice-card{background:#fbf2df;border-color:#dfbd7e}
footer{background:#021321}
.footer-brand b{color:var(--gold-soft)}
.contact-form-wrap{background:var(--soft);border-color:var(--line)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline-color:rgba(227,168,74,.32);border-color:var(--gold)}

/* Registration and combined Classes journey */
.classes-hero .button-row{margin-bottom:0}
.registration-overview{padding-block:78px}
.registration-steps,.enrolment-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.registration-steps li,.enrolment-steps li{display:flex;gap:16px;align-items:flex-start;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
.registration-steps li.is-current{border-color:var(--gold);box-shadow:0 10px 30px rgba(4,27,45,.09)}
.registration-steps li>span,.enrolment-steps li>span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:900}
.registration-steps h3,.enrolment-steps h3{margin:1px 0 7px;color:var(--navy);font-size:1rem}
.registration-steps p,.enrolment-steps p{margin:0;color:var(--muted);font-size:.9rem}
.enrolment-process .enrolment-steps li{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.07)}
.enrolment-process .enrolment-steps h3{color:var(--white)}
.enrolment-process .enrolment-steps p{color:#cfdae2}
.process-note{margin-top:28px;padding:22px 25px;border:1px solid rgba(227,168,74,.48);border-radius:12px;background:rgba(227,168,74,.1)}
.process-note strong{color:var(--gold-soft)}
.process-note p{margin:5px 0 0;color:#e2e8ec}
.registration-login-note{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:34px;color:var(--muted)}
.narrow-shell{max-width:790px}
.payment-help h2{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2rem,4vw,3rem);margin:12px 0 18px}
.payment-fallback{margin-top:22px;color:var(--muted)}
.payment-fallback a{color:var(--blue);font-weight:800}

/* Subject packages and public EFT details */
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:900px;margin:0 auto 42px}.package-grid article{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:0 10px 28px rgba(4,27,45,.06)}.package-grid article.featured{border:2px solid var(--gold);transform:translateY(-6px)}.package-grid span{color:var(--muted);font-size:.82rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.package-grid strong{margin-top:8px;color:var(--navy);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.4rem,4vw,3.4rem);line-height:1}.banking-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;max-width:1000px;margin-inline:auto;padding:clamp(28px,5vw,50px);border:1px solid #31506a;border-radius:20px;background:linear-gradient(135deg,#021321,var(--navy-2));color:var(--white);box-shadow:0 18px 45px rgba(4,27,45,.14)}.banking-card-heading h2,.banking-card-heading h3{margin:12px 0;color:var(--white);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08}.banking-card-heading p{margin:0;color:#c9d4dc}.banking-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:rgba(227,168,74,.28);border:1px solid rgba(227,168,74,.28);border-radius:12px;overflow:hidden}.banking-details div{min-width:0;padding:15px 17px;background:#0a2b45}.banking-details div.wide{grid-column:1/-1}.banking-details dt{color:#d7bd8a;font-size:.7rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.banking-details dd{margin:3px 0 0;color:var(--white);font-size:.94rem;font-weight:800;overflow-wrap:anywhere}.guide-subsection{scroll-margin-top:28px;margin-top:30px;padding-top:28px;border-top:1px solid var(--line)}.guide-subsection h3{font-family:Georgia,'Times New Roman',serif;color:var(--navy);font-size:1.5rem}.package-grid.compact{gap:10px;margin:18px 0 28px}.package-grid.compact article{min-height:110px;padding:18px 12px}.package-grid.compact strong{font-size:2rem}.banking-card.compact{scroll-margin-top:28px;grid-template-columns:1fr;gap:24px;padding:28px;margin-top:8px}.banking-card.compact .banking-card-heading h3{font-size:1.8rem}

/* Parent and learner guides */
.guide-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start}
.guide-nav{position:sticky;top:28px;display:flex;flex-direction:column;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.guide-nav strong{margin-bottom:10px;color:var(--navy)}
.guide-nav a{padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.9rem;font-weight:700}
.guide-nav a:last-child{border-bottom:0}
.guide-nav a:hover{color:var(--blue)}
.guide-content{display:flex;flex-direction:column;gap:24px}
.guide-section{scroll-margin-top:30px;padding:clamp(26px,4vw,42px);border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:0 10px 30px rgba(4,27,45,.05)}
.guide-number{color:var(--blue);font-size:.75rem;font-weight:900;letter-spacing:.12em}
.guide-section h2,.guide-help h2{font-family:Georgia,serif;color:var(--navy);font-size:clamp(1.75rem,3vw,2.4rem);line-height:1.14;margin:12px 0 18px}
.guide-section p,.guide-section li,.guide-help p{color:var(--muted)}
.guide-section ol{padding-left:1.3rem}
.guide-section li+li{margin-top:8px}
.guide-section .plain-link{display:inline-flex;margin-top:8px;font-weight:900}
.guide-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.guide-help{padding:32px;border-radius:16px;background:var(--navy);color:var(--white)}
.guide-help h2{color:var(--white)}
.guide-help p{margin:0;color:#cfdae2}
.guide-help a{color:var(--gold-soft);font-weight:800}

/* Contact query categories */
.query-categories{margin:0;padding:0;border:0}
.query-categories legend{margin-bottom:10px;color:var(--navy);font-size:.9rem;font-weight:800}
.radio-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.radio-options label{display:flex;align-items:center;gap:10px;min-height:48px;padding:11px 14px;border:1px solid #c9b995;border-radius:10px;background:var(--white);cursor:pointer;font-size:.9rem;font-weight:700}
.radio-options label:hover{border-color:var(--gold);background:#fff8e9}
.radio-options input{width:18px;height:18px;margin:0;accent-color:var(--blue);flex:0 0 auto}
.radio-options input:focus-visible{outline:3px solid rgba(227,168,74,.4);outline-offset:2px}
.contact-details-section{padding-top:0}
.tsom-eft-checkout-note{padding:16px 18px;border:1px solid #dfbd7e;border-radius:10px;background:#fbf2df;color:var(--navy)}
.tsom-eft-checkout-note p{margin:4px 0 0;color:var(--muted);font-size:.9rem}
.subject-choice.multi{grid-template-columns:repeat(3,1fr)}

@media(max-width:900px){
    .registration-steps,.enrolment-steps{grid-template-columns:repeat(2,1fr)}
    .guide-layout{grid-template-columns:1fr;gap:28px}
    .subject-choice.multi{grid-template-columns:1fr}
    .guide-nav{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}
    .guide-nav strong{grid-column:1/-1}
    .banking-card{grid-template-columns:1fr}
}
@media(max-width:640px){
    .registration-steps,.enrolment-steps,.radio-options{grid-template-columns:1fr}
    .registration-steps li,.enrolment-steps li{padding:20px}
    .guide-nav{grid-template-columns:1fr}
    .guide-actions{flex-direction:column}
    .registration-login-note{align-items:flex-start;flex-direction:column}
    .tsom-page-hero{padding-block:58px}
    .tsom-page-title{margin-bottom:22px}
    .package-grid{grid-template-columns:1fr;margin-bottom:32px}.package-grid article.featured{transform:none}.banking-details{grid-template-columns:1fr}.banking-details div.wide{grid-column:auto}.banking-card{padding:26px 20px}.package-grid.compact{grid-template-columns:1fr}
}
