﻿:root {
  --color-page:#090a0b; --color-section-alt:#101112; --color-surface:#141516; --color-surface-2:#191a1c;
  --color-ink:#f6f4ef; --color-muted:#b9b9b7; --color-line:#303033;
  --color-brand:#e50920; --color-brand-hover:#ff263c; --color-brand-dark:#08090a; --color-accent:#ed142b;
  --font-display:'Barlow Condensed','Arial Narrow',Impact,sans-serif; --font-body:'Barlow','Segoe UI',sans-serif;
  --site-width:1320px; --gutter:clamp(22px,5.5vw,88px); --section-space:100px; --radius:0; --button-radius:0;
}
body { -webkit-font-smoothing:antialiased; }
::selection {background:#e50920;color:white}
h1,h2,h3,p {overflow-wrap:break-word}
#site-header {position:sticky;top:0;z-index:50}
.site-header {background:rgba(7,8,9,.97);padding-block:14px;box-shadow:none;border-color:#222}
.nav {gap:32px}
.brand {gap:14px;flex-shrink:0}
.brand-logo {width:48px;height:60px;object-fit:contain}
.brand-wordmark {display:flex;flex-direction:column;line-height:1}
.brand-wordmark strong {font-family:var(--font-display);font-size:34px;letter-spacing:1px;font-weight:700}
.brand-wordmark small {font-size:11px;letter-spacing:5px;margin-top:7px;text-align:center}
.nav-links {gap:32px}
.nav-links a {font-family:var(--font-display);font-size:17px;color:#fff;position:relative;transition:color .2s}
.nav-links a::after {content:'';height:2px;background:var(--color-brand);position:absolute;bottom:4px;left:0;right:100%;transition:right .25s}
.nav-links a:hover::after,.nav-links a:focus-visible::after {right:0}
.button {position:relative;background:var(--color-brand);border:1px solid var(--color-brand);border-radius:0;padding:17px 30px;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s,transform .2s,box-shadow .2s;line-height:1.2}
.button:hover {background:var(--color-brand-hover);transform:translateY(-3px);box-shadow:0 9px 30px #e509202e}
.button:active {transform:translateY(0)}
:focus-visible {outline:2px solid #ff3c50;outline-offset:5px}
.nav-action .button {font-size:16px;padding:14px 22px;letter-spacing:.8px}
.section-eyebrow {font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:4px;color:var(--color-accent);text-transform:uppercase;margin:0 0 22px;display:flex;align-items:center;gap:20px}
.section-eyebrow::after {content:'';width:64px;height:2px;background:currentColor}
.home-hero {position:relative;overflow:hidden;background:#070809;min-height:730px;display:flex;align-items:center;padding-block:35px}
.home-hero .inner {position:relative;z-index:2;padding-block:40px}
.home-hero h1 {font-size:clamp(64px,6.9vw,108px);font-weight:800;letter-spacing:-1.8px;line-height:.98;max-width:850px;margin-bottom:26px}
.hero-title-line {display:block}
.home-hero p:not(.section-eyebrow) {max-width:580px;font-size:18px;line-height:1.55;color:#ddd;margin-block:16px}
.home-hero p.hero-note {font-size:14px;color:#bbb;margin-top:14px}
.hero-actions {margin-top:28px}
.hero-art {position:absolute;right:0;top:0;height:100%;width:52%;overflow:hidden}

.hero-art::after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,#070809 0%,rgba(7,8,9,.45) 30%,transparent 70%),linear-gradient(0deg,#070809 0%,transparent 20%)}
.home-bio.section {background:#f3f0e9;color:#101112;padding:0;border:0}
.bio-layout {display:grid;grid-template-columns:.85fr 1.15fr;max-width:1500px;width:100%;gap:0}
.bio-photo {position:relative;margin:0;overflow:hidden;min-height:700px;background:#181818}
.bio-photo img {width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 25%;filter:saturate(.7);transition:filter .7s,transform .9s}
.bio-photo:hover img {filter:saturate(1);transform:scale(1.025)}
.bio-photo::after {content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.bio-photo figcaption {position:absolute;bottom:38px;left:38px;z-index:1;color:white;display:grid;gap:6px}
.bio-photo figcaption strong {font-family:var(--font-display);font-size:36px}
.bio-photo figcaption span {font-size:11px;letter-spacing:3px}
.bio-copy {padding:70px clamp(28px,5vw,80px)}
.section h2 {font-size:clamp(44px,4.9vw,70px);font-weight:700;line-height:1.02;max-width:1000px;margin-bottom:25px}
.bio-copy h2 {font-size:clamp(42px,4vw,61px)}
.bio-copy h2 span {display:block}
.bio-copy p:not(.section-eyebrow) {color:#424242;font-size:17px;line-height:1.65;margin:0 0 20px}
.bio-copy .button {margin-top:12px}
.home-services.section {background:radial-gradient(ellipse at top right,#19191b,#090a0b 65%)}
.home-services .section-lede {max-width:780px;color:#b9b9b7;font-size:18px}
.service-list {grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:45px;align-items:stretch}
.service-item {border-radius:0;display:flex;flex-direction:column;padding:0;background:#101112;box-shadow:none;transition:transform .3s,border-color .3s,box-shadow .3s}
.service-item:hover,.service-item:focus-within {transform:translateY(-8px);border-color:#e50920;box-shadow:0 16px 40px #0008}
.program-art {aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;background:#050505;border-bottom:1px solid #292929}
.program-art img {width:90%;height:90%;object-fit:contain;transition:transform .5s}
.service-item:hover .program-art img {transform:scale(1.07)}
.program-copy {padding:22px 17px;display:flex;flex-direction:column;flex:1}
.program-age {color:#f34556;font-size:11px;letter-spacing:2px;font-weight:600;margin-bottom:10px}
.service-item h3 {font-size:27px;margin:0 0 15px;line-height:1.05;min-height:56px}
.service-item p {font-size:15px;color:#bcbcbc;line-height:1.65;margin:0 0 25px}
.program-copy .button {margin-top:auto;width:100%;font-size:14px;letter-spacing:.5px;padding:14px 7px}
.home-services>.inner>.contact-actions {display:none}
.reviews.section {background:#efede7;color:#151515;text-align:center}
.reviews .section-eyebrow {justify-content:center}
.reviews h2 {margin-inline:auto}
.reviews .integration-placeholder {background:transparent;border:1px solid #cdc9c1;border-radius:0;min-height:140px;color:#64615d;max-width:850px;margin:30px auto 0}
.location-contact.section {background:#101113;position:relative}
.location-contact .inner {display:grid;grid-template-columns:1.25fr .75fr;column-gap:90px}
.location-contact .section-eyebrow,.location-contact h2 {grid-column:1/-1}
.location-contact h2 {max-width:850px}
.location-contact h2 span {display:block}
.location-contact p:not(.section-eyebrow) {grid-column:1;font-size:19px;max-width:650px;color:#c5c5c3;margin:0 0 18px}
.location-contact .contact-card {grid-column:2;grid-row:3/6;margin:0;padding:30px;border-radius:0;background:#191a1b;border:1px solid #353535;border-top:3px solid var(--color-brand);align-self:start}
.contact-card>strong {font-family:var(--font-display);font-size:27px}
.contact-details {margin-top:20px;gap:12px;font-size:17px}
.contact-details a {color:#f5f2eb;text-decoration:none;transition:color .2s}
.contact-details a:hover {color:var(--color-accent)}
.contact-actions {margin-top:22px}
.site-footer {background:#070809;border-top:1px solid #272727;color:#eee}
.footer-lockup em,.footer-brand p,.footer-column a,.footer-bottom {color:#aaa}
.footer-column h2 {font-family:var(--font-display);font-size:23px;color:#fff}
.footer-column a:hover {color:#f02439}
.nav-toggle {background:transparent;border-color:#555;border-radius:0}
.nav-toggle span {background:#fff}
.reveal-ready {opacity:0;translate:0 30px;transition:opacity .75s ease var(--reveal-delay,0ms),translate .75s cubic-bezier(.2,.7,.3,1) var(--reveal-delay,0ms)}
.reveal-ready.is-visible {opacity:1;translate:0 0}
@media (max-width:1100px) {
 .nav {gap:22px}.nav-links{gap:20px}.brand-wordmark strong{font-size:28px}
 .service-list {grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-hero h1{font-size:clamp(60px,7.6vw,90px)}.home-hero p:not(.section-eyebrow){max-width:52%}
 .bio-copy{padding:50px 30px}.bio-photo{min-height:780px}
}
@media (max-width:720px) {
 :root{--gutter:22px;--section-space:64px}
 .site-header{padding-block:10px}.nav{gap:12px}.brand{gap:9px}.brand-logo{width:35px;height:44px}.brand-wordmark strong{font-size:24px}.brand-wordmark small{font-size:8px;letter-spacing:3px}
 .nav-action{display:none}.nav-toggle{grid-column:3}.nav-links{background:#080909;padding-block:10px}.nav-links a{font-size:20px;width:100%}
 .home-hero{min-height:740px;align-items:flex-end;padding-block:0}.home-hero .inner{padding-block:55px 35px}.hero-art{width:100%;height:100%;opacity:.55}.hero-art::after{background:linear-gradient(0deg,#070809 4%,rgba(7,8,9,.8) 52%,rgba(7,8,9,.1))}
 .home-hero h1{font-size:clamp(51px,10vw,72px);letter-spacing:-.8px}.home-hero p:not(.section-eyebrow){max-width:100%;font-size:17px}.section-eyebrow{font-size:12px;letter-spacing:2.5px}
 .bio-layout{grid-template-columns:1fr}.bio-photo{min-height:0;height:500px}.bio-photo img{object-position:center 30%}.bio-copy{padding:45px 24px}.bio-copy h2{font-size:44px}
 .service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.program-copy{padding:20px 14px}.service-item h3{font-size:28px}.program-copy .button{font-size:14px}
 .location-contact .inner{display:block}.location-contact .contact-card{margin-top:30px}.location-contact .contact-actions{margin-top:28px}
}
@media (max-width:440px) {
 .service-list{grid-template-columns:1fr}.program-art{aspect-ratio:1.4/1}.program-art img{height:210px;width:210px}.service-item h3{min-height:0;font-size:32px}.service-item p{font-size:16px}.program-copy{padding:25px}.program-copy .button{font-size:17px}
 .home-hero h1{font-size:52px}.hero-actions .button{width:100%}.bio-photo{height:420px}
}
@media (prefers-reduced-motion:reduce) {
 html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;translate:none}.button:hover,.service-item:hover{transform:none}
}
.home-hero .section-eyebrow {color:var(--color-accent)}
.reviews .reviews-placeholder {min-height:0;padding:0;background:transparent;border:0;display:block}
.reviews .integration-placeholder {color:#555}
@media (min-width:721px) and (max-width:1000px) {
 .nav {gap:18px}.brand-wordmark strong{font-size:25px}.brand-wordmark small{letter-spacing:3px;font-size:9px}.nav-links{gap:18px}.nav-action{display:none}
}
.footer-content {grid-template-columns:minmax(0,1.2fr) minmax(0,.6fr) minmax(0,1fr)}
.footer-content>* {min-width:0}.footer-visit a{overflow-wrap:anywhere}
@media(max-width:900px){.footer-content{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:520px){.footer-content{grid-template-columns:1fr}}
.section .section-eyebrow {color:var(--color-accent)}
.button {box-shadow:none}
.reviews .integration-placeholder p {color:#66615a}

/* Student testimonials supplied by the business. */
.student-reviews {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px;text-align:left}
.student-review {margin:0;padding:32px;display:flex;flex-direction:column;background:#faf8f3;border:1px solid #d9d5cd;border-top:3px solid var(--color-brand);transition:transform .3s,box-shadow .3s}
.student-review:hover {transform:translateY(-5px);box-shadow:0 15px 35px #1717170d}
.review-stars {color:#c8081d;font-size:20px;letter-spacing:4px;margin-bottom:22px}
.student-review blockquote {margin:0 0 30px}
.student-review blockquote p {margin:0;color:#393734;font-size:18px;line-height:1.65}
.student-review figcaption {display:flex;align-items:center;gap:13px;margin-top:auto}
.review-avatar {width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;background:#e8e3da;color:#4c4842;border-radius:50%;font-size:13px;font-weight:600}
.student-review figcaption strong {display:block;font-size:16px;color:#171717}
.student-review figcaption small {display:block;font-size:13px;color:#726d65;margin-top:2px}
@media(max-width:900px){.student-reviews{grid-template-columns:1fr}.student-review{padding:28px}}
@media(prefers-reduced-motion:reduce){.student-review:hover{transform:none}}
.location-map {grid-column:1/-1;margin-top:55px;border:1px solid #353535;background:#191a1b;min-width:0}
.map-heading {display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 28px}
.map-heading h3 {font-family:var(--font-display);font-size:28px;margin:0 0 5px}
.location-contact .map-heading p {font-size:15px;margin:0;color:#b9b9b7}
.map-heading a {color:#fff;text-underline-offset:5px;white-space:nowrap;font-size:15px}
.map-heading a:hover {color:var(--color-accent)}
.location-map iframe {display:block;width:100%;height:400px;border:0}
@media(max-width:720px){.map-heading{align-items:flex-start;flex-direction:column;padding:22px;gap:15px}.location-map iframe{height:320px}}
/* Standalone hero photograph: cover preserves its intrinsic proportions. */
.hero-art {width:100%;height:100%;opacity:1}
.hero-photo {display:block;width:100%;height:100%;object-fit:cover;object-position:70% 35%}
.hero-art::after {background:linear-gradient(90deg,#070809 0%,rgba(7,8,9,.92) 27%,rgba(7,8,9,.5) 48%,transparent 72%),linear-gradient(0deg,rgba(7,8,9,.4),transparent 30%)}
@media(max-width:720px){
 .hero-photo{object-position:72% center}
 .hero-art::after{background:linear-gradient(0deg,#070809 0%,rgba(7,8,9,.92) 28%,rgba(7,8,9,.62) 65%,rgba(7,8,9,.25))}
}
