
:root{
  --bg:#fffaf8;
  --text:#2a2623;
  --muted:#6f6966;
  --brown:#5b4637;     /* brand */
  --sand:#d9c8b7;
  --nude:#f5ece5;
  --pink:#f3e1db;
  --leaf:#cfded4;
  --border:#e9e3dd;
  --radius:24px;
  --space:clamp(16px,2.6vw,28px);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;line-height:1.78}
img{max-width:100%;display:block}
a{color:var(--text);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1160px,92%);margin-inline:auto}
@media(min-width:960px){ body{line-height:1.82} }

/* Header */
header.sticky{position:sticky;top:0;background:#fffffff2;backdrop-filter:saturate(150%) blur(8px);
  z-index:10;border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;justify-content:center;gap:26px;padding:12px 0}
.nav a{padding:8px 10px;border-radius:10px;color:#3b3836}
.nav a:hover{background:#f3efe9;text-decoration:none}

/* Section helpers */
.section{padding:54px 0}
.section.sand{background:linear-gradient(180deg,#fff, var(--nude) 70%, #fff)}
.section.pink{background:linear-gradient(180deg,#fff, var(--pink) 70%, #fff)}
.section h2{font-family:'Playfair Display', Georgia, serif;font-size:clamp(26px,4vw,38px);margin:0 0 16px;letter-spacing:.2px}
.lead{color:var(--muted)}
.prose p{margin:0 0 14px; max-width:78ch}

/* Hero */
.hero{position:relative;padding:20px 0}
.hero::before{
  content:""; position:absolute; inset:auto 0 0 0; height:180px;
  background: radial-gradient(40% 50% at 20% 0%, var(--leaf), transparent 70%),
              radial-gradient(36% 50% at 80% 0%, var(--pink), transparent 70%);
  opacity:.6; pointer-events:none;
}
.hero-card{width:min(1160px,96%);margin:0 auto;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 28px 68px rgba(0,0,0,.10); position:relative}
.hero-card img{width:100%;height:auto;display:block}
.tagline{width:min(980px,92%);margin:20px auto 6px;text-align:center;
  font-family:'Playfair Display', Georgia, 'Times New Roman', serif;
  font-size:clamp(22px,3vw,30px);letter-spacing:.2px;color:#3a3531}

/* Decorative plants */
.plant-left,.plant-right{position:absolute; width:120px; height:auto; opacity:.55; z-index:-1}
.plant-left{left:2%; top:120px}
.plant-right{right:2%; top:220px}
@media(min-width:1200px){
  .plant-left{left:calc(50% - 680px)}
  .plant-right{right:calc(50% - 680px)}
}

/* Features row */
.features{display:grid;gap:18px;margin-top:14px}
@media(min-width:900px){.features{grid-template-columns:repeat(3,1fr)}}
.feature{border:1px solid var(--border);border-radius:16px;padding:18px;background:#fff}
.feature h3{margin:0 0 6px;font-size:18px}

/* Sessions */
.cards{display:grid;gap:18px;margin-top:18px}
@media(min-width:980px){.cards{grid-template-columns:1fr 1fr}}
.card{border:1px solid var(--sand);border-radius:18px;background:#fff;padding:var(--space);box-shadow:0 12px 30px rgba(0,0,0,.04)}
.card ul{margin:12px 0 0 18px}

/* FAQ */
.faq{width:min(980px,92%);margin:0 auto}
.faq details{border:1px solid var(--border);border-radius:16px;padding:14px;background:#fff;margin-bottom:12px}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:8px 0 0}

/* Contact */
.contact-grid{display:grid;gap:16px}
@media(min-width:760px){.contact-grid{grid-template-columns:repeat(2,1fr)}}
.contact-card{border:1px solid var(--border);border-radius:16px;padding:var(--space);background:#fff}
.btn{display:inline-block;border:1px solid var(--text);padding:10px 14px;border-radius:14px;background:transparent;color:var(--text);transition:all .15s}
.btn:hover{box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-1px)}
.btn-primary{background:var(--text);color:#fff}

/* Footer */
footer{border-top:1px solid var(--border);margin-top:40px;padding:26px 0 0;background:#fbfbfb}
.footer-grid{display:grid;gap:10px;padding:10px 0 18px;width:min(1160px,92%);margin-inline:auto}
@media(min-width:760px){.footer-grid{grid-template-columns:1fr auto;align-items:start}}
footer .copyright{padding:12px 0;border-top:1px solid var(--border);width:min(1160px,92%);margin-inline:auto}
.small{font-size:.92rem;color:#6a6763}
