/* ============================================================
   PILATES WITH ALLISON — shared styles
   Palette sampled from the brand screenshot. Everything derives
   from these tokens; change a hex here and both pages follow.
   ============================================================ */
:root{
  /* Ground + surfaces */
  --blush:#EBDCE1;        /* page background (sampled) */
  --paper:#FBF7F9;        /* raised surfaces: cards, form, embed shell */
  --blush-200:#E2CDD5;    /* soft tint panels */
  --blush-300:#CFB3BF;    /* hairlines, borders */

  /* Offering identity colors (sampled) */
  --rose:#DB97AE;         /* workshops */
  --rose-deep:#C97D98;
  --plum:#6D597A;         /* mat class */
  --slate:#3B5072;        /* reformer class; dark section */
  --slate-deep:#2E3F5C;
  --wine:#6F1F42;         /* private sessions; primary call to action */
  --wine-deep:#571633;

  /* Text */
  --ink:#2B2233;
  --ink-soft:#5E4E6B;

  --gutter:clamp(1.25rem, 4vw, 3rem);
  --section:clamp(4.5rem, 9vw, 7.5rem);
  --header-h:76px;
  --r-sm:12px; --r-md:20px; --r-lg:28px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow:0 1px 2px rgba(43,34,51,.06), 0 12px 32px -16px rgba(111,31,66,.25);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{
  margin:0;
  font-family:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:1.0625rem;line-height:1.6;color:var(--ink);background:var(--blush);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
h1,h2,h3{font-family:"Young Serif",Georgia,"Times New Roman",serif;font-weight:400;margin:0;letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
figure{margin:0}
a{color:inherit}
svg{flex:none}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px;border-radius:6px}
.wrap{width:min(1180px, 100% - 2*var(--gutter));margin-inline:auto}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--wine);color:#fff;padding:.75rem 1rem;border-radius:999px;z-index:100;text-decoration:none}
.skip:focus{top:1rem}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Text links */
.link{
  color:var(--wine);font-weight:600;text-decoration:underline;
  text-decoration-color:var(--rose);text-decoration-thickness:2px;text-underline-offset:.28em;
  transition:text-decoration-color .2s;
}
.link:hover{text-decoration-color:var(--wine)}
.link svg{width:.9em;height:.9em;vertical-align:-.08em;margin-left:.2em}
.on-dark .link{color:#fff;text-decoration-color:rgba(255,255,255,.35)}
.on-dark .link:hover{text-decoration-color:#fff}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.95rem 1.5rem;border-radius:999px;font:inherit;font-weight:600;line-height:1;
  text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s,transform .15s var(--ease),box-shadow .2s;
}
.btn svg{width:18px;height:18px}
.btn:active{transform:translateY(1px)}
@media (max-width: 480px){ .btn{white-space:normal;text-align:center} }
.btn-primary{background:var(--wine);color:#fff}
.btn-primary:hover{background:var(--wine-deep)}
.btn-secondary{border-color:var(--wine);color:var(--wine);background:transparent}
.btn-secondary:hover{background:var(--wine);color:#fff}
.on-dark .btn-secondary{border-color:rgba(255,255,255,.65);color:#fff}
.on-dark .btn-secondary:hover{background:#fff;color:var(--slate)}
.btn-light{background:var(--paper);color:var(--panel, var(--wine))}
.btn-light:hover{background:#fff}
.btn-ghost{padding:.7rem 1rem;color:var(--ink);font-weight:500}
.btn-ghost:hover{background:var(--blush-200)}
.btn-lg{padding:1.1rem 1.75rem;font-size:1.05rem}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--blush) 84%, transparent);
  -webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px);
  transition:box-shadow .3s;
}
.site-header.scrolled{box-shadow:0 1px 0 var(--blush-300)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
.brand img{height:40px;width:auto}
.brand span{font-family:"Young Serif",Georgia,serif;font-size:1.2rem;color:var(--wine);white-space:nowrap}
.nav{display:flex;align-items:center;gap:2rem}
.nav ul{display:flex;gap:1.6rem}
.nav ul a{text-decoration:none;font-weight:500;color:var(--ink);padding:.4rem 0;position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav ul a:hover::after,.nav ul a[aria-current="page"]::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:.5rem}

.menu-toggle{
  display:none;width:44px;height:44px;border:0;background:transparent;border-radius:50%;cursor:pointer;
  place-items:center;color:var(--ink);
}
.menu-toggle:hover{background:var(--blush-200)}
.menu-toggle svg{width:24px;height:24px}
.menu-toggle .ic-close{display:none}
.menu-open .menu-toggle .ic-open{display:none}
.menu-open .menu-toggle .ic-close{display:block}

@media (max-width: 899px){
  .brand span{font-size:1.05rem}
  .menu-toggle{display:grid}
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;height:calc(100dvh - var(--header-h));background:var(--blush);
    flex-direction:column;align-items:stretch;justify-content:space-between;gap:0;
    padding:1.5rem var(--gutter) calc(1.5rem + env(safe-area-inset-bottom));overflow:auto;
  }
  .menu-open .nav{display:flex}
  .menu-open{overflow:hidden}
  .nav ul{flex-direction:column;gap:0}
  .nav ul li{border-top:1px solid var(--blush-300)}
  .nav ul li:last-child{border-bottom:1px solid var(--blush-300)}
  .nav ul a{display:block;padding:1.1rem 0;font-family:"Young Serif",Georgia,serif;font-size:1.9rem;font-weight:400;color:var(--wine)}
  .nav ul a::after{display:none}
  .nav-actions{flex-direction:column;align-items:stretch;gap:.75rem;padding-top:1.5rem}
  .nav-actions .btn{width:100%;padding:1.05rem}
  .nav-actions .btn-ghost{order:2;border:1.5px solid var(--blush-300)}
}
@media (max-width: 400px){ .brand span{display:none} }

/* ============================================================
   HERO
   ============================================================ */
.hero{padding-block:clamp(2rem, 5vw, 4.5rem) clamp(3.5rem, 8vw, 6.5rem);overflow-x:clip}
.hero-grid{display:grid;gap:2.75rem;align-items:center}
@media (min-width: 900px){ .hero-grid{grid-template-columns:1.05fr .95fr;gap:4.5rem} }
.hero h1{font-size:clamp(2.9rem, 7vw, 5.6rem);line-height:.98;color:var(--wine)}
.hero .lead{font-size:clamp(1.1rem, 1.4vw, 1.3rem);line-height:1.5;color:var(--ink-soft);max-width:38ch;margin-top:1.5rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.hero-facts{
  display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;margin-top:2.5rem;padding-top:1.4rem;
  border-top:1px solid var(--blush-300);color:var(--ink-soft);font-size:.95rem;
}
.hero-facts li{display:flex;align-items:center;gap:.55rem;line-height:1.3}
.hero-facts svg{width:20px;height:20px;color:var(--plum)}

/* The arch: the one repeated shape on the page */
.arch{
  border-radius:999px 999px var(--r-lg) var(--r-lg);overflow:hidden;
  aspect-ratio:4/5;background:var(--blush-200);position:relative;
}
.arch img{width:100%;height:100%;object-fit:cover;object-position:center top}
@media (max-width: 899px){ .hero .arch{aspect-ratio:5/4.6;max-width:560px} }
.hero-media{position:relative}
.hero-media::before{
  content:"";position:absolute;inset:auto -6% -6% 25%;height:45%;border-radius:999px;
  background:var(--rose);z-index:-1;
}
@media (max-width: 480px){ .hero-actions .btn{width:100%} }

/* Single page-load reveal */
.reveal{opacity:0;transform:translateY(18px);animation:rise .9s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 90ms)}
@keyframes rise{to{opacity:1;transform:none}}

/* ============================================================
   NOTICE BAR (next workshop) — rose = workshops
   ============================================================ */
.notice{background:var(--rose);color:var(--ink)}
.notice-inner{display:grid;gap:1.25rem;padding-block:1.4rem;align-items:center}
.notice-body{display:flex;gap:1.1rem;align-items:flex-start}
.notice img{width:68px;height:68px;border-radius:var(--r-sm);object-fit:cover;flex:none;background:var(--paper)}
.notice strong{font-family:"Young Serif",Georgia,serif;font-weight:400;font-size:1.2rem;display:block;margin-bottom:.15rem;color:var(--wine)}
.notice p{font-size:.98rem;color:var(--ink)}
.notice .when{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:.35rem;font-size:.92rem;font-weight:500}
.notice .when span{display:inline-flex;align-items:center;gap:.4rem}
.notice .when svg{width:16px;height:16px;color:var(--wine)}
.notice .btn{justify-self:start}
@media (min-width: 800px){
  .notice-inner{grid-template-columns:1fr auto}
  .notice .btn{justify-self:end}
}

/* ============================================================
   SECTIONS
   ============================================================ */
.section{padding-block:var(--section)}
.section-head{max-width:62ch;margin-bottom:clamp(2rem, 4vw, 3rem)}
.section-head h2{font-size:clamp(2.2rem, 4.4vw, 3.4rem);line-height:1.05;color:var(--wine)}
.section-head p{margin-top:1rem;color:var(--ink-soft);font-size:1.12rem;max-width:52ch}
.on-dark .section-head h2{color:#fff}
.on-dark .section-head p{color:rgba(255,255,255,.78)}

/* Class picker */
.picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.picker button{
  border:1.5px solid var(--blush-300);background:var(--paper);border-radius:999px;
  padding:.65rem 1.05rem;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.picker button:hover{border-color:var(--wine)}
.picker button[aria-pressed="true"]{background:var(--wine);color:#fff;border-color:var(--wine)}
.picker-result{
  min-height:3.2rem;margin-bottom:clamp(1.75rem, 3vw, 2.5rem);padding:1rem 1.25rem;
  border-left:3px solid var(--rose);background:var(--paper);border-radius:0 var(--r-sm) var(--r-sm) 0;
  color:var(--ink);display:none;
}
.picker-result.show{display:block}
.picker-result .link{margin-left:.35rem}

/* ============================================================
   CLASS PANELS — the signature: full-bleed color blocks,
   one identity color per offering.
   ============================================================ */
.panels{display:flex;flex-direction:column;gap:0;color:#fff}
.panel{
  --panel:var(--slate);
  background:var(--panel);display:flex;flex-direction:column;position:relative;
  flex:1 1 0;min-width:0;
  transition:flex .55s var(--ease),filter .4s;
}
.panel-slate{--panel:var(--slate)}
.panel-plum{--panel:var(--plum)}
.panel-wine{--panel:var(--wine)}
.panel-media{aspect-ratio:16/10;overflow:hidden;background:color-mix(in srgb, var(--panel) 70%, #000 30%)}
.panel-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.panel-body{padding:clamp(1.6rem, 3vw, 2.5rem) clamp(1.5rem, 3.5vw, 3rem) clamp(2rem, 3.5vw, 3rem);display:flex;flex-direction:column;flex:1}
.panel h3{font-size:clamp(2rem, 3.2vw, 2.7rem);line-height:1.02;color:#fff}
.panel p{margin-top:.9rem;color:rgba(255,255,255,.86);max-width:36ch}
.panel .meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.panel .meta li{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:.4rem .8rem;font-size:.88rem;font-weight:500;line-height:1}
.panel .meta svg{width:15px;height:15px}
.panel .btn{margin-top:auto;padding-top:.95rem;align-self:flex-start;margin-block-start:1.75rem}
.panel .btn-light{color:var(--panel)}
@media (min-width: 900px){
  .panels{flex-direction:row;min-height:640px}
  .panel-media{aspect-ratio:auto;height:260px}
  .panels:hover .panel:hover{flex:1.35 1 0}
  .panels:hover .panel:hover .panel-media img{transform:scale(1.04)}
  .panels.has-highlight .panel.is-highlight{flex:1.35 1 0}
  .panels.has-highlight .panel:not(.is-highlight){filter:brightness(.82) saturate(.85)}
}
@media (min-width: 1400px){
  .panels{width:min(1400px, 100%);margin-inline:auto;border-radius:var(--r-lg);overflow:hidden}
}
.panels-lead{margin-bottom:clamp(1.5rem, 3vw, 2.5rem)}

/* Intro series callout */
.callout{
  margin-top:clamp(2.5rem, 5vw, 4rem);background:var(--paper);border-radius:var(--r-lg);
  display:grid;overflow:hidden;box-shadow:var(--shadow);transition:outline-color .3s;outline:3px solid transparent;outline-offset:5px;
}
.callout.is-highlight{outline-color:var(--rose)}
.callout-body{padding:clamp(1.75rem, 4vw, 3rem);display:flex;flex-direction:column;gap:1rem;justify-content:center;border-top:6px solid var(--slate)}
.callout h3{font-size:clamp(1.7rem, 2.8vw, 2.3rem);line-height:1.12;color:var(--slate)}
.callout p{color:var(--ink-soft);max-width:48ch}
.callout .facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}
.callout .facts li{display:inline-flex;align-items:center;gap:.45rem;background:var(--blush);border-radius:999px;padding:.45rem .9rem;font-size:.9rem;font-weight:500;color:var(--ink)}
.callout .facts svg{width:15px;height:15px;color:var(--slate)}
.callout .btn{align-self:flex-start;margin-top:.5rem}
.callout-media{background:var(--blush-200)}
@media (max-width: 799px){ .callout-media{aspect-ratio:16/10} }
.callout-media img{width:100%;height:100%;object-fit:cover}
@media (min-width: 800px){
  .callout{grid-template-columns:1.15fr .85fr}
  .callout-body{border-top:0;border-left:6px solid var(--slate)}
  .callout-media{min-height:100%}
}

/* ============================================================
   ABOUT — slate
   ============================================================ */
.on-dark{color:#fff}
.about{background:var(--slate)}
.about-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width: 900px){ .about-grid{grid-template-columns:.85fr 1.15fr;gap:5rem} }
.about .arch{max-width:420px;background:var(--slate-deep)}
@media (max-width: 899px){ .about .arch{max-width:340px;aspect-ratio:1/1.1} }
.about .arch img{object-position:center 20%}
.about-copy h2{font-size:clamp(2.2rem, 4.4vw, 3.4rem);line-height:1.05}
.about-copy p{margin-top:1.25rem;color:rgba(255,255,255,.84);font-size:1.08rem;max-width:56ch}
.creds{margin-top:2rem;display:grid;gap:0}
.creds li{padding:1rem 0;border-top:1px solid rgba(255,255,255,.2);display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline}
.creds li:last-child{border-bottom:1px solid rgba(255,255,255,.2)}
.creds .num{font-family:"Young Serif",Georgia,serif;font-size:1.7rem;color:var(--rose);min-width:3.2ch}
.creds .txt{color:rgba(255,255,255,.88)}
.about-actions{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:2rem;align-items:center}

/* ============================================================
   PRICING — paper cards, identity rule on top
   ============================================================ */
.pricing-grid{display:grid;gap:1.5rem}
@media (min-width: 800px){ .pricing-grid{grid-template-columns:1fr 1fr} }
.plan{
  --plan:var(--slate);
  background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.5rem, 3.5vw, 2.5rem);
  display:flex;flex-direction:column;box-shadow:var(--shadow);border-top:6px solid var(--plan);
}
.plan-plum{--plan:var(--plum)}
.plan-slate{--plan:var(--slate)}
.plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:1.25rem}
.plan-head h3{font-size:1.8rem;color:var(--plan)}
.plan-head p{color:var(--ink-soft);font-size:.95rem;margin-top:.25rem}
.from{text-align:right;flex:none}
.from .amt{font-family:"Young Serif",Georgia,serif;font-size:2.1rem;line-height:1;color:var(--ink)}
.from .lbl{display:block;font-size:.85rem;color:var(--ink-soft);margin-top:.2rem}
.pack{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:1.15rem 0;border-top:1px solid var(--blush-200);align-items:baseline}
.pack .name{font-weight:600;color:var(--ink)}
.pack .meta{grid-column:1;color:var(--ink-soft);font-size:.92rem}
.pack .price{grid-column:2;grid-row:1;font-family:"Young Serif",Georgia,serif;font-size:1.65rem;text-align:right;color:var(--ink);line-height:1}
.pack .per{grid-column:2;grid-row:2;text-align:right;font-size:.85rem;color:var(--ink-soft)}
.tag{display:inline-block;background:var(--rose);color:var(--wine);border-radius:999px;padding:.15rem .6rem;font-size:.76rem;font-weight:600;margin-left:.5rem;vertical-align:middle}
.plan-foot{margin-top:auto;padding-top:1.5rem}
.plan-foot .btn{width:100%}
@media (max-width: 480px){ .plan-head h3{font-size:1.45rem} .from .amt{font-size:1.7rem} }
.pricing-note{margin-top:1.5rem;color:var(--ink-soft);font-size:.98rem;max-width:64ch}

/* ============================================================
   REVIEWS — rose band with the quote-mark circle from the current site
   ============================================================ */
.reviews{background:var(--rose)}
.quote-mark{
  width:88px;height:88px;border-radius:50%;background:var(--paper);display:grid;place-items:center;
  margin:0 auto clamp(1.5rem, 3vw, 2.25rem);color:var(--wine);
}
.quote-mark svg{width:40px;height:40px}
.reviews .section-head{text-align:center;margin-inline:auto}
.reviews .section-head h2{color:var(--wine)}
.reviews-grid{display:grid;gap:1.25rem}
@media (min-width: 800px){
  .reviews-grid{grid-template-columns:repeat(3, 1fr);gap:1.5rem;align-items:start}
  .review:nth-child(2){margin-top:2.5rem}
}
.review{background:var(--paper);border-radius:var(--r-md);padding:clamp(1.5rem, 3vw, 2rem)}
.review blockquote{margin:0;font-family:"Young Serif",Georgia,serif;font-size:1.15rem;line-height:1.5;color:var(--ink)}
.review cite{display:flex;align-items:center;gap:.6rem;margin-top:1.4rem;font-style:normal;color:var(--ink-soft);font-size:.92rem}
.review cite::before{content:"";width:22px;height:2px;background:var(--wine);flex:none}

/* ============================================================
   FAQ
   ============================================================ */
.faq-grid{display:grid;gap:2rem}
@media (min-width: 900px){ .faq-grid{grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:start} }
.faq-grid .section-head{margin-bottom:0}
details{border-top:1px solid var(--blush-300)}
details:last-of-type{border-bottom:1px solid var(--blush-300)}
summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.2rem 0;font-weight:600;font-size:1.06rem;color:var(--ink);
}
summary::-webkit-details-marker{display:none}
summary .plus{
  width:30px;height:30px;border-radius:50%;border:1.5px solid var(--blush-300);flex:none;
  display:grid;place-items:center;transition:transform .3s var(--ease),background .3s,border-color .3s;
}
summary .plus svg{width:14px;height:14px}
details[open] summary .plus{transform:rotate(45deg);background:var(--wine);border-color:var(--wine);color:#fff}
.answer{padding:0 0 1.35rem;color:var(--ink-soft);max-width:58ch}
@supports (interpolate-size: allow-keywords){
  :root{interpolate-size:allow-keywords}
  details::details-content{height:0;overflow:clip;transition:height .35s var(--ease), content-visibility .35s allow-discrete}
  details[open]::details-content{height:auto}
}

/* ============================================================
   CONTACT / FINAL CTA
   ============================================================ */
.cta{background:var(--blush-200)}
.cta-grid{display:grid;gap:2.5rem}
@media (min-width: 900px){ .cta-grid{grid-template-columns:1fr 1fr;gap:5rem;align-items:start} }
.cta-copy h2{font-size:clamp(2.2rem, 4.4vw, 3.4rem);line-height:1.05;color:var(--wine)}
.cta-copy p{margin-top:1.1rem;color:var(--ink-soft);font-size:1.1rem;max-width:44ch}
.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.follow{margin-top:2.25rem;display:grid;gap:.75rem}
.follow a{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-weight:500}
.follow svg{width:20px;height:20px;color:var(--plum)}
.follow a:hover{color:var(--wine)}
form{background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.5rem, 3.5vw, 2.5rem);box-shadow:var(--shadow)}
.field{display:grid;gap:.4rem;margin-bottom:1.1rem}
label{font-weight:600;font-size:.93rem;color:var(--ink)}
input,textarea{
  font:inherit;padding:.9rem 1rem;border-radius:14px;border:1.5px solid var(--blush-300);
  background:var(--blush);color:var(--ink);width:100%;
}
textarea{min-height:130px;resize:vertical}
input:focus-visible,textarea:focus-visible{outline:3px solid var(--rose);outline-offset:2px;border-color:var(--wine)}
form .btn{width:100%;margin-top:.25rem}
.form-status{margin-top:1rem;font-size:.95rem;color:var(--wine);min-height:1.5em}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{padding-block:3rem 2rem;border-top:1px solid var(--blush-300)}
.foot-grid{display:grid;gap:2rem}
@media (min-width: 800px){ .foot-grid{grid-template-columns:1.4fr 1fr 1fr} }
.foot-brand img{height:56px;width:auto}
.foot-brand p{margin-top:1rem;color:var(--ink-soft);max-width:36ch}
.foot-col h3{font-family:inherit;font-size:.95rem;font-weight:600;color:var(--ink);margin-bottom:.75rem}
.foot-col ul{display:grid;gap:.5rem}
.foot-col a{text-decoration:none;color:var(--ink-soft)}
.foot-col a:hover{color:var(--wine)}
.foot-legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--blush-300);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;color:var(--ink-soft);font-size:.9rem}
.foot-legal ul{display:flex;flex-wrap:wrap;gap:1.25rem}
.foot-legal a{text-decoration:none;color:var(--ink-soft)}
.foot-legal a:hover{color:var(--wine)}

/* ============================================================
   MOBILE STICKY CTA
   ============================================================ */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:.6rem;
  padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--blush) 90%, transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-top:1px solid var(--blush-300);
  transform:translateY(110%);transition:transform .4s var(--ease);
}
.sticky-cta.show{transform:none}
.sticky-cta .btn{flex:1;padding:1rem .75rem}
.sticky-cta .btn-secondary{flex:.8}
@media (min-width: 900px){ .sticky-cta{display:none} }

/* ============================================================
   SCHEDULE PAGE
   ============================================================ */
.page-head{padding-block:clamp(2rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem)}
.page-head h1{font-size:clamp(2.6rem, 6vw, 4.6rem);line-height:1;color:var(--wine)}
.page-head .lead{margin-top:1.1rem;color:var(--ink-soft);font-size:1.12rem;max-width:56ch}
.legend{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-top:1.6rem;font-size:.95rem;color:var(--ink)}
.legend li{display:inline-flex;align-items:center;gap:.5rem}
.legend i{width:12px;height:12px;border-radius:50%;background:var(--c);display:inline-block}
.legend small{color:var(--ink-soft)}

.embed-shell{
  position:relative;background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);
  min-height:560px;
  /* Set by the optional workarounds in site.js */
  --crop-top:0px;
}
.embed-shell iframe{display:block;width:100%;border:0;margin-top:calc(-1 * var(--crop-top));background:#fff}
.embed-shell.tint iframe{filter:hue-rotate(var(--tint-rotate, 0deg)) saturate(var(--tint-sat, 1)) brightness(var(--tint-bright, 1))}
.embed-skeleton{position:absolute;inset:0;padding:clamp(1.25rem, 3vw, 2rem);display:grid;gap:1rem;align-content:start;background:#fff;transition:opacity .4s}
.embed-shell.loaded .embed-skeleton{opacity:0;pointer-events:none}
.sk{border-radius:12px;background:linear-gradient(90deg, var(--blush) 0%, var(--paper) 45%, var(--blush) 90%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}
.sk-title{height:34px;width:min(240px, 60%)}
.sk-row{height:88px}
@keyframes shimmer{to{background-position:-200% 0}}
.embed-fallback{margin-top:1rem;color:var(--ink-soft);font-size:.95rem}
.schedule-body{padding-bottom:var(--section)}

.help-grid{display:grid;gap:1.25rem;margin-top:clamp(2.5rem, 5vw, 4rem)}
@media (min-width: 800px){ .help-grid{grid-template-columns:repeat(3, 1fr);gap:1.5rem} }
.help{background:var(--paper);border-radius:var(--r-md);padding:clamp(1.4rem, 2.5vw, 1.9rem);display:flex;flex-direction:column;gap:.6rem;border-top:5px solid var(--c, var(--wine))}
.help h3{font-size:1.35rem;color:var(--c, var(--wine))}
.help p{color:var(--ink-soft);font-size:.98rem}
.help .link{margin-top:auto;padding-top:.5rem;align-self:flex-start}

/* ============================================================
   MOTION PREFERENCES
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{animation:none;opacity:1;transform:none}
  .sk{animation:none}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
