/* Carol Quinn — Morning Yoga Meditation. Calm, mobile-first. */
:root{
  --sand:#faf4ef; --paper:#fffdf9; --ink:#2f3a36; --ink-soft:#5b6762;
  --sage:#c99a85; --sage-deep:#8e4f3c; --clay:#7d8f78; --line:#eadbd0;
  --radius:18px; --max:1040px;
  --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --sans:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sand);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--sage-deep)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,7vw,4rem)} h2{font-size:clamp(1.8rem,4.5vw,2.5rem)} h3{font-size:1.4rem}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;color:var(--sage-deep);font-weight:700}
.muted{color:var(--ink-soft)}

/* nav */
.nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:18px 0}
.brand{font-family:var(--serif);font-size:1.5rem;text-decoration:none;color:var(--ink)}
.brand small{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0}
.nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}
.nav a[aria-current=page]{border-bottom:2px solid var(--sage)}

/* hero */
.hero{display:grid;gap:28px;align-items:center;padding:28px 0 56px}
@media(min-width:820px){.hero{grid-template-columns:1.25fr 1fr;padding:48px 0 80px}}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px;padding:0;list-style:none}
.facts li{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.92rem;font-weight:600}
.localtime{font-size:.92rem;color:var(--ink-soft);margin-top:12px}

/* breathing circle */
.breath{position:relative;aspect-ratio:1;max-width:340px;width:100%;margin:0 auto;display:grid;place-items:center}
.breath .ring{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#f1ddd2 0%,#c9d4c3 55%,rgba(201,212,195,0) 72%);animation:breathe 11s ease-in-out infinite}
.breath .ring.two{inset:14%;background:radial-gradient(circle,#f3e4d8 0%,#e9cdb9 60%,rgba(233,205,185,0) 75%);animation-delay:-.6s}
.breath span{position:relative;font-family:var(--serif);font-size:1.5rem;color:var(--ink)}
.breath span::after{content:"breathe in";animation:words 11s steps(1) infinite}
@keyframes breathe{0%,100%{transform:scale(.72)}45%,55%{transform:scale(1)}}
@keyframes words{0%{content:"breathe in"}45%{content:"pause"}55%{content:"breathe out"}95%{content:"rest"}}
@media(prefers-reduced-motion:reduce){.breath .ring{animation:none;transform:scale(.9)}.breath span::after{content:"breathe";animation:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:999px;border:1.5px solid var(--sage-deep);background:var(--sage-deep);color:#fff;font:700 1rem var(--sans);text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}
.btn:hover{background:#763f30;transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--sage-deep)}
.btn.ghost:hover{background:#f6e9e2}
.btn-row{display:flex;flex-wrap:wrap;gap:10px}

/* sections & cards */
section{padding:56px 0;border-top:1px solid var(--line)}
.grid{display:grid;gap:18px}
@media(min-width:720px){.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr 1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.card h3{margin-bottom:.3em}
.theme{background:#f6e9e2;border-color:#ead2c6}

/* forms */
form{display:grid;gap:14px}
label{font-weight:700;font-size:.95rem;display:block}
label input,label select,label textarea{margin-top:6px}
label span.opt{font-weight:400;color:var(--ink-soft)}
input,select,textarea{font:inherit;color:inherit;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px #f1ddd2}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.check input{width:auto;margin-top:5px!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.5em;font-weight:700}
.status.ok{color:var(--sage-deep)} .status.err{color:#a14a3a}
@media(min-width:720px){.form-2{grid-template-columns:1fr 1fr}.form-2 .full{grid-column:1/-1}}

/* share */
.share{display:flex;flex-wrap:wrap;gap:8px}
.share a,.share button{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);font:600 .95rem var(--sans);text-decoration:none;cursor:pointer}
.share a:hover,.share button:hover{border-color:var(--sage)}

/* placeholders: deliberately loud so nothing unverified ships by accident */
.placeholder{background:repeating-linear-gradient(-45deg,#fff8e6,#fff8e6 10px,#fdf0cf 10px,#fdf0cf 20px);border:2px dashed #d9a521;border-radius:12px;padding:10px 14px;color:#6b5210;font-size:.95rem}
.placeholder::before{content:"PLACEHOLDER — ";font-weight:800;letter-spacing:.04em}
.photo-ph{aspect-ratio:4/5;display:grid;place-items:center;text-align:center;border-radius:var(--radius)}

/* about */
.about{display:grid;gap:32px;padding:32px 0 56px}
@media(min-width:820px){.about{grid-template-columns:.8fr 1.2fr}}
blockquote{margin:0;font-family:var(--serif);font-size:1.5rem;line-height:1.35;border-left:3px solid var(--sage);padding-left:18px}

footer{padding:36px 0 48px;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-soft)}
footer .row{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between}
footer a{color:var(--ink-soft)}
.disclaimer{font-size:.82rem;margin-top:14px}

/* ===== Funnel layout additions ===== */
.nav .btn{padding:9px 16px;font-size:.92rem}
.hero-copy .promise{font-size:1.15rem;color:var(--ink-soft);max-width:34em}
.next{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:18px 0 22px;font-size:.98rem}
.next strong{font-weight:800}
.next .live{color:var(--sage-deep);font-weight:800}
.micro{font-size:.88rem;color:var(--ink-soft);margin-top:10px}
.center{text-align:center}
.lead{max-width:40em}
.center .lead{margin-left:auto;margin-right:auto}

/* image slots: show the photo if present, else a labeled drop-in slot */
.slot{position:relative;margin:0;border-radius:var(--radius);overflow:hidden;background:#ebe5dc;aspect-ratio:var(--ratio,4/5)}
.slot img{width:100%;height:100%;object-fit:cover}
.slot figcaption{display:none}
.slot.empty{border:2px dashed #c9bfae;display:grid;place-items:center;background:repeating-linear-gradient(-45deg,#f3eee6,#f3eee6 12px,#ece5da 12px,#ece5da 24px)}
.slot.empty img{display:none}
.slot.empty figcaption{display:block;padding:14px;text-align:center;font-size:.85rem;color:var(--ink-soft)}
.slot.empty figcaption code{display:block;font-weight:700;color:var(--ink);margin-top:4px}
.hero-media{position:relative}
.hero-media .breath{position:absolute;inset:auto -10px -24px auto;width:42%;max-width:180px;pointer-events:none}
.hero-media .slot.empty + .breath{position:relative;inset:auto;width:100%;max-width:340px;margin:0 auto}
.hero-media .slot.empty{display:none}

/* benefits / who / steps */
.benefit h3{display:flex;gap:10px;align-items:center}
.benefit .dot{width:12px;height:12px;border-radius:50%;background:var(--sage);flex:none}
.forwho .card ul{margin:0;padding-left:1.1em}
.forwho .card li{margin:.35em 0}
.forwho .not{background:transparent}
.steps{counter-reset:s;display:grid;gap:18px}
@media(min-width:720px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps .card{position:relative;padding-top:56px}
.steps .card::before{counter-increment:s;content:counter(s);position:absolute;top:18px;left:24px;width:30px;height:30px;border-radius:50%;background:var(--sage-deep);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.95rem}

/* about strip */
.about-strip{display:grid;gap:28px;align-items:center}
@media(min-width:820px){.about-strip{grid-template-columns:.7fr 1.3fr}}
.about-strip .slot{max-width:360px;--ratio:4/5}

/* FAQ */
.faq{max-width:760px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.faq summary{cursor:pointer;font-weight:700;padding:12px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--sage-deep);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 14px;color:var(--ink-soft)}

/* schedule card beside form */
.schedule{display:grid;gap:4px;margin:18px 0}
.schedule div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:8px 0;font-size:.98rem}
.schedule div span:first-child{color:var(--ink-soft)}

/* closing CTA band */
.cta-band{background:var(--sage-deep);color:#fff;border-radius:24px;padding:40px 24px;text-align:center}
.cta-band h2{color:#fff}
.cta-band p{color:#f6e4dc}
.cta-band .btn{background:#fff;color:var(--sage-deep);border-color:#fff}
.cta-band .btn:hover{background:#fbf1ec}

/* gallery */
.gallery{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(min-width:720px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery .slot{--ratio:1/1;border-radius:14px}

/* calm sticky CTA on phones */
.sticky-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:5;display:none}
.sticky-cta .btn{width:100%;box-shadow:0 6px 20px rgba(47,58,54,.18)}
@media(max-width:719px){.sticky-cta.show{display:block}}

/* cake-site extras */
.mosaic{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:420px;margin:0 auto}
.mosaic .slot{--ratio:1/1;border-radius:16px}
.mosaic .slot.empty{display:none}
.mosaic:not(:has(.slot:not(.empty))){display:none}
.cake-mark{width:100%;max-width:320px;margin:0 auto;display:none}
.mosaic:not(:has(.slot:not(.empty))) + .cake-mark{display:block}
.note{background:#f6e9e2;border:1px solid #ead2c6;border-radius:12px;padding:12px 16px;font-size:.95rem}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:16px 0}
.tags li{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:600;font-size:.92rem}
.nav a.btn{color:#fff}
@media(max-width:480px){.nav{flex-wrap:nowrap}.nav .btn{padding:8px 12px;font-size:.84rem;white-space:nowrap}.brand{font-size:1.2rem}.brand small{font-size:.62rem;letter-spacing:.1em}}

/* photos & monogram */
.hero-media .breath{display:none}
.hero-media .slot.empty + .breath{display:grid;position:relative;inset:auto;width:100%;max-width:340px;margin:0 auto}
.hero-media .slot{box-shadow:0 18px 40px rgba(47,58,54,.12)}
.exp-grid{display:grid;gap:18px;align-items:start}
@media(min-width:900px){.exp-grid{grid-template-columns:.9fr 1.4fr}}
.how-intro{display:grid;gap:22px;align-items:center}
@media(min-width:820px){.how-intro{grid-template-columns:1fr 1fr}}
.slot.photo{border-radius:var(--radius)}
.slot.monogram.empty{border:none;background:radial-gradient(circle at 30% 25%,var(--paper) 0%,#e6dccd 55%,#d9cbb8 100%);aspect-ratio:1;border-radius:50%;max-width:280px;width:100%;margin:0 auto}
.slot.monogram.empty::before{content:attr(data-initials);font-family:var(--serif);font-size:clamp(4rem,10vw,6rem);color:var(--sage-deep);letter-spacing:.04em;opacity:.85}
.slot.monogram.empty figcaption{display:none}
