/* Book-now lander — clean sections, no partial borders or radius */

.kl--book {
  --book-pad: clamp(20px, 4vw, 48px);
  --book-gutter: clamp(16px, 3vw, 32px);
  font-size: var(--text-m);
  padding-bottom: 80px;
  margin-top: 0;
  margin-block-start: 0;
}

/* Sitewide promo strip (matches WP announcement bar) */
.kl-announce-bar {
  margin: 0;
  margin-block-start: 0;
  padding: 0.55em clamp(12px, 3vw, 24px);
  background: #08415c;
  color: #fffffe;
  text-align: center;
  font-family: var(--font-body, Figtree, sans-serif);
  font-size: clamp(0.9rem, 1.6vw, 1.05rem);
  line-height: 1.35;
  font-weight: 500;
}

.kl-announce-bar mark {
  background: #caebff;
  color: #071e22;
  padding: 0.12em 0.4em;
  border-radius: 4px;
  font-weight: 700;
}

.kl-announce-bar strong {
  font-weight: 700;
  color: #fffffe;
}

/* Typography rhythm — margin between siblings; last in group has none */
.kl--book :is(h1, h2, h3, h4) {
  margin: 0 0 0.45em;
}

.kl--book p {
  margin: 0 0 0.65em;
}

.kl--book :is(h1, h2, h3, h4, p):last-child {
  margin-bottom: 0;
}

.kl--book li:last-child {
  margin-bottom: 0;
}

/* Gap-owned spacing — children use gap only (no margin + gap double stack) */
.kl--book :where(
  .kl-book-optin-hero__inner,
  .kl-book-optin-hero__offer,
  .kl-book-optin-hero__qual,
  .kl-book-optin-video,
  .kl-book-survey-wrap__inner,
  .kl-book-journey,
  .kl-book-survey__heading,
  .kl-book-survey__options,
  .kl-book-survey__fields,
  .kl-book-survey__field,
  .kl-book-survey-disqualify,
  .kl-process-steps,
  .kl-process-step,
  .kl-process-step__body,
  .kl-process-visit2,
  .kl-process-visit2__steps,
  .kl-process-visit2__step,
  .kl-progress-steps,
  .kl-progress-step,
  .kl-doctor-grid,
  .kl-doctor-card__body,
  .kl-book-pillars__head,
  .kl-book-pillars__grid,
  .kl-book-pillar,
  .kl-book-wall,
  .kl-book-founder__inner,
  .kl-book-founder__copy,
  .kl-book-founder__visual,
  .kl-book-proof__grid,
  .kl__visit-stack,
  .kl-ps-list,
  .kl-who-list,
  .kl-who-section .kl__wrap,
  .kl__ps .kl__wrap,
  .kl-faq-accordion
) > * {
  margin: 0;
}

.kl--book .kl__stack {
  display: flex;
  flex-direction: column;
  gap: var(--stack-gap, var(--space-sm));
}

.kl--book .kl__stack > * {
  margin: 0;
}

.kl--book .kl__header {
  border-bottom: none;
  box-shadow: none;
  background: var(--kl-surface);
}

.kl--book .kl__header-inner {
  max-width: none;
  padding: 14px var(--book-gutter);
}

.kl--book .kl__logo {
  display: inline-flex;
  line-height: 0;
}

/* ── Hero (single column + photo) ── */
.kl-book-hero {
  background: var(--kl-ink);
  color: var(--kl-on-brand);
}

.kl-book-hero__inner {
  max-width: var(--wide);
  margin: 0 auto;
  padding: clamp(36px, 6vw, 64px) var(--book-pad) clamp(28px, 4vw, 40px);
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.kl-book-hero h1 {
  color: var(--kl-on-brand);
  font-size: clamp(1.65rem, 4vw, 2.65rem);
  margin: 0;
  line-height: 1.12;
  max-width: 24ch;
}

.kl-book-hero__hook {
  margin: 0;
  font-size: clamp(1rem, 2.1vw, 1.15rem);
  line-height: 1.5;
  color: color-mix(in srgb, var(--kl-on-brand) 85%, var(--kl-sky));
  max-width: 42ch;
}

.kl-book-symptoms {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  max-width: 42ch;
}

.kl-book-symptoms li {
  font-size: clamp(1rem, 2.1vw, 1.15rem);
  line-height: 1.45;
  font-weight: 500;
  padding-left: 1.25em;
  position: relative;
  color: color-mix(in srgb, var(--kl-on-brand) 92%, var(--kl-sky));
}

.kl-book-symptoms li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--kl-sky);
  font-weight: 700;
}

.kl-book-hero__offer {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.5;
  color: color-mix(in srgb, var(--kl-on-brand) 88%, var(--kl-sage));
  max-width: 44ch;
}

.kl-book-hero__offer strong {
  color: var(--kl-sky);
  font-size: 1.15em;
  font-weight: 700;
}

.kl-book-hero__meta {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.45;
  color: color-mix(in srgb, var(--kl-on-brand) 72%, var(--kl-sky));
}

.kl-book-hero__photo {
  width: 100%;
  max-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

/* ── FAQ accordion (high on page) ── */
.kl-book-sky-band {
  background: color-mix(in srgb, var(--kl-sky) 8%, var(--kl-surface));
  border-top: 1px solid color-mix(in srgb, var(--kl-sage) 25%, var(--kl-surface));
  padding-bottom: clamp(8px, 1.5vw, 16px);
}

.kl-book-sky-band .kl-book-survey-wrap {
  background: transparent;
  border-top: none;
  padding-bottom: clamp(8px, 1.5vw, 16px);
}

.kl-book-faq {
  padding: clamp(36px, 5vw, 56px) var(--book-pad);
  background: color-mix(in srgb, var(--kl-sage) 12%, var(--kl-surface));
}

/* After base .kl-book-faq — quieter secondary card under the survey panel */
.kl-book-sky-band .kl-book-faq {
  background: color-mix(in srgb, var(--kl-surface) 92%, var(--kl-sage));
  margin: clamp(var(--space-xl), 5vw, 2.5rem) auto clamp(var(--space-lg), 4vw, var(--space-xl));
  padding: clamp(var(--space-xl), 5vw, var(--space-2xl)) clamp(var(--space-lg), 4vw, var(--space-xl));
  border: 1px solid color-mix(in srgb, var(--kl-sage) 22%, var(--kl-surface));
  border-top: 1px solid color-mix(in srgb, var(--kl-sage) 22%, var(--kl-surface));
  border-radius: var(--r-card);
  max-width: 780px;
  box-shadow: none;
}

.kl-book-faq__inner {
  max-width: 720px;
  margin: 0 auto;
}

.kl-book-faq h2 {
  font-size: var(--text-3xl);
  line-height: 1.12;
  margin: 0 0 6px;
}

.kl-book-faq__intro {
  margin: 0 0 var(--space-lg);
  font-size: inherit;
  color: var(--kl-text-secondary);
}

.kl-book-accordion {
  display: grid;
  gap: 10px;
}

.kl-book-accordion__item {
  background: var(--kl-surface);
  border-radius: var(--r-card);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(7, 30, 34, 0.06);
}

.kl-book-accordion__item summary {
  list-style: none;
  cursor: pointer;
  padding: var(--space-md) var(--space-lg);
  padding-right: 3rem;
  font-weight: 600;
  font-size: var(--text-m);
  line-height: 1.4;
  color: var(--kl-ink);
  position: relative;
}

.kl-book-accordion__item summary::-webkit-details-marker {
  display: none;
}

.kl-book-accordion__item summary::after {
  content: "+";
  position: absolute;
  right: var(--space-lg);
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--kl-wine);
  line-height: 1;
  transition: transform 0.2s ease;
}

.kl-book-accordion__item[open] summary::after {
  content: "−";
}

.kl-book-accordion__body {
  padding: 0 var(--space-lg) var(--space-md);
}

.kl-book-accordion__body p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.55;
  color: var(--kl-text-secondary);
}

.kl-book-faq__cta {
  margin-top: var(--space-lg);
}

/* ── PAS ── */
.kl-book-pas {
  max-width: var(--wide);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  display: grid;
  gap: var(--space-xl);
}

.kl-book-pas__block {
  display: grid;
  gap: var(--space-md);
}

.kl-book-pas__label {
  margin: 0;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kl-wine);
}

.kl-book-pas__problem .kl-book-pas__label {
  color: var(--kl-wine);
}

.kl-book-pas__agitate {
  padding: var(--space-lg);
  background: color-mix(in srgb, var(--kl-wine) 6%, var(--kl-surface));
  border-radius: var(--r-card);
}

.kl-book-pas__agitate .kl-book-pas__label {
  color: var(--kl-wine);
}

.kl-book-pas__solution {
  padding: clamp(24px, 4vw, 40px);
  background: var(--kl-sage);
  color: var(--kl-on-brand);
  border-radius: var(--r-card);
}

.kl-book-pas__solution h2,
.kl-book-pas__solution p {
  color: var(--kl-on-brand);
}

.kl-book-pas__solution .kl-book-pas__label {
  color: color-mix(in srgb, var(--kl-on-brand) 80%, var(--kl-sky));
}

.kl-book-pas h2 {
  font-size: clamp(1.4rem, 3.2vw, 2rem);
  margin: 0;
  line-height: 1.15;
}

.kl-book-pas__block > p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.55;
  max-width: 58ch;
}

.kl-book-pas__offer {
  font-size: var(--text-m);
  line-height: 1.55;
}

.kl-book-pas__offer strong {
  color: var(--kl-sky);
}

.kl-book-pas__solution .kl-book-team img {
  border-radius: var(--r-card);
}

/* ── Media reels ── */
.kl-book-media {
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  background: var(--kl-surface);
}

.kl-book-media__head {
  max-width: var(--wide);
  margin: 0 auto var(--space-xl);
}

.kl-book-media h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.1rem);
  margin: 0 0 8px;
  max-width: 24ch;
}

.kl-book-media__sub {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.5;
  color: var(--kl-text-secondary);
  max-width: 44ch;
}

.kl-book-media__grid {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-md);
  grid-template-columns: 1fr;
}

@media (min-width: 700px) {
  .kl-book-media__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.kl-book-reel {
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--kl-surface);
  max-width: 100%;
}

.kl-book-reel__media {
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border-radius: var(--r-card);
  max-width: 100%;
  background: var(--kl-ink);
  position: relative;
}

.kl-book-reel__media video,
.kl-book-reel__media iframe.kl-book-yt,
.kl-book-reel__media .kl-book-yt-host,
.kl-book-reel__media .kl-book-yt-host iframe {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
}

.kl-book-reel__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.2s;
  z-index: 1;
}

.kl-book-reel__media .kl-book-yt-host {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.kl-book-reel--hover-play.is-playing .kl-book-reel__poster {
  opacity: 0;
  pointer-events: none;
}

.kl-book-reel--hover-play .kl-book-reel__media {
  cursor: pointer;
}

.kl-book-reel--hover-play .kl-book-reel__media::after {
  content: "▶";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #fff;
  background: rgba(0, 0, 0, 0.15);
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 1;
}

.kl-book-reel--hover-play.is-playing .kl-book-reel__media::after,
.kl-book-reel--hover-play:hover .kl-book-reel__media::after {
  opacity: 0;
}

.kl-book-reel figcaption:not(.kl-book-reel__overlay) {
  padding: var(--space-md) 0 0;
}

.kl-book-reel__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 5px 8px;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  color: #fff;
  background: rgba(168, 0, 92, 0.85);
  pointer-events: none;
  z-index: 2;
}

.kl-book-reel figcaption p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.45;
  font-weight: 500;
  color: var(--kl-text);
}

/* Visit 2 process block — steps + autoplay Shorts reel (desktop side-by-side) */
.kl-process-visit2 {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  align-items: center;
}

.kl-process-visit2__steps {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  width: 100%;
}

.kl-process-visit2__step {
  padding: var(--space-md) var(--space-lg);
  background: color-mix(in srgb, var(--kl-sage) 6%, var(--kl-surface));
  border-radius: var(--r-card);
}

.kl-process-visit2__step h3 {
  margin-top: 0;
}

.kl-process-visit2__video {
  margin: 0;
  width: min(100%, 280px);
  order: -1;
}

.kl-process-visit2__video .kl-book-reel__media {
  box-shadow: 0 12px 32px rgba(7, 30, 34, 0.12);
}

@media (min-width: 900px) {
  .kl-process-visit2 {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 300px);
    gap: var(--space-xl);
    align-items: start;
  }

  .kl-process-visit2__video {
    order: 0;
    width: 100%;
    max-width: 300px;
    justify-self: end;
    position: sticky;
    top: var(--space-md);
  }
}

/* Why-pain: mobile diagram directly under headline */
.kl-why-pain__inner {
  display: flex;
  flex-direction: column;
}

.kl-why-pain__title { order: 1; }
.kl-why-pain__lead { order: 2; }
.kl-why-pain__checklist { order: 3; }
.kl-why-pain__bridge { order: 4; }
.kl-why-pain__quote { order: 5; }
.kl-why-pain__diagram { order: 6; }
.kl-why-pain__adjustment {
  order: 7;
  margin-top: var(--space-xl);
}
.kl-why-pain__adjustment-copy { order: 8; }
.kl-why-pain__benefits-diagram { order: 9; }

@media (max-width: 640px) {
  .kl-why-pain__diagram {
    order: 2;
    margin-top: var(--space-md);
    margin-bottom: 0;
  }
  .kl-why-pain__lead { order: 3; }
  .kl-why-pain__checklist { order: 4; }
  .kl-why-pain__bridge { order: 5; }
  .kl-why-pain__quote { order: 6; }
}

/* Progress timeline cards */
.kl-progress-steps {
  margin-top: var(--space-xl);
  display: grid;
  gap: var(--space-md);
}

.kl-progress-step {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  background: var(--kl-surface);
  border: 1px solid var(--kl-wine);
  border-radius: var(--r-card);
  padding: var(--space-md) var(--space-lg);
}

.kl-progress-step__head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.kl-progress-step__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: var(--kl-wine);
  background: color-mix(in srgb, var(--kl-wine) 10%, var(--kl-surface));
}

.kl-progress-step__icon svg {
  width: 18px;
  height: 18px;
}

.kl-progress-step__label {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--kl-wine);
  margin: 0;
}

.kl-progress-step p {
  margin: 0;
  line-height: 1.55;
}

/* ── Diagnosis ── */
.kl-book-diagnosis {
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  background: var(--kl-surface);
}

.kl-book-diagnosis__inner {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-xl);
}

@media (min-width: 900px) {
  .kl-book-diagnosis__inner {
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 5vw, 64px);
  }
}

.kl-book-diagnosis h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  margin: 0 0 var(--space-md);
}

.kl-book-diagnosis__lead {
  max-width: none;
  margin: 0 0 var(--space-lg);
  color: var(--kl-text-secondary);
}

.kl-book-voc-lines {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--space-sm);
}

.kl-book-voc-lines li {
  font-size: var(--text-m);
  line-height: 1.45;
  padding: 12px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--kl-sage) 35%, var(--kl-surface));
  font-style: italic;
  color: var(--kl-text);
}

.kl-book-voc-lines li:first-child {
  border-top: 1px solid color-mix(in srgb, var(--kl-sage) 35%, var(--kl-surface));
}

.kl-book-diagnosis__visual {
  display: grid;
  gap: var(--space-md);
  align-content: start;
}

.kl-book-diagnosis__visual img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--r-card);
}

.kl-book-diagnosis__visual-secondary {
  max-height: 220px;
  object-fit: cover;
}

.kl-book-team {
  display: flex;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
}

.kl-book-team img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: var(--r-card);
}

/* ── Two-visit strip ── */
.kl-book-visits {
  display: grid;
  grid-template-columns: 1fr;
}

@media (min-width: 700px) {
  .kl-book-visits { grid-template-columns: 1fr 1fr; }
}

.kl-book-visit {
  padding: clamp(28px, 4vw, 48px) var(--book-pad);
  background: var(--kl-surface);
}

.kl-book-visit--two {
  background: var(--kl-sage);
  color: var(--kl-on-brand);
}

.kl-book-visit--two h3,
.kl-book-visit--two p,
.kl-book-visit--two li {
  color: var(--kl-on-brand);
}

.kl-book-visit__tag {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kl-wine);
  margin: 0 0 8px;
}

.kl-book-visit--two .kl-book-visit__tag {
  color: color-mix(in srgb, var(--kl-on-brand) 85%, var(--kl-sky));
}

.kl-book-visit h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.55rem);
  margin: 0 0 var(--space-md);
}

.kl-book-visit ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
  font-size: inherit;
  line-height: 1.55;
}

.kl-book-visit ul li {
  padding-left: 1.2em;
  position: relative;
}

.kl-book-visit ul li::before {
  content: "→";
  position: absolute;
  left: 0;
  font-weight: 700;
  color: var(--kl-sky);
}

.kl-book-visit--two ul li::before {
  color: var(--kl-on-brand);
}

/* ── Booking ── */
.kl-book-schedule {
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  background: color-mix(in srgb, var(--kl-sky) 10%, var(--kl-surface));
}

.kl-book-schedule__grid {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-xl);
}

.kl-book-schedule h2 {
  font-size: clamp(1.75rem, 3.5vw, 2.4rem);
  margin: 0 0 8px;
}

.kl-book-schedule__sub {
  margin: 0 0 var(--space-md);
  font-size: var(--text-m);
  color: var(--kl-text-secondary);
  max-width: 40ch;
}

.kl-book-schedule .kl-book-guarantee-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: var(--space-sm);
}

.kl-book-guarantee.kl-book-guarantee--compact {
  width: 100%;
  max-width: 32rem;
  margin: 0;
  padding: var(--space-sm) var(--space-md);
  line-height: var(--kl-leading-compact);
  text-align: center;
  background: transparent;
  border: 1px dashed var(--kl-wine);
  border-radius: var(--r-card);
}

.kl-book-guarantee__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  font-size: var(--text-s);
  font-weight: 700;
  line-height: var(--kl-leading-compact);
  letter-spacing: -0.01em;
  color: var(--kl-wine);
}

.kl-book-guarantee__shield {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--kl-wine);
}

.kl-book-guarantee__text {
  margin: 0.35em 0 0;
  font-size: var(--text-s);
  line-height: var(--kl-leading-compact);
  letter-spacing: -0.01em;
  color: var(--kl-text-secondary);
}

.kl-book-widget-wrap {
  background: var(--kl-surface);
  padding: var(--space-lg);
  min-height: 200px;
  border-radius: var(--r-card);
}

#ph_online_bookings_widget:empty::after {
  content: "Loading availability…";
  display: block;
  padding: 24px;
  color: var(--kl-text-secondary);
  font-size: var(--text-m);
}

.kl-book-fallback {
  display: none;
  margin-top: var(--space-md);
  padding: var(--space-md);
  background: color-mix(in srgb, var(--kl-wine) 8%, var(--kl-surface));
  font-size: var(--text-m);
  line-height: 1.45;
  border-radius: var(--r-card);
}

.kl-book-fallback.is-visible { display: block; }

.kl-book-aside {
  display: grid;
  gap: var(--space-lg);
}

.kl-book-guarantee {
  padding: var(--space-md);
  background: var(--kl-surface);
  font-size: var(--text-m);
  line-height: 1.45;
  margin: 0;
  border-radius: var(--r-card);
}

.kl-book-guarantee strong {
  display: block;
  font-size: var(--text-m);
  color: var(--kl-wine);
  margin-bottom: 6px;
}

.kl-book-nap-compact {
  font-size: var(--text-m);
  line-height: 1.55;
  color: var(--kl-text-secondary);
}

.kl-book-nap-compact strong {
  display: block;
  font-size: var(--text-m);
  color: var(--kl-ink);
  margin-bottom: 6px;
}

.kl-book-reviews-shot {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 912 / 536;
  object-fit: cover;
  display: block;
  border-radius: var(--r-card);
}

.kl-book-reviews-shot + .kl-book-reviews-shot {
  margin-top: var(--space-sm);
}

/* ── Proof ── */
.kl-book-proof {
  padding: clamp(48px, 8vw, 88px) var(--book-pad);
  background: var(--kl-ink);
  color: var(--kl-on-brand);
}

.kl-book-proof__head {
  max-width: var(--wide);
  margin: 0 auto var(--space-xl);
}

.kl-book-proof__head h2 {
  color: var(--kl-on-brand);
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  margin: 0 0 8px;
}

.kl-book-proof__head p {
  margin: 0;
  color: color-mix(in srgb, var(--kl-on-brand) 78%, var(--kl-sky));
  max-width: 42ch;
}

.kl-book-proof__grid {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-md);
}

@media (min-width: 900px) {
  .kl-book-proof__grid:not(.kl-book-proof__grid--wall) {
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: auto auto;
  }
  .kl-book-proof__grid:not(.kl-book-proof__grid--wall) .kl-book-proof__featured { grid-row: span 2; }
}

.kl-book-quote {
  margin: 0;
  padding: var(--space-lg);
  background: color-mix(in srgb, var(--kl-on-brand) 7%, var(--kl-ink));
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border-radius: var(--r-card);
}

.kl-book-quote--featured {
  padding: clamp(24px, 4vw, 40px);
  background: color-mix(in srgb, var(--kl-sky) 12%, var(--kl-ink));
}

.kl-book-quote blockquote {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.5;
  color: var(--kl-on-brand);
}

.kl-book-quote--featured blockquote {
  font-size: clamp(1.1rem, 2.3vw, 1.4rem);
  line-height: 1.45;
}

.kl-book-quote cite {
  font-style: normal;
  font-size: var(--text-s);
  font-weight: 600;
  color: color-mix(in srgb, var(--kl-on-brand) 65%, var(--kl-sky));
  margin-top: auto;
}

.kl-book-quote .kl__stars {
  color: var(--kl-on-brand);
  font-size: var(--text-m);
}

.kl-book-quote--avatar {
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-md);
}

.kl-book-quote__avatar {
  width: 56px;
  height: 56px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: var(--r-card);
}

/* ── Footer ── */
.kl-book-footer {
  display: grid;
  gap: 0;
}

@media (min-width: 800px) {
  .kl-book-footer { grid-template-columns: 1fr 1fr; }
}

.kl-book-footer__nap {
  background: var(--kl-sage);
  color: var(--kl-on-brand);
  padding: var(--space-xl) var(--book-pad);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-md);
}

.kl-book-footer__nap p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.5;
  color: color-mix(in srgb, var(--kl-on-brand) 90%, transparent);
}

.kl-book-footer__visual img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

#survey,
#book-visit {
  scroll-margin-top: 12px;
  scroll-margin-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

.kl--book .kl__sticky-bar {
  border-top: 1px solid color-mix(in srgb, var(--kl-sage) 50%, var(--kl-surface));
  background: var(--kl-surface);
}

@media (max-width: 640px) {
  .kl--book { padding-bottom: 88px; }
}

/* ── With U funnel layout (book-now-lander) ── */

/* All lander media: no stretch distortion */
.kl--withu img,
.kl--withu video {
  max-width: 100%;
  object-fit: cover;
}

.kl-book-media-cover {
  overflow: hidden;
  max-width: 100%;
  width: 100%;
}

.kl-book-media-cover img,
.kl-book-media-cover video {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kl-book-media-cover--reel {
  aspect-ratio: 9 / 16;
}

.kl-book-media-cover--wide {
  aspect-ratio: 912 / 536;
  width: min(100%, 520px);
  margin-inline: auto;
  border-radius: var(--r-card);
  box-shadow: 0 8px 28px rgba(7, 30, 34, 0.35);
}

/* Hero GBP aggregate — smaller, full screenshot visible */
.kl-book-media-cover--gbp {
  width: min(100%, 360px);
  margin-inline: auto;
  border-radius: var(--r-card);
  box-shadow: 0 8px 24px rgba(7, 30, 34, 0.3);
  background: color-mix(in srgb, var(--kl-on-brand) 12%, transparent);
}

.kl-book-media-cover--gbp img,
.kl-book-optin-reviews-shot {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.kl-book-media-cover--promo {
  min-height: 320px;
  height: 100%;
}

.kl-book-media-cover--review {
  aspect-ratio: 3 / 4;
  border-radius: var(--r-card);
}

.kl-book-optin-hero {
  position: relative;
  isolation: isolate;
  padding: clamp(40px, 6vw, 72px) var(--book-pad) clamp(32px, 5vw, 56px);
  text-align: center;
  color: var(--kl-on-brand);
  overflow: hidden;
}

.kl-book-optin-hero__bg {
  position: absolute;
  inset: 0;
  background-image: url("assets/clinic/kirolounge-clinic-bugis-wide.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  z-index: -2;
}

@supports (background-image: image-set(url("x.webp") type("image/webp"))) {
  .kl-book-optin-hero__bg {
    background-image: image-set(
      url("assets/clinic/kirolounge-clinic-bugis-wide.webp") type("image/webp"),
      url("assets/clinic/kirolounge-clinic-bugis-wide.jpg") type("image/jpeg")
    );
  }
}

.kl-book-optin-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--kl-ink) 68%, transparent) 0%,
      color-mix(in srgb, var(--kl-ink) 58%, transparent) 50%,
      color-mix(in srgb, var(--kl-ink) 72%, transparent) 100%);
  z-index: -1;
}

@media (max-width: 768px) {
  .kl-book-optin-hero__bg {
    background-image: url("assets/clinic/kirolounge-clinic-adjustment-mobile-hero.jpg");
    background-position: center 22%;
  }
}

@supports (background-image: image-set(url("x.webp") type("image/webp"))) {
  @media (max-width: 768px) {
    .kl-book-optin-hero__bg {
      background-image: image-set(
        url("assets/clinic/kirolounge-clinic-adjustment-mobile-hero.webp") type("image/webp"),
        url("assets/clinic/kirolounge-clinic-adjustment-mobile-hero.jpg") type("image/jpeg")
      );
    }
  }
}

.kl-book-optin-hero__inner {
  max-width: 760px;
  margin: 0 auto;
  display: grid;
  gap: var(--space-lg);
  position: relative;
  z-index: 1;
}

.kl-book-optin-hero h1 {
  font-size: var(--text-4xl);
  line-height: 1.1;
  margin: 0;
  max-width: none;
  color: var(--kl-on-brand);
}

.kl-book-optin-hero__offer {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  max-width: 36rem;
  margin-inline: auto;
  padding: var(--space-md) var(--space-lg);
  text-align: left;
  border: 1px dashed color-mix(in srgb, var(--kl-sky) 75%, var(--kl-on-brand));
  border-radius: var(--r-card);
  background: color-mix(in srgb, var(--kl-ink) 42%, transparent);
}

.kl-book-optin-hero__offer-kicker {
  font-family: var(--font-cta);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kl-sky);
}

.kl-book-optin-hero__offer-detail {
  margin: 0;
  font-size: var(--text-l);
  line-height: 1.5;
  color: var(--kl-on-brand);
}

.kl-book-optin-hero__offer-detail strong {
  color: var(--kl-on-brand);
  font-weight: 700;
}

.kl-book-optin-hero__sub {
  margin: 0 auto;
  font-size: var(--text-l);
  line-height: 1.55;
  color: color-mix(in srgb, var(--kl-on-brand) 90%, var(--kl-sky));
  max-width: 52ch;
}

.kl-book-optin-hero__sub strong {
  color: var(--kl-on-brand);
}

.kl-book-optin-hero__qual {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  max-width: 36rem;
  margin-inline: auto;
  text-align: left;
  font-size: var(--text-m);
  line-height: 1.55;
  color: color-mix(in srgb, var(--kl-on-brand) 92%, var(--kl-sky));
}

.kl-book-optin-hero__qual-lead {
  font-weight: 600;
  color: var(--kl-on-brand);
}

.kl-book-optin-hero__qual-list {
  display: grid;
  gap: 0.25em;
  padding-left: 1.25em;
  list-style: disc;
}

.kl-book-optin-hero__watch-label {
  margin: 0;
  font-family: var(--font-cta);
  font-size: var(--text-s);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--kl-on-brand) 92%, var(--kl-sky));
}

.kl-book-optin-video {
  margin: 0;
  display: grid;
  gap: var(--space-sm);
  justify-items: center;
}

.kl-book-optin-video__frame {
  width: min(100%, 280px);
  max-width: 100%;
  aspect-ratio: 9 / 16;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--kl-ink);
  box-shadow: 0 16px 40px rgba(7, 30, 34, 0.45);
  position: relative;
}

.kl-book-optin-video__frame video,
.kl-book-optin-video__frame iframe.kl-book-yt {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
}

.kl-book-optin-video figcaption {
  margin: 0 auto;
  max-width: 40ch;
  font-size: var(--text-m);
  line-height: 1.45;
  color: color-mix(in srgb, var(--kl-on-brand) 82%, var(--kl-sky));
}

.kl-book-optin-trust {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 20px;
  font-size: var(--text-m);
  font-weight: 600;
  color: color-mix(in srgb, var(--kl-on-brand) 88%, var(--kl-sky));
}

.kl-book-optin-trust .kl__stars {
  color: var(--kl-on-brand);
  margin-right: 4px;
}

/* Survey */
.kl-book-survey-wrap {
  padding: clamp(36px, 5vw, 56px) var(--book-pad);
  background: color-mix(in srgb, var(--kl-sky) 8%, var(--kl-surface));
  border-top: 1px solid color-mix(in srgb, var(--kl-sage) 25%, var(--kl-surface));
  text-align: center;
}

.kl-book-survey-wrap__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 640px;
  margin: 0 auto;
}

/* White action card — lifts Q&A off the sky band so it doesn't blend into FAQ */
.kl-book-survey-panel {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3.5vw, 1.75rem);
  width: 100%;
  margin-top: var(--space-sm);
  padding: clamp(1.25rem, 4vw, 1.75rem) clamp(1rem, 3.5vw, 1.5rem)
    clamp(1.5rem, 4vw, 2rem);
  text-align: center;
  background: var(--kl-surface);
  border: 1px solid color-mix(in srgb, var(--kl-sage) 18%, var(--kl-surface));
  border-radius: calc(var(--r-card) + 2px);
  box-shadow:
    0 1px 2px rgba(7, 30, 34, 0.04),
    0 10px 28px rgba(28, 168, 238, 0.1);
}

.kl-book-survey-cue {
  margin: 0;
  font-family: var(--font-cta);
  font-size: var(--text-s);
  font-weight: 700;
  line-height: var(--kl-leading-compact);
  letter-spacing: -0.01em;
  color: var(--kl-wine);
}

.kl-book-survey-panel .kl-book-journey {
  gap: var(--space-sm);
  padding-bottom: clamp(0.35rem, 1.5vw, 0.65rem);
  border-bottom: 1px solid color-mix(in srgb, var(--kl-sage) 20%, var(--kl-surface));
}

.kl-book-survey-panel .kl-book-survey {
  display: flex;
  flex-direction: column;
  gap: clamp(0.85rem, 2.5vw, 1.15rem);
}

.kl-book-survey-kicker,
.kl-book-pillars-kicker,
.kl-book-ig-kicker,
.kl-book-faq-kicker,
.kl-book-schedule-kicker {
  font-family: var(--font-cta);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kl-wine);
  text-align: center;
}

.kl-book-survey-wrap h2 {
  font-size: var(--text-3xl);
  line-height: 1.12;
  text-align: center;
}

.kl-book-survey-intro {
  text-align: center;
  font-size: var(--text-m);
  color: var(--kl-text-secondary);
}

/* Coupon reminder under Next step */
.kl-book-coupon {
  width: 100%;
  max-width: 32rem;
  margin: 0 auto;
  padding: var(--space-sm) var(--space-md);
  text-align: center;
  background: transparent;
  border: 1px dashed var(--kl-wine);
  border-radius: var(--r-card);
}

.kl-book-coupon__text {
  margin: 0;
  font-size: var(--text-s);
  font-weight: 500;
  line-height: var(--kl-leading-compact);
  letter-spacing: -0.01em;
  color: var(--kl-ink);
}

.kl-book-coupon mark {
  background: #caebff;
  color: #071e22;
  padding: 0.12em 0.4em;
  border-radius: 4px;
  font-weight: 700;
}

.kl-book-coupon strong {
  font-weight: 700;
}

.kl-book-survey-progress {
  height: 4px;
  background: color-mix(in srgb, var(--kl-sage) 30%, var(--kl-surface));
  border-radius: var(--r-pill);
  overflow: hidden;
}

.kl-book-survey-progress__bar {
  display: block;
  height: 100%;
  background: var(--kl-wine);
  border-radius: var(--r-pill);
  transition: width 0.25s ease;
}

.kl-book-survey-step-label {
  font-size: var(--text-s);
  font-weight: 600;
  color: var(--kl-text-secondary);
  text-align: center;
}

.kl-book-journey {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.kl-book-schedule .kl-book-journey-caption {
  margin: 0;
}

.kl-book-schedule-kicker[hidden] {
  display: none;
}

.kl-book-survey__step {
  border: 0;
  margin: 0;
  padding: 0;
  display: none;
}

.kl-book-survey__step.is-active {
  display: block;
}

.kl-book-survey__heading {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-sm);
}

.kl-book-survey__step legend {
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1.2;
  color: var(--kl-ink);
  margin: 0;
  padding: 0;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.kl-book-survey__heading:has(.kl-book-survey__back:not([hidden])) legend {
  padding: 0;
}

.kl-book-survey__back {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--text-m);
  font-weight: 600;
  color: var(--kl-wine);
  cursor: pointer;
  white-space: nowrap;
  text-align: center;
}

.kl-book-survey__back[hidden] {
  display: none !important;
}

.kl-book-survey__back:hover {
  text-decoration: underline;
}

.kl-book-survey__congrats {
  margin: 0 0 var(--space-lg);
  text-align: center;
  font-size: var(--text-m);
  line-height: 1.5;
  color: var(--kl-text-secondary);
}

.kl-book-survey__step--contact .kl-book-survey__fields {
  margin-top: 0;
}

.kl-book-survey__options {
  display: grid;
  gap: 10px;
}

.kl-book-survey__option {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-sm);
  width: 100%;
  text-align: left;
  font: inherit;
  font-size: var(--text-m);
  font-weight: 500;
  line-height: 1.4;
  padding: var(--space-md) var(--space-lg);
  border: 2px solid color-mix(in srgb, var(--kl-sage) 35%, var(--kl-surface));
  border-radius: var(--r-card);
  background: var(--kl-surface);
  color: var(--kl-ink);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.kl-book-survey__option:hover {
  border-color: var(--kl-wine);
}

.kl-book-survey__option.is-selected {
  border-color: var(--kl-wine);
  background: color-mix(in srgb, var(--kl-wine) 14%, var(--kl-surface));
  font-weight: 600;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kl-wine) 20%, transparent);
}

.kl-book-survey__option.is-selected::after {
  content: "✓";
  flex-shrink: 0;
  color: var(--kl-wine);
  font-weight: 700;
  font-size: 1.05em;
  line-height: 1.4;
}

.kl-book-survey__fields {
  display: grid;
  gap: var(--space-md);
  text-align: left;
}

.kl-book-survey__fields .btn--block {
  margin-left: auto;
  margin-right: auto;
}

.kl-book-survey__field {
  display: grid;
  gap: 6px;
  text-align: left;
}

.kl-book-survey__field span {
  font-size: var(--text-m);
  font-weight: 600;
  color: var(--kl-ink);
}

.kl-book-survey__field em {
  font-style: normal;
  font-weight: 400;
  color: var(--kl-text-secondary);
}

.kl-book-survey__field input {
  font: inherit;
  font-size: var(--text-m);
  padding: 12px 14px;
  border: 2px solid color-mix(in srgb, var(--kl-sage) 35%, var(--kl-surface));
  border-radius: var(--r-card);
  width: 100%;
}

.kl-book-survey__field input:focus {
  outline: 2px solid var(--kl-sky);
  outline-offset: 1px;
  border-color: var(--kl-sky);
}

.kl-book-survey-disqualify {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  text-align: center;
  padding: var(--space-lg);
  background: var(--kl-surface);
  border-radius: var(--r-card);
  border: 2px solid color-mix(in srgb, var(--kl-wine) 25%, var(--kl-surface));
}

/* display:flex above beats the UA [hidden] rule — same pattern as schedule/back */
.kl-book-survey-disqualify[hidden] {
  display: none !important;
}

.kl-book-survey-disqualify p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.5;
  color: var(--kl-text-secondary);
}

.kl-book-schedule--gated[hidden] {
  display: none !important;
}

/* Preload PH while survey continues: keep a real layout box, stay off-screen. */
.kl-book-schedule--gated[hidden].is-ph-preload {
  display: block !important;
  position: fixed;
  left: 0;
  top: 0;
  width: min(100vw, 42rem);
  max-height: 90vh;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: -1;
}

/* Offer pillars */
.kl-book-pillars {
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  background: var(--kl-surface);
}

.kl-book-pillars__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: var(--wide);
  margin: 0 auto var(--space-xl);
  text-align: center;
}

.kl-book-pillars__head h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  margin: 0;
}

.kl-book-pillars__grid {
  max-width: var(--wide);
  margin: 0 auto var(--space-xl);
  display: grid;
  gap: var(--space-md);
}

@media (min-width: 768px) {
  .kl-book-pillars__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.kl-book-pillar {
  padding: clamp(24px, 4vw, 36px);
  background: var(--kl-surface);
  border: 2px solid color-mix(in srgb, var(--kl-sage) 30%, var(--kl-surface));
  border-radius: var(--r-card);
}

.kl-book-pillar--accent {
  background: var(--kl-sage);
  color: var(--kl-on-brand);
  border-color: var(--kl-sage);
}

.kl-book-pillar--accent h3,
.kl-book-pillar--accent p,
.kl-book-pillar--accent li {
  color: var(--kl-on-brand);
}

.kl-book-pillar__tag {
  margin: 0 0 8px;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kl-wine);
}

.kl-book-pillar--accent .kl-book-pillar__tag {
  color: color-mix(in srgb, var(--kl-on-brand) 85%, var(--kl-sky));
}

.kl-book-pillar h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  margin: 0 0 var(--space-sm);
}

.kl-book-pillar p {
  margin: 0 0 var(--space-md);
  font-size: var(--text-m);
  line-height: 1.5;
}

.kl-book-pillar ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
  font-size: var(--text-m);
  line-height: 1.45;
}

.kl-book-pillar ul li {
  padding-left: 1.2em;
  position: relative;
}

.kl-book-pillar ul li::before {
  content: "✓";
  position: absolute;
  left: 0;
  font-weight: 700;
  color: var(--kl-wine);
}

.kl-book-pillar--accent ul li::before {
  color: var(--kl-on-brand);
}

/* Father's Day promo — 50/50 split on card-promo */
.kl-book-promo-split {
  display: grid;
  gap: 0;
  padding: 0;
  overflow: hidden;
  align-items: stretch;
}

@media (min-width: 768px) {
  .kl-book-promo-split {
    grid-template-columns: 1fr 1fr;
  }
}

.kl-book-promo-split__media.kl-book-media-cover--promo {
  position: relative;
  display: grid;
  min-height: 320px;
  background: color-mix(in srgb, var(--kl-sage) 10%, var(--kl-surface));
  overflow: hidden;
}

.kl-book-promo-split__media.kl-book-media-cover--promo img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  object-position: center top;
}

.kl-book-promo-split__copy {
  padding: clamp(24px, 4vw, 40px);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  justify-content: center;
  text-align: left;
}

.kl-book-promo-split__copy h3 {
  margin: 0;
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
}

.kl-book-promo-split__copy p {
  margin: 0;
  font-size: var(--text-m);
  line-height: 1.55;
  color: var(--kl-text-secondary);
}

.kl-book-promo-split__note {
  margin: 0;
  font-size: var(--text-m);
  color: var(--kl-ink);
}

.kl-book-promo-split__copy .btn {
  width: fit-content;
  margin-top: var(--space-sm);
}

/* Google review screenshots on sage band */
.kl-book-reviews-grid {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-xl);
  grid-template-columns: 1fr;
}

@media (min-width: 600px) {
  .kl-book-reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 960px) {
  .kl-book-reviews-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.kl-book-reviews-grid__item {
  margin: 0;
  padding: var(--space-md);
  border-radius: var(--r-card);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.kl-book-reviews-grid__item-media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: var(--r-card);
  max-width: 100%;
}

.kl-book-reviews-grid__item img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kl-book-reviews-grid__item figcaption {
  font-size: var(--text-m);
  line-height: 1.45;
  color: var(--kl-ink);
}

.kl-book-reviews-grid__item cite {
  display: block;
  font-style: normal;
  font-weight: 600;
  font-size: var(--text-s);
  color: var(--kl-text-secondary);
  margin-top: 4px;
}

.kl-book-reviews-grid__item .kl__stars {
  margin-bottom: 4px;
}

.kl-book-hours {
  max-width: var(--wide);
  margin: var(--space-md) auto 0;
  text-align: center;
  font-size: var(--text-m);
  color: var(--kl-text-secondary);
}

.kl-book-ig-adjust__grid {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-md);
  grid-template-columns: 1fr;
}

/* Wall of love — quote + patient video (feelgreat LP) */
.kl-book-wall {
  display: grid;
  gap: var(--space-xl);
  max-width: 640px;
  margin-top: var(--space-xl);
  margin-inline: auto;
  margin-bottom: var(--space-2xl);
  text-align: left;
}

.kl-book-wall__card {
  margin: 0;
  border: 1px solid var(--kl-wine);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--kl-surface);
}

.kl-book-wall__media {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: var(--kl-ink);
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.kl-book-wall__media .kl-book-yt-hover__poster,
.kl-book-wall__media .kl-book-yt-host,
.kl-book-wall__media .kl-book-yt-host iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}

.kl-book-wall__media .kl-book-yt-hover__poster {
  position: absolute;
  inset: 0;
  object-fit: cover;
  transition: opacity 0.2s;
  z-index: 1;
}

.kl-book-wall__media .kl-book-yt-host {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.kl-book-wall__media.kl-book-yt-hover.is-playing .kl-book-yt-hover__poster {
  opacity: 0;
  pointer-events: none;
}

.kl-book-wall__media.kl-book-yt-hover {
  cursor: pointer;
}

.kl-book-wall__media.kl-book-yt-hover::after {
  content: "▶";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #fff;
  background: rgba(0, 0, 0, 0.15);
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 1;
}

.kl-book-wall__media.kl-book-yt-hover.is-playing::after,
.kl-book-wall__media.kl-book-yt-hover:hover::after {
  opacity: 0;
}

.kl-book-wall__media video,
.kl-book-wall__media iframe.kl-book-yt {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: top;
  border: none;
  border-radius: 0;
  aspect-ratio: 16 / 9;
}

.kl-book-wall__quote {
  margin: 0;
  padding: var(--space-md) var(--space-lg);
  color: var(--kl-wine);
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.kl-book-wall__quote p {
  margin: 0;
  line-height: 1.55;
  font-size: var(--text-m);
  color: var(--kl-wine);
}

.kl-book-wall__quote strong {
  color: var(--kl-wine);
}

/* Google review attribution (inline quotes, FAQ) */
.kl-google-review-source {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-style: normal;
  font-size: var(--text-s);
  font-weight: 600;
  color: var(--kl-text-secondary);
  margin-top: var(--space-sm);
}
.kl-google-review-source .kl-google-icon {
  flex-shrink: 0;
}

/* Colocated pull quotes — dashed border, quote mark icon */
.kl-inline-quote {
  display: grid;
  grid-template-columns: 22px 1fr;
  column-gap: var(--space-sm);
  row-gap: 0.35em;
  margin: var(--space-md) 0;
  padding: var(--space-md);
  background: transparent;
  border: 1px dashed var(--kl-wine);
  border-radius: var(--r-card);
}

.kl-inline-quote__icon {
  grid-row: 1 / -1;
  align-self: start;
  margin-top: 1px;
  color: var(--kl-wine);
  flex-shrink: 0;
  transform: scaleX(-1);
}

.kl-inline-quote p {
  grid-column: 2;
  margin: 0;
  font-style: italic;
  font-size: var(--text-m);
  line-height: 1.5;
  color: var(--kl-wine);
}

.kl-inline-quote strong {
  font-style: normal;
  color: var(--kl-wine);
}

.kl-inline-quote .kl-google-review-source,
.kl-inline-quote .kl-inline-quote__source {
  grid-column: 2;
  margin: 0;
  font-size: var(--text-xs);
  font-weight: 500;
  color: color-mix(in srgb, var(--kl-wine) 82%, var(--kl-ink));
}

.kl-inline-quote__source {
  font-style: normal;
}

.kl-inline-quote--center {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.kl-inline-quote--compact {
  margin-top: var(--space-sm);
  margin-bottom: 0;
  padding: var(--space-sm) var(--space-md);
}

.kl-inline-quote--hero {
  max-width: 520px;
  margin-inline: auto;
}

.kl-book-optin-hero .kl-inline-quote {
  background: color-mix(in srgb, var(--kl-ink) 28%, transparent);
  border-color: color-mix(in srgb, var(--kl-on-brand) 45%, transparent);
}

.kl-book-optin-hero .kl-inline-quote__icon {
  color: var(--kl-sky);
}

.kl-book-optin-hero .kl-inline-quote p {
  color: var(--kl-on-brand);
}

.kl-book-optin-hero .kl-inline-quote .kl-google-review-source,
.kl-book-optin-hero .kl-inline-quote .kl-inline-quote__source {
  grid-column: 1 / -1;
  justify-content: center;
  text-align: center;
  color: color-mix(in srgb, var(--kl-on-brand) 88%, var(--kl-sky));
}

@media (min-width: 560px) {
  .kl-book-ig-adjust__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 960px) {
  .kl-book-ig-adjust__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Sage testimonial quotes — always two columns on book lander */
.kl--book .kl__section--sage-full .testimonials-grid {
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .kl--book .kl__section--sage-full .testimonials-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Founder / team */
.kl-book-founder {
  padding: clamp(40px, 6vw, 72px) var(--book-pad);
  background: color-mix(in srgb, var(--kl-sage) 10%, var(--kl-surface));
}

.kl-book-founder__inner {
  max-width: var(--wide);
  margin: 0 auto;
  display: grid;
  gap: var(--space-xl);
}

@media (min-width: 900px) {
  .kl-book-founder__inner {
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
}

.kl-book-founder h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.1rem);
}

.kl-book-founder__copy {
  display: flex;
  flex-direction: column;
  gap: 0.65em;
}

.kl-book-founder__copy p {
  font-size: var(--text-m);
  line-height: 1.55;
  color: var(--kl-text-secondary);
}

.kl-book-founder__visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
}

.kl-book-founder__visual img {
  width: 100%;
  height: auto;
  border-radius: var(--r-card);
  display: block;
  object-fit: cover;
}

.kl-book-founder__session {
  grid-column: 1 / -1;
  max-height: 280px;
  object-position: center 20%;
}

.kl--withu .kl-book-faq h2 {
  text-align: center;
}

.kl--withu .kl-book-faq__cta {
  display: block;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.kl--withu .kl__sticky-bar {
  transition: transform 0.22s ease;
}

.kl--withu .kl__sticky-bar.is-hidden {
  transform: translateY(110%);
  pointer-events: none;
}

/* Book lander typography — 16px body floor (inherits kl.css fluid tokens) */
.kl--book .kl__section p:not(.kl-process-step__label):not(.kl-ps-kicker):not(.kl-doctor-card__role),
.kl--book .kl-progress-step p:not(.kl-progress-step__label),
.kl--book .kl-process-step__body p:not(.kl-process-step__label),
.kl--book .kl-doctor-card__body p:not(.kl-doctor-card__role),
.kl--book .kl-who-list li,
.kl--book .kl__checklist li,
.kl--book .kl-faq-accordion__item p,
.kl--book .kl-book-survey-disqualify p,
.kl--book .kl-ps-list li,
.kl--book .kl-book-schedule__sub,
.kl--book .kl-book-guarantee,
.kl--book .kl-book-nap-compact,
.kl--book .kl-inline-quote p,
.kl--book .testimonial-card blockquote {
  font-size: var(--text-m);
}

.kl--book .testimonial-card cite,
.kl--book .kl-google-review-source,
.kl--book .kl-inline-quote .kl-google-review-source {
  font-size: var(--text-s);
}

.kl--book .kl-book-faq h2,
.kl--book .kl-who-section__title {
  font-size: var(--text-3xl);
}

/* PracticeHub widget — Kirolounge calendar + slot colors */
.kl-book-widget-wrap a.phob--cal-has-availability,
.kl-book-widget-wrap a.phob--cal-has-availability:active,
.kl-book-widget-wrap a.phob--cal-has-availability:hover {
  background-color: var(--kl-wine) !important;
  color: #ffffff !important;
  border: none !important;
}

.kl-book-widget-wrap .phob--cal-is-selected a,
.kl-book-widget-wrap .phob--cal-is-selected a:hover {
  background: transparent !important;
  color: var(--kl-wine) !important;
  border: 2px solid var(--kl-wine) !important;
  font-weight: 700 !important;
}

.kl-book-widget-wrap .phob--cal-is-today a,
.kl-book-widget-wrap .phob--cal-is-today a:hover {
  background: color-mix(in srgb, var(--kl-sky) 40%, var(--kl-surface)) !important;
  color: var(--kl-ink) !important;
  font-weight: 700 !important;
}

.kl-book-widget-wrap .phob--cal-is-today.phob--cal-is-selected a,
.kl-book-widget-wrap .phob--cal-is-today.phob--cal-is-selected a:hover {
  background: color-mix(in srgb, var(--kl-sky) 40%, var(--kl-surface)) !important;
  color: var(--kl-wine) !important;
  border: 2px solid var(--kl-wine) !important;
}

.kl-book-widget-wrap .phob--cal-in-month,
.kl-book-widget-wrap .phob--cal-not-in-month {
  color: color-mix(in srgb, var(--kl-ink) 45%, var(--kl-surface)) !important;
}

.kl-book-widget-wrap .phob--btn-slot,
.kl-book-widget-wrap .phob--btn {
  background-color: var(--kl-wine) !important;
  color: #ffffff !important;
}

.kl-book-widget-wrap .phob--read-more-btn,
.kl-book-widget-wrap .phob--read-less-btn {
  border-color: var(--kl-wine) !important;
  color: var(--kl-wine) !important;
}
