:root{
  --cream:#f8f1e7;--paper:#fffaf3;--sage:#7f8f72;--sage-dark:#44513f;--terracotta:#b66f53;--clay:#d39a7c;--rose:#d8a6a1;--mustard:#d5aa5f;--ink:#3d3a36;--muted:#726e67;--line:#e7d8c6;--shadow:0 18px 50px rgba(77,63,48,.12);--radius:28px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",system-ui,-apple-system,sans-serif;line-height:1.6} img{max-width:100%;display:block} a{color:inherit;text-decoration:none}
.site-header{position:relative;top:auto;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px 5vw 12px;background:rgba(248,241,231,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(182,111,83,.16)}
.brand{display:flex;align-items:center;justify-content:center;width:100%}.logo-frame{display:block;width:clamp(210px, 24vw, 340px);aspect-ratio:1/1;border-radius:50%;overflow:hidden;filter:drop-shadow(0 10px 18px rgba(72,57,42,.14))}.logo-img{width:100%;height:100%;object-fit:cover;transform:scale(1.01);clip-path:circle(49.2% at 50% 50%)}
nav{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;font-weight:600;font-size:.95rem}nav a{padding:9px 10px;border-radius:999px}.nav-cta{background:var(--sage-dark);color:#fff;padding:10px 16px}
.hero{min-height:72vh;display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center;padding:70px 6vw 50px;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);opacity:.24;pointer-events:none}.hero:before{width:380px;height:380px;background:var(--rose);top:-180px;left:-120px}.hero:after{width:300px;height:300px;background:var(--mustard);right:-140px;bottom:-120px}.hero-copy{position:relative;z-index:2}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--terracotta);font-size:.8rem;margin:0 0 10px}.hero h1,.section h2{font-family:"Playfair Display",serif;line-height:1.05}.hero h1{font-size:clamp(3rem,7vw,6.4rem);margin:0 0 20px;max-width:11ch}.hero-text,.lead{font-size:1.1rem;color:var(--muted);max-width:65ch}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}.button{display:inline-flex;justify-content:center;align-items:center;padding:14px 21px;border-radius:999px;font-weight:700;border:0;cursor:pointer}.primary{background:var(--sage-dark);color:#fff}.secondary{background:var(--paper);border:1px solid var(--line)}.full{width:100%}.trust-row{display:flex;gap:16px;flex-wrap:wrap;color:var(--sage-dark);font-weight:700}.service-line{margin-top:14px}.hero-photo-wrap{position:relative;z-index:2}.hero-photo{width:100%;max-height:680px;object-fit:cover;border-radius:42% 58% 46% 54%/52% 39% 61% 48%;box-shadow:var(--shadow);border:10px solid rgba(255,250,243,.76)}.photo-badge{position:absolute;right:-8px;bottom:18px;background:var(--paper);padding:14px 18px;border-radius:20px;box-shadow:var(--shadow);font-weight:700;max-width:260px}
.overnight-banner{margin:0 6vw 36px;background:linear-gradient(90deg,var(--sage-dark),#5d6c56);color:white;border-radius:24px;padding:18px 24px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;box-shadow:var(--shadow)}.boho-divider{display:flex;justify-content:center;gap:14px;color:var(--clay);font-size:1.3rem}
.section{padding:78px 6vw}.soft{background:#f1e6da}.section-heading{max-width:800px;margin-bottom:34px}.centered{text-align:center;margin-inline:auto}.section h2{font-size:clamp(2.2rem,4.3vw,4.3rem);margin:.1em 0 .3em}.cards{display:grid;gap:22px}.cards.three{grid-template-columns:repeat(3,1fr)}.card,.price-card,.testimonial,.teacher-note,.meet-card,.area-card,.contact-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.card,.price-card{padding:28px;border-radius:var(--radius)}.icon,.price-icon{font-size:2rem}.teacher-note{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:26px;border-radius:var(--radius);margin:28px 0 36px;border-left:8px solid var(--terracotta)}.teacher-icon{font-size:2.6rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.checklist{background:var(--paper);padding:28px;border-radius:var(--radius);box-shadow:var(--shadow)}.checklist p{margin:0;padding:12px 0;border-bottom:1px dashed var(--line)}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.price-card.featured{transform:translateY(-8px);border:2px solid var(--sage)}.price{display:flex;gap:8px;align-items:baseline}.price span{font-family:"Playfair Display";font-size:3rem;color:var(--sage-dark)}.rate-note{text-align:center;font-weight:700;margin-top:24px}.meet-card,.area-card{border-radius:32px;padding:30px;display:flex;justify-content:space-between;gap:30px;align-items:center}.area-pills{display:flex;gap:10px;flex-wrap:wrap}.area-pills span{background:#e5eadf;color:var(--sage-dark);padding:9px 14px;border-radius:999px;font-weight:700}
.video-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:28px 0}.video-wrap video{width:100%;border-radius:24px;background:#000;box-shadow:var(--shadow);max-height:520px}.gallery-intro-note{font-weight:700;color:var(--sage-dark)}
.gallery-grid{columns:4 250px;column-gap:18px}.gallery-grid img{width:100%;height:auto;margin:0 0 18px;break-inside:avoid;border-radius:22px;box-shadow:0 10px 28px rgba(79,65,50,.12);border:5px solid rgba(255,250,243,.85);transition:transform .2s ease}.gallery-grid img:hover{transform:translateY(-3px)}
.testimonial-grid{grid-template-columns:repeat(2,1fr)!important;max-width:1000px;margin:0 auto}.testimonial{margin:0;padding:30px;border-radius:30px}.testimonial p{font-family:"Playfair Display",serif;font-size:1.2rem}.stars{color:var(--mustard);letter-spacing:.14em}.testimonial .reviewer{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px;text-align:center;color:var(--sage-dark)}.testimonial .reviewer strong{font-size:1.18rem}.testimonial .reviewer span{font-size:.92rem;color:var(--ink)}
.contact-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;border-radius:34px;padding:32px}.contact-mini{display:flex;flex-direction:column;gap:8px;font-weight:700;color:var(--sage-dark)}.booking-form{display:grid;gap:14px}.booking-form label{display:grid;gap:6px;font-weight:700}.booking-form input,.booking-form textarea{width:100%;border:1px solid #d8c8b5;background:#fff;padding:13px 14px;border-radius:14px;font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-note{font-size:.9rem;color:var(--muted)}
.faq-list{max-width:900px;margin:0 auto}.faq details{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:12px 0}.faq summary{font-weight:700;cursor:pointer}
footer{padding:36px 6vw 50px;background:var(--sage-dark);color:#fff;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.footer-brand{display:flex;gap:14px;align-items:center}.footer-brand img{width:92px;aspect-ratio:1/1;object-fit:cover;border-radius:50%;clip-path:circle(49% at 50% 50%)}.footer-brand p{margin:2px 0}.copyright{grid-column:1/-1;opacity:.82;font-size:.9rem}
@media (max-width:900px){.site-header{position:relative;align-items:center}.logo-frame{width:clamp(200px, 38vw, 300px)}nav{font-size:.9rem}.hero,.split,.contact-card{grid-template-columns:1fr}.hero{padding-top:35px}.hero h1{font-size:clamp(3rem,14vw,5.4rem)}.hero-photo{max-height:none}.cards.three,.pricing-grid{grid-template-columns:1fr}.price-card.featured{transform:none}.video-wrap{grid-template-columns:1fr}.testimonial-grid{grid-template-columns:1fr!important}.meet-card,.area-card{align-items:flex-start;flex-direction:column}.gallery-grid{columns:2 160px}footer{grid-template-columns:1fr}}
@media (max-width:560px){.section{padding:58px 5vw}.hero{padding-inline:5vw}.site-header{padding-inline:5vw}.logo-frame{width:min(72vw,260px)}nav{gap:6px}.nav-cta{width:100%;text-align:center}.hero-actions .button{width:100%}.trust-row{display:grid;gap:6px}.teacher-note{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.gallery-grid{columns:1}.footer-brand img{width:110px;aspect-ratio:1/1;object-fit:cover;border-radius:50%;clip-path:circle(49% at 50% 50%)}}

/* Overnight availability calendar */
.calendar-shell{max-width:720px;margin:auto;padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);text-align:center}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-toolbar h3{font-family:"Playfair Display",serif;font-size:clamp(1.4rem,4vw,2rem);margin:0}.calendar-toolbar button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:2rem;color:var(--sage-dark)}.calendar-toolbar button:disabled{opacity:.25;cursor:not-allowed}.calendar-legend{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:20px 0;font-size:.9rem}.calendar-legend span{display:flex;align-items:center;gap:7px}.cal-swatch{width:15px;height:15px;border-radius:4px;display:inline-block}.cal-swatch.available,.cal-day.available{background:#dcebd9;color:#294a30}.cal-swatch.unavailable,.cal-day.unavailable{background:#eee7e2;color:#827c75}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.cal-weekday{font-size:.78rem;font-weight:700;color:var(--muted);padding:8px 0}.cal-day{border-radius:10px;min-height:54px;display:flex;justify-content:center;align-items:center;font-weight:700;border:1px solid transparent}.cal-day.empty{background:transparent}.cal-day.available{border-color:#c4dcc1}.calendar-status{color:var(--sage-dark);font-weight:700}.calendar-footnote{font-size:.88rem;color:var(--muted);margin-bottom:0}@media(max-width:560px){.calendar-shell{padding:16px}.calendar-grid{gap:4px}.cal-day{min-height:39px;font-size:.85rem}.calendar-legend{gap:10px;font-size:.78rem}}

/* Booking policy section */
.booking-policies{scroll-margin-top:24px}.policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:1100px;margin:1.5rem auto}.policy-card{background:#fffaf4;border:1px solid #dfd9cb;border-radius:18px;padding:1.5rem}.policy-card h3{margin-top:0;color:#506e5a}.policy-card li{margin-bottom:.75rem;line-height:1.6}.policy-note{max-width:1100px;margin:1rem auto;padding:1rem 1.25rem;border-left:4px solid #8ca48e;background:#f6f3eb;line-height:1.6}@media(max-width:720px){.policy-grid{grid-template-columns:1fr}.policy-card{padding:1.1rem}}
