/* ============ Duke Yoga v2 — editorial redesign ============ */
:root{
  --ink:#2a2137;          /* deep plum */
  --ink-soft:#5f5670;
  --cream:#f8f3ea;        /* warm paper */
  --sand:#efe6d8;
  --terra:#c96f4a;        /* terracotta — primary CTA */
  --terra-deep:#a95435;
  --apricot:#e9a178;
  --peri:#6b73c1;         /* heritage brand purple, kept as accent */
  --line:#e0d7c8;
  --radius:18px;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);line-height:1.7;font-size:1.02rem}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(1.7rem,3.5vw,2.4rem);margin:.2em 0 .5em}
h3{font-size:1.25rem}
em{font-style:italic;font-family:var(--font-display)}
a{color:var(--terra-deep)}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 1.4rem}
.max-prose{max-width:44rem}
.max-prose-wide{max-width:54rem;margin:0 auto}
.center{text-align:center;margin-top:2.4rem}
.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:650;color:var(--terra-deep);margin:0 0 .6rem}
.lede{font-size:1.16rem;color:var(--ink-soft)}
.text-link{font-weight:650;color:var(--terra-deep);text-decoration:none;border-bottom:2px solid var(--apricot)}
.text-link:hover{border-bottom-color:var(--terra-deep)}

/* reveal animation */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============ header ============ */
.site-header{position:sticky;top:0;background:rgba(248,243,234,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-size:1.3rem;font-weight:640;color:var(--ink);text-decoration:none}
.lotus{width:36px;height:auto;fill:var(--terra)}
.site-nav{display:flex;gap:1.3rem;align-items:center;flex-wrap:wrap}
.site-nav a{text-decoration:none;color:var(--ink-soft);font-weight:500;font-size:.95rem;padding:.3rem 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:var(--ink)}
.site-nav a.active{color:var(--terra-deep);border-bottom-color:var(--terra)}
.nav-cta{background:var(--ink);color:#fff !important;border-radius:99px;padding:.5rem 1.1rem !important;border-bottom:none !important;font-weight:650}
.nav-cta:hover{background:var(--terra-deep)}
.nav-toggle{display:none}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:.5rem}
.nav-burger span{width:24px;height:2px;background:var(--ink);display:block}
@media(max-width:880px){
  .nav-burger{display:flex}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:.6rem 1.4rem 1.2rem;align-items:flex-start}
  .site-nav a{padding:.65rem 0;border-bottom:1px solid var(--line);width:100%}
  .site-nav .nav-cta{width:auto;margin-top:.8rem}
  .nav-toggle:checked ~ .site-nav{display:flex}
}

/* ============ hero ============ */
.hero{position:relative;overflow:hidden;padding:3rem 0 2.6rem;background:
  radial-gradient(60% 80% at 85% 15%,rgba(233,161,120,.35),transparent 60%),
  radial-gradient(50% 70% at 10% 90%,rgba(107,115,193,.22),transparent 55%),
  var(--cream)}
.hero-inner{position:relative;z-index:2;text-align:center}
.display{font-size:clamp(2.6rem,6vw,4.2rem);margin:.1em 0 .2em;font-weight:500}
.display em{color:var(--terra-deep)}
.display-sm{font-size:clamp(2.2rem,5.5vw,3.6rem);margin:.15em 0 .35em;font-weight:500}
.display-sm em{color:var(--terra-deep)}
.hero .lede{max-width:38rem;margin-left:auto;margin-right:auto}
.hero .cta-row{justify-content:center}
.cta-row{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem}
.btn{display:inline-block;padding:.8rem 1.6rem;border-radius:99px;text-decoration:none;font-weight:650;font-size:.97rem;border:2px solid transparent;transition:.15s;cursor:pointer;font-family:var(--font-body)}
.btn-primary{background:var(--terra);color:#fff}
.btn-primary:hover{background:var(--terra-deep)}
.btn-ghost{color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream)}
.btn-light{background:var(--cream);color:var(--ink)}
.btn-light:hover{background:var(--apricot)}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none}
.blob-a{width:420px;height:420px;background:var(--apricot);top:-120px;right:-80px}
.blob-b{width:360px;height:360px;background:var(--peri);bottom:-140px;left:-100px;opacity:.3}

/* ============ marquee ============ */
.marquee{overflow:hidden;background:var(--ink);color:var(--cream);padding:.7rem 0}
.marquee-inner{display:flex;width:max-content;animation:slide 40s linear infinite;will-change:transform}
.marquee-track{display:flex;flex-shrink:0;align-items:center;gap:2.2rem;padding-right:2.2rem;white-space:nowrap;font-family:var(--font-display);font-style:italic;font-size:1.15rem;line-height:1.4}
.marquee-track span{opacity:.9;display:inline-block}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-inner{animation:none}}

/* ============ sections ============ */
.section{padding:4rem 0}
.tinted{background:var(--sand)}
.page-hero{padding:5rem 0 2.5rem;background:
  radial-gradient(50% 90% at 90% 0%,rgba(233,161,120,.25),transparent 60%),var(--cream)}

/* ============ breathing widget ============ */
.breathe{background:var(--ink);color:var(--cream)}
.breathe h2{color:var(--cream)}
.breathe .max-prose{color:#cfc7dd}
.breathe-inner{display:grid;grid-template-columns:auto 1fr;gap:3.5rem;align-items:center}
@media(max-width:760px){.breathe-inner{grid-template-columns:1fr;justify-items:center;text-align:center}}
.breath-ring{width:230px;height:230px;border-radius:50%;border:1px solid rgba(248,243,234,.25);display:flex;align-items:center;justify-content:center}
.breath-core{width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--apricot),var(--terra));animation:breathe 12s ease-in-out infinite}
@keyframes breathe{0%{transform:scale(1)}33%{transform:scale(1.75)}50%{transform:scale(1.75)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.breath-core{animation:none}}
.breath-word{font-family:var(--font-display);font-style:italic;font-size:1.5rem;color:var(--apricot);min-height:1.6em;margin-top:1rem}
.breath-word.fade{animation:wordfade .8s ease}
@keyframes wordfade{from{opacity:0}to{opacity:1}}

/* ============ style list (editorial rows) ============ */
.style-list{margin-top:2rem;border-top:1px solid var(--line)}
.style-row{display:grid;grid-template-columns:70px 1fr 1.4fr 40px;gap:1.4rem;align-items:baseline;padding:1.6rem .4rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background .15s}
.style-row:hover{background:var(--sand)}
.style-num{font-family:var(--font-display);color:var(--terra);font-size:1rem}
.style-name{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:500}
.style-name em{color:var(--terra-deep)}
.style-desc{color:var(--ink-soft);font-size:.98rem}
.style-arrow{font-size:1.4rem;color:var(--terra);justify-self:end;transition:transform .15s}
.style-row:hover .style-arrow{transform:translateX(6px)}
@media(max-width:760px){.style-row{grid-template-columns:50px 1fr;grid-template-rows:auto auto}.style-desc{grid-column:2}.style-arrow{display:none}}

/* ============ week strip ============ */
.week-strip{display:flex;gap:1.1rem;overflow-x:auto;padding:2rem 1.4rem;scroll-snap-type:x mandatory;max-width:1140px;margin:0 auto}
.day-card{scroll-snap-align:start;min-width:230px;flex:1;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.15rem;transition:transform .15s,box-shadow .15s}
.day-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(42,33,55,.12)}
.day-name{font-family:var(--font-display);font-size:2.2rem;color:var(--terra-deep)}
.day-time{font-weight:650;font-size:.95rem}
.day-what{color:var(--ink);font-weight:500}
.day-where{color:var(--ink-soft);font-size:.9rem}

/* ============ split & media ============ */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:3rem;align-items:center}
@media(max-width:820px){.split{grid-template-columns:1fr}}
.media-blob{margin:0;overflow:hidden;border-radius:48% 52% 55% 45%/50% 46% 54% 50%;box-shadow:0 18px 50px rgba(42,33,55,.18)}
.media-blob img{width:100%;aspect-ratio:4/5;object-fit:cover}
.media-photo{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:0 18px 50px rgba(42,33,55,.18)}
.media-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin:0 0 2rem}
.photo-grid figure{margin:0;border-radius:var(--radius);overflow:hidden}
.photo-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
@media(max-width:820px){.photo-grid{grid-template-columns:1fr}}
.placeholder-note{display:none}
figure.placeholder{background:linear-gradient(140deg,var(--apricot),var(--terra) 60%,var(--peri));aspect-ratio:4/5;display:flex;align-items:center;justify-content:center}
figure.placeholder img{display:none}
figure.placeholder .placeholder-note{display:block;color:#fff;opacity:.9;padding:1rem;text-align:center;font-size:.9rem}

/* ============ quotes ============ */
.quote-strip{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:2rem 1.4rem;max-width:1140px;margin:0 auto}
.quote-card{scroll-snap-align:start;min-width:300px;max-width:340px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;margin:0}
.quote-card p{font-family:var(--font-display);font-size:1.05rem;line-height:1.55;margin:0}
cite{display:block;margin-top:1rem;font-style:normal;font-weight:650;font-size:.88rem;color:var(--terra-deep)}
.mini-quote{margin:0 auto;max-width:44rem;text-align:center}
.mini-quote p{font-family:var(--font-display);font-size:1.4rem;line-height:1.5;font-style:italic}

/* ============ schedule (classes page) ============ */
.schedule{border-top:1px solid var(--line)}
.sched-row{display:grid;grid-template-columns:160px 1fr 200px;gap:2rem;padding:2rem .4rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
a.sched-row:hover{background:var(--sand)}
.sched-day{font-family:var(--font-display);font-size:1.5rem;color:var(--terra-deep)}
.sched-main h2{font-size:1.35rem;margin:0 0 .3em}
.sched-main p{margin:0;color:var(--ink-soft)}
.sched-meta{display:flex;flex-direction:column;gap:.2rem;font-weight:650;text-align:right}
.sched-meta span:last-child{font-weight:400;color:var(--ink-soft);font-size:.92rem}
@media(max-width:760px){.sched-row{grid-template-columns:1fr}.sched-meta{text-align:left;flex-direction:row;gap:1rem}}

/* ============ trio / feature ============ */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}
@media(max-width:820px){.trio{grid-template-columns:1fr}}
.trio-item h2{font-size:1.3rem}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem;max-width:36rem;margin-bottom:2rem;box-shadow:0 14px 40px rgba(42,33,55,.08)}
.feature-card .btn{margin-top:.8rem}

/* ============ faq ============ */
.faq{border-bottom:1px solid var(--line);padding:.4rem 0}
.faq summary{cursor:pointer;font-family:var(--font-display);font-size:1.2rem;padding:.9rem 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;color:var(--terra);transition:transform .2s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 1rem;color:var(--ink-soft);max-width:42rem}

/* ============ forms ============ */
.contact-form{display:grid;gap:1.1rem}
.contact-form label{display:grid;gap:.4rem;font-weight:500;font-size:.93rem}
.contact-form input,.contact-form textarea{font:inherit;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:#fff}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--terra);border-color:var(--terra)}
.socials-stack a{display:block;margin:.45rem 0}
.cred-list{padding-left:1.1rem}
.cred-list li{margin:.35rem 0}

/* ============ cta band & footer ============ */
.cta-band{background:linear-gradient(120deg,var(--terra-deep),var(--terra) 55%,var(--apricot));color:#fff;text-align:center;padding:4.5rem 0}
.cta-title{font-size:clamp(2rem,5vw,3.2rem);color:#fff;margin:0 0 .3em}
.cta-title em{color:var(--ink)}
.cta-band p{max-width:34rem;margin:0 auto 1.6rem;opacity:.95}
.site-footer{background:var(--ink);color:#c9c2d6;padding:3rem 0 1.5rem}
.site-footer a{color:#ece8f4;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;font-size:.93rem}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr}}
.footer-brand{font-family:var(--font-display);font-size:1.3rem;color:#fff;margin:0 0 .4rem}
.site-footer nav a,.socials a{display:block;margin:.35rem 0}
.big-wordmark{font-family:var(--font-display);font-style:italic;font-size:clamp(1.6rem,6vw,3.4rem);opacity:.16;margin:2.5rem auto .5rem;text-align:center}
.copyright{font-size:.8rem;opacity:.6;text-align:center}

/* sticky mobile CTA */
.sticky-cta{display:none}
@media(max-width:640px){
  .sticky-cta{display:block;position:fixed;bottom:1rem;left:1rem;right:1rem;background:var(--terra);color:#fff;text-align:center;padding:.85rem;border-radius:99px;font-weight:650;text-decoration:none;box-shadow:0 10px 30px rgba(42,33,55,.3);z-index:60}
  .site-footer{padding-bottom:5rem}
}
