/* Divi 5 adapter. Stable dsp/original semantic classes only. */
body.et-db { background: var(--bg); }
body.et-db #page-container { padding: 0 !important; overflow: clip; }
body.et-db #main-content { background: transparent; }
body.et-db .et-l--post .et_builder_inner_content { z-index: auto; }
body.et-db .et_pb_section { background: transparent; }
body.et-db .et_pb_section.section { padding: var(--section-y) 0 !important; }
body.et-db .et_pb_row.shell {
  width: 100% !important;
  max-width: var(--shell) !important;
  margin-inline: auto !important;
  padding: 0 var(--gutter) !important;
}
body.et-db .et_pb_module { margin-bottom: 0; }
body.et-db .et_pb_text_inner p:last-child { padding-bottom: 0; }
body.et-db .et_pb_section:not(.dsp-layer):not(.site-header) { position: relative; z-index: 1; }

/* Fixed portrait layer. */
body.et-db .dsp-layer { position: static !important; min-height: 0; padding: 0 !important; }
body.et-db .dsp-layer .et_pb_row,
body.et-db .dsp-layer .et_pb_column { position: static; width: 0 !important; max-width: 0 !important; padding: 0 !important; }
body.et-db .page-backdrop { position: fixed !important; inset: 0; z-index: 0; width: 100%; max-width: none; pointer-events: none; }
body.et-db .page-backdrop .et_pb_image_wrap { display: block; width: 100%; height: 100vh; }
body.et-db .page-backdrop img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }

/* Header. */
body.et-db .site-header { position: fixed !important; inset: 18px 0 auto; padding: 0 !important; z-index: 100; }
body.et-db .site-header .nav-shell { display: flex !important; width: auto !important; max-width: min(860px, calc(100% - 2 * var(--gutter))) !important; padding: 7px 7px 7px 20px !important; }
body.et-db .site-header .et_pb_column { display: flex; align-items: center; margin: 0 !important; }
body.et-db .site-header .et_pb_column:first-child { width: 52px !important; }
body.et-db .site-header .et_pb_column:last-child { width: auto !important; flex: 1; justify-content: flex-end; }
body.et-db .nav-brand { width: 30px; }
body.et-db .nav-brand .et_pb_image_wrap { display: block; }
body.et-db .nav-brand img { width: 30px; height: 30px; object-fit: contain; }
body.et-db .nav-links .et_pb_text_inner { display: flex; align-items: center; gap: 18px; }
body.et-db .nav-links .dsp-nav-cta { padding: .7rem 1.15rem; border-radius: 999px; background: var(--red); color: #fff !important; }
body.et-db .nav-toggle-wrap { display: none; }
body.et-db .nav-toggle-wrap .et_pb_text_inner { line-height: 1; }

/* Hero. */
body.et-db .hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  padding: 132px 0 clamp(48px,6vw,80px) !important;
}
body.et-db .hero .hero__inner { width: 100% !important; }
body.et-db .badge { width: max-content; }
body.et-db .badge .et_pb_text_inner,
body.et-db .badge p { display: flex; align-items: center; gap: 10px; }
body.et-db .hero__title h1 { color: var(--text); font-size: clamp(1.9rem,4.5vw,4rem); line-height: .94; }
body.et-db .hero__title em { color: var(--red); }
body.et-db .hero__actions { display: flex !important; width: 100% !important; max-width: var(--shell) !important; padding: 0 var(--gutter) !important; gap: 12px; }
body.et-db .hero__actions .et_pb_column { width: auto !important; margin: 0 !important; }

/* Divi buttons. */
body.et-db .et_pb_button.dsp-btn {
  display: inline-flex; align-items: center; justify-content: center; padding: .95rem 1.6rem !important;
  border-radius: 999px !important; font-family: var(--f-body) !important; font-size: .975rem !important;
  font-weight: 600 !important; line-height: 1 !important; transition: all .2s var(--ease) !important;
}
body.et-db .et_pb_button.dsp-btn::after { display: none !important; }
body.et-db .et_pb_button.dsp-btn-primary { border: 1px solid var(--red) !important; color: #fff !important; background: var(--red) !important; }
body.et-db .et_pb_button.dsp-btn-primary:hover { background: #ff2033 !important; transform: translateY(-2px); }
body.et-db .et_pb_button.dsp-btn-ghost { border: 1px solid var(--line-strong) !important; color: var(--text) !important; background: transparent !important; }
body.et-db .et_pb_button.dsp-btn-ghost:hover { border-color: var(--red) !important; color: var(--red-soft) !important; transform: translateY(-2px); }
body.et-db .et_pb_button.dsp-btn-block { width: 100%; }

/* Shared headings and grids. */
body.et-db .section__title h2 { color: var(--text); font-size: clamp(2.25rem,5.4vw,4.5rem); line-height: .96; }
body.et-db .stats .section__title { max-width: 12ch; }
body.et-db .testimonials .section__title { max-width: 12ch; }
body.et-db .stat-grid,
body.et-db .offer-grid { display: grid !important; width: 100% !important; max-width: var(--shell) !important; gap: var(--gap); }
body.et-db .stat-grid { grid-template-columns: repeat(4,1fr); }
body.et-db .offer-grid { grid-template-columns: repeat(3,1fr); margin-top: clamp(40px,5vw,64px) !important; }
body.et-db .et_pb_section.offers { padding: 0 !important; }
body.et-db .stat-grid > .et_pb_column,
body.et-db .offer-grid > .et_pb_column { width: auto !important; margin: 0 !important; }
/* Let stat content determine its own height. A forced 100% height makes Divi 5
   distribute the paragraphs vertically and creates large artificial gaps. */
body.et-db .stat,
body.et-db .stat .et_pb_text_inner {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}
body.et-db .stat p { padding-bottom: 0 !important; }

/* Problem and offer cards. */
body.et-db .problem__grid,
body.et-db .pssp__head,
body.et-db .pssp__body,
body.et-db .about__grid { display: grid !important; width: 100% !important; max-width: var(--shell) !important; gap: clamp(28px,3.6vw,56px); }
body.et-db .problem__grid { grid-template-columns: .95fr 1.05fr; align-items: center; }
body.et-db .problem__grid > .et_pb_column,
body.et-db .pssp__head > .et_pb_column,
body.et-db .pssp__body > .et_pb_column,
body.et-db .about__grid > .et_pb_column { width: auto !important; margin: 0 !important; }
body.et-db .problem__figure,
body.et-db .about__figure,
body.et-db .pssp__figure { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); }
body.et-db .problem__figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: 50% 30%; }
body.et-db .problem__title h2 { color: var(--red); font-size: clamp(1.85rem,3.4vw,2.9rem); line-height: 1; }
body.et-db .offer-grid .card {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  padding: clamp(24px,2.6vw,34px);
}
body.et-db .card .et_pb_text_inner { display: flex; flex-direction: column; height: auto; }
body.et-db .card .card__body { flex: 1; }
body.et-db .card .et_pb_button_module_wrapper { margin-top: auto; }

/* PSSP. */
body.et-db .pssp__head { grid-template-columns: 1.05fr .95fr; align-items: end; }
body.et-db .pssp__figure { margin-top: clamp(32px,3.6vw,52px); margin-bottom: clamp(32px,3.6vw,52px); border-radius: var(--radius-lg); }
body.et-db .pssp__figure img { width: 100%; }
body.et-db .pssp__body { grid-template-columns: 1.15fr .85fr; align-items: start; }
body.et-db .pssp__panel { padding: clamp(22px,2.4vw,30px); }

/* Marquee. */
body.et-db .testimonials { overflow: hidden; }
body.et-db .marquee { width: 100% !important; max-width: none !important; padding: 0 !important; overflow: visible; }
body.et-db .marquee__track { display: flex; gap: var(--gap); width: max-content !important; margin: 0 !important; animation: marquee 70s linear infinite; }
body.et-db .marquee__track > .et_pb_module { flex: 0 0 auto; }
body.et-db .quote { width: min(360px,78vw); min-height: 310px; }
body.et-db .quote .et_pb_text_inner { display: flex; flex-direction: column; height: 100%; }
body.et-db .quote blockquote { flex: 1; }

/* About, band, newsletter, closing and footer. */
body.et-db .about__grid { grid-template-columns: 1fr 1.25fr; align-items: start; }
body.et-db .about__figure img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
body.et-db .about__copy .et_pb_text_inner { display: grid; gap: 1.1em; }
body.et-db .about__closing { margin-top: clamp(44px,6vw,84px) !important; }
body.et-db .band { padding: 0 !important; }
body.et-db .band .et_pb_row { width: min(1320px,calc(100% - 2 * var(--gutter))) !important; max-width: 1320px !important; padding: 0 !important; }
body.et-db .band__image { overflow: hidden; border-radius: var(--radius-lg); }
body.et-db .band__image,
body.et-db .band__image .et_pb_image_wrap { display: block; width: 100%; max-width: none; }
body.et-db .band__image img { width: 100%; height: clamp(300px,45vw,620px); object-fit: cover; object-position: 50% 22%; }
body.et-db .newsletter__card { max-width: 640px; margin-inline: auto; }
body.et-db .newsletter__form { margin-top: 28px; }
body.et-db .closing { text-align: center; }
body.et-db .closing__title h2 { color: var(--text); font-size: clamp(2.4rem,7vw,6.5rem); line-height: .9; }
body.et-db .closing__title em { color: var(--red); font-style: normal; }
body.et-db .closing .et_pb_button_module_wrapper { margin-top: clamp(28px,4vw,48px); }
body.et-db .site-footer { position: relative !important; padding: var(--section-y) 0 34px !important; z-index: 1; }
body.et-db .footer__grid { display: grid !important; grid-template-columns: 1.2fr .8fr 1fr; gap: var(--gap); }
body.et-db .footer__grid > .et_pb_column { width: auto !important; margin: 0 !important; }
body.et-db .footer__brand img { width: 180px; }
body.et-db .footer__bottom { display: flex !important; justify-content: space-between; align-items: center; margin-top: 48px !important; padding-top: 24px !important; border-top: 1px solid var(--line); }

@media (max-width: 980px) {
  body.et-db .stat-grid { grid-template-columns: repeat(2,1fr); }
  body.et-db .offer-grid { grid-template-columns: 1fr; }
  body.et-db .problem__grid,
  body.et-db .pssp__head,
  body.et-db .pssp__body,
  body.et-db .about__grid { grid-template-columns: 1fr; }
  body.et-db .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  body.et-db .page-backdrop { display: none; }
  body.et-db .hero { min-height: 780px; background: linear-gradient(rgba(15,15,16,.25),rgba(15,15,16,.88)), url('../img/michael-cutout-tall.png') center 15% / cover no-repeat !important; }
  body.et-db .nav-links { position: absolute; top: 62px; left: 0; right: 0; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: rgba(18,18,20,.98); opacity: 0; transform: translateY(-8px); pointer-events: none; }
  body.et-db .nav-links.is-open { opacity: 1; transform: none; pointer-events: auto; }
  body.et-db .nav-links .et_pb_text_inner { flex-direction: column; align-items: stretch; }
  body.et-db .nav-toggle-wrap { display: block; margin-left: 10px; }
  body.et-db .nav-toggle { display: flex; }
}

@media (max-width: 767px) {
  body.et-db .stat-grid { grid-template-columns: 1fr; }
  body.et-db .hero__actions { flex-direction: column; }
  body.et-db .hero__actions .et_pb_column { width: 100% !important; }
  body.et-db .hero__actions .et_pb_button { width: 100%; }
  body.et-db .footer__grid { grid-template-columns: 1fr; }
  body.et-db .footer__bottom { align-items: flex-start; flex-direction: column; gap: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  body.et-db .marquee__track { animation: none; }
}
