@font-face{font-family:Libre Caslon Display;src:url("fonts/libre-caslon-display-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Source Sans;src:url("fonts/source-sans-3-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#faf8f6;--ink:#302331;--mauve:#78576f;--muted:#685762;--line:#ded4da;--tint:#f0e9ed;--serif:"Libre Caslon Display",Georgia,"Times New Roman",serif;--sans:"Source Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:35px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:19px;line-height:1.6}
a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}
a:hover{color:var(--mauve)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--mauve);outline-offset:5px}
button,input,textarea,select{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.13}
h2{font-size:clamp(36px,3.5vw,54px);letter-spacing:-1.2px}
h3{font-size:38px;letter-spacing:-.6px}
p+p{margin-top:18px}
.site-header{max-width:1440px;margin:auto;padding:27px 10px 20px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{text-decoration:none;display:inline-flex;flex-direction:column;line-height:1.12}
.brand-name{font-family:var(--serif);font-size:48px;letter-spacing:-1.5px}
.brand-subtitle{font-family:var(--sans);font-size:19px;letter-spacing:4px;color:var(--mauve);margin-top:6px}
.navigation{display:flex;gap:42px;align-items:center;font-family:var(--serif);font-size:20px}
.navigation a{text-decoration:none;padding:12px 0}
.navigation a:hover{text-decoration:underline}
.menu-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:2px;color:var(--ink);padding:8px 15px}
.hero{overflow:hidden}
.hero-copy{text-align:center;padding:88px 24px 42px}
.hero h1{font-size:clamp(42px,5.35vw,90px);letter-spacing:-1.6px;line-height:1.12}
.hero-copy>p{font-size:clamp(21px,2vw,31px);color:var(--mauve);margin-top:22px}
.button{display:inline-flex;align-items:center;justify-content:center;background:var(--mauve);color:#fff;border:1px solid var(--mauve);border-radius:2px;min-height:62px;padding:12px 36px;font-family:var(--serif);font-size:24px;text-decoration:none;line-height:1.3}
.button:hover{background:#62445a;border-color:#62445a;color:#fff}
.hero-copy .button{margin-top:36px;min-width:330px}
.hero-image{height:clamp(320px,27vw,455px)}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.section{max-width:1192px;padding:110px 24px;margin:0 auto}
.section-label{font-family:var(--sans);font-size:16px;color:var(--mauve);letter-spacing:2.2px;text-transform:uppercase;line-height:1.5}
.welcome,.courses{display:grid;grid-template-columns:1fr 2fr;gap:55px}
.welcome-copy{max-width:695px}
.welcome h2,.courses h2{margin-bottom:27px}
.text-link{display:inline-block;margin-top:26px;text-decoration:underline;color:var(--mauve)}
.offerings{border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:70px;margin-bottom:50px}
.section-heading h2{margin-top:14px}
.section-heading>p{max-width:420px;color:var(--muted)}
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.offer{position:relative;border-top:1px solid var(--line);padding-top:34px}
.offer-number{display:block;font-size:15px;color:var(--mauve);margin-bottom:18px}
.offer h3{margin-bottom:20px}
.offer p{max-width:460px;color:var(--muted)}
.courses{border-top:1px solid var(--line);padding-top:85px;padding-bottom:100px}
.courses>div:last-child{max-width:695px}
.contact{max-width:none;background:var(--tint);display:grid;grid-template-columns:minmax(300px,440px) minmax(400px,600px);justify-content:center;gap:105px;padding:100px 35px}
.contact h2{margin:17px 0 25px}
.contact-intro>p:not(.section-label){max-width:380px;color:var(--muted)}
.contact-form{padding-top:4px}
fieldset{border:0;padding:0;margin:0;min-width:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{margin-bottom:20px}
.field label{display:block;margin-bottom:7px;font-size:18px}
.field label span{font-size:14px;color:var(--muted)}
input,textarea,select{width:100%;background:#faf8f6;border:1px solid #b6a7b1;color:var(--ink);border-radius:2px;padding:10px 12px;min-height:48px}
textarea{resize:vertical;min-height:140px}
.privacy-note{font-size:15px;color:var(--muted);line-height:1.55;margin-bottom:25px}
.contact-form .button{font-size:21px;min-height:54px;padding:10px 27px}
.form-status:not(:empty){margin-top:22px;border:1px solid var(--mauve);padding:16px;font-size:17px}
.connections{max-width:1192px;margin:auto;padding:65px 24px;display:flex;align-items:center;justify-content:space-between;gap:50px;color:var(--muted);font-size:17px}
.connections h2{font-family:var(--sans);font-size:15px;text-transform:uppercase;letter-spacing:2px;color:var(--mauve);margin-bottom:15px}
.connections>p{max-width:350px}
.site-footer{border-top:1px solid var(--line);max-width:1440px;margin:0 auto;padding:30px 10px 35px;display:flex;justify-content:space-between;gap:30px;align-items:center;font-size:15px;color:var(--muted)}
.footer-name{font-family:var(--serif);font-size:26px;color:var(--ink);text-decoration:none}
.site-footer nav{display:flex;gap:28px}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;transform:translateY(-180%);background:var(--ink);color:#fff;padding:10px 18px}
.skip-link:focus{transform:translateY(0)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.legal-main{max-width:900px;margin:0 auto;padding:60px 28px 100px}
.back-link{display:inline-block;font-size:17px;color:var(--mauve);margin-bottom:36px}
.legal-main h1{font-size:clamp(45px,5vw,70px);letter-spacing:-1.3px;margin-bottom:42px;overflow-wrap:anywhere}
.legal-main section+section{margin-top:38px}
.legal-main h2{font-family:var(--sans);font-size:26px;line-height:1.3;letter-spacing:0;margin-bottom:16px}
.legal-main h3{font-family:var(--sans);font-size:21px;line-height:1.4;letter-spacing:0;margin:24px 0 12px}
.legal-main p,.legal-main li{color:var(--muted)}
.legal-main ul{padding-left:24px}
.legal-main a{overflow-wrap:anywhere}
@media(min-width:1700px){.site-header{max-width:1440px}.hero-copy{padding-top:95px}.hero-image{height:460px}}
@media(max-width:1500px){.site-header,.site-footer{margin-left:6%;margin-right:6%}.brand-name{font-size:43px}.brand-subtitle{font-size:17px;letter-spacing:3px}.hero-copy{padding-top:90px}}
@media(max-width:1050px){.navigation{gap:25px;font-size:18px}.brand-name{font-size:36px}.brand-subtitle{font-size:14px;letter-spacing:2px}.hero-copy{padding-top:85px}.hero h1{font-size:clamp(40px,5.8vw,66px);letter-spacing:-1.5px}.section{padding:80px 35px}.contact{gap:50px;grid-template-columns:1fr 1.2fr}.section-heading{gap:35px}.site-footer{flex-wrap:wrap}.site-footer>span{width:100%}}
@media(max-width:700px){body{font-size:18px}.site-header{margin:0;padding:23px 24px 20px;gap:14px;flex-wrap:wrap}.brand-name{font-size:32px;letter-spacing:-.7px}.brand-subtitle{font-size:12px;letter-spacing:2px;margin-top:5px}.menu-toggle{display:block}.menu-toggle[hidden]{display:none}.navigation{width:100%;gap:10px 24px;flex-wrap:wrap;font-family:var(--sans);font-size:18px;justify-content:flex-start}.js .navigation{display:none}.js .navigation.is-open{display:flex}.navigation a{padding:9px 0}.hero-copy{padding:63px 22px 38px}.hero h1{max-width:490px;margin:auto;font-size:clamp(39px,8.7vw,58px);letter-spacing:-1.4px;line-height:1.15}.hero-copy>p{font-size:21px;max-width:310px;margin:24px auto 0;line-height:1.45}.hero-copy .button{min-width:0;min-height:56px;font-size:21px;margin-top:29px;padding:12px 28px}.hero-image{height:300px}.hero-image img{object-position:38% center}.section{padding:65px 24px}.welcome,.courses{grid-template-columns:1fr;gap:25px}h2{font-size:38px;letter-spacing:-.9px}.welcome h2,.courses h2{margin-bottom:22px}.section-label{font-size:14px;letter-spacing:1.8px}.section-heading{display:block;margin-bottom:35px}.section-heading>p{margin-top:24px}.offer-grid{grid-template-columns:1fr;gap:40px}.offer{padding-top:25px}.offer h3{font-size:34px;margin-bottom:16px}.offer-number{margin-bottom:14px}.contact{grid-template-columns:1fr;gap:42px;padding:65px 24px}.contact h2{font-size:39px}.contact-intro>p:not(.section-label){max-width:450px}.form-row{grid-template-columns:1fr;gap:0}.form-note{font-size:16px}.connections{padding:45px 24px;display:block}.connections>p{margin-top:32px}.site-footer{margin:0;padding:30px 24px 35px;display:block}.site-footer nav{flex-wrap:wrap;gap:12px 22px;margin:20px 0}.site-footer>span{display:block}.button{max-width:100%}}
@media(max-width:400px){.legal-main h1{font-size:clamp(32px,10.4vw,41px);letter-spacing:-.8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.button:disabled{cursor:wait;opacity:.65}
