/* ============================================================
   TAPPING AND YAPPING — Miriam Langsam
   Palette drawn from the logo: coral, deep teal, leaf, gold.
   Page is black on white per the brief; cream is a band, not a base.
   ============================================================ */

:root{
  --ink:        #000000;
  --ink-soft:   #3a3a3a;
  --paper:      #ffffff;
  --cream:      #fdf4ea;
  --coral:      #d35f41;   /* interactive + headlines: 3.8:1 on white */
  --coral-deep: #b5472f;
  --peach:      #f88a7b;   /* logo peach, decorative only */
  --peach-pale: #fcd0ca;
  --teal:       #13577a;   /* logo teal: 7.9:1 with white */
  --teal-deep:  #0e4260;
  --teal-mid:   #59b8a9;
  --leaf:       #84b21f;
  --gold:       #a88e4f;
  --rule:       #e4ded6;

  --measure: 34rem;
  --shell: 1060px;
  --rail-gap: 3.25rem;

  --step-0: 1.25rem;
  --step-1: 1.4375rem;
  --step-2: clamp(1.5rem, 1.2rem + 1.1vw, 2rem);
  --step-3: clamp(1.9rem, 1.4rem + 2.2vw, 3rem);
  --step-4: clamp(2.4rem, 1.5rem + 4vw, 4.25rem);
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:var(--step-0);
  line-height:1.85;
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
}

h1,h2{color:var(--coral);}
.discovery h2,.optin h2{color:inherit;}
h1,h2,h3,.display{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-variation-settings:"SOFT" 40,"WONK" 1;
  font-weight:600;
  line-height:1.1;
  letter-spacing:-0.015em;
  margin:0;
  text-wrap:balance;
}
h1{font-size:var(--step-4);}
h2{font-size:var(--step-3);}
h3{font-size:var(--step-2);line-height:1.2;}

p{margin:0 0 1.5em;}
p:last-child{margin-bottom:0;}

a{color:inherit;}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:3px solid var(--teal);
  outline-offset:3px;
  border-radius:2px;
}

img{max-width:100%;height:auto;display:block;}

/* ---------- layout rails ---------- */

/* One content column for the whole page. Everything — prose, image rows,
   video, bands — spans the same width, so the left AND right edges line up
   all the way down. Long prose is set in two columns to keep lines short
   without leaving an empty rail. */
.rail{
  display:grid;
  grid-template-columns:
    [full-start] minmax(1.25rem,1fr)
    [wide-start] min(var(--shell),100% - 2.5rem)
    [wide-end] minmax(1.25rem,1fr) [full-end];
}
.rail > *{grid-column:wide-start / wide-end;}
.rail > .bleed{grid-column:full-start / full-end;}

/* short intros and sign-offs stay at a readable single-column width */
.narrow{max-width:var(--measure);}

/* a section's closing thought, set large enough to hold the width */
.closer{
  font-family:"Fraunces",serif;
  font-variation-settings:"SOFT" 45,"WONK" 1;
  font-weight:500;
  font-size:var(--step-2);line-height:1.4;
  max-width:30ch;margin:3rem auto 0;text-align:center;
}

section{padding-block:clamp(3.25rem,6vw,5.5rem);}
section + section{padding-top:0;}
.band + section{padding-top:clamp(3.25rem,6vw,5.5rem);}
.band{padding-block:clamp(3.5rem,6.5vw,6rem);}

/* ---------- header ---------- */

.masthead{
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.masthead__in{
  width:min(var(--shell),100% - 2.5rem);
  margin-inline:auto;
  display:flex;align-items:center;gap:1.5rem;
  padding-block:1rem;
}
.brand{display:flex;align-items:center;gap:1rem;text-decoration:none;margin-right:auto;}
.brand img{
  width:200px;height:auto;
}
.brand__name{
  font-family:"Fraunces",serif;font-weight:600;
  font-size:1.25rem;line-height:1.25;letter-spacing:-.01em;color:var(--ink);
}
.brand__name small{display:block;font-size:.9375rem;font-weight:500;color:var(--ink-soft);margin-top:.15rem;}
.nav{display:flex;align-items:center;gap:2rem;}
.nav a{
  text-decoration:none;font-size:1rem;font-weight:500;
  padding-block:.35rem;border-bottom:2px solid transparent;
}
.nav a:hover{border-bottom-color:var(--coral);}
.nav__cta{
  background:var(--teal);color:#fff;
  padding:.7rem 1.35rem;border-radius:999px;
  font-weight:600;text-decoration:none;font-size:1rem;
  white-space:nowrap;
}
.nav__cta:hover{background:var(--teal-deep);}
.menu-btn{display:none;}
.cta-short{display:none;}

@media (max-width:860px){
  .masthead__in{padding-block:.6rem;flex-wrap:wrap;row-gap:.45rem;}
  .brand{gap:.7rem;}
  .brand img{width:128px;}
  .brand__name{font-size:1rem;}
  .brand__name small{font-size:.8125rem;}
  /* links wrap onto their own row instead of disappearing on phones */
  .nav{
    order:3;width:100%;gap:1.25rem;flex-wrap:wrap;align-items:center;
    padding-top:.45rem;border-top:1px solid var(--rule);
  }
  .nav a{font-size:.9375rem;}
  .nav__cta{margin-left:auto;padding:.5rem 1rem;font-size:.9375rem;}
}
@media (max-width:620px){
  .cta-long{display:none;}
  .cta-short{display:inline;}
  .nav{gap:.85rem;}
  .nav a{font-size:.8438rem;}
}
@media (max-width:430px){
  .brand img{width:112px;}
  .brand__name{font-size:.9375rem;}
  .nav{gap:.7rem;}
  .nav a{font-size:.8125rem;}
  .nav__cta{padding:.42rem .8rem;font-size:.8125rem;}
}
@media (max-width:380px){
  .nav{gap:.55rem;}
  .nav a{font-size:.78125rem;}
  .nav__cta{padding:.4rem .7rem;font-size:.78125rem;}
}

/* ---------- hero ---------- */

.hero{padding-block:clamp(3rem,7vw,6rem) clamp(3rem,7vw,5.5rem);}
.hero__grid{
  display:grid;gap:clamp(2rem,5vw,4.5rem);
  grid-template-columns:1.15fr .85fr;align-items:center;
}
.hero h1{max-width:none;}
.hero__sub{
  font-size:var(--step-1);line-height:1.6;
  margin-top:1.6rem;max-width:40ch;color:var(--ink-soft);
}
.hero__figure{position:relative;}
.hero__figure img{
  width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 18%;
  border-radius:50% 50% 46% 54% / 48% 46% 54% 52%;
}
.hero__figure::after{
  content:"";position:absolute;inset:-14px;
  border:2px solid var(--peach);
  border-radius:50% 50% 46% 54% / 48% 46% 54% 52%;
  pointer-events:none;opacity:.55;
}
.hero__cta{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:1rem 1.75rem;align-items:center;}

@media (max-width:860px){
  .hero__grid{grid-template-columns:1fr;}
  .hero__figure{order:-1;max-width:380px;margin-inline:auto;}
  .hero h1,.hero__sub{max-width:none;}
}

/* ---------- buttons ---------- */

.btn{
  display:inline-block;background:var(--coral);color:#fff;
  font-family:"Karla",sans-serif;font-weight:700;font-size:1.1875rem;
  letter-spacing:.01em;text-decoration:none;
  padding:1rem 2rem;border-radius:999px;border:0;cursor:pointer;
  transition:background .18s ease;
}
.btn:hover{background:var(--coral-deep);}
.btn--teal{background:var(--teal);}
.btn--teal:hover{background:var(--teal-deep);}
.btn--lg{font-size:1.1875rem;padding:1.15rem 2.5rem;}

.link-quiet{
  text-decoration:none;font-weight:600;
  border-bottom:2px solid var(--coral);padding-bottom:2px;
}
.link-quiet:hover{border-bottom-color:var(--teal);}

/* ---------- path banner ---------- */

.pathband{position:relative;isolation:isolate;}
.pathband{width:min(var(--shell),100% - 2.5rem);margin-inline:auto;}
.pathband img{width:100%;height:auto;border-radius:12px;}
.pathband__text{
  position:absolute;inset:0;z-index:2;display:grid;place-items:center;
  padding:1.5rem;text-align:center;
}
.pathband__text p{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 60,"WONK" 1;
  font-style:italic;font-weight:500;
  font-size:clamp(1.65rem,4.2vw,3rem);line-height:1.2;
  color:#fff;margin:0;max-width:16ch;
  text-shadow:0 2px 24px rgba(0,0,0,.55);
}

/* ---------- prose + marginalia ---------- */

.lede{
  font-size:var(--step-1);line-height:1.7;
}
.kicker{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 50,"WONK" 1;
  font-size:var(--step-2);font-weight:600;line-height:1.25;
  color:var(--teal);margin:0 0 1.25rem;
}

.cols2{columns:2;column-gap:var(--rail-gap);}
/* for a couple of short paragraphs, keep each one whole in its own column */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--rail-gap);align-items:start;}
.pair > p{margin:0;}
@media (max-width:820px){ .pair{grid-template-columns:1fr;gap:1.5rem;} }
.cols2 li{break-inside:avoid;}
.cols2 > :first-child{margin-top:0;}
@media (max-width:820px){ .cols2{columns:1;} }

.ticks{list-style:none;margin:0 0 1.5em;padding:0;}
.ticks li{
  position:relative;padding-left:2.1rem;margin-bottom:1.1rem;
}
.ticks li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:11px;height:11px;border-radius:50%;
  background:var(--peach);
}
.ticks li:last-child{margin-bottom:0;}

/* margin notes — testimonials living in the outer rail */
.note{
  margin-top:2.25rem;
  background:var(--cream);
  border-left:4px solid var(--peach);
  border-radius:0 8px 8px 0;
  padding:1.4rem 1.5rem 1.4rem 1.35rem;
  font-size:1.0625rem;line-height:1.65;
  opacity:0;transform:translateY(14px);
  transition:opacity .7s ease,transform .7s ease;
}
.discovery .note{background:rgba(255,255,255,.1);}
.note.is-in{opacity:1;transform:none;}
.note p{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 55,"WONK" 1;
  font-style:italic;font-size:1.125rem;line-height:1.55;margin:0 0 .6rem;
}
.note cite{font-style:normal;font-weight:700;font-size:.9375rem;color:var(--teal);}


/* text column + side column, sharing the page's left edge */
.split{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,0.94fr);
  gap:var(--rail-gap);align-items:start;
}
.split__side{display:grid;gap:2.25rem;align-content:start;}
/* side image fills the column height instead of leaving a gap below it */
.split--fill{align-items:stretch;}
.split--fill .split__side{display:grid;gap:2.25rem;align-content:start;}
.split--fill .split__side img{width:100%;aspect-ratio:4/5;max-height:600px;object-fit:cover;}
.split__side img{width:100%;border-radius:10px;}
@media (max-width:900px){
  .split{grid-template-columns:1fr;gap:2.5rem;}
}
@media (prefers-reduced-motion: reduce){
  .note{opacity:1;transform:none;transition:none;}
}

/* ---------- video ---------- */

.videowrap{
  position:relative;width:100%;
  border-radius:14px;overflow:hidden;background:#000;
  box-shadow:0 4px 40px rgba(19,111,107,.16);
}
.videowrap video{display:block;width:100%;aspect-ratio:16/9;background:#000;}
.playbtn{
  position:absolute;left:24%;top:46%;transform:translate(-50%,-50%);
  width:92px;height:92px;border-radius:50%;border:0;
  background:var(--coral);cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 6px 28px rgba(0,0,0,.3);
  transition:transform .2s ease,background .2s ease;
}
.playbtn:hover{background:var(--coral-deep);transform:translate(-50%,-50%) scale(1.07);}
.playbtn svg{width:34px;height:34px;fill:#fff;margin-left:5px;}
.playbtn[hidden]{display:none;}
@media (max-width:640px){
  .playbtn{width:62px;height:62px;}
  .playbtn svg{width:23px;height:23px;margin-left:3px;}
}
@media (prefers-reduced-motion: reduce){ .playbtn{transition:none;} }

/* ---------- what is EFT ---------- */

.eft__grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
@media (max-width:900px){ .eft__grid{grid-template-columns:1fr;} }

.diagram{width:100%;height:auto;}
.diagram .pt{fill:var(--coral);}
.diagram .lead{stroke:var(--teal);stroke-width:1.3;fill:none;}
.diagram .outline,.diagram .outline *{
  stroke:var(--ink);stroke-width:1.8;fill:none;
  stroke-linecap:round;stroke-linejoin:round;
}
.diagram .lbl{
  font-family:"Karla",sans-serif;font-size:17px;font-weight:600;fill:var(--ink);
}
.diagram .lbl tspan.ab{fill:var(--teal);font-weight:700;}

.hl{
  background:linear-gradient(transparent 58%,var(--peach-pale) 58%);
  color:inherit;font-style:italic;font-weight:600;
  padding:0 .12em;
}
.pullquote{
  border-top:2px solid var(--rule);border-bottom:2px solid var(--rule);
  padding:2rem 0;margin:2.5rem 0;
}
.pullquote p{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 55,"WONK" 1;
  font-style:italic;font-size:var(--step-2);line-height:1.4;margin:0 0 1rem;
}
.pullquote cite{font-style:normal;font-weight:700;font-size:1rem;color:var(--teal);}


/* ---------- opt-in ---------- */

.optin{background:var(--cream);}
.optin__in{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
@media (max-width:860px){ .optin__in{grid-template-columns:1fr;} }
.optin h2{font-size:var(--step-3);}
.gifts{list-style:none;margin:1.5rem 0 0;padding:0;}
.gifts li{
  position:relative;padding-left:2rem;margin-bottom:.85rem;
  font-weight:600;font-size:1.125rem;
}
.ifnotnow{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 60,"WONK" 1;
  font-style:italic;font-weight:600;
  font-size:clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  line-height:1.2;margin-top:2rem;color:var(--teal);
}
.gifts li::before{
  content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;
  background:var(--leaf);border-radius:2px;transform:rotate(45deg);
}
.signup{
  background:#fff;padding:2rem;border-radius:16px;
  box-shadow:0 2px 30px rgba(19,87,122,.1);
  border:4px solid transparent;
  background-image:
    linear-gradient(#fff,#fff),
    linear-gradient(118deg,var(--peach) 0%,var(--gold) 26%,var(--leaf) 52%,var(--teal-mid) 76%,var(--teal) 100%);
  background-origin:border-box;
  background-clip:padding-box,border-box;
}
.signup label{display:block;font-weight:700;font-size:.9375rem;margin-bottom:.4rem;}
.signup input{
  width:100%;font:inherit;font-size:1.0625rem;
  padding:.8rem .95rem;margin-bottom:1.15rem;
  border:1.5px solid var(--rule);border-radius:8px;background:#fff;
}
.signup input:focus{border-color:var(--teal);}
.signup textarea{
  width:100%;font:inherit;font-size:1.0625rem;
  padding:.8rem .95rem;margin-bottom:1.15rem;
  border:1.5px solid var(--rule);border-radius:8px;background:#fff;
  resize:vertical;min-height:5.5rem;
}
.signup textarea:focus{border-color:var(--teal);}
.signup .btn{width:100%;}
.privacy{font-size:.875rem;line-height:1.5;color:var(--ink-soft);margin:1rem 0 0;}
.opt{font-weight:400;color:var(--ink-soft);}

.emailcta{margin-top:2.5rem;}
.emailcta__lead{font-size:1.0625rem;margin:0 0 .75rem;opacity:.9;}
.emailcta__row{
  display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;
  background:rgba(255,255,255,.12);
  border:1.5px solid rgba(255,255,255,.35);
  border-radius:12px;padding:.5rem .5rem .5rem 1.1rem;
}
.emailcta__addr{
  flex:1 1 15rem;display:flex;align-items:center;
  font-size:1.1875rem;font-weight:600;color:#fff;
  text-decoration:none;word-break:break-all;
}
.emailcta__addr:hover{text-decoration:underline;text-underline-offset:3px;}
.emailcta__copy{
  flex:0 0 auto;border:0;cursor:pointer;
  background:#fff;color:var(--teal-deep);
  font:inherit;font-weight:700;font-size:1rem;
  padding:.6rem 1.25rem;border-radius:8px;
  transition:background .18s ease;
}
.emailcta__copy:hover{background:var(--cream);}
.emailcta__copy.is-done{background:var(--leaf);color:#fff;}
.discovery .alt-contact{color:#fff;}
.discovery .alt-contact a{color:#fff;text-decoration:underline;text-underline-offset:3px;}

/* ---------- rotating testimonials ---------- */
.voices{background:var(--cream);}
.voices__in{text-align:center;}
.voices__label{
  font-family:"Karla",sans-serif;font-weight:700;font-size:1rem;
  color:var(--teal);margin:0 0 1.75rem;
}
.voices__stage{position:relative;min-height:19.5rem;}
.voice{
  margin:0;position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .6s ease,transform .6s ease,visibility .6s;
}
.voice.is-on{opacity:1;visibility:visible;transform:none;}
.voice blockquote{
  margin:0;max-width:40ch;
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 55,"WONK" 1;
  font-style:italic;font-weight:500;
  font-size:clamp(1.4rem, 1.05rem + 1.4vw, 2.1rem);line-height:1.38;
}
.voice figcaption{
  margin-top:1.1rem;font-family:"Karla",sans-serif;
  font-weight:700;font-size:1rem;color:var(--coral);
}
.voices__dots{display:flex;justify-content:center;gap:.6rem;margin-top:2rem;flex-wrap:wrap;}
.voices__dots button{
  width:10px;height:10px;padding:0;border:0;border-radius:50%;
  background:rgba(19,87,122,.25);cursor:pointer;transition:background .2s ease;
}
.voices__dots button[aria-selected="true"]{background:var(--teal);}
.voices__dots button:hover{background:var(--teal-mid);}
@media (max-width:640px){ .voices__stage{min-height:17rem;} }
@media (prefers-reduced-motion: reduce){
  .voice{transition:none;}
}

/* ---------- discovery call ---------- */

.discovery{background:var(--teal);color:#fff;}
.discovery h2{color:#fff;}
.discovery .ticks li::before{background:var(--leaf);}
.discovery a:not(.btn){color:#fff;}
.discovery .btn{background:#fff;color:var(--teal-deep);}
.discovery .btn:hover{background:var(--cream);}
.closing{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 60,"WONK" 1;
  font-style:italic;font-size:var(--step-2);line-height:1.4;
  margin:2.5rem 0 0;
}

/* ---------- footer ---------- */

.foot{border-top:1px solid var(--rule);padding-block:3.5rem;font-size:1rem;}
.foot__in{
  display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start;
}
.foot img{width:180px;height:auto;}
.foot a{text-decoration:none;border-bottom:1px solid var(--rule);}
.foot a:hover{border-bottom-color:var(--coral);}
.foot__nav{display:flex;flex-direction:column;gap:.6rem;}
.foot__credit{
  font-size:.875rem;color:var(--ink-soft);width:100%;
  border-top:1px solid var(--rule);padding-top:1.5rem;margin-top:.5rem;
  display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;justify-content:space-between;
}
.foot__by a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule);}
.foot__by a:hover{color:var(--teal);border-bottom-color:currentColor;}

/* ---------- popup ---------- */

.pop{
  position:fixed;inset:0;z-index:100;
  display:grid;place-items:center;padding:1.5rem;
  background:rgba(12,79,76,.5);
  opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;
}
.pop.is-open{opacity:1;visibility:visible;}
.pop__card{
  background:#fff;max-width:520px;width:100%;
  padding:clamp(1.75rem,4vw,2.75rem);border-radius:16px;
  position:relative;max-height:90vh;overflow-y:auto;
  transform:translateY(16px);transition:transform .35s ease;
}
.pop.is-open .pop__card{transform:none;}
.pop__card h2{font-size:clamp(1.5rem,3.4vw,2rem);}
.pop__card .signup{box-shadow:none;padding:1.5rem 0 0;}
.pop__close{
  position:absolute;top:.75rem;right:.9rem;
  background:none;border:0;font-size:1.9rem;line-height:1;
  cursor:pointer;color:var(--ink-soft);padding:.25rem .5rem;
}
.pop__close:hover{color:var(--ink);}
@media (prefers-reduced-motion: reduce){
  .pop,.pop__card{transition:none;}
}

/* ---------- inner page hero ---------- */
.pagehead{padding-block:clamp(2.5rem,5vw,4rem) clamp(2rem,4vw,3rem);}
.pagehead__grid{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.pagehead h1{font-size:clamp(2.2rem, 1.6rem + 2.6vw, 3.5rem);}
.pagehead__lede{font-size:var(--step-1);line-height:1.6;margin-top:1.5rem;}
.pagehead__fig img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;}
@media (max-width:860px){
  .pagehead__grid{grid-template-columns:1fr;}
  .pagehead__fig{max-width:420px;}
}

/* ---------- service cards ---------- */
.cards{
  display:grid;gap:1.5rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:2.5rem;
}
.card{
  display:flex;flex-direction:column;
  background:#fff;border:1.5px solid var(--rule);border-radius:14px;
  overflow:hidden;
}
.card__img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;}
.card__body{display:flex;flex-direction:column;flex:1;padding:1.6rem 1.75rem 1.75rem;}
.card--lead{background:var(--cream);border-color:var(--peach);}
@media (max-width:720px){ .cards{grid-template-columns:1fr;} }
.card__price{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 40,"WONK" 1;
  font-weight:600;font-size:2rem;line-height:1;color:var(--coral);
}
.card h3{font-size:1.3125rem;margin:.65rem 0 .25rem;color:var(--ink);}
.card__meta{
  font-size:.9375rem;font-weight:700;color:var(--teal);
  margin:0 0 .9rem;
}
.card p{font-size:1.0625rem;line-height:1.6;}
.card__cta{
  margin-top:auto;padding-top:1.25rem;
  font-weight:700;font-size:1.0625rem;text-decoration:none;
  color:var(--coral);
}
.card__cta:hover{color:var(--coral-deep);text-decoration:underline;text-underline-offset:3px;}

/* ---------- group programme ---------- */
.group{background:var(--cream);}
.group__price{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 40,"WONK" 1;
  font-weight:600;font-size:clamp(2rem,1.5rem + 1.6vw,2.75rem);
  line-height:1;color:var(--coral);margin:0 0 .35rem;
}
.group__price span{
  font-family:"Karla",sans-serif;font-size:1.0625rem;font-weight:600;
  color:var(--ink-soft);
}
.checks{list-style:none;margin:0 0 1.5em;padding:0;}
.checks li{position:relative;padding-left:1.9rem;margin-bottom:.9rem;}
.checks li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:10px;height:10px;background:var(--leaf);
  border-radius:2px;transform:rotate(45deg);
}
.checks li:last-child{margin-bottom:0;}

/* ---------- inner page: intro continues inside the page head ---------- */
/* the intro carries on in the same two tracks as the head above it */
.pagehead__more{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,5vw,4rem);
  margin-top:clamp(1.75rem,3vw,2.5rem);
}
.pagehead__more p:first-child{margin-top:0;}
@media (max-width:860px){ .pagehead__more{grid-template-columns:1fr;gap:0;} }

/* heading and its intro line share a row, so the block fills the width */
.sectionhead{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:var(--rail-gap);align-items:baseline;
}
.sectionhead p{margin:0;}
@media (max-width:820px){
  .sectionhead{grid-template-columns:1fr;gap:1rem;}
}

/* a testimonial band sitting next to a cream one needs to be white */
.voices--plain{
  background:var(--paper);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.voices--plain .voices__dots button{background:rgba(19,87,122,.22);}

/* email + copy block on a light background */
.emailcta--light .emailcta__lead{color:var(--ink-soft);opacity:1;}
.emailcta--light .emailcta__row{
  background:#fff;border-color:var(--rule);
}
.emailcta--light .emailcta__addr{color:var(--teal);}
.emailcta--light .emailcta__copy{background:var(--teal);color:#fff;}
.emailcta--light .emailcta__copy:hover{background:var(--teal-deep);}
.emailcta--light .emailcta__copy.is-done{background:var(--leaf);}

/* ---------- Astro conversion: flow helpers ---------- */
/* The original markup carried these as inline styles on the first paragraph.
   Now that the copy comes out of the CMS as a block, the spacing lives here. */
.flow-top > p:first-child{margin-top:1.5rem;}
.flow-top-sm > p:first-child{margin-top:1.25rem;}
.flow-lg{margin-top:2.5rem;}
.note__body p:last-child{margin-bottom:0;}

/* ---------- contact form ---------- */
/* The card sits on the teal discovery band, which sets color:#fff on
   everything inside it. Without this the labels are white on white. */
.signup{color:var(--ink);}
.discovery .signup .btn{background:var(--coral);color:#fff;}
.discovery .signup .btn:hover{background:var(--coral-deep);}
.discovery .signup a{color:var(--teal);}

.signup--contact{position:sticky;top:1.5rem;}
.signup__lead{
  font-family:"Fraunces",serif;font-variation-settings:"SOFT" 45,"WONK" 1;
  font-weight:600;font-size:1.5rem;line-height:1.2;
  color:var(--teal);margin:0 0 .5rem;
}
.signup__intro{font-size:1rem;color:var(--ink-soft);margin:0 0 1.5rem;}
.signup--contact label{margin-top:0;}

@media (max-width:900px){
  .signup--contact{position:static;}
}
