/* =========================================================
   Preview v3 — structural redesign
   This is NOT a detail pass. It changes the page skeleton:
   asymmetric hero + paper artifact, hairline directory list,
   oversized numerals, one shared content edge, editorial scale.
   Local preview only. Brand palette unchanged.
   ========================================================= */

:root {
  --pv-content: 1168px;
  --pv-gutter: max(24px, calc((100vw - var(--pv-content)) / 2));
}

/* ---------------------------------------------------------
   0. ONE CONTENT EDGE
   Every section aligns to the same left/right edge.
   Full-bleed backgrounds are kept; only inner content aligns.
   --------------------------------------------------------- */
body.kv-home-bplus .kv-pain-map,
body.kv-home-bplus .kv-method,
body.kv-home-bplus .kv-routes {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: var(--pv-gutter) !important;
}

body.kv-home-bplus .kv-case-proof,
body.kv-home-bplus .kv-fit,
body.kv-home-bplus .kv-home-final {
  padding-inline: var(--pv-gutter) !important;
}

body.kv-home-bplus .kv-home-hero {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: var(--pv-gutter) !important;
}

/* ---------------------------------------------------------
   1. VERTICAL RHYTHM + SECTION TYPESCALE
   --------------------------------------------------------- */
body.kv-home-bplus .kv-pain-map {
  padding-top: clamp(72px, 8vw, 104px) !important;
  padding-bottom: clamp(40px, 5vw, 64px) !important;
}

body.kv-home-bplus .kv-case-proof,
body.kv-home-bplus .kv-method,
body.kv-home-bplus .kv-fit,
body.kv-home-bplus .kv-routes {
  padding-block: clamp(80px, 9.5vw, 132px) !important;
}

body.kv-home-bplus .kv-home-final {
  padding-block: clamp(88px, 10vw, 140px) !important;
}

body.kv-home-bplus h2 {
  font-family: var(--pv-font-display);
  font-size: clamp(32px, 3.9vw, 52px) !important;
  line-height: 1.26 !important;
  letter-spacing: -0.015em !important;
  font-weight: 600 !important;
  color: var(--pv-green);
}

body.kv-home-bplus .kv-pain-map__head h2,
body.kv-home-bplus .kv-case-proof__head h2,
body.kv-home-bplus .kv-method__head h2,
body.kv-home-bplus .kv-fit__head h2,
body.kv-home-bplus .kv-routes__head h2 {
  max-width: 20ch;
}

body.kv-home-bplus .kv-home-kicker,
body.kv-home-bplus .kv-pain-map__head > p:first-child {
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  color: var(--pv-bronze) !important;
  text-transform: none;
}

/* ---------------------------------------------------------
   2. HERO — asymmetric composition
   --------------------------------------------------------- */
body.kv-home-bplus .kv-home-hero {
  padding-block: clamp(56px, 7vw, 100px) clamp(36px, 4vw, 56px) !important;
}

.pv-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}

.pv-hero-main {
  min-width: 0;
  text-align: left !important;
}

body[data-reading-template="home"] .kv-home-hero .pv-hero-main h1,
body[data-reading-template="home"] .kv-home-hero .pv-hero-main .kv-home-hero__lead,
body.kv-home-bplus .kv-home-hero__actions {
  text-align: left !important;
  justify-content: flex-start !important;
}

body.kv-home-bplus .kv-home-hero .pv-hero-meta {
  justify-content: flex-start;
  margin-bottom: 26px;
  color: var(--pv-bronze);
}

body[data-reading-template="home"] .kv-home-hero h1 {
  font-size: clamp(40px, 5.3vw, 74px) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.022em !important;
  margin-bottom: 26px !important;
  color: var(--pv-green) !important;
}

body[data-reading-template="home"] .kv-home-hero .kv-title-line {
  display: block;
}

body[data-reading-template="home"] .kv-home-hero__lead {
  max-width: 34em !important;
  font-size: 18px !important;
  line-height: 1.95 !important;
  color: #4a423a !important;
}

body[data-reading-template="home"] .kv-home-hero__actions {
  margin-top: 34px !important;
  gap: 26px !important;
}

/* the paper artifact: real object, not a card */
.pv-report {
  position: relative;
  background: #fffdf8;
  border: 1px solid rgba(60, 48, 37, 0.26);
  padding: 34px 32px 26px;
  transform: rotate(-1.1deg);
  box-shadow:
    0 2px 0 rgba(60, 48, 37, 0.06),
    0 34px 64px -36px rgba(52, 38, 25, 0.55);
  font-family: var(--pv-font-sans);
}

.pv-report::after {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(60, 48, 37, 0.1);
  pointer-events: none;
}

.pv-report__eyebrow {
  margin: 0 0 18px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #775023;
}

.pv-report__title {
  margin: 0 0 22px;
  font-family: var(--pv-font-display);
  font-size: 27px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--pv-green);
}

.pv-report__list {
  margin: 0;
}

.pv-report__list > div {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid rgba(60, 48, 37, 0.16);
}

.pv-report__list dt {
  margin: 0;
  padding-top: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #a2917c;
}

.pv-report__list dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: #3a332c;
}

.pv-report__foot {
  margin: 20px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(60, 48, 37, 0.22);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--pv-muted);
}

/* trust band sits beneath the whole hero, full width */
.preview-trust {
  max-width: none !important;
  margin-top: clamp(40px, 5vw, 64px) !important;
  padding: 22px 0 !important;
  gap: 0 !important;
  display: grid !important;
  grid-template-columns: 260px minmax(0, 1fr);
  align-items: center;
  border-top: 1px solid var(--pv-line) !important;
  border-bottom: 0 !important;
  background: transparent !important;
}

.preview-person {
  padding-right: 32px;
}

.preview-judgment {
  padding-left: 32px !important;
  border-left: 1px solid var(--pv-line);
}

/* ---------------------------------------------------------
   3. PAIN MAP — from 6 cards to a hairline directory
   --------------------------------------------------------- */
.kv-pain-map__head {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  column-gap: clamp(32px, 6vw, 90px);
  align-items: end;
  margin-bottom: clamp(36px, 4vw, 52px) !important;
}

.kv-pain-map__head > p:first-child {
  grid-column: 1 / -1;
  margin: 0 0 18px !important;
}

.kv-pain-map__head h2 {
  margin: 0 !important;
}

.kv-pain-map__head > p:last-child {
  margin: 0 0 6px !important;
  font-size: 15.5px !important;
  line-height: 1.9 !important;
  color: var(--pv-muted) !important;
  max-width: 46em;
}

body.kv-home-bplus .kv-pain-map__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 clamp(40px, 5vw, 72px) !important;
  counter-reset: pvrow;
  border-bottom: 1px solid var(--pv-line);
}

body.kv-home-bplus .kv-pain-map__grid a {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr);
  align-content: start;
  gap: 0;
  padding: 26px 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--pv-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: none !important;
}

body.kv-home-bplus .kv-pain-map__grid a::before {
  counter-increment: pvrow;
  content: counter(pvrow, decimal-leading-zero);
  position: static !important;
  top: auto !important;
  left: auto !important;
  grid-row: 1 / span 2;
  padding-top: 5px;
  font: 600 12px/1 var(--pv-font-sans);
  letter-spacing: 0.16em;
  color: #b0a08a;
  transition: color 0.15s ease;
}

body.kv-home-bplus .kv-pain-map__grid h3 {
  grid-column: 2;
  margin: 0 !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
  color: var(--pv-ink);
  transition: color 0.15s ease;
}

body.kv-home-bplus .kv-pain-map__grid p {
  grid-column: 2;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: 13.5px !important;
  line-height: 1.75 !important;
  color: var(--pv-muted) !important;
}

body.kv-home-bplus .kv-pain-map__grid a:hover {
  transform: none !important;
  box-shadow: none !important;
  border-color: var(--pv-green) !important;
  background: transparent !important;
}

body.kv-home-bplus .kv-pain-map__grid a:hover::before {
  color: var(--pv-wine);
}

body.kv-home-bplus .kv-pain-map__grid a:hover h3 {
  color: var(--pv-green);
}

body.kv-home-bplus .kv-pain-map__more {
  margin-top: 22px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

body.kv-home-bplus .kv-pain-map__cta {
  margin-top: 34px !important;
}

/* ---------------------------------------------------------
   4. DEEP GREEN BLOCK — oversized numeral
   --------------------------------------------------------- */
body.kv-home-bplus .kv-home-intro {
  grid-template-columns: minmax(104px, 0.2fr) minmax(0, 1.12fr) minmax(0, 0.88fr) !important;
  gap: clamp(28px, 4vw, 64px) !important;
  padding-block: clamp(96px, 11vw, 156px) !important;
  padding-inline: var(--pv-gutter) !important;
}

body.kv-home-bplus .kv-home-intro__index {
  font-family: var(--pv-font-display) !important;
  font-size: clamp(64px, 8vw, 116px) !important;
  font-weight: 600 !important;
  line-height: 0.78 !important;
  letter-spacing: -0.03em !important;
  color: rgba(255, 250, 242, 0.2) !important;
  padding-top: 0 !important;
}

body.kv-home-bplus .kv-home-intro h2 {
  font-size: clamp(34px, 3.9vw, 54px) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.02em !important;
  color: #fffaf2;
}

body.kv-home-bplus .kv-home-intro__copy {
  font-size: 16.5px !important;
  line-height: 2 !important;
}

body.kv-home-bplus .kv-home-intro__copy > p:first-child {
  font-size: 19px;
  line-height: 1.95;
}

/* ---------- fit: close the hollow gap, align the footnotes ---------- */
body.kv-home-bplus .kv-fit {
  align-items: start;
  column-gap: clamp(32px, 4vw, 64px) !important;
  row-gap: 0 !important;
}

body.kv-home-bplus .kv-fit__columns {
  align-self: start;
}

body.kv-home-bplus .kv-fit > p {
  margin-top: 44px !important;
  padding-top: 22px;
  border-top: 1px solid var(--pv-line);
  font-size: 14.5px !important;
  line-height: 1.85 !important;
  color: var(--pv-muted);
}

body.kv-home-bplus .kv-fit > p:first-of-type {
  grid-column: 1;
}

body.kv-home-bplus .kv-fit__promise {
  grid-column: 2;
  color: #4b443c !important;
}

/* ---------------------------------------------------------
   5. BUTTONS — larger, more deliberate
   --------------------------------------------------------- */
body.kv-home-bplus .kv-button--primary,
body.kv-home-bplus .kv-home-hero__actions .kv-button {
  padding: 15px 30px !important;
  font-size: 15px !important;
  letter-spacing: 0.02em !important;
}

body.kv-home-bplus .preview-secondary-link,
body.kv-home-bplus .kv-home-hero__actions .preview-secondary-link {
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: var(--pv-green) !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(63, 74, 46, 0.35);
  padding-bottom: 3px;
}

/* ---------------------------------------------------------
   6. PRICING PAGE
   --------------------------------------------------------- */
.pr-hero {
  padding-block: clamp(48px, 5.5vw, 76px) clamp(36px, 4vw, 52px) !important;
}

.pr-hero h1 {
  font-size: clamp(38px, 5vw, 66px) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.022em !important;
  color: var(--pv-green);
}

.pr-section h2,
.pr-closing h2 {
  font-size: clamp(30px, 3.6vw, 46px) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.015em !important;
}

.pr-section {
  padding-block: clamp(60px, 6.5vw, 92px) !important;
}

.pr-section__head > p {
  font-size: 16.5px !important;
  line-height: 1.9 !important;
}

/* overview: primary pair large, self-serve as a flat price list */
.pr-overview {
  margin-top: clamp(36px, 4vw, 56px) !important;
}

.pr-overview__services a {
  padding: 26px 26px 24px !important;
}

.pr-overview__self {
  margin-top: 16px;
  border-top: 1px solid var(--pv-line);
  padding-top: 8px;
  gap: 0 !important;
}

.pr-overview__self a {
  min-height: 0 !important;
  padding: 20px 18px 18px !important;
  border: 0 !important;
  border-left: 1px solid var(--pv-line-soft) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.pr-overview__self a:first-child {
  border-left: 0 !important;
}

.pr-overview__self a:hover {
  background: rgba(255, 250, 242, 0.7) !important;
  border-left-color: var(--pv-line) !important;
}

.pr-overview__self strong {
  font-size: 26px !important;
}

/* service cards stay vertical, get more air and stronger price scale */
.pr-human-grid {
  gap: 18px !important;
}

.pr-service-card {
  padding: 40px !important;
}

.pr-service-card .pr-price strong {
  font-size: 64px !important;
}

.pr-service-card .pr-card-action {
  margin-top: 28px !important;
}

/* ---------------------------------------------------------
   7. MOBILE
   --------------------------------------------------------- */
@media (max-width: 900px) {
  :root {
    --pv-gutter: 22px;
  }

  .pv-hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  body.kv-home-bplus .kv-home-hero h1 {
    font-size: clamp(34px, 9vw, 46px) !important;
  }

  .pv-report {
    transform: none;
    padding: 26px 22px 20px;
  }

  .preview-trust {
    grid-template-columns: 1fr;
    gap: 18px !important;
  }

  .preview-judgment {
    padding-left: 0 !important;
    border-left: 0;
    border-top: 1px solid var(--pv-line-soft);
    padding-top: 16px;
  }

  .kv-pain-map__head {
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: start;
  }

  body.kv-home-bplus .kv-pain-map__grid {
    grid-template-columns: 1fr !important;
  }

  body.kv-home-bplus .kv-pain-map__grid a {
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 20px 0 !important;
  }

  body.kv-home-bplus .kv-home-intro {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  body.kv-home-bplus .kv-home-intro__index {
    font-size: 56px !important;
  }

  .pr-service-card {
    display: block !important;
    padding: 28px !important;
  }

  .pr-service-card dl {
    margin-top: 20px !important;
  }
}
