:root{--sage:#9caf88;--sage-d:#6f8560;--sand:#e9e2d0;--clay:#c08552;--ink:#33382f;--mut:#7a7f74;--soft:#f7f4ec}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Nunito Sans',sans-serif;background:#fff;color:var(--ink);line-height:1.75;font-weight:400}
a{text-decoration:none;color:inherit}
header{display:flex;justify-content:space-between;align-items:center;padding:30px 6vw;max-width:1180px;margin:0 auto}
.logo{font-family:'Fraunces',serif;font-weight:400;font-size:1.5rem;letter-spacing:.01em}
.logo em{color:var(--sage-d)}
nav a{margin-left:30px;font-size:.92rem;color:var(--mut);font-weight:600}
nav a.book{color:var(--ink);border:1px solid var(--sage);padding:10px 20px;border-radius:99px}
.hero{text-align:center;padding:70px 6vw 90px;max-width:860px;margin:0 auto;position:relative}
.rings{display:block;margin:0 auto 34px}
.hero h1{font-family:'Fraunces',serif;font-weight:300;font-size:3.6rem;line-height:1.12;letter-spacing:-.01em}
.hero h1 em{color:var(--clay);font-weight:300}
.hero p{color:var(--mut);font-size:1.12rem;max-width:540px;margin:26px auto 0}
.cta{display:inline-block;margin-top:38px;background:var(--sage);color:#fff;font-weight:700;padding:15px 36px;border-radius:99px;font-size:.98rem;letter-spacing:.02em}
.cta:hover{background:var(--sage-d)}
.hero .fine{margin-top:16px;font-size:.86rem;color:var(--mut)}
section{padding:84px 6vw}
.inner{max-width:760px;margin:0 auto}
.wide{max-width:980px;margin:0 auto}
.kick{text-align:center;color:var(--clay);letter-spacing:.26em;text-transform:uppercase;font-size:.74rem;font-weight:700;margin-bottom:14px}
h2{font-family:'Fraunces',serif;font-weight:300;font-size:2.4rem;line-height:1.2;text-align:center;margin-bottom:18px}
h2 em{color:var(--sage-d)}
.sub{text-align:center;color:var(--mut);max-width:520px;margin:0 auto 48px}
.classes{background:var(--soft)}
.class{display:grid;grid-template-columns:110px 1fr auto;gap:28px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--sand)}
.class:last-child{border-bottom:none}
.class .time{color:var(--clay);font-weight:700;font-size:.88rem;letter-spacing:.06em;text-align:right}
.class h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.35rem;margin-bottom:4px}
.class p{color:var(--mut);font-size:.96rem}
.class .day{font-size:.84rem;color:var(--sage-d);font-weight:700;white-space:nowrap}
.pricing{text-align:center}
.rows{max-width:620px;margin:0 auto;text-align:left}
.row{display:flex;justify-content:space-between;align-items:baseline;padding:20px 4px;border-bottom:1px solid var(--sand)}
.row span{color:var(--mut)}
.row b{font-family:'Fraunces',serif;font-weight:500;font-size:1.5rem;color:var(--ink)}
.note{max-width:620px;margin:42px auto 0;background:var(--sand);border-radius:18px;padding:30px 34px;text-align:left}
.note h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.3rem;margin-bottom:8px}
.note p{color:#5c5a4e;font-size:.96rem}
.story{background:#fff}
.story p{font-size:1.08rem;color:#4c5046;text-align:center;margin-bottom:20px}
.story p:first-of-type{font-family:'Fraunces',serif;font-size:1.45rem;font-weight:300;line-height:1.5;color:var(--ink)}
.reviews{background:var(--soft)}
.rev{text-align:center;padding:34px 0;border-bottom:1px solid var(--sand)}
.rev:last-child{border-bottom:none}
.stars{color:var(--clay);letter-spacing:.3em;margin-bottom:14px}
.rev blockquote{font-family:'Fraunces',serif;font-style:italic;font-weight:300;font-size:1.4rem;line-height:1.5;max-width:620px;margin:0 auto 12px}
.rev cite{font-style:normal;color:var(--mut);font-size:.9rem;font-weight:600}
.info .wide{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.info h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.4rem;margin-bottom:14px}
.info p,.info li{color:var(--mut)}
.info li{list-style:none;padding:8px 0;border-bottom:1px solid var(--sand)}
.info .phone{font-family:'Fraunces',serif;font-size:1.7rem;color:var(--ink);margin-bottom:8px}
footer{text-align:center;padding:36px 6vw;color:var(--mut);font-size:.88rem;border-top:1px solid var(--sand)}
footer .f-logo{font-family:'Fraunces',serif;color:var(--ink);font-size:1.1rem;display:block;margin-bottom:6px}
@media(max-width:820px){.hero h1{font-size:2.5rem}h2{font-size:1.9rem}.class{grid-template-columns:1fr;gap:4px}.class .time{text-align:left}.info .wide{grid-template-columns:1fr}nav a:not(.book){display:none}section{padding:60px 6vw}}
