:root{--cream:#f5f0e8;--cream-deep:#ebe4d8;--cream-soft:#faf7f2;--graphite:#3a3835;--graphite-deep:#2a2826;--warm-gray:#8a8278;--warm-gray-light:#b5aea4;--warm-gray-soft:#d4cfc6;--sheen:rgba(255, 255, 255, 0.35);--shadow-soft:0 12px 40px rgba(58, 56, 53, 0.08);--font-serif:"Libre Baskerville", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--font-display:"Cormorant Garamond", "Libre Baskerville", Georgia, serif;--max:68rem;--ease:cubic-bezier(0.25, 0.1, 0.25, 1);--dur:0.55s}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-serif);font-size:1.05rem;line-height:1.7;color:var(--graphite);background-color:var(--cream);background-image:linear-gradient(165deg,rgba(255,255,255,.22) 0%,transparent 42%),linear-gradient(345deg,rgba(138,130,120,6%) 0%,transparent 50%),repeating-linear-gradient( 90deg,transparent,transparent 2px,rgba(58,56,53,.012) 2px,rgba(58,56,53,.012) 3px );background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--graphite-deep);text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--dur)var(--ease),opacity var(--dur)var(--ease)}a:hover{color:var(--warm-gray)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.2;letter-spacing:.01em;color:var(--graphite-deep)}h1{font-size:clamp(2.4rem,5vw,3.6rem);margin:0 0 .6em}h2{font-size:clamp(1.75rem,3vw,2.35rem);margin:0 0 .55em}h3{font-size:1.35rem;margin:0 0 .45em}p{margin:0 0 1.1em}.container{width:min(100% - 2.5rem,var(--max));margin-inline:auto}.site-header{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,rgba(245,240,232,.94) 0%,rgba(245,240,232,.88) 100%);backdrop-filter:blur(8px);border-bottom:1px solid var(--warm-gray-soft);box-shadow:0 1px 0 var(--sheen)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0}.brand{font-family:var(--font-display);font-size:1.65rem;font-weight:600;letter-spacing:.04em;text-decoration:none;color:var(--graphite-deep)}.brand:hover{color:var(--graphite-deep);opacity:.8}.nav-toggle{display:none;background:0 0;border:1px solid var(--warm-gray);color:var(--graphite);font-family:var(--font-serif);font-size:.85rem;padding:.45rem .85rem;cursor:pointer}.nav-list{display:flex;flex-wrap:wrap;gap:1.35rem;list-style:none;margin:0;padding:0;align-items:center}.nav-list a{text-decoration:none;font-size:.92rem;letter-spacing:.02em;color:var(--graphite)}.nav-list a:hover,.nav-list a[aria-current=page]{color:var(--warm-gray)}.site-main{padding-bottom:4rem}.site-footer{border-top:1px solid var(--warm-gray-soft);background:linear-gradient(0deg,var(--cream-deep) 0%,var(--cream) 100%);padding:3rem 0 2rem;margin-top:2rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}.footer-brand{font-family:var(--font-display);font-size:1.4rem;margin-bottom:.75rem}.footer-meta,.footer-nav a{font-size:.95rem;color:var(--graphite)}.footer-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.footer-nav a{text-decoration:none}.footer-legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--warm-gray-soft);display:flex;flex-wrap:wrap;gap:1rem 1.75rem;font-size:.85rem;color:var(--warm-gray)}.footer-legal a{color:var(--warm-gray);text-decoration:none}.footer-copy{margin-top:1.25rem;font-size:.8rem;color:var(--warm-gray)}.surface{background:linear-gradient(135deg,rgba(255,255,255,.28) 0%,transparent 45%),linear-gradient(to bottom,var(--cream-soft),var(--cream-deep));border:1px solid var(--warm-gray-soft);box-shadow:inset 0 1px 0 var(--sheen),var(--shadow-soft)}.btn{display:inline-block;font-family:var(--font-serif);font-size:.95rem;padding:.75rem 1.5rem;border:1px solid var(--graphite);background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 55%),var(--graphite);color:var(--cream);text-decoration:none;cursor:pointer;transition:background var(--dur)var(--ease),transform var(--dur)var(--ease),opacity var(--dur)var(--ease)}.btn:hover{color:var(--cream);opacity:.9;transform:translateY(-1px)}.btn-ghost{background:0 0;color:var(--graphite);border-color:var(--warm-gray)}.btn-ghost:hover{color:var(--graphite);background:rgba(255,255,255,.35);opacity:1}.btn-group{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.5rem}.hero{position:relative;min-height:min(88vh,52rem);display:flex;align-items:flex-end;color:var(--cream);overflow:hidden}.hero-media{position:absolute;inset:0;z-index:0}.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)brightness(.72);animation:slow-drift 28s var(--ease)infinite alternate}.hero-veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(42,40,38,.78) 0%,rgba(42,40,38,.25) 55%,rgba(42,40,38,.4) 100%),linear-gradient(90deg,rgba(42,40,38,.35) 0%,transparent 60%);z-index:1}.hero-content{position:relative;z-index:2;width:min(100% - 2.5rem,var(--max));margin:0 auto;padding:4rem 0 3.5rem;animation:rise-in 1s var(--ease)both}.hero-brand{font-family:var(--font-display);font-size:clamp(2.8rem,7vw,4.8rem);font-weight:600;letter-spacing:.06em;margin:0 0 .35em;color:var(--cream);text-shadow:0 2px 24px rgba(0,0,0,.25)}.hero-line{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.85rem);font-weight:400;max-width:28ch;margin:0 0 .75em;color:var(--cream);line-height:1.35}.hero-support{max-width:42ch;margin:0;font-size:1.05rem;color:var(--warm-gray-soft)}.hero .btn{border-color:var(--cream);background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,transparent 55%),rgba(245,240,232,.12);color:var(--cream)}.hero .btn:hover{background:rgba(245,240,232,.22);color:var(--cream)}.hero .btn-ghost{background:0 0}.page-hero{padding:3.5rem 0 2.5rem;border-bottom:1px solid var(--warm-gray-soft);background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 70%),var(--cream)}.page-hero.with-image{position:relative;min-height:22rem;display:flex;align-items:flex-end;padding:0;border:none;overflow:hidden}.page-hero.with-image .page-hero-media{position:absolute;inset:0}.page-hero.with-image .page-hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)brightness(.65)}.page-hero.with-image .page-hero-veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(42,40,38,.82) 0%,rgba(42,40,38,.3) 100%)}.page-hero.with-image .container{position:relative;z-index:2;padding:4rem 0 2.5rem;color:var(--cream)}.page-hero.with-image h1,.page-hero.with-image p{color:var(--cream)}.lede{font-size:1.15rem;max-width:48ch;color:var(--warm-gray)}.section{padding:3.75rem 0}.section-tight{padding:2.5rem 0}.section-head{max-width:40rem;margin-bottom:2rem}.section-label{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:.6rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}.split-media img{width:100%;height:100%;min-height:18rem;object-fit:cover;filter:saturate(.88);box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}.offer-list{display:grid;gap:1.75rem}.offer-row{display:grid;grid-template-columns:minmax(0,1.2fr)minmax(0,2fr)auto;gap:1.25rem;align-items:start;padding:1.5rem 0;border-bottom:1px solid var(--warm-gray-soft);text-decoration:none;color:inherit;transition:opacity var(--dur)var(--ease)}.offer-row:hover{opacity:.78}.offer-row h3{font-family:var(--font-display);font-size:1.45rem;margin:0}.offer-row p{margin:0;color:var(--warm-gray);font-size:.98rem}.offer-meta{font-size:.85rem;color:var(--warm-gray);white-space:nowrap}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.75rem}.service-tile{text-decoration:none;color:inherit;display:block;transition:transform var(--dur)var(--ease)}.service-tile:hover{transform:translateY(-3px)}.service-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:1rem;filter:saturate(.85)}.service-tile h3{margin-bottom:.35rem}.service-tile p{color:var(--warm-gray);font-size:.95rem;margin:0}.quote-stack{display:grid;gap:2rem}.quote{padding:1.75rem 0;border-top:1px solid var(--warm-gray-soft)}.quote blockquote{margin:0 0 1rem;font-family:var(--font-display);font-size:1.35rem;line-height:1.45;font-weight:400}.quote cite{font-style:normal;font-size:.9rem;color:var(--warm-gray)}.rate-table{width:100%;border-collapse:collapse;margin:1.5rem 0}.rate-table th,.rate-table td{text-align:left;padding:1rem .75rem;border-bottom:1px solid var(--warm-gray-soft);vertical-align:top}.rate-table th{font-family:var(--font-display);font-weight:500;font-size:1.1rem}.prose{max-width:42rem}.prose h2{margin-top:2rem}.prose ul,.prose ol{padding-left:1.25rem}.prose li{margin-bottom:.45rem}.blog-list{display:grid;gap:2rem}.blog-item{display:grid;grid-template-columns:minmax(0,14rem)minmax(0,1fr);gap:1.5rem;text-decoration:none;color:inherit;padding-bottom:2rem;border-bottom:1px solid var(--warm-gray-soft);transition:opacity var(--dur)var(--ease)}.blog-item:hover{opacity:.8}.blog-item img{width:100%;aspect-ratio:3/2;object-fit:cover}.blog-item time{font-size:.85rem;color:var(--warm-gray)}.contact-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:start}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.35rem;font-size:.92rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.7rem .85rem;font-family:var(--font-serif);font-size:1rem;color:var(--graphite);background:rgba(255,255,255,.45);border:1px solid var(--warm-gray-soft);border-radius:0;transition:border-color var(--dur)var(--ease)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--warm-gray)}.form-group textarea{min-height:9rem;resize:vertical}.field-error{display:block;margin-top:.35rem;font-size:.85rem;color:#7a3e2e}.form-status{margin-top:1rem;padding:.85rem 1rem;font-size:.95rem}.form-status.success{background:rgba(255,255,255,.5);border:1px solid var(--warm-gray-soft)}.form-status.error{background:rgba(122,62,46,8%);border:1px solid rgba(122,62,46,.35);color:#7a3e2e}.aside-panel{padding:1.75rem}.aside-panel h2{font-size:1.35rem}.aside-panel p{font-size:.95rem;margin-bottom:.75rem}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:50;padding:1.25rem;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 40%),var(--cream-deep);border-top:1px solid var(--warm-gray-soft);box-shadow:0 -8px 32px rgba(58,56,53,.1);animation:rise-in .7s var(--ease)both}.cookie-inner{width:min(100% - 1rem,var(--max));margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:space-between}.cookie-inner p{margin:0;flex:1 1 18rem;font-size:.92rem}.cookie-actions{display:flex;flex-wrap:wrap;gap:.65rem}.cookie-actions .btn{padding:.55rem 1.1rem;font-size:.88rem}.steps{counter-reset:step;list-style:none;padding:0;margin:0;display:grid;gap:1.5rem}.steps li{counter-increment:step;padding-left:3rem;position:relative}.steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-display);font-size:1.25rem;color:var(--warm-gray)}.curriculum-levels{display:grid;gap:2rem}.level{padding:1.75rem 0;border-bottom:1px solid var(--warm-gray-soft)}.level h3{margin-bottom:.4rem}.faq details{border-bottom:1px solid var(--warm-gray-soft);padding:1rem 0}.faq summary{cursor:pointer;font-family:var(--font-display);font-size:1.2rem;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq details p{margin-top:.75rem;color:var(--warm-gray)}.story{margin:2rem 0;padding:2rem 0;border-top:1px solid var(--warm-gray-soft)}.not-found{text-align:center;padding:6rem 0}.not-found h1{font-size:clamp(3rem,8vw,5rem)}@keyframes rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slow-drift{from{transform:scale(1.02)translateY(0)}to{transform:scale(1.06)translateY(-1.5%)}}@media(max-width:820px){.nav-toggle{display:block}.nav-list{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.75rem 1.25rem 1.25rem;background:var(--cream);border-bottom:1px solid var(--warm-gray-soft)}.nav-list.is-open{display:flex}.nav-list a{padding:.65rem 0}.footer-grid,.split,.contact-layout,.blog-item,.offer-row{grid-template-columns:1fr}.offer-meta{white-space:normal}}