:root{--ink:#17384a;--muted:#50616a;--paper:#faf9f6;--blue:#e9eff1;--line:#d3dcdd;--accent:#b65e38}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}button,input,textarea,select{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{max-width:1280px;width:calc(100% - 112px);margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding-block:27px;border-bottom:1px solid var(--line);gap:25px}.brand{text-decoration:none;font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;line-height:1.15}.brand span{display:block;margin-top:9px;font:600 11px/1.3 'DM Sans',sans-serif;letter-spacing:1.8px}nav{display:flex;align-items:center;gap:34px}nav a{font-size:14px;text-decoration:none}nav a:hover{text-decoration:underline;text-underline-offset:6px}.nav-contact{border-bottom:1px solid var(--ink);padding-block:9px}.nav-contact span{padding-left:25px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;padding-block:66px 88px;align-items:center}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;margin:0 0 25px}.hero h1{font-family:'Libre Caslon Display',Georgia,serif;font-size:clamp(65px,6.6vw,94px);font-weight:400;line-height:.99;letter-spacing:-2.3px;margin:0 0 29px}em{font-weight:400;color:var(--accent)}.intro{font-size:17px;max-width:440px;line-height:1.8;color:var(--muted);margin:0 0 30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:white;text-decoration:none;font-size:14px;font-weight:500;padding:17px 23px;border:1px solid var(--ink);border-radius:2px;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#28566b;transform:translateY(-2px)}.button span{font-size:21px;line-height:1}.hero-note{font-size:12px;margin:15px 0 0;color:var(--muted)}.hero-visual{position:relative;padding-bottom:32px}.hero-visual figure{margin:0;position:relative}.hero-visual img{display:block;width:100%;height:525px;object-fit:cover;border-radius:180px 180px 3px 3px;background:#aac0bf}.hero-visual figcaption{position:absolute;bottom:22px;left:25px;right:20px;color:white;font-family:'Libre Caslon Display',Georgia,serif;font-size:27px;text-shadow:0 1px 8px #000}.photo-label{position:absolute;bottom:0;left:-26px;background:var(--paper);border:1px solid var(--line);padding:16px 23px;font-size:10px;font-weight:700;letter-spacing:1.6px;display:flex;gap:23px}.subjects{border-top:1px solid var(--line);padding-block:58px 80px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:25px;align-items:start;margin-bottom:40px}.section-heading .eyebrow{padding-top:12px}h2{font:400 51px/1.06 'Libre Caslon Display',Georgia,serif;letter-spacing:-.7px;margin:0}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}.subject-grid article{border-top:1px solid var(--line);padding-top:25px}.subject-top{display:flex;justify-content:space-between;align-items:center}.subject-symbol{font:400 40px/1.1 Georgia,serif}.science{font-size:55px;line-height:.8}.number{font-size:12px;color:var(--muted)}h3{font:400 34px/1.2 'Libre Caslon Display',Georgia,serif;margin:21px 0 12px}.subject-grid p{color:var(--muted);font-size:15px;line-height:1.8;margin:0}.subject-grid .topics{font-size:12px;color:var(--ink);border-top:1px solid var(--line);margin-top:24px;padding-top:17px}.approach{background:var(--blue)}.approach-inner{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-block:72px}.signature{font:400 30px/1.2 'Libre Caslon Display',Georgia,serif;margin:32px 0 3px}.signature-label{font-size:12px;color:var(--muted);margin:0}.approach-copy p{color:var(--muted);font-size:15px;margin:0 0 20px}.approach-copy .large-copy{font-size:21px;line-height:1.5;color:var(--ink);margin-bottom:24px}.approach-values{border-top:1px solid #c5d1d5;display:flex;flex-wrap:wrap;gap:20px;margin-top:26px;padding-top:20px;font-size:12px;font-weight:600}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:85px;padding-block:85px}.contact-copy>p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:360px;margin:26px 0}.email-link{display:inline-flex;gap:28px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:6px;font-size:15px;overflow-wrap:anywhere}.contact-copy .location{font-size:12px!important;margin-top:15px!important}form{padding-top:4px;min-width:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:19px}.form-row>div{min-width:0}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}label span{font-weight:400;font-size:11px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #b8c5c9;background:transparent;border-radius:2px;padding:12px 13px;font-size:14px;color:var(--ink);min-height:48px}input::placeholder,textarea::placeholder{color:#6b767b;opacity:1}textarea{resize:vertical;display:block;min-height:135px}.privacy,.form-note{font-size:11px;line-height:1.7;color:var(--muted);margin:13px 0 18px}.form-note{margin-bottom:0}.form-note a{text-underline-offset:3px}form .button{width:100%}.honeypot{display:none}footer{border-top:1px solid var(--line);padding-block:25px 32px;display:flex;justify-content:space-between;gap:20px;align-items:center}footer span,footer>a:last-child{font-size:11px;color:var(--muted)}.footer-brand{font:400 25px 'Libre Caslon Display',Georgia,serif;text-decoration:none}footer>a:last-child{text-decoration:none}.skip-link{position:absolute;left:15px;top:-80px;background:var(--ink);color:white;padding:12px;z-index:10}.skip-link:focus{top:15px}
@media(min-width:1500px){.hero{gap:100px}.hero-visual img{height:580px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:40px}.hero h1{font-size:72px}.hero-visual img{height:480px}.photo-label{gap:12px;font-size:9px;padding:14px}.subject-grid{gap:25px}.approach-inner,.contact{gap:40px}.contact{grid-template-columns:1fr 1.15fr}.form-row{grid-template-columns:1fr;gap:18px}h2{font-size:45px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{padding-block:23px}.brand{font-size:25px}.brand span{font-size:9px;letter-spacing:1.2px}nav{gap:0}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:13px}.nav-contact span{padding-left:10px}.hero{grid-template-columns:1fr;gap:37px;padding-block:42px 48px}.hero h1{font-size:76px;letter-spacing:-1.8px}.eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:21px}.intro{font-size:16px;max-width:100%;margin-bottom:25px}.hero-note{font-size:11px}.hero-visual img{height:380px;border-radius:140px 140px 2px 2px}.hero-visual{padding-bottom:22px}.photo-label{left:12px;padding:13px 15px;gap:18px}.hero-visual figcaption{font-size:25px;bottom:29px;left:22px}.section-heading{grid-template-columns:1fr;gap:0;margin-bottom:33px}.section-heading .eyebrow{padding:0}.subjects{padding-block:37px 46px}h2{font-size:43px}.subject-grid{grid-template-columns:1fr;gap:32px}.subject-grid article{padding-top:22px}.subject-grid h3{margin-top:14px}.subject-grid p{font-size:16px}.subject-grid .topics{margin-top:17px;font-size:12px}.approach-inner,.contact{grid-template-columns:1fr;gap:34px;padding-block:47px}.approach-copy p{font-size:16px}.contact-copy>p:not(.eyebrow){max-width:100%;font-size:16px}.form-row{grid-template-columns:1fr;gap:19px}input,select,textarea{font-size:16px}label{font-size:14px}label span,.privacy,.form-note{font-size:12px}footer{align-items:flex-start;flex-wrap:wrap;padding-bottom:27px}footer span{order:3;width:100%}footer>a:last-child{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
@media(max-width:700px){.hero h1{font-size:clamp(44px,10.8vw,76px)}.hero-visual{min-width:0}.hero-visual figcaption{font-size:clamp(19px,5vw,25px)}.photo-label{flex-wrap:wrap;gap:4px 15px;max-width:calc(100% - 24px)}h2{font-size:clamp(34px,9vw,43px)}}
/* School levels and subjects use native, keyboard-accessible disclosure controls. */
.course-browser{margin-bottom:48px;border-top:1px solid var(--line)}.school-level{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:20px;min-height:60px;overflow-wrap:anywhere}summary::-webkit-details-marker{display:none}summary::after{content:'+';margin-left:auto;flex-shrink:0;font:400 26px/1 Arial,sans-serif}details[open]>summary::after{content:'−'}summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}summary:hover{color:var(--accent)}.school-level>summary{padding:22px 10px;font:400 36px/1.2 'Libre Caslon Display',Georgia,serif}.level-number{font:500 13px/1.5 'DM Sans',sans-serif;color:var(--muted)}.level-categories{margin:0 10px 24px 48px;padding:0 24px;background:var(--blue);border-radius:3px}.course-category+ .course-category{border-top:1px solid #c5d1d5}.course-category>summary{font-weight:600;padding:15px 0}.course-list{padding:0 0 20px;color:var(--muted);font-size:16px}.course-list ul{margin:0;padding-left:22px;columns:2;column-gap:40px}.course-list li{break-inside:avoid;padding:4px 0}.experience{padding-block:64px;border-bottom:1px solid var(--line)}.credentials-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}.credentials-grid h3{margin:0 0 20px;font-size:30px}.credentials-grid ul{list-style:none;margin:0;padding:0}.credentials-grid li{padding:16px 0;border-top:1px solid var(--line);font-size:16px;color:var(--muted)}.credentials-grid strong{color:var(--ink);font-weight:600}@media(max-width:700px){.school-level>summary{font-size:29px;gap:14px;padding:20px 4px}.level-categories{margin:0 0 18px 12px;padding:0 16px}.course-list ul{columns:1}.credentials-grid{grid-template-columns:1fr;gap:30px}.experience{padding-block:44px}.course-browser{margin-bottom:36px}}
/* Formatting supplied by the visual CMS editor. */
.cms-rich>p:first-child{margin-top:0}.cms-rich>p:last-child{margin-bottom:0}.cms-rich ul,.cms-rich ol{padding-left:1.4em}.cms-rich em{color:inherit}.cms-rich p{font-size:inherit;line-height:inherit}.subject-grid .cms-rich,.approach-copy>.cms-rich{font-size:16px;line-height:1.8;color:var(--muted)}.approach-copy>.cms-rich{margin-bottom:20px}.approach-copy>.large-copy{font-size:21px;line-height:1.5;color:var(--ink)}.contact-copy>.cms-rich{font-size:16px;color:var(--muted);max-width:360px;margin:26px 0}h1,h2{overflow-wrap:anywhere}.cms-rich{overflow-wrap:anywhere}
/* Local search pages retain the same restrained type and color palette. */
.hero h1{font-size:clamp(48px,4.8vw,68px);line-height:1.04;letter-spacing:-1.3px}.supporting-headline{font:400 28px/1.3 'Libre Caslon Display',Georgia,serif;margin:0 0 20px}.hero-copy{min-width:0}.hero .intro{font-size:17px}.brand{white-space:nowrap}.subject-links{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 34px}.subject-link{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;min-height:48px;padding:12px 18px;border:1px solid var(--line);text-decoration:none;font-size:15px}.subject-link:hover{border-color:var(--ink);background:var(--blue)}.text-link{display:inline-block;margin-top:20px;text-underline-offset:5px;font-size:15px}.subject-grid .text-link{line-height:1.6}.service-area,.faq{padding-block:65px;border-bottom:1px solid var(--line)}.section-intro{max-width:700px;margin:0 0 32px;color:var(--muted);font-size:17px}.area-grid{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:35px}.area-grid h3{font-size:29px;margin:0 0 18px}.town-list{padding:0;list-style:none;margin:0}.town-list li{padding:6px 0;border-bottom:1px solid var(--line)}.area-grid p{font-size:15px;color:var(--muted)}.pricing{padding:26px;background:var(--blue);align-self:start}.pricing .eyebrow{font-size:11px;margin:0 0 15px}.pricing .price{font:400 54px/1.1 'Libre Caslon Display',Georgia,serif;color:var(--ink);margin:0 0 20px}.price span{font:400 16px 'DM Sans',sans-serif}.pricing .price-note{font-size:13px}.pricing .text-link{margin-top:10px}.faq-list{max-width:850px;margin-left:auto}.faq-list details{border-top:1px solid var(--line)}.faq-list summary{font-size:17px;font-weight:500;padding:15px 0}.faq-list .cms-rich{color:var(--muted);padding:0 30px 23px 0}.booking-price{font-size:15px!important}.subject-hero{padding-block:40px 55px;border-bottom:1px solid var(--line)}.breadcrumb{font-size:14px;margin:0 0 42px;color:var(--muted)}.subject-hero h1{font:400 clamp(44px,5.5vw,76px)/1.08 'Libre Caslon Display',Georgia,serif;letter-spacing:-1px;max-width:850px;margin:0 0 26px}.subject-intro{max-width:750px;font-size:19px;line-height:1.8;color:var(--muted);margin:0 0 27px}.subject-body{padding-block:15px 50px}.subject-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;padding-block:43px;border-bottom:1px solid var(--line)}.subject-section h2{font-size:39px;line-height:1.13}.subject-section .cms-rich{font-size:17px;line-height:1.8;color:var(--muted)}.subject-section .cms-rich p{margin:0 0 20px}.subject-courses .course-category{border-bottom:1px solid var(--line)}.subject-courses .course-list ul{columns:1}.subject-contact{padding-block:60px}.subject-contact>p{color:var(--muted)}.subject-contact .subject-links{margin-top:40px}.subject-links .subject-link{display:inline-flex!important}.subject-contact h2{max-width:700px}.hero-visual picture{display:block}@media(max-width:1000px){.site-header nav{gap:18px}.site-header nav a{font-size:13px}.area-grid{grid-template-columns:1fr 1fr}.pricing{grid-column:1/-1;max-width:500px}.subject-section{gap:35px}.hero h1{font-size:clamp(42px,5.5vw,62px)}}@media(max-width:700px){.hero h1{font-size:clamp(41px,10vw,58px);letter-spacing:-.9px}.supporting-headline{font-size:26px}.brand{font-size:24px}.area-grid,.subject-section{grid-template-columns:1fr;gap:28px}.service-area,.faq{padding-block:42px}.subject-section{padding-block:32px}.subject-section h2{font-size:34px}.subject-hero{padding-block:28px 38px}.subject-hero h1{font-size:45px}.breadcrumb{margin-bottom:30px}.subject-intro{font-size:17px}.pricing{max-width:none}.subject-links{gap:10px}.subject-link{font-size:14px;flex:1 1 160px}.faq-list summary{font-size:16px}.section-intro{font-size:16px}.contact-copy>.cms-rich{max-width:none}.hero-visual img{height:360px}}@media(max-width:360px){.brand{font-size:21px}.brand span{font-size:8px}.site-header{gap:10px}.hero h1{font-size:39px}}
