/* Divi adapters unique to the approved V2 composition. */
body.et-db #page-container #et-boc .et-l .hero > .hero__inner,
body.et-db #page-container #et-boc .et-l .hero > .hero__actions {
  margin: 0 auto !important;
}
body.et-db #page-container #et-boc .et-l .hero > .hero__actions {
  margin-top: clamp(24px,2.8vw,36px) !important;
}
body.et-db .hero__title,
body.et-db .hero__title .et_pb_text_inner,
body.et-db .hero__title h1 {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body.et-db .scroll-progress {
  position: fixed !important;
  inset: 0 0 auto;
  z-index: 220;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0;
}
body.et-db .scroll-progress .et_pb_text_inner { height: 2px; }

/* Homepage stats parity: same unboxed grid and page background treatment. */
body.et-db #page-container #et-boc .et-l .stats .stat-grid {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.stats { background: transparent !important; }
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .et_pb_row.shell.problem__grid {
  display: grid !important;
  grid-template-columns: .95fr 1.05fr !important;
  align-items: center !important;
  padding: clamp(18px,2vw,26px) !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 0 !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .problem__grid::before,
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .problem__grid::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .problem__grid > .et_pb_column {
  align-self: center !important;
  height: auto !important;
}
body.et-db .problem__copy { padding: clamp(8px,2vw,24px); }
body.et-db .problem__copy .problem__title { margin-bottom: 0; }

body.et-db .card::before { pointer-events: none; }
body.et-db .card .card-copy { flex: 1 1 auto; }
body.et-db .offer-grid::before,
body.et-db .offer-grid::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_row.shell.offer-grid {
  margin-top: clamp(34px,4vw,52px) !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp {
  display: block !important;
  gap: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .et_pb_row::before,
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .et_pb_row::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .pssp__head,
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .pssp__body {
  display: grid !important;
  height: auto !important;
  min-height: 0 !important;
}
body.et-db .pssp__head .section__title {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.et-db .pssp__head .section__title h2 {
  margin-top: 14px !important;
  margin-bottom: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  font-size: clamp(2.35rem,4vw,4.25rem) !important;
}
body.et-db #page-container #et-boc .et-l .pssp > .pssp__head {
  grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr) !important;
}
body.et-db .pssp__head > .et_pb_column,
body.et-db .pssp__head .section__title,
body.et-db .pssp__head .section__title .et_pb_text_inner {
  min-width: 0 !important;
  max-width: 100% !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .et_pb_row.pssp__media {
  margin-top: clamp(32px,3.6vw,52px) !important;
  margin-bottom: 0 !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .et_pb_row.pssp__body {
  padding-top: clamp(32px,3.6vw,52px) !important;
}
body.et-db .pssp__figure {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.et-db .pssp__figure,
body.et-db .pssp__figure .et_pb_image_wrap,
body.et-db .pssp__figure img {
  display: block !important;
}
body.et-db .et_pb_text.prose .et_pb_text_inner p {
  padding-bottom: 0 !important;
}

/* Open-composition pass ---------------------------------------------------
   The hero and statistics intentionally use a strong container. From this
   point the page should breathe like the approved first version: images and
   small data groups can still be framed, but whole editorial sections do not
   sit inside repeated dark cards. These overrides are loaded only on V2. */
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .problem__grid,
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp,
body.et-db #page-container #et-boc .et-l .et_pb_section.about,
body.et-db #page-container #et-boc .et-l .et_pb_section.closing,
body.et-db #page-container #et-boc .et-l .closing > .closing__inner {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* A little interior room belongs to the content, not an enclosing card. */
body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .problem__grid {
  padding: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.et-db .problem__copy {
  padding-block: clamp(8px,1.5vw,18px) !important;
  padding-inline: 0 !important;
}

/* Keep the PSSP mock-up rounded as an image treatment, while removing the
   card-like chrome around it. The metrics panel remains grouped on purpose. */
body.et-db .pssp__figure,
body.et-db .about__figure {
  border: 0 !important;
  box-shadow: none !important;
}

/* The final invitation should land as a full-page moment, not one last card. */
body.et-db #page-container #et-boc .et-l .et_pb_section.closing {
  margin-inline: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

body.et-db .testimonials__head { display: block !important; }
body.et-db .testimonials__head > .et_pb_column { width: 100% !important; }
body.et-db .testimonials .marquee::before,
body.et-db .testimonials .marquee::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .testimonials .marquee {
  display: block !important;
  height: auto !important;
  min-height: 300px !important;
}
body.et-db #page-container #et-boc .et-l .testimonials .marquee > .marquee__track {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: var(--gap) !important;
  width: max-content !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  animation: dsp-marquee 70s linear infinite !important;
}
body.et-db #page-container #et-boc .et-l .testimonials .marquee__track > .quote {
  display: flex !important;
  flex: 0 0 min(360px,78vw) !important;
  width: min(360px,78vw) !important;
  min-height: 300px !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.et-db .testimonials .quote .et_pb_text_inner {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  height: auto;
}
body.et-db #page-container #et-boc .et-l .testimonials .quote blockquote {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.et-db #page-container #et-boc .et-l .testimonials .marquee:hover > .marquee__track,
body.et-db #page-container #et-boc .et-l .testimonials .marquee:focus-within > .marquee__track {
  animation-play-state: paused !important;
}
@keyframes dsp-marquee {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-50% - (var(--gap) / 2)),0,0); }
}

@media (prefers-reduced-motion: reduce) {
  body.et-db #page-container #et-boc .et-l .testimonials .marquee > .marquee__track {
    animation: none !important;
  }
}

body.et-db #page-container #et-boc .et-l .about > .about__grid {
  display: grid !important;
  grid-template-columns: 1fr 1.25fr !important;
  align-items: start !important;
  height: auto !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.about {
  border-top: 0 !important;
}
body.et-db .about__grid::before,
body.et-db .about__grid::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .about .about__copy {
  display: grid !important;
  gap: 1.1em !important;
  height: auto !important;
}
body.et-db .about__copy .et_pb_text_inner { display: block; }
body.et-db .et_pb_text.lead .et_pb_text_inner p { padding-bottom: 0 !important; }
body.et-db #page-container #et-boc .et-l .about > .about__closing {
  margin-top: clamp(48px,6vw,80px) !important;
}

@media (max-width: 980px) {
  body.et-db #page-container #et-boc .et-l .about > .about__grid {
    grid-template-columns: 1fr !important;
  }
  body.et-db #page-container #et-boc .et-l .pssp > .pssp__head {
    grid-template-columns: 1fr !important;
  }
}

/* Newsletter: keep the source card dimensions and neutralize Divi text spacing. */
body.et-db #page-container #et-boc .et-l .newsletter > .newsletter__row {
  width: min(var(--shell),calc(100% - 2 * var(--gutter))) !important;
  max-width: var(--shell) !important;
  padding: 0 !important;
}
body.et-db .newsletter__row::before,
body.et-db .newsletter__row::after {
  content: none !important;
  display: none !important;
}
body.et-db #page-container #et-boc .et-l .newsletter .newsletter__card {
  width: 100% !important;
  max-width: 720px !important;   /* widened slightly at client review */
  margin-inline: auto !important;
}
body.et-db .newsletter__card .et_pb_text_inner { position: relative; }
body.et-db .newsletter__card .section__title,
body.et-db .newsletter__card .newsletter__lede,
body.et-db .newsletter__card .form-msg { padding-bottom: 0 !important; }
body.et-db .newsletter__card .newsletter__form button { font-family: inherit; cursor: pointer; }

/* The rings-image band and the band↔newsletter scroll scene were removed at
   client review. The newsletter is now a normal standalone section. */

body.et-db .band.band--cta {
  display: block !important;
  height: clamp(440px,58vw,720px) !important;
  min-height: 0 !important;
  width: min(var(--shell),calc(100% - 2 * var(--gutter)));
  max-width: var(--shell);
  margin: 0 auto var(--section-y) !important;
  padding: 0 !important;
}
body.et-db .band--cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg,rgba(15,15,16,.94),rgba(15,15,16,.72) 42%,rgba(15,15,16,.05) 75%);
}
body.et-db .band--cta .band__media,
body.et-db .band--cta .band__content {
  position: absolute;
  inset: 0;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 100% !important;
}
body.et-db .band--cta .band__media .et_pb_column,
body.et-db .band--cta .band__content .et_pb_column {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
body.et-db .band--cta .band__image,
body.et-db .band--cta .band__image .et_pb_image_wrap {
  position: absolute !important;
  inset: 0;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
}
body.et-db .band--cta .band__image img {
  position: absolute !important;
  inset: 0;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 24%;
}
body.et-db .band--cta .band__content { z-index: 2; display: flex !important; align-items: flex-end; padding: clamp(28px,6vw,80px) !important; }
body.et-db .band--cta .closing__title { max-width: 13ch; }
body.et-db .band--cta .closing__title h2 { color: var(--text); font-size: clamp(2.2rem,5vw,4.8rem); line-height: .92; }
body.et-db .band--cta .closing__title em { color: var(--red); font-style: normal; }
body.et-db .band--cta .et_pb_button_module_wrapper { margin-top: clamp(26px,3vw,40px); }

@media (max-width: 860px) {
  body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .et_pb_row.shell.problem__grid {
    grid-template-columns: 1fr !important;
    padding: 12px !important;
  }
  body.et-db .problem__copy { padding: 20px 10px 12px; }
  body.et-db .band--cta::after { background: linear-gradient(180deg,rgba(15,15,16,.04),rgba(15,15,16,.92) 68%); }
  body.et-db .band--cta .band__image img { object-position: 56% 25%; }
  body.et-db .band--cta .band__content { align-items: flex-end; padding: 24px !important; }
  body.et-db .band.band--cta { height: 620px !important; }
}

@media (max-width: 560px) {
  body.et-db .band.band--cta { height: 560px !important; }
  body.et-db .band--cta .closing__title { max-width: 15ch; }
  body.et-db .band--cta .closing__title h2 { font-size: 2.55rem; overflow-wrap: break-word; hyphens: auto; }
  body.et-db .band--cta .et_pb_button { width: 100%; }
}

/* Responsive polish for the section-by-section Divi build. */
@media (max-width: 980px) {
  body.et-db #page-container #et-boc .et-l .stats .stat-grid {
    grid-template-columns: repeat(2,1fr) !important;
    gap: 32px var(--gap) !important;
    padding: 0 !important;
  }
  body.et-db #page-container #et-boc .et-l .et_pb_section.problem > .et_pb_row.shell.problem__grid,
  body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .pssp__head,
  body.et-db #page-container #et-boc .et-l .et_pb_section.pssp > .pssp__body,
  body.et-db #page-container #et-boc .et-l .et_pb_section.about > .about__grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
  body.et-db #page-container #et-boc .et-l .offer-grid {
    grid-template-columns: minmax(0,1fr) !important;
    max-width: 560px !important;
  }
  body.et-db .about__figure img {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover;
    object-position: 50% 30%;
  }
}

@media (max-width: 767px) {
  :root {
    --section-y: clamp(48px,14vw,64px);
    --mobile-page-gutter: clamp(18px,5.5vw,22px);
    --mobile-readable-copy: 1.125rem;
    --mobile-readable-leading: 1.55;
    --mobile-transition-gap: clamp(56px,15vw,64px);
    --mobile-footer-gap: clamp(24px,7vw,32px);
    --gutter: var(--mobile-page-gutter);
    --gap: 18px;
    --radius-lg: 22px;
  }
  body.et-db .site-header { inset-block-start: 10px; }
  body.et-db .site-header .nav-shell {
    max-width: calc(100% - 20px) !important;
  }
  body.et-db #page-container #et-boc .et-l .hero {
    justify-content: flex-end;
    height: auto !important;
    min-height: 760px;
    min-height: max(100svh,760px);
    padding: 104px 0 42px !important;
    background:
      linear-gradient(180deg,rgba(15,15,16,.06) 0%,rgba(15,15,16,.16) 30%,rgba(15,15,16,.82) 52%,var(--bg) 76%),
      url('../img/michael-cutout-tall.png') center clamp(-150px,-32vw,-110px) / 100% auto no-repeat !important;
  }
  body.et-db .hero .badge {
    margin-bottom: 12px !important;
    font-size: .8125rem;
  }
  body.et-db .hero__title h1 {
    max-width: 100%;
    font-size: clamp(1.58rem,7.4vw,2rem) !important;
    line-height: .96 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-shadow: none !important;
  }
  body.et-db #page-container #et-boc .et-l .hero > .hero__actions {
    gap: 10px;
    margin-top: 24px !important;
  }
  body.et-db .hero__actions .et_pb_button.dsp-btn {
    width: 100% !important;
    min-height: 48px !important;
    padding: 12px 20px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
  }
  body.et-db .hero__actions .et_pb_button.dsp-btn-primary {
    min-height: 54px !important;
    white-space: nowrap !important;
  }

  /* Approved unboxed editorial statistics: value left, copy right. */
  body.et-db .stats .section__title { margin-bottom: 0 !important; }
  body.et-db #page-container #et-boc .et-l .stats .stat-grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 0 !important;
    width: calc(100% - var(--mobile-page-gutter) - var(--mobile-page-gutter)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    margin-top: clamp(32px,9vw,40px) !important;
  }
  body.et-db #page-container #et-boc .et-l .stats .stat-grid > .et_pb_column {
    min-width: 0 !important;
    padding: 0 !important;
  }
  body.et-db #page-container #et-boc .et-l .stats .stat {
    padding: clamp(24px,7vw,30px) 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,0,25,.28) !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  body.et-db #page-container #et-boc .et-l .stats .stat-grid > .et_pb_column:first-child .stat {
    padding-top: 0 !important;
    border-top: 0 !important;
  }
  body.et-db #page-container #et-boc .et-l .stats .stat .et_pb_text_inner {
    display: grid !important;
    grid-template-columns: clamp(64px,20vw,82px) minmax(0,1fr);
    grid-template-rows: auto auto;
    gap: 7px 14px;
    align-items: start;
  }
  body.et-db .stats .stat__value {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    margin: 0 !important;
    color: var(--red) !important;
    font-size: clamp(2.9rem,13vw,3.375rem) !important;
    line-height: .9 !important;
  }
  body.et-db .stats .stat__plus {
    margin-left: .05em;
    font-size: .43em;
    line-height: 1;
    transform: translateY(-.05em);
  }
  body.et-db .stats .stat__label {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    margin: 0 !important;
    font-size: clamp(1rem,4.5vw,1.125rem) !important;
    line-height: 1.25 !important;
  }
  body.et-db .stats .stat__note {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    margin: 0 !important;
    color: var(--text-2) !important;
    font-size: clamp(.875rem,3.8vw,.9375rem) !important;
    line-height: 1.5 !important;
  }

  body.et-db .section__title h2,
  body.et-db .pssp__head .section__title h2 {
    font-size: clamp(2.15rem,10vw,3.25rem) !important;
    line-height: .98 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }
  body.et-db #page-container #et-boc .et-l .problem__grid { gap: 22px !important; }
  body.et-db .problem__copy { padding: 8px 6px 12px; }
  body.et-db .problem__title h2 { font-size: clamp(2rem,9vw,2.75rem); }
  body.et-db .offer-grid .card { padding: 24px 20px; }

  body.et-db #page-container #et-boc .et-l .pssp > .pssp__media { margin-top: 28px !important; }
  body.et-db #page-container #et-boc .et-l .pssp > .pssp__body { padding-top: 28px !important; }
  body.et-db .pssp .pssp__lede,
  body.et-db .pssp .pssp__lede p {
    font-size: clamp(1rem,4.35vw,1.0625rem) !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
  }
  body.et-db .pssp .pssp__body .prose p {
    font-size: var(--mobile-readable-copy) !important;
    font-weight: 550 !important;
    line-height: var(--mobile-readable-leading) !important;
    letter-spacing: -.01em !important;
  }
  body.et-db .pssp__panel { padding: 20px !important; }
  body.et-db .pssp__panel .stat-grid--3 { grid-template-columns: 1fr !important; gap: 14px; }

  /* Mobile testimonials use normal document flow. The desktop marquee layout
     is intentionally disabled here so Divi cannot translate the cards away. */
  body:not(.et-fb).et-db #page-container #et-boc .et-l .et_pb_section.testimonials {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  body.et-db #page-container #et-boc .et-l .testimonials > .testimonials__head {
    width: 100% !important;
    margin: 0 auto !important;
  }
  body.et-db #page-container #et-boc .et-l .testimonials > .marquee {
    width: calc(100% - var(--mobile-page-gutter) - var(--mobile-page-gutter)) !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: clamp(32px,9vw,40px) auto 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  body.et-db #page-container #et-boc .et-l .testimonials .marquee > .marquee__track {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    animation: none !important;
    transform: none !important;
  }
  body.et-db #page-container #et-boc .et-l .testimonials .marquee__track > .quote {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 24px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  body.et-db #page-container #et-boc .et-l .about > .about__closing { margin-top: 36px !important; }
  body.et-db .about .about__copy .prose p,
  body.et-db .about .about__closing .lead,
  body.et-db .about .about__closing .lead p {
    font-size: var(--mobile-readable-copy) !important;
    font-weight: 500 !important;
    line-height: var(--mobile-readable-leading) !important;
    letter-spacing: -.01em !important;
  }
  body.et-db .about .about__copy {
    gap: 1.3em !important;
  }

  body.et-db #page-container #et-boc .et-l .et_pb_section.newsletter {
    padding-top: 36px !important;
    padding-bottom: 0 !important;
  }
  body.et-db .newsletter__card { padding: 26px 20px !important; }
  body.et-db .newsletter__card .section__title { font-size: clamp(2.4rem,13vw,3.4rem) !important; }
  body.et-db .newsletter__card .newsletter__lede { font-size: 1rem !important; }
  body.et-db .newsletter__card .consent { font-size: .8rem; }
}

@media (max-width: 420px) {
  body.et-db .hero__title h1 { font-size: clamp(1.55rem,7.5vw,1.9rem) !important; }
  body.et-db .section__title h2,
  body.et-db .pssp__head .section__title h2 { font-size: clamp(2rem,10.5vw,2.65rem) !important; }
  body.et-db .newsletter__card .section__title { font-size: 2.5rem !important; }
}

body.et-db #page-container #et-boc .et-l .closing > .closing__inner {
  margin: 0 auto !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.closing {
  height: auto !important;
  min-height: 0 !important;
  padding-block: clamp(72px,10vw,140px) !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.closing > .closing__inner,
body.et-db #page-container #et-boc .et-l .et_pb_section.closing .et_pb_column {
  height: auto !important;
  min-height: 0 !important;
}
body.et-db .closing .closing__title {
  max-width: 14ch;
  margin-inline: auto;
}
body.et-db .closing .closing__title h2 {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
@media (max-width: 767px) {
  body.et-db .closing .closing__title { max-width: 16ch; }
  body.et-db .closing .closing__title h2 {
    font-size: clamp(2.4rem,12vw,3.7rem) !important;
    line-height: .94 !important;
  }
  body.et-db .closing .et_pb_button_module_wrapper { margin-top: 28px !important; }
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  /* Own the Newsletter -> CTA gap inside the row. A section margin can
     collapse against Divi's adjacent wrappers and visually disappear. */
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing > .closing__inner {
    display: block !important;
    padding: var(--mobile-transition-gap) var(--mobile-page-gutter) 0 !important;
  }
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing > .closing__inner,
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing .et_pb_column,
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing .closing__title,
  body.et-db #page-container #et-boc .et-l .et_pb_section.closing .et_pb_button_module_wrapper {
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  body.et-db #page-container .et-l--footer {
    margin-top: var(--mobile-footer-gap) !important;
  }

  /* Remove residual bottom space owned by WordPress/Divi wrappers before the
     Theme Builder footer. */
  body.home.et-db #page-container,
  body.home.et-db #et-main-area,
  body.home.et-db #main-content,
  body.home.et-db #main-content > article,
  body.home.et-db #main-content .entry-content,
  body.home.et-db #main-content #et-boc,
  body.home.et-db #main-content #et-boc > .et-l,
  body.home.et-db #main-content #et-boc .et_builder_inner_content {
    min-height: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}

@media (max-width: 767px) and (max-height: 520px) and (orientation: landscape) {
  body.et-db #page-container #et-boc .et-l .hero {
    min-height: 620px;
    background-size: auto 720px !important;
    background-position: right top !important;
  }
  body.et-db #page-container #et-boc .et-l .hero > .hero__inner,
  body.et-db #page-container #et-boc .et-l .hero > .hero__actions {
    width: 62% !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
}

/* ==================================================================
   Client review — round 1
   ================================================================== */

/* Divi's default heading colour (#333) applies wherever the semantic class sits
   on the heading element itself rather than on a Divi wrapper, so the existing
   `.section__title h2` rule never matched. That left the offer-card titles and
   the newsletter heading near-invisible on the near-black background. */
body.et-db #page-container h2.section__title,
body.et-db #page-container h3.card__title,
body.et-db #page-container .card .card__title {
  color: var(--text);
}

/* The newsletter heading is the one title that reads better in brand red than
   white — it is the page's final ask, not another section label. */
body.et-db #page-container .newsletter__card h2.section__title,
body.et-db #page-container .newsletter__card .section__title {
  color: var(--red);
}

/* Stats heading aligned to the left edge of the first stat number. The heading
   row and the stat grid previously carried different horizontal padding. */
body.et-db #page-container #et-boc .et-l .stats .section__title,
body.et-db #page-container #et-boc .et-l .stats .section__title h2 {
  text-align: left;
  margin-left: 0;
  max-width: 18ch;
}

/* Breathing room between the offer cards and the section that follows. */
body.et-db #page-container #et-boc .et-l .et_pb_section.offers {
  padding-bottom: clamp(96px, 11vw, 168px) !important;
}

/* ---------- #3 Offers heading, moved above the three cards ----------
   Previously an eyebrow buried in the Problem column. It now leads the cards
   as a real heading, unboxed, with the second sentence as a supporting line. */
body.et-db #page-container #et-boc .et-l .offers .offers__intro-row {
  margin-bottom: clamp(28px, 3.4vw, 48px) !important;
}
body.et-db #page-container .offers__heading {
  margin: 0;
  font-family: var(--f-display);
  font-weight: 800;
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  color: var(--text);
  text-transform: none;
}
body.et-db #page-container .offers__lede {
  margin: 10px 0 0;
  font-family: var(--f-body);
  font-weight: 400;
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--muted);
  text-transform: none;
}

/* ---------- #7 PSSP — its own chapter ----------
   Full-bleed deep-red wash so the section reads as more important than its
   neighbours without a panel, a box, or a lighter surface. Content stays on
   the shell measure; only the background bleeds.

   The figure is a wide landscape device shot. Beside the copy it left a large
   dead area under it, so it keeps its original full-width position. */
body.et-db #page-container #et-boc .et-l .et_pb_section.pssp {
  padding-block: clamp(72px, 8vw, 128px) !important;
  background:
    radial-gradient(120% 90% at 88% 12%, var(--red-glow) 0%, transparent 62%),
    linear-gradient(168deg, var(--red-deep) 0%, #2A0206 46%, var(--bg) 100%) !important;
}

/* ---------- #10 Newsletter, standalone ----------
   With the scroll scene gone the newsletter is a normal section again. Its Divi
   row carries floated columns and no clearfix, so it collapsed to zero height
   and the card overflowed out of the section. */
body.et-db #page-container #et-boc .et-l .newsletter .newsletter__row {
  display: flow-root !important;
  width: min(var(--shell), calc(100% - 2 * var(--gutter))) !important;
  margin-inline: auto !important;
}
body.et-db #page-container #et-boc .et-l .newsletter .newsletter__row > .et_pb_column {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
}
body.et-db #page-container #et-boc .et-l .et_pb_section.newsletter {
  padding-block: clamp(72px, 8vw, 120px) !important;
}

/* ---------- #11 Closing headline — three lines, wider measure ----------
   The 14ch cap forced five lines. Measured: 880px at 2.9rem lands three lines
   at 1440 and 1024; 768 needs the smaller end of the clamp to stay at three. */
body.et-db #page-container #et-boc .et-l .closing .closing__title {
  max-width: 1140px;
}
/* Largest size that still lands three lines: measured 3.9rem at 1440 and
   3.6rem at 1024 against a 1140px measure. The calc() tracks between the two
   so neither width drops to four. */
body.et-db #page-container #et-boc .et-l .closing .closing__title h2 {
  font-size: clamp(2.6rem, calc(2.8625rem + 1.15vw), 3.9rem) !important;
  line-height: 1.04 !important;
}
body.et-db #page-container #et-boc .et-l .newsletter__card .newsletter__form .btn {
  margin-top: 22px;
}

/* #2 The stats heading row carried 48px of horizontal padding that the stat
   grid did not, so the heading started 48px inside the first number. */
body.et-db #page-container #et-boc .et-l .stats > .et_pb_row.shell:not(.stat-grid) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
