/* Page-specific styles for /lp/demo, the paid-ads demo landing page (lpd-*
   classes). Loaded only by that route. Tokens mirror the Webflow design system
   (citrus-63eefc.webflow.css :root): primary #2a7953, primary-dark #143927,
   primary-light #359768, primary-lighter #8ed7b4, canvas #1d1e1d, surface
   #232423, offwhite #f2f3f2. Headings Mulish 600, body Poppins, button radius
   .4rem, card radii .8rem / 1.2rem, matching the live site. */

/* Anchor scrolling to #book is a fast JS animation (FastBookScroll in
   client.tsx): native scroll-behavior:smooth crawls over this page's length,
   so the CTAs felt laggy. Keep the document scroller on auto. */

.lpd-page{
  background-color: #1d1e1d;
  color: #f2f3f2;
  font-family: Poppins, sans-serif;
  letter-spacing: -.025em;
  min-height: 100vh;
}
.lpd-page h1, .lpd-page h2, .lpd-page h3{
  font-family: Mulish, sans-serif;
  font-weight: 600;
  letter-spacing: -.025em;
  color: #f2f3f2;
}
/* :where() keeps the reset at zero specificity so single-class margin rules
   (.lpd-h1, .lpd-sub, ...) override it. A plain .lpd-page p reset silently
   beats them and collapses the whole text stack. */
.lpd-page :where(h1, h2, h3, p, blockquote){ margin: 0; }
.lpd-wrap{
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}
.lpd-highlight{ color: #8ed7b4; }

/* Fade-in on scroll */
.lpd-fade{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease-out, transform .7s ease-out;
}
.lpd-fade.lpd-visible{
  opacity: 1;
  transform: translateY(0);
}

/* Header */
.lpd-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: #1d1e1d;
  border-bottom: 1px solid #ffffff14;
}
.lpd-header-inner{
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.lpd-logo{ height: 40px; width: auto; display: block; }

/* Buttons: same recipe as the site's .button / .button.is-secondary */
.lpd-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: #2a7953;
  border: 1px solid #2a7953;
  border-radius: .4rem;
  color: #f2f3f2;
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
  padding: .6rem 1.5rem;
  text-decoration: none;
  text-align: center;
  transition: all .25s;
}
.lpd-btn:hover{ background-color: #143927; border-color: #143927; box-shadow: 0 0 28px rgba(42,121,83,.35); }
.lpd-btn-sm{ padding: .5rem 1.25rem; font-size: .9rem; }
.lpd-btn-ghost{
  background-color: transparent;
  border-color: #f2f3f2;
}
.lpd-btn-ghost:hover{ background-color: #ffffff14; border-color: #f2f3f2; }

/* Fold: header (73px) + hero + trust strip fill the first viewport on
   desktop; the hero flexes so the trust banner sits at the fold's base. */
.lpd-fold{ display: flex; flex-direction: column; }

/* Hero */
.lpd-hero{
  padding: 24px 0;
  flex: 1;
  display: flex;
  align-items: center;
}
.lpd-hero > .lpd-wrap{ width: 100%; }
@media (min-width: 992px){
  .lpd-fold{ min-height: calc(100vh - 73px); }
}
/* Phone: video slots between headline and paragraph. Tablet keeps the old
   stacked order (copy, then video). Desktop is copy left / video right. */
.lpd-hero-grid{
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "top"
    "video"
    "bottom";
  align-content: center;
}
.lpd-hero-copy-top{ grid-area: top; }
.lpd-hero-copy-bottom{ grid-area: bottom; }
.lpd-hero-video{ grid-area: video; margin-bottom: 32px; }
@media (min-width: 768px) and (max-width: 991px){
  .lpd-hero-grid{
    grid-template-areas:
      "top"
      "bottom"
      "video";
  }
  .lpd-hero-video{ margin-bottom: 0; margin-top: 48px; }
}
@media (min-width: 992px){
  .lpd-hero-grid{
    grid-template-columns: 1fr 1.1fr;
    grid-template-areas:
      "top video"
      "bottom video";
    column-gap: 48px;
  }
  .lpd-hero-copy-top{ align-self: end; }
  .lpd-hero-video{ align-self: center; margin: 0; }
}
.lpd-eyebrow{
  color: #d8dad8;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: Poppins, sans-serif;
  font-size: .85rem;
  font-weight: 400;
  margin-bottom: 16px;
}
.lpd-hero .lpd-eyebrow{ margin-bottom: 28px; }
.lpd-h1{
  font-size: 48px;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 40px;
}
.lpd-sub{
  color: #f2f3f2d9;
  font-size: 18px;
  line-height: 1.65;
  margin-bottom: 48px;
}
.lpd-cta-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.lpd-micro{
  display: flex;
  align-items: center;
  gap: 10px;
  color: #979b97;
  font-size: 13px;
  margin-top: 36px;
}
.lpd-micro-dot{
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background-color: #359768;
  flex-shrink: 0;
}

/* VSL player */
.lpd-vsl{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: .8rem;
  overflow: hidden;
  border: 1px solid #303230;
  background-color: #0d261a;
  box-shadow: 0 20px 60px -10px rgba(0,0,0,.6);
}
.lpd-vsl iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* Click-to-watch facade: clean white card so the green play button and
   "Watch this first" pop against the dark hero. */
.lpd-vsl-facade{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background-color: #ffffff;
  border: 0;
  cursor: pointer;
  font-family: Poppins, sans-serif;
}
.lpd-vsl-play-circle{
  width: 84px;
  height: 84px;
  border-radius: 999px;
  background-color: #2a7953;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 8px rgba(42,121,83,.14), 0 12px 32px -8px rgba(13,38,26,.35);
  transition: transform .25s ease, background-color .25s ease;
}
.lpd-vsl-facade:hover .lpd-vsl-play-circle{ transform: scale(1.08); background-color: #359768; }
.lpd-vsl-facade-title{
  margin-top: 6px;
  color: #1d1e1d;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
}
.lpd-vsl-facade-sub{
  color: #6f736f;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Trust strip */
.lpd-trust{
  border-top: 1px solid #ffffff0d;
  background-color: #232423;
  padding: 40px 0;
}
.lpd-trust-label{
  text-align: center;
  color: #979b97;
  font-family: Poppins, sans-serif;
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.lpd-trust-logos{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 40px;
}
.lpd-trust-logos img{
  height: 52px;
  width: auto;
  opacity: .85;
}

/* Sports strip */
.lpd-sports{
  border-top: 1px solid #ffffff0d;
  padding: 48px 0;
}
.lpd-sports-label{
  text-align: center;
  color: #979b97;
  font-family: Poppins, sans-serif;
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.lpd-sports-chips{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  max-width: 880px;
  margin: 0 auto;
}
.lpd-sport-chip{
  border: 1px solid #303230;
  border-radius: .4rem;
  background-color: #232423;
  color: #d8dad8;
  font-size: 13px;
  line-height: 1;
  padding: 8px 14px;
  white-space: nowrap;
}
.lpd-sport-chip-more{
  border-color: #2a7953;
  color: #8ed7b4;
}
.lpd-sports-toggle{
  display: none;
  font-family: Poppins, sans-serif;
  cursor: pointer;
  border-color: #2a7953;
  color: #8ed7b4;
}

/* Walkthrough video (Vimeo, 1.85:1 per the embed's 54.05% padding ratio) */
.lpd-walkthrough-frame{
  position: relative;
  max-width: 920px;
  margin: 0 auto;
  aspect-ratio: 1.8502;
  border-radius: 1.2rem;
  overflow: hidden;
  border: 1px solid #303230;
  background-color: #0d261a;
  box-shadow: 0 20px 60px -10px rgba(0,0,0,.6);
}
.lpd-walkthrough-frame iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Sections */
.lpd-section{
  padding: 112px 0;
  border-top: 1px solid #ffffff0d;
}
.lpd-section-alt{ background-color: #232423; }
.lpd-section-head{
  text-align: center;
  max-width: 1020px;
  margin: 0 auto 72px;
}
.lpd-h2{
  font-size: 36px;
  font-weight: 600;
  line-height: 1.25;
  margin-bottom: 24px;
}
.lpd-section-head p{
  color: #f2f3f2d9;
  font-size: 16px;
  line-height: 1.7;
  max-width: 900px;
  margin: 0 auto;
}

/* Feature deep-dive rows (site-style: image one side, copy the other) */
.lpd-split{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 64px;
}
/* .lpd-split + .lpd-split never matches: each split sits in its own
   .lpd-fade wrapper, so the splits are not siblings. The follow class is
   applied explicitly to every split after the first. */
.lpd-split-follow{ margin-top: 140px; }
@media (min-width: 992px){
  .lpd-split{ min-height: calc(100vh - 73px); }
  .lpd-split-follow{ margin-top: 64px; }
}
.lpd-split-media{ flex: 1 1 440px; min-width: 300px; }
.lpd-split-copy{ flex: 1 1 400px; min-width: 300px; }
.lpd-split-media img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 1.2rem;
}
.lpd-split-copy .lpd-h2{ margin-bottom: 20px; }
.lpd-split-copy > p{
  color: #f2f3f2d9;
  font-size: 16px;
  line-height: 1.7;
}
.lpd-split-list{
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.lpd-split-list li{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: #f2f3f2d9;
  font-size: 15px;
  line-height: 1.6;
}
.lpd-split-list svg{
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  color: #359768;
}
.lpd-split-list strong{ color: #f2f3f2; font-weight: 600; }
.lpd-split-cta{
  display: inline-flex;
  margin-top: 32px;
}

/* Stat chips inside deep-dives (fees, email pricing) */
.lpd-stat-chip{
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  border: 1px solid #2a7953;
  border-radius: .4rem;
  background-color: rgba(42,121,83,.12);
  padding: 12px 18px;
  margin-top: 28px;
}
.lpd-stat-chip strong{
  font-family: Mulish, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #8ed7b4;
}
.lpd-stat-chip span{
  color: #f2f3f2d9;
  font-size: 13px;
}

/* Card grids */
.lpd-grid-3{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.lpd-card{
  background-color: #232423;
  border: 1px solid #303230;
  border-radius: .8rem;
  padding: 32px;
  transition: border-color .25s ease;
}
.lpd-section-alt .lpd-card{ background-color: #1d1e1d; }
.lpd-card:hover{ border-color: #2a7953; }
.lpd-card-tag{
  color: #8ed7b4;
  font-family: Poppins, sans-serif;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.lpd-card h3{
  font-size: 19px;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 12px;
}
.lpd-card p{
  color: #f2f3f2c4;
  font-size: 15px;
  line-height: 1.65;
}
.lpd-grid-3 > .lpd-fade{ height: 100%; }
.lpd-grid-3 .lpd-card{ height: 100%; }
.lpd-card, .lpd-quote-card{
  position: relative;
  transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.lpd-card::after, .lpd-quote-card::after{
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(120% 90% at 18% 0%, rgba(142,215,180,.09), transparent 55%);
  opacity: 0;
  transition: opacity .3s ease;
}
.lpd-card:hover::after, .lpd-quote-card:hover::after{ opacity: 1; }
.lpd-card:hover, .lpd-quote-card:hover{
  border-color: #2a7953;
  transform: translateY(-4px);
  box-shadow: 0 18px 44px -18px rgba(0,0,0,.6);
}
/* Feature icon chips (mirrors the green icon chips in the site's app imagery) */
.lpd-card-icon{
  width: 46px;
  height: 46px;
  border-radius: .6rem;
  background-color: rgba(42,121,83,.16);
  border: 1px solid rgba(42,121,83,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8ed7b4;
  margin-bottom: 20px;
}
.lpd-card-icon svg{ width: 23px; height: 23px; }
.lpd-outcome-card{
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.lpd-outcome-media{
  aspect-ratio: 16 / 10;
  background-color: #1d1e1d;
  border-bottom: 1px solid #303230;
  flex-shrink: 0;
}
.lpd-outcome-media{ position: relative; overflow: hidden; }
.lpd-outcome-media::after{
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 40%;
  background: linear-gradient(to top, #232423, transparent);
  pointer-events: none;
}
.lpd-outcome-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.lpd-outcome-card:hover .lpd-outcome-media img{ transform: scale(1.05); }
.lpd-outcome-body{ padding: 32px; }

/* Testimonials carousel */
.lpd-carousel{ position: relative; }
.lpd-carousel-track{
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: 8px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.lpd-carousel-track::-webkit-scrollbar{ display: none; }
.lpd-quote-card{
  flex-shrink: 0;
  width: min(88vw, 440px);
  scroll-snap-align: center;
  background-color: #232423;
  border: 1px solid #303230;
  border-radius: .8rem;
  padding: 28px;
  display: flex;
  flex-direction: column;
}
.lpd-stars{ display: flex; gap: 3px; margin-bottom: 16px; }
.lpd-stars svg{ width: 16px; height: 16px; color: #359768; }
.lpd-quote-card blockquote{
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  color: #f2f3f2;
  font-size: 15px;
  font-style: italic;
  line-height: 1.7;
  flex: 1;
}
.lpd-quote-by{
  border-top: 1px solid #ffffff1a;
  padding-top: 16px;
}
.lpd-quote-by strong{
  display: block;
  font-family: Mulish, sans-serif;
  font-size: 14px;
  font-weight: 700;
}
.lpd-quote-by span{
  color: #979b97;
  font-size: 13px;
}
.lpd-quote-by span.lpd-quote-meta{
  display: block;
  color: #8ed7b4;
  font-size: 12px;
  margin-top: 4px;
}
.lpd-carousel-arrow{
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid #2a7953;
  background-color: #2a7953;
  color: #f2f3f2;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .25s;
  z-index: 2;
}
.lpd-carousel-arrow:hover{ background-color: #143927; border-color: #143927; }
.lpd-carousel-arrow:disabled{ opacity: .3; cursor: not-allowed; }
.lpd-carousel-arrow svg{ width: 18px; height: 18px; }
.lpd-arrow-prev{ left: -8px; }
.lpd-arrow-next{ right: -8px; }
@media (min-width: 768px){
  .lpd-carousel-arrow{ display: flex; }
}
.lpd-dots{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: 20px;
}
/* The button is a 24x24 hit area (WCAG 2.5.8); the visible dot is ::before. */
.lpd-dot{
  width: 24px;
  height: 24px;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lpd-dot::before{
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background-color: #575b57;
  transition: width .2s ease, background-color .2s ease;
}
.lpd-dot.lpd-dot-active::before{ width: 24px; background-color: #359768; }

/* Process steps */
.lpd-steps{
  position: relative;
  max-width: 1020px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.lpd-steps::before{
  content: "";
  position: absolute;
  top: 28px;
  left: 12%;
  right: 12%;
  height: 1px;
  background: linear-gradient(to right, transparent, #2a7953 15%, #2a7953 85%, transparent);
}
.lpd-step{ position: relative; text-align: center; }
.lpd-step-n{
  position: relative;
  z-index: 1;
  width: 56px;
  height: 56px;
  margin: 0 auto 24px;
  border-radius: 999px;
  background-color: #1d1e1d;
  border: 1px solid #2a7953;
  box-shadow: 0 0 0 6px rgba(42,121,83,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Mulish, sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #8ed7b4;
  line-height: 1;
}
.lpd-step h3{
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 10px;
}
.lpd-step p{
  color: #f2f3f2c4;
  font-size: 15px;
  line-height: 1.65;
}

/* FAQ */
.lpd-faq-list{
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lpd-faq-item{
  background-color: #232423;
  border: 1px solid #303230;
  border-radius: .8rem;
  overflow: hidden;
  transition: border-color .25s ease;
}
.lpd-faq-item.lpd-open{ border-color: #2a7953; border-left: 2px solid #359768; }
.lpd-faq-q{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  padding: 20px 24px;
  color: #f2f3f2;
  font-family: Mulish, sans-serif;
  font-size: 16px;
  font-weight: 700;
}
.lpd-faq-q svg{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #359768;
  transition: transform .3s ease;
}
.lpd-faq-item.lpd-open .lpd-faq-q svg{ transform: rotate(180deg); }
.lpd-faq-a{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.lpd-faq-item.lpd-open .lpd-faq-a{ grid-template-rows: 1fr; }
.lpd-faq-a-inner{ overflow: hidden; }
.lpd-faq-a p{
  padding: 0 24px 20px;
  color: #f2f3f2c4;
  font-size: 15px;
  line-height: 1.7;
}

/* Book section (mirrors the site's demo section; the widget itself renders
   light, so it sits in a white shell like a card) */
.lpd-book{
  scroll-margin-top: 84px;
  background:
    radial-gradient(ellipse at center top, rgba(42,121,83,.18) 0%, transparent 65%),
    #1d1e1d;
}
.lpd-calendly-shell{
  max-width: 860px;
  margin: 0 auto;
  border-radius: 1.2rem;
  background-color: #ffffff;
  padding: 8px;
  box-shadow: 0 20px 80px -20px rgba(0,0,0,.6);
}
.lpd-calendly-shell .calendly-inline-widget{
  min-width: 17.5rem;
  height: 700px;
}
.lpd-lead-form{
  max-width: 860px;
  margin: 0 auto;
  border: 1px solid #ffffff14;
  border-radius: 1.2rem;
  background-color: #232423;
  padding: 28px;
  box-shadow: 0 20px 80px -20px rgba(0,0,0,.6);
}
.lpd-form-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.lpd-field{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lpd-field-full{ grid-column: 1 / -1; }
.lpd-field > span{
  color: #d6d8d6;
  font-size: 13px;
  font-weight: 600;
}
.lpd-field input,
.lpd-field select,
.lpd-field textarea{
  appearance: none;
  border: 1px solid #ffffff1f;
  border-radius: .6rem;
  background-color: #1d1e1d;
  color: #f2f3f2;
  font-family: inherit;
  /* 16px floor: smaller focused inputs trigger the iOS auto-zoom */
  font-size: 16px;
  line-height: 1.4;
  padding: .7rem .9rem;
}
.lpd-field select{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23979b97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .8rem center;
  background-size: 16px;
  padding-right: 2.4rem;
}
.lpd-field select:invalid{ color: #979b97; }
.lpd-field textarea{ resize: vertical; min-height: 84px; }
.lpd-field input:focus,
.lpd-field select:focus,
.lpd-field textarea:focus{
  outline: none;
  border-color: #2a7953;
  box-shadow: 0 0 0 3px rgba(42,121,83,.25);
}
.lpd-form-submit{
  width: 100%;
  margin-top: 20px;
  cursor: pointer;
}
.lpd-form-submit:disabled{ opacity: .7; cursor: default; }
.lpd-form-micro{
  margin-top: 12px;
  text-align: center;
  color: #979b97;
  font-size: 13px;
}
.lpd-book-alt{
  text-align: center;
  color: #979b97;
  font-size: 13px;
  margin-top: 24px;
}
.lpd-book-alt a{ color: #f2f3f2; }

/* Footer */
.lpd-footer{
  border-top: 1px solid #ffffff14;
  background-color: #232423;
  padding: 36px 0;
}
.lpd-footer-inner{
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.lpd-footer-links{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  color: #979b97;
  font-size: 13px;
}
.lpd-footer-links a{ color: #979b97; text-decoration: none; }
.lpd-footer-links a:hover{ color: #f2f3f2; }

/* Sticky mobile CTA */
.lpd-sticky{
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 40;
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  background-color: rgba(29,30,29,.96);
  border-top: 1px solid #ffffff1a;
  backdrop-filter: blur(12px);
  transform: translateY(100%);
  transition: transform .3s ease;
}
.lpd-sticky.lpd-sticky-show{ transform: translateY(0); }
.lpd-sticky .lpd-btn{ flex: 1; }
.lpd-sticky-phone{
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: .4rem;
  border: 1px solid #ffffff4d;
  color: #f2f3f2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lpd-sticky-phone svg{ width: 20px; height: 20px; }
@media (min-width: 1024px){
  .lpd-sticky{ display: none; }
  .lpd-page{ padding-bottom: 0; }
}
@media (max-width: 1023px){
  .lpd-page{ padding-bottom: 76px; }
}

/* Mobile-only tap-target growth: 44px CTAs, taller footer link hit boxes.
   Desktop stays pixel-identical. */
@media (max-width: 991px){
  .lpd-btn{ min-height: 44px; }
  .lpd-footer-links a{ display: inline-block; padding: 8px 0; }
  .lpd-section{ padding: 96px 0; }
  .lpd-hero{ padding: 56px 0; }
  .lpd-section-head{ margin-bottom: 56px; }
  .lpd-split-follow{ margin-top: 120px; }
}

@media (max-width: 767px){
  .lpd-hero{ padding: 48px 0 56px; }
  .lpd-trust-logos{
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 24px;
    gap: 48px;
    padding: 0 24px;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .lpd-trust-logos::-webkit-scrollbar{ display: none; }
  .lpd-trust-logos img{
    flex: 0 0 auto;
    scroll-snap-align: center;
    height: 48px;
  }
  .lpd-h1{ font-size: 34px; }
  .lpd-h2{ font-size: 28px; }
  .lpd-sub{ font-size: 16px; }
  .lpd-section{ padding: 80px 0; }
  .lpd-section-head{ margin-bottom: 48px; }
  .lpd-split{ gap: 44px; }
  .lpd-split-follow{ margin-top: 140px; }
  .lpd-split-cta{ margin-top: 40px; }
  .lpd-split-list{ margin-top: 28px; }
  .lpd-sports-chips:not(.lpd-sports-expanded) .lpd-sport-chip:not(.lpd-sports-toggle):nth-child(n+10){ display: none; }
  .lpd-sports-toggle{ display: inline-block; }
  .lpd-steps{ grid-template-columns: 1fr; gap: 40px; }
  .lpd-steps::before{ display: none; }
  .lpd-calendly-shell .calendly-inline-widget{ height: 620px; }
  .lpd-lead-form{ padding: 20px 16px; }
  .lpd-form-grid{ grid-template-columns: 1fr; }
}

/* CT-041: the "Bring your own agent" section. It reuses the page's own step
   list (.lpd-steps) and check list (.lpd-split-list) so it inherits their
   mobile behaviour; only the intro width, the security card spacing and the
   centred button row are new. */
.lpd-agent-intro {
  max-width: 44rem;
  margin: 1rem auto 0;
  font-size: 1.0625rem;
  line-height: 1.6;
  opacity: .9;
}
.lpd-agent-secure {
  margin-top: 2.5rem;
  padding: 2rem;
}
.lpd-agent-secure h3 {
  margin: 0 0 1.25rem;
}
.lpd-agent-cta {
  justify-content: center;
  margin-top: 2rem;
}
@media (max-width: 640px) {
  .lpd-agent-secure { padding: 1.25rem; }
}

/* CT-041: no stray last word in body copy either. "pretty" is the paragraph
   counterpart of the "balance" used on headings: it only adjusts the last few
   lines, so it costs nothing on long text, and browsers without it wrap as
   before. */
.lpd-page p,
.lpd-page li {
  text-wrap: pretty;
}
