/* ==========================================================================
   THE CHANGE — shared design system
   Deliberately not the menopause category default. That category is pastel
   pink, lavender and sage watercolour; this is oxblood on warm neutral, which
   reads adult and certain rather than soothing. The buyer is more often angry
   than sad, and nobody has spoken to her that way.
   One accent. One radius system. Display in heavy sans, body in serif, which
   inverts the usual event page and is the point.
   ========================================================================== */

:root{
  --paper:#F4F2F3; --sunk:#EBE7E9; --surface:#FFFFFF;
  --ink:#1A1618; --ink-soft:#4E464A; --ink-faint:#6B6165;
  --accent:#7A2B3F; --accent-deep:#5E1F2F; --accent-wash:#F3E6E9; --accent-line:#DFC4CC;
  --line:#DFD9DB; --line-strong:#C9C1C4;
  --shadow-sm:0 1px 2px rgba(26,22,24,.05), 0 2px 8px rgba(26,22,24,.05);
  --shadow-cta:0 2px 4px rgba(94,31,47,.22), 0 12px 28px rgba(94,31,47,.22);
  --shadow-cta-hover:0 4px 8px rgba(94,31,47,.26), 0 18px 38px rgba(94,31,47,.26);
  --cta-fg:#FFF8F9;
  --display:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",system-ui,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --measure:40rem; --wide:60rem;
  --r-panel:10px; --r-control:8px; --r-chip:5px;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#161314; --sunk:#100E0F; --surface:#1E1A1C;
    --ink:#F0EBEC; --ink-soft:#B5AAAE; --ink-faint:#8D8286;
    --accent:#D98BA0; --accent-deep:#E9A9BA; --accent-wash:#2A1B21; --accent-line:#422B33;
    --line:#2C2629; --line-strong:#3C3438;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
    --shadow-cta:0 2px 4px rgba(0,0,0,.5), 0 12px 28px rgba(0,0,0,.45);
    --shadow-cta-hover:0 4px 8px rgba(0,0,0,.55), 0 18px 38px rgba(0,0,0,.5);
    --cta-fg:#1A1012;
  }
}

*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:1.125rem;line-height:1.65;-webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.5rem;}
.wrap-wide{max-width:var(--wide);margin:0 auto;padding:0 1.5rem;}
.center{text-align:center;}

/* type */
h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:-.03em;text-wrap:balance;}
h1{font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.02;}
h2{font-size:clamp(1.55rem,4vw,2.15rem);line-height:1.1;margin-bottom:1rem;}
h3{font-size:1.05rem;font-weight:700;letter-spacing:-.015em;line-height:1.25;}
p{margin-bottom:1.15rem;text-wrap:pretty;}
p:last-child{margin-bottom:0;}
strong{font-weight:640;}
em{font-style:italic;}
.lede{font-size:clamp(1.05rem,2.4vw,1.22rem);line-height:1.5;color:var(--ink-soft);
  max-width:34rem;margin:0 auto 1.6rem;}
.lede strong{color:var(--ink);}
.eyebrow{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1rem;}

/* layout */
section{padding:3.25rem 0 0;}
.hero{padding:2.5rem 0 0;text-align:center;}
.divider{height:1px;background:var(--line);margin:3.25rem auto 0;max-width:var(--wide);}

/* call to action */
.cta{display:block;width:100%;max-width:24rem;margin:0 auto;
  font-family:var(--display);font-size:1.05rem;font-weight:700;letter-spacing:-.01em;
  text-align:center;text-decoration:none;color:var(--cta-fg);background:var(--accent);
  border:0;border-radius:var(--r-control);padding:1.05rem 1.5rem;cursor:pointer;
  box-shadow:var(--shadow-cta);transition:transform .18s,background .18s,box-shadow .18s;}
.cta:hover{transform:translateY(-2px);background:var(--accent-deep);box-shadow:var(--shadow-cta-hover);}
.cta:active{transform:translateY(0);}
.cta:focus-visible{outline:3px solid var(--ink);outline-offset:3px;}
.cta-sub{display:block;font-size:.8125rem;font-weight:500;opacity:.9;margin-top:.3rem;}

/* registration form */
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);
  padding:1.5rem;max-width:26rem;margin:0 auto;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:.85rem;text-align:left;}
.form label{font-family:var(--display);font-size:.8125rem;font-weight:700;
  letter-spacing:.02em;color:var(--ink-soft);}
.form input{width:100%;font-family:var(--serif);font-size:1.0625rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-control);
  padding:.8rem .9rem;min-height:48px;}
.form input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.form .hint{font-family:var(--display);font-size:.75rem;color:var(--ink-faint);line-height:1.45;}

/* assurances */
.assurances{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem;
  list-style:none;padding-top:1.1rem;font-family:var(--display);font-size:.8125rem;
  color:var(--ink-faint);}
.assurances li{display:flex;align-items:center;gap:.4rem;}
.assurances svg{width:14px;height:14px;flex:none;color:var(--accent);}

/* panels and stacks */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);
  padding:1.5rem 1.6rem;}
.stack{display:flex;flex-direction:column;}
.stack .item{padding:1.2rem 0;border-top:1px solid var(--line);}
.stack .item:first-child{border-top:0;padding-top:0;}
.stack .item:last-child{padding-bottom:0;}
.item-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.4rem;}
.item .meta{font-family:var(--display);font-size:.6875rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);white-space:nowrap;}
.item p{font-size:1.0625rem;line-height:1.55;color:var(--ink-soft);margin-bottom:0;}
.item p strong{color:var(--ink);}
.n{font-family:var(--display);font-variant-numeric:tabular-nums;}

/* speaker grid */
.speakers{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-panel);overflow:hidden;}
.speaker{background:var(--surface);padding:1rem;display:flex;flex-direction:column;gap:.5rem;}
.speaker .slot{aspect-ratio:1;background:var(--sunk);border-radius:var(--r-chip);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-size:.6875rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-faint);text-align:center;padding:.5rem;}
.speaker b{font-family:var(--display);font-size:.875rem;font-weight:700;line-height:1.2;}
.speaker span{font-family:var(--display);font-size:.75rem;color:var(--ink-faint);line-height:1.35;}

/* agenda */
.agenda{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--r-panel);overflow:hidden;}
.slotrow{background:var(--surface);padding:.95rem 1.2rem;display:grid;
  grid-template-columns:6.5rem 1fr;gap:1rem;align-items:baseline;}
.slotrow .time{font-family:var(--display);font-size:.8125rem;font-weight:700;
  color:var(--accent);font-variant-numeric:tabular-nums;}
.slotrow .what{font-size:1rem;line-height:1.45;}
.slotrow .what small{display:block;font-family:var(--display);font-size:.75rem;
  color:var(--ink-faint);margin-top:.15rem;}
.daylabel{background:var(--accent-wash);padding:.7rem 1.2rem;
  font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);}
@media (max-width:520px){.slotrow{grid-template-columns:1fr;gap:.2rem;}}

/* pricing */
.price{font-family:var(--display);font-size:clamp(2.6rem,8vw,3.6rem);font-weight:800;
  letter-spacing:-.04em;line-height:1;margin-bottom:.4rem;}
.price-was{font-family:var(--display);font-size:.9375rem;color:var(--ink-faint);
  margin-bottom:1.4rem;}
.price-was s{opacity:.75;}

/* included list */
.terms{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.4rem 0;margin:1.75rem 0;}
.terms h3{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);margin-bottom:.9rem;}
.terms ul{list-style:none;display:grid;gap:.6rem;}
.terms li{display:flex;gap:.65rem;font-size:1rem;line-height:1.5;}
.terms li svg{width:14px;height:14px;flex:none;margin-top:.4em;color:var(--accent);}

.pull{font-family:var(--display);font-weight:700;font-size:clamp(1.25rem,3.4vw,1.6rem);
  line-height:1.25;letter-spacing:-.025em;text-align:center;max-width:30rem;
  margin:2.25rem auto;color:var(--ink);}
.note{font-family:var(--display);font-size:.875rem;line-height:1.6;color:var(--ink-soft);
  background:var(--sunk);border-radius:var(--r-panel);padding:1.1rem 1.3rem;}

/* faq */
.faq details{border-top:1px solid var(--line);}
.faq details:last-of-type{border-bottom:1px solid var(--line);}
.faq summary{font-family:var(--display);font-weight:700;font-size:1rem;padding:1.05rem 2rem 1.05rem 0;
  cursor:pointer;list-style:none;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";position:absolute;right:.35rem;top:1.45rem;width:8px;height:8px;
  border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);
  transform:rotate(45deg);transition:transform .2s;}
.faq details[open] summary::after{transform:rotate(-135deg);}
.faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}
.faq p{font-size:1rem;color:var(--ink-soft);padding-bottom:1.15rem;}

footer{border-top:1px solid var(--line);margin-top:3.5rem;padding:2rem 0 3rem;background:var(--sunk);}
footer p{font-family:var(--display);font-size:.8125rem;line-height:1.6;color:var(--ink-soft);
  margin-bottom:.85rem;}
footer p:last-child{margin-bottom:0;color:var(--ink-faint);}
footer a{color:var(--accent);text-underline-offset:2px;}
.legal-nav{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;justify-content:center;list-style:none;
  margin-bottom:.85rem;font-family:var(--display);font-size:.8125rem;}
.legal-nav a{color:var(--ink-soft);text-decoration:none;}
.legal-nav a:hover{color:var(--accent);text-decoration:underline;}
.todo{background:var(--accent-wash);color:var(--accent-deep);border:1px dashed var(--accent-line);
  border-radius:var(--r-chip);padding:0 .3em;font-family:var(--display);font-size:.85em;font-weight:700;}
