:root{
  --sand:#f3ece2; --cream:#faf6f0; --terra:#c4694a; --terra-dark:#9d4f34;
  --sage:#8a9a7b; --sea:#5f7f8a; --ink:#33302c; --muted:#6d665e;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Nunito Sans",system-ui,sans-serif;font-weight:300;font-size:17px;line-height:1.7}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;margin:0;line-height:1.1}
header{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:28px 56px;color:#fff}
.logo{font-family:"Cormorant Garamond",serif;font-size:26px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.logo small{display:block;font-family:"Nunito Sans";font-size:10px;letter-spacing:.3em;font-weight:400;opacity:.85;margin-top:2px}
nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-weight:400}
nav a{opacity:.9}
nav a:hover{opacity:1}
nav a[aria-current="page"]{opacity:1;border-bottom:1px solid currentColor;padding-bottom:4px}
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;padding:0 56px 90px;color:#fff;overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(255,255,255,.18), transparent 50%),
    linear-gradient(180deg, #7fa3b0 0%, #5f7f8a 35%, #8a9a7b 62%, #c4694a 100%);}
.hero::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .08 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");opacity:.8}
.hero .sun{position:absolute;right:12%;top:18%;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#ffe6c7,#f2b989 60%,transparent 72%);opacity:.9}
.hero .horizon{position:absolute;left:0;right:0;bottom:0;height:38%;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(60,30,20,.45))}
.hero-inner{position:relative;max-width:620px}
.hero h1{font-size:76px;font-weight:400}
.hero h1 em{font-style:italic;font-weight:400}
.hero p{font-size:19px;max-width:480px;margin:18px 0 30px;opacity:.95}
.hero.small{min-height:38vh;padding-bottom:56px}
.hero.small .hero-inner{max-width:1100px}
.hero.small h1{font-size:54px}
.hero.small p{margin:12px 0 0}
.btn{display:inline-block;padding:14px 30px;border:1px solid currentColor;letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-weight:600;border-radius:999px}
.btn.fill{background:var(--terra);border-color:var(--terra);color:#fff}
.intro{max-width:760px;margin:0 auto;padding:100px 40px 60px;text-align:center}
.intro .kicker,.kicker{color:var(--terra);letter-spacing:.3em;text-transform:uppercase;font-size:12px;font-weight:600}
.intro h2{font-size:46px;margin:14px 0 22px}
.intro p{color:var(--muted);font-size:18px}
.three{max-width:1100px;margin:0 auto;padding:20px 40px 90px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pill{background:var(--sand);border-radius:28px;padding:44px 34px 40px;text-align:center}
.pill .ico{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:26px}
.pill h3{font-size:30px;margin-bottom:10px}
.pill p{margin:0;color:var(--muted);font-size:16px}
.pill ul{margin:14px 0 0;padding:0;list-style:none;color:var(--muted);font-size:15px;line-height:2}
.news{max-width:1100px;margin:0 auto;padding:40px 40px 90px}
.news .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px}
.card{background:var(--sand);border-radius:28px;padding:36px 30px}
.card .date{color:var(--terra);letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:600}
.card h3{font-size:26px;margin:10px 0 12px}
.card p{margin:0 0 18px;color:var(--muted);font-size:16px}
.card .more{color:var(--terra);font-weight:600;font-size:14px;letter-spacing:.08em}
.news .all{text-align:center;margin-top:40px}
.news .all a{color:var(--terra);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.prose{max-width:760px;margin:0 auto;padding:70px 40px 0}
.prose h2{font-size:40px;margin:0 0 18px}
.prose p{color:var(--muted);font-size:18px}
.prose:last-of-type{padding-bottom:80px}
.pullquote{max-width:820px;margin:20px auto;padding:50px 60px;text-align:center}
.pullquote blockquote{font-family:"Cormorant Garamond",serif;font-size:34px;font-style:italic;margin:0;color:var(--terra-dark);line-height:1.35}
.pullquote cite{display:block;margin-top:18px;font-family:"Nunito Sans";font-style:normal;font-size:13px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted)}
.cta{text-align:center;padding:0 40px 100px}
.cta .btn{color:var(--terra);border-color:var(--terra)}
.sched{background:var(--sage);color:#fff;padding:90px 40px}
.sched .in{max-width:900px;margin:0 auto}
.sched h2{font-size:44px;text-align:center;margin-bottom:40px}
.row{display:grid;grid-template-columns:1.2fr 2fr 1fr 1fr;padding:18px 0;border-top:1px solid rgba(255,255,255,.35);font-size:16px}
.row b{font-weight:600}
.row:last-child{border-bottom:1px solid rgba(255,255,255,.35)}
.prices{max-width:1100px;margin:0 auto;padding:0 40px 90px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.price{background:var(--sand);border-radius:28px;padding:44px 34px 40px;text-align:center}
.price .amount{font-family:"Cormorant Garamond",serif;font-size:52px;color:var(--terra-dark);line-height:1}
.price .per{color:var(--muted);font-size:14px;margin-bottom:14px}
.price h3{font-size:26px;margin-bottom:10px}
.price p{margin:0;color:var(--muted);font-size:15px}
.posts{max-width:820px;margin:0 auto;padding:60px 40px 90px}
.post{padding:44px 0;border-top:1px solid #e4dccd}
.post:first-child{border-top:none;padding-top:0}
.post .date{color:var(--terra);letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:600}
.post h2{font-size:36px;margin:10px 0 14px}
.post p{color:var(--muted);margin:0 0 12px}
.contact{max-width:1100px;margin:0 auto;padding:80px 40px 40px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.contact h2{font-size:40px;margin-bottom:18px}
.contact p{color:var(--muted)}
.contact .write{background:var(--sand);border-radius:28px;padding:44px 38px;text-align:center}
.contact .write h3{font-size:30px;margin-bottom:12px}
.contact .write p{color:var(--muted);font-size:16px}
.contact .write .btn{margin-top:18px;background:var(--terra);border-color:var(--terra);color:#fff}
.map{max-width:1100px;margin:0 auto;padding:20px 40px 90px}
.map a{color:var(--sea);font-weight:600}
.legal{max-width:760px;margin:0 auto;padding:80px 40px}
.legal h2{font-size:30px;margin:36px 0 12px}
.legal p{color:var(--muted)}
footer{background:var(--ink);color:#d8d0c4;padding:60px 56px 30px}
footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;max-width:1100px;margin:0 auto}
footer h4{color:#fff;margin:0 0 14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
footer p{margin:0;font-size:15px;line-height:1.9}
footer a:hover{color:#fff}
.copy{text-align:center;margin-top:50px;font-size:13px;opacity:.6}
.hero.home-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);align-items:center;gap:64px;padding:156px 56px 80px}
.home-hero h1{font-size:clamp(50px,5.25vw,76px)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-visual{position:relative;width:100%;max-width:420px;margin:0 auto}
.hero-photo{display:block;width:100%;height:auto;border-radius:240px 240px 28px 28px}
.teacher{max-width:1100px;margin:0 auto;padding:10px 40px 100px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;align-items:center}
.teacher-photo{display:block;width:100%;max-width:360px;height:auto;margin:0 auto;border-radius:28px}
.teacher h2{font-size:46px;margin:14px 0 22px}
.teacher p{color:var(--muted);font-size:18px;margin:0 0 28px}
.teacher .btn{color:var(--terra);border-color:var(--terra)}
.practice-photo{max-width:820px;margin:20px auto 0;padding:0 40px}
.practice-photo img{display:block;width:100%;height:auto;border-radius:28px}
.practice-photo figcaption{margin-top:14px;text-align:center;color:var(--muted);font-size:14px;font-style:italic}
@media(max-width:820px){header{padding:20px 24px;flex-direction:column;gap:14px}.hero{padding:120px 24px 60px}.hero h1{font-size:50px}.hero.small h1{font-size:40px}.three,.prices,.news .grid,.contact,footer .grid{grid-template-columns:1fr}.row{grid-template-columns:1fr 1fr}nav ul{flex-wrap:wrap;justify-content:center;gap:16px}}
@media(max-width:820px){.hero.home-hero{grid-template-columns:1fr;gap:40px;padding:196px 24px 60px}.home-hero h1{font-size:clamp(40px,8vw,50px)}.hero-visual{max-width:340px}.teacher{grid-template-columns:1fr;gap:32px;padding:0 24px 70px}.teacher-photo{max-width:320px}.teacher-copy{max-width:540px;margin:0 auto;text-align:center}.teacher h2{font-size:40px}.practice-photo{padding:0 24px}}
