/* ==========================================================================
   Lindsay A. Brady Hypnotherapy — site styles
   Rebuilt stylesheet: mobile-first, consistent spacing, accessible contrast.
   Brand colors sampled from the original site.
   ========================================================================== */

:root{
  color-scheme: light only;

  /* brand */
  --teal:        #05cab6;   /* primary accent (decorative fills, circles, bars) */
  --teal-deep:   #0a7d72;   /* accent for text/buttons — passes contrast on white */
  --teal-mid:    #08a596;
  --mint:        #b8e6e1;   /* soft section background */
  --mint-pale:   #eaf7f5;
  --navy:        #13213c;   /* headings — from the logo */
  --navy-mid:    #27447c;
  --gray-logo:   #7f7f7f;

  /* text */
  --ink:         #26303f;   /* body copy */
  --muted:       #55606f;
  --white:       #ffffff;
  --line:        rgba(19,33,60,.13);
  --line-soft:   rgba(19,33,60,.08);

  /* spacing scale */
  --s1: .25rem;  --s2: .5rem;   --s3: .75rem;  --s4: 1rem;
  --s5: 1.5rem;  --s6: 2rem;    --s7: 2.5rem;  --s8: 3rem;
  --s9: 4rem;    --s10: 5rem;

  /* section rhythm */
  --section-y: 3.25rem;
  --wrap: 1140px;

  --radius: 14px;
  --radius-lg: 20px;
  --shadow: 0 10px 30px rgba(19,33,60,.08);
  --shadow-lg: 0 18px 50px rgba(19,33,60,.13);
}

@media (min-width: 768px){ :root{ --section-y: 4.5rem; } }
@media (min-width: 1024px){ :root{ --section-y: 5.5rem; } }

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

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  background:var(--white);
}

body{
  font-family:'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size:1.0625rem;         /* 17px — readable for older eyes */
  line-height:1.72;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

/* ---------- typography ---------- */
h1,h2,h3,h4{
  font-family:'Quicksand', 'Lato', sans-serif;
  color:var(--navy);
  line-height:1.22;
  font-weight:700;
  text-wrap:balance;
}
h1{ font-size:clamp(1.75rem, 5.2vw, 2.9rem); letter-spacing:-.01em; }
h2{ font-size:clamp(1.5rem, 4.2vw, 2.3rem); }
h3{ font-size:clamp(1.15rem, 2.6vw, 1.4rem); }
h4{ font-size:1.05rem; }

p{ margin-bottom:var(--s4); }
p:last-child{ margin-bottom:0; }

strong,b{ font-weight:700; color:var(--navy); }
em,i{ font-style:italic; }

.lede{
  font-size:clamp(1.05rem, 2.2vw, 1.2rem);
  color:var(--muted);
  line-height:1.65;
}

.eyebrow{
  display:block;
  font-family:'Quicksand', sans-serif;
  font-size:.875rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--teal-deep);
  margin-bottom:var(--s3);
}

/* ---------- layout ---------- */
.wrap{ width:min(var(--wrap), 100% - 2.5rem); margin-inline:auto; }
@media (min-width:768px){ .wrap{ width:min(var(--wrap), 100% - 4rem); } }

.section{ padding-block:var(--section-y); }
.section--tight{ padding-block:calc(var(--section-y) * .62); }
.section--mint{ background:var(--mint-pale); }
.section--mint-solid{ background:var(--mint); }
.section--navy{ background:var(--navy); color:#e8edf5; }
.section--navy h2,.section--navy h3{ color:var(--white); }

.center{ text-align:center; }
.narrow{ max-width:720px; margin-inline:auto; }
.measure{ max-width:74ch; }

.section-head{ margin-bottom:var(--s7); }
.section-head p{ margin-top:var(--s3); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:'Quicksand', sans-serif;
  font-weight:700; font-size:1rem; line-height:1;
  padding:1rem 1.9rem;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
  text-align:center;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.btn--primary{ background:var(--teal-deep); color:var(--white); }
.btn--primary:hover{ background:#095f57; transform:translateY(-2px); box-shadow:0 10px 24px rgba(10,125,114,.3); }
.btn--ghost{ background:transparent; border-color:var(--teal-deep); color:var(--teal-deep); }
.btn--ghost:hover{ background:var(--teal-deep); color:var(--white); transform:translateY(-2px); }
.btn--white{ background:var(--white); color:var(--teal-deep); }
.btn--white:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--block{ width:100%; }
@media (min-width:520px){ .btn--block{ width:auto; } }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--s4);
  padding-block:.7rem;
}
.brand{ display:flex; align-items:center; gap:.65rem; flex-shrink:1; min-width:0; }
.brand .brand-logo{ width:clamp(150px, 42vw, 230px); }
.brand-face{ width:48px; height:48px; flex-shrink:0; border-radius:50%; object-fit:cover; object-position:top center; display:none; box-shadow:0 2px 8px rgba(19,33,60,.15); }
@media (min-width:560px){ .brand-face{ display:block; } }

.header-actions{ display:flex; align-items:center; gap:var(--s3); flex-shrink:0; }
.header-phone{
  font-family:'Quicksand',sans-serif; font-weight:700;
  color:var(--teal-deep); white-space:nowrap; font-size:1rem;
}
.header-phone span{ display:none; }
@media (min-width:900px){ .header-phone span{ display:inline; } }

.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border:1px solid var(--line); border-radius:10px;
  background:var(--white); cursor:pointer; color:var(--navy);
}
@media (min-width:1024px){ .nav-toggle{ display:none; } }

.site-nav ul{ display:flex; gap:1.4rem; align-items:center; }
.site-nav a{
  font-family:'Quicksand',sans-serif; font-weight:600; font-size:.95rem;
  color:var(--navy); padding-block:.3rem; border-bottom:2px solid transparent;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{ color:var(--teal-deep); border-bottom-color:var(--teal); }

@media (max-width:1023px){
  .site-nav{
    position:absolute; left:0; right:0; top:100%;
    background:var(--white); border-bottom:1px solid var(--line);
    box-shadow:var(--shadow); display:none;
  }
  .site-nav.is-open{ display:block; }
  .site-nav ul{ flex-direction:column; align-items:stretch; gap:0; padding:var(--s3) 1.25rem var(--s5); }
  .site-nav a{ display:block; padding:.9rem .25rem; border-bottom:1px solid var(--line-soft); }
  .site-nav a:hover{ border-bottom-color:var(--line-soft); }
}
@media (min-width:1024px){ .site-nav{ display:block !important; } }

/* ---------- hero ---------- */
.hero{
  background:linear-gradient(170deg, var(--mint-pale) 0%, #ffffff 62%);
  padding-block:var(--s8) var(--section-y);
  text-align:center;
}
.hero .hero-portrait{
  width:clamp(120px, 30vw, 168px);
  border-radius:50%;
  margin:0 auto var(--s5);
  box-shadow:var(--shadow);
  background:var(--white);
}
.hero h1{ margin-bottom:var(--s4); }
.hero .lede{ margin-inline:auto; max-width:60ch; }
.hero-cta{
  display:flex; flex-direction:column; gap:var(--s3);
  align-items:center; margin-top:var(--s6);
}
@media (min-width:520px){ .hero-cta{ flex-direction:row; justify-content:center; } }

.hero-contact{
  margin-top:var(--s5); font-size:1rem; color:var(--muted);
  display:flex; flex-direction:column; gap:.35rem; align-items:center;
}
.hero-contact a{ color:var(--teal-deep); font-weight:700; }

/* ---------- expertise strip ---------- */
.expertise{ background:var(--white); }
.expertise-grid{
  display:grid; gap:var(--s3);
  grid-template-columns:repeat(2, 1fr);
}
@media (min-width:700px){ .expertise-grid{ grid-template-columns:repeat(3, 1fr); gap:var(--s4); } }
@media (min-width:1024px){ .expertise-grid{ grid-template-columns:repeat(6, 1fr); } }

.expertise-item{
  display:block; text-align:center;
  padding:var(--s5) var(--s3);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.expertise-item:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--teal); }
.expertise-item .verb{
  display:block; font-family:'Quicksand',sans-serif; font-weight:700;
  color:var(--teal-deep); font-size:.82rem; letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:.35rem;
}
.expertise-item .what{
  display:block; font-family:'Quicksand',sans-serif; font-weight:700;
  color:var(--navy); font-size:1.02rem; line-height:1.3;
}

/* ---------- claim banner ---------- */
.claim{
  background:var(--mint);
  border-radius:var(--radius-lg);
  padding:var(--s6) var(--s5);
  text-align:center;
}
.claim p{
  font-family:'Quicksand',sans-serif; font-weight:600;
  color:var(--navy);
  font-size:clamp(1.05rem, 2.3vw, 1.32rem);
  line-height:1.55;
  max-width:60ch; margin-inline:auto;
}
@media (min-width:768px){ .claim{ padding:var(--s7) var(--s8); } }

/* ---------- checklist columns ---------- */
.checks{
  display:grid; gap:var(--s6);
  grid-template-columns:1fr;
}
@media (min-width:700px){ .checks{ grid-template-columns:repeat(3,1fr); gap:var(--s7); } }

.check-col h3{ margin-bottom:var(--s4); }
.check-col li{
  display:flex; align-items:flex-start; gap:.6rem;
  padding-block:.45rem;
  font-weight:600; color:var(--ink);
}
.check-col svg{ width:20px; height:20px; flex-shrink:0; color:var(--teal-deep); margin-top:.28rem; }

/* ---------- icon cards (teal circle, white icon) ---------- */
.cards{
  display:grid; gap:var(--s5);
  grid-template-columns:1fr;
}
@media (min-width:700px){ .cards{ grid-template-columns:repeat(3,1fr); } }

.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--s7) var(--s5);
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.card h3{ margin-bottom:var(--s3); }
.card p{ color:var(--muted); }

.icon-circle{
  width:74px; height:74px; border-radius:50%;
  background:var(--teal);
  display:grid; place-items:center;
  margin:0 auto var(--s4);
  box-shadow:0 8px 20px rgba(5,202,182,.28);
}
.icon-circle svg{ width:34px; height:34px; color:var(--white); }

/* trio of small stat icons (FAST / PEACEFUL / EFFECTIVE) */
.trio{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:var(--s4); margin-top:var(--s6); text-align:center;
}
.trio .icon-circle{ width:60px; height:60px; }
.trio .icon-circle svg{ width:28px; height:28px; }
.trio span{
  display:block; font-family:'Quicksand',sans-serif; font-weight:700;
  color:var(--navy); letter-spacing:.08em; font-size:.86rem; text-transform:uppercase;
}

/* ---------- CTA bar ---------- */
.cta-bar{
  background:linear-gradient(100deg, var(--teal-mid), var(--teal));
  border-radius:var(--radius-lg);
  padding:var(--s6) var(--s5);
  text-align:center;
  color:var(--white);
}
.cta-bar p{
  font-family:'Quicksand',sans-serif; font-weight:700;
  font-size:clamp(1.1rem, 2.6vw, 1.5rem);
  color:var(--white);
  margin-bottom:var(--s5);
}
.cta-bar .btn{ background:var(--white); color:var(--teal-deep); }
.cta-bar .btn:hover{ background:var(--navy); color:var(--white); }
.cta-actions{ display:flex; flex-direction:column; gap:var(--s3); align-items:center; }
@media (min-width:560px){ .cta-actions{ flex-direction:row; justify-content:center; } }

/* ---------- steps ---------- */
.steps{ display:grid; gap:var(--s5); grid-template-columns:1fr; counter-reset:step; }
@media (min-width:768px){ .steps{ grid-template-columns:repeat(3,1fr); gap:var(--s6); } }
.step{
  border-top:3px solid var(--teal);
  padding-top:var(--s4);
}
.step .num{
  display:block; font-family:'Quicksand',sans-serif; font-weight:700;
  color:var(--teal-deep); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase;
  margin-bottom:var(--s2);
}
.step h3{ margin-bottom:var(--s2); }
.step p{ color:var(--muted); }

/* ---------- numbered benefit list (service pages) ---------- */
.benefits{ display:grid; gap:var(--s5); grid-template-columns:1fr; }
@media (min-width:640px){ .benefits{ grid-template-columns:repeat(2,1fr); gap:var(--s6); } }
@media (min-width:1024px){ .benefits{ grid-template-columns:repeat(4,1fr); } }
.benefit{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); padding:var(--s5);
}
.benefit .num{
  display:inline-grid; place-items:center;
  width:38px; height:38px; border-radius:50%;
  background:var(--mint); color:var(--navy);
  font-family:'Quicksand',sans-serif; font-weight:700; font-size:.95rem;
  margin-bottom:var(--s3);
}
.benefit h3{ font-size:1.1rem; margin-bottom:var(--s2); }
.benefit p{ color:var(--muted); font-size:.98rem; }

/* ---------- prose blocks ---------- */
.prose h3{ margin-top:var(--s6); margin-bottom:var(--s3); }
.prose h3:first-child{ margin-top:0; }
.prose ul{ margin:0 0 var(--s4); }
.prose ul li{
  position:relative; padding-left:1.5rem; padding-block:.3rem;
}
.prose ul li::before{
  content:""; position:absolute; left:0; top:.95rem;
  width:7px; height:7px; border-radius:50%; background:var(--teal);
}
.prose .callout{
  background:var(--mint-pale);
  border-left:4px solid var(--teal);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:var(--s5);
  margin-block:var(--s5);
}
.prose .callout p{ font-weight:600; color:var(--navy); }

.split{ display:grid; gap:var(--s6); grid-template-columns:1fr; align-items:start; }
@media (min-width:900px){
  .split{ grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:var(--s8); }
  .split--reverse > *:first-child{ order:2; }
}
.split img{ border-radius:var(--radius-lg); box-shadow:var(--shadow); }

/* ---------- testimonial ---------- */
.quote{
  background:var(--white);
  border:1px solid var(--line);
  border-left:4px solid var(--teal);
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;
  padding:var(--s6) var(--s5);
  max-width:840px; margin-inline:auto;
}
.quote p{ font-size:1.06rem; line-height:1.7; color:var(--ink); }
.quote cite{
  display:block; margin-top:var(--s4); font-style:normal;
  font-family:'Quicksand',sans-serif; font-weight:700; color:var(--teal-deep);
  letter-spacing:.06em; text-transform:uppercase; font-size:.85rem;
}

/* ---------- video ---------- */
.video-wrap{
  max-width:900px; margin-inline:auto;
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-lg); background:var(--navy);
}
.video-wrap video{ width:100%; display:block; }

/* ---------- meet lindsay ---------- */
.meet-portrait{
  border-radius:var(--radius-lg);
  background:var(--white);
  box-shadow:var(--shadow);
  padding:var(--s4);
  max-width:340px;
  margin-inline:auto;
}
.meet-portrait img{ border-radius:var(--radius); }

/* ---------- book ---------- */
.book-cover{ max-width:280px; margin-inline:auto; border-radius:6px; box-shadow:var(--shadow-lg); }
.endorse{
  display:flex; gap:var(--s4); align-items:flex-start;
  margin-top:var(--s6); padding-top:var(--s5); border-top:1px solid var(--line);
}
.endorse img{ width:64px; height:64px; border-radius:50%; flex-shrink:0; object-fit:cover; }
.endorse blockquote{ font-style:italic; color:var(--ink); }
.endorse .who{
  display:block; margin-top:var(--s3); font-style:normal;
  font-family:'Quicksand',sans-serif; font-weight:700; color:var(--navy); font-size:.92rem;
}

/* ---------- rates + contact ---------- */
.info-grid{ display:grid; gap:var(--s6); grid-template-columns:1fr; }
@media (min-width:768px){ .info-grid{ grid-template-columns:repeat(2,1fr); gap:var(--s8); } }
.info-block h3{ margin-bottom:var(--s4); padding-bottom:var(--s3); border-bottom:2px solid var(--teal); }
.info-block dl{ display:grid; gap:.55rem; }
.info-block dt{ font-weight:700; color:var(--navy); }
.info-block dd{ color:var(--muted); margin-bottom:var(--s3); }
.info-block a{ color:var(--teal-deep); font-weight:700; }
.info-list li{ padding-block:.4rem; }

/* ---------- form ---------- */
.booking{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:var(--s6) var(--s5);
  box-shadow:var(--shadow); max-width:820px; margin-inline:auto;
}
@media (min-width:768px){ .booking{ padding:var(--s8); } }
.booking .note{
  background:var(--mint-pale); border-radius:var(--radius);
  padding:var(--s4); font-size:.96rem; color:var(--muted); margin-bottom:var(--s5);
}
.field-grid{ display:grid; gap:var(--s4); grid-template-columns:1fr; }
@media (min-width:600px){ .field-grid{ grid-template-columns:repeat(2,1fr); } }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field--full{ grid-column:1 / -1; }
.field label{
  font-family:'Quicksand',sans-serif; font-weight:700;
  font-size:.9rem; color:var(--navy);
}
.field input,.field select,.field textarea{
  font-family:'Lato',sans-serif; font-size:1rem; color:var(--ink);
  padding:.85rem 1rem; border:1px solid var(--line); border-radius:10px;
  background:var(--white); width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(5,202,182,.18);
}
.field textarea{ min-height:120px; resize:vertical; }
.booking .btn{ margin-top:var(--s5); }

/* ---------- FAQ ---------- */
.faq{ max-width:860px; margin-inline:auto; }
.faq details{
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); margin-bottom:var(--s3);
  overflow:hidden;
}
.faq details[open]{ border-color:var(--teal); box-shadow:var(--shadow); }
.faq summary{
  cursor:pointer; list-style:none;
  padding:1.1rem 3rem 1.1rem 1.25rem;
  font-family:'Quicksand',sans-serif; font-weight:700; color:var(--navy);
  font-size:1.02rem; position:relative;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:1.25rem; top:50%;
  width:10px; height:10px; margin-top:-6px;
  border-right:2px solid var(--teal-deep); border-bottom:2px solid var(--teal-deep);
  transform:rotate(45deg); transition:transform .2s ease;
}
.faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq .answer{ padding:0 1.25rem 1.35rem; color:var(--muted); }
.faq .answer p{ margin-bottom:var(--s3); }
.faq .answer ol{ margin:var(--s3) 0 0 1.2rem; }
.faq .answer ol li{ margin-bottom:.5rem; }

/* ---------- footer ---------- */
.site-footer{ background:var(--navy); color:#c9d3e2; padding-block:var(--s8) var(--s6); }
.site-footer h3{ color:var(--white); font-size:1.05rem; margin-bottom:var(--s4); }
.footer-grid{ display:grid; gap:var(--s6); grid-template-columns:1fr; }
@media (min-width:768px){ .footer-grid{ grid-template-columns:1.2fr 1fr 1fr; gap:var(--s7); } }
.site-footer a{ color:#8fe6dc; }
.site-footer a:hover{ color:var(--white); }
.site-footer li{ padding-block:.3rem; }
.footer-bottom{
  margin-top:var(--s7); padding-top:var(--s5);
  border-top:1px solid rgba(255,255,255,.14);
  font-size:.88rem; color:#9fadc2; text-align:center;
}

/* ---------- utilities ---------- */
.stack > * + *{ margin-top:var(--s4); }
.mt-6{ margin-top:var(--s6); }
.mt-7{ margin-top:var(--s7); }
.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--navy); color:var(--white); padding:.75rem 1.25rem; z-index:100;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--teal-deep); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition:none !important; animation:none !important; }
}


/* ---------- touch targets (44px minimum) ---------- */
.header-phone{ display:inline-flex; align-items:center; min-height:44px; padding-inline:.35rem; }

.hero-contact span{ display:block; }
.hero-contact a{ display:inline-block; padding:.45rem .35rem; min-height:44px; line-height:2; }

.info-block a{ display:inline-block; padding:.35rem 0; min-height:40px; line-height:2; }

.site-footer li{ padding-block:0; }
.site-footer li a{ display:inline-block; padding:.6rem 0; min-height:44px; line-height:1.6; }

.brand{ min-height:44px; }
.expertise-item{ min-height:104px; display:flex; flex-direction:column; justify-content:center; }

/* footer copy sits a touch larger for readability */
.footer-bottom{ font-size:.95rem; }
.site-footer p{ font-size:1rem; line-height:1.7; }


/* ---------- hero video texture ---------- */
.hero{ position:relative; overflow:hidden; }
.hero--video .hero-bgvid{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.hero--video::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(170deg, rgba(234,247,245,.93) 0%, rgba(255,255,255,.9) 62%);
}
.hero .wrap{ position:relative; z-index:2; }
@media (prefers-reduced-motion:reduce){ .hero--video .hero-bgvid{ display:none; } }

/* ---------- CTA bar: Book button readable at rest ---------- */
.cta-bar .btn--book{ background:var(--navy); color:var(--white); }
.cta-bar .btn--book:hover{ background:var(--white); color:var(--teal-deep); }

/* ---------- testimonial slider ---------- */
.slider{ max-width:840px; margin-inline:auto; }
.slider .slide{ display:none; }
.slider .slide.is-active{ display:block; }
.slider-nav{
  display:flex; align-items:center; justify-content:center;
  gap:1rem; margin-top:var(--s5);
}
.slider-btn{
  width:46px; height:46px; border-radius:50%;
  border:2px solid var(--teal-deep); background:var(--white);
  color:var(--teal-deep); font-size:1.5rem; line-height:1;
  cursor:pointer; display:grid; place-items:center;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.slider-btn:hover{ background:var(--teal-deep); color:var(--white); transform:translateY(-1px); }
.slider-dots{ display:flex; gap:.6rem; }
.slider-dot{
  width:14px; height:14px; border-radius:50%;
  border:2px solid var(--teal-deep); background:transparent;
  cursor:pointer; padding:0;
  transition:background .2s ease;
}
.slider-dot.is-active{ background:var(--teal-deep); }


/* ---------- floated media inside prose (desktop text wrap) ---------- */
.clearfix::after{ content:""; display:table; clear:both; }
/* mobile: floats behave as centered block images */
.float-left, .float-right{ margin-inline:auto; margin-bottom:var(--s5); }
@media (min-width:900px){
  .float-left{ float:left; margin:0 var(--s6) var(--s4) 0; }
  .float-right{ float:right; margin:.4rem 0 var(--s4) var(--s6); }
  .book-cover.float-left{ max-width:280px; margin-inline:0 var(--s6); }
  .meet-portrait.float-left{ max-width:300px; margin-inline:0 var(--s6); }
  .meet-portrait.float-right{ max-width:300px; margin-inline:var(--s6) 0; }
  .prose.clearfix{ max-width:960px; margin-inline:auto; }
}
/* endorse block sits comfortably full width */
.endorse{ max-width:860px; margin-inline:auto; }
