/* =========================
   EFP Life Group – Responsive Styles
   (Drop-in replacement for styles.css)
   ========================= */

/* ---------- Base / Vars ---------- */
:root{
  --blue:#014baf;
  --text:#26201b;
  --bg:#fcfcfc;
  --muted:#a39f9d;
  --card:#ffffff;
  --shadow:0 6px 18px rgba(0,0,0,.08);
  --shadow-strong:0 12px 28px rgba(0,0,0,.12);
  --radius:10px;
}

*{box-sizing:border-box}
html,body{height:100%}

/* Prevent any horizontal overflow on mobile */
html,body{
  overflow-x:hidden;
}

body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Media-safe images/SVGs so nothing can force the page wider than the viewport */
img,svg,video,canvas{max-width:100%;height:auto}

/* ---------- Utilities ---------- */
.container{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}
.center{text-align:center}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  font-weight:700;
  opacity:.9;
}
.section{padding:64px 0}
.section-title{
  font-family:Poppins,Inter,Arial,sans-serif;
  font-weight:700;
  font-size:1.75rem;
  margin:0 0 .25rem;
}
.section-subtitle{
  margin:.25rem 0 32px;
  font-size:.75rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}
.muted{color:#6b6b6b}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:12px 20px;
  border-radius:8px;
  border:2px solid transparent;
  font-weight:700;
  text-decoration:none;
  transition:all .2s ease;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.btn-primary{background:var(--blue); color:#fff}
.btn-primary:hover{filter:brightness(.95)}
.btn-ghost{background:#fff; color:var(--blue); border-color:#fff}
.btn-ghost:hover{background:transparent; color:#fff; border-color:#fff}
.btn-small{padding:10px 14px; font-size:.85rem}

/* ---------- Header ---------- */
.site-header{
  width:100%;
  background:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,.06);
  position:relative;
  z-index:10;
}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:68px;
  gap:20px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:inherit;
}
.brandmark{width:40px; height:40px; display:grid; place-items:center}
.brandmark svg{width:40px; height:40px; fill:var(--blue)}
.brandtext{font-weight:600; letter-spacing:.02em}
.brandtext strong{font-weight:800; margin-right:6px}

.main-nav ul{
  list-style:none;
  padding:0; margin:0;
  display:flex; gap:22px;
}
.main-nav a{
  text-decoration:none;
  color:var(--text);
  font-weight:600;
  font-size:.95rem;
  opacity:.9;
}
.main-nav a:hover{opacity:1}

/* ---------- HERO (desktop base) ---------- */
.hero{
  position:relative;
  width:100%;
  min-height:1400px;                 /* keep desktop height */
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-media{
  position:absolute; inset:0;
  background-image:var(--hero-image);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(0,0,0,.45), rgba(0,0,0,.45));
}

/* Spacing */
.hero-inner{
  position:relative; z-index:1;
  padding: 2px 20px 56px;            /* compact top padding */
  text-align:center;
  color:#fff;
}
.hero .eyebrow{ color:#fff; opacity:.9; margin-bottom:4px }

/* Headline */
.hero h1{
  font-family:Poppins,Inter,Arial,sans-serif;
  font-weight:900;
  font-size:clamp(36px, 6.8vw, 5rem);
  line-height:1.15;
  margin: 0 auto 10px;
  max-width:800px;                   /* base width */
  text-shadow:0 2px 8px rgba(0,0,0,.2);
}

/* Larger hero CTA button */
.btn-hero-quote{
  min-width: 380px;
  height: 68px;
  font-size: 22px;
  letter-spacing: .04em;
  border-width: 2px;
}

/* === Desktop-only: ensure the headline fits in 4 lines === */
@media (min-width: 1024px){
  .hero{
    align-items: flex-start;         /* keep content a bit higher (as set earlier) */
  }
  .hero-inner{
    padding-top: 40px;               /* tasteful top space on desktop */
  }
  .hero h1{
    max-width: 960px;                /* more width so “Exceptional Service &” stays on one line */
    word-break: normal;
    white-space: normal;
  }
}

/* Mobile refinements (unchanged) */
@media (max-width: 640px){
  .hero-inner{ padding: 4px 16px 44px; }
  .hero h1{ margin: 0 auto 8px; }
  .btn-hero-quote{
    min-width: 280px;
    height: 58px;
    font-size: 18px;
  }
}

/* ===== Desktop hero: reduce top space (gentle) ===== */
@media (min-width: 1024px){
  .hero{
    align-items: flex-start;          /* move content toward the top */
  }
  .hero-inner{
    padding-top: 300px;                /* small, tasteful top space */
    padding-bottom: 46px;             /* keep your existing bottom spacing */
  }
  .hero h1{
    margin: 0 auto 10px;              /* slightly tighter under the title */
  }
  .hero .eyebrow{
    margin-bottom: 4px;               /* tiny reduction */
  }
}

/* Mobile — make hero H1 much smaller; keep words intact */
@media (max-width: 640px){
  .hero h1{
    font-size: clamp(12px, 3.9vw, 18px);  /* ↓ smaller overall */
    line-height: 1.22;
    letter-spacing: 0;
    margin: 0 auto 12px;
    max-width: 90vw;

    /* no mid-word breaks */
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal;
    hyphens: none;
  }
}

/* Small phones */
@media (max-width: 480px){
  .hero h1{
    font-size: clamp(11px, 3.6vw, 16px);  /* ↓ a bit more */
  }
}

/* Very narrow devices */
@media (max-width: 360px){
  .hero h1{
    font-size: clamp(10px, 3.4vw, 15px);
  }
}

/* === EFP — Hero tweaks (override) === */

/* Add top padding to hero on all screens */
.hero .hero-inner{
  padding-top: 140px !important;   /* pushes content down below sticky header */
}

/* Larger top padding on desktop/tablet */
@media (min-width: 1024px){
  .hero .hero-inner{
    padding-top: 320px !important; /* adjust to taste (260–380px) */
  }
}

/* Mobile: smaller hero typography + sensible spacing */
@media (max-width: 640px){
  .hero .hero-inner{
    padding-top: 96px !important;  /* keeps breathing room under navbar */
    padding-bottom: 40px !important;
  }

  /* shrink headline for phones */
  .hero h1{
    font-size: clamp(26px, 8.2vw, 34px) !important;
    line-height: 1.18 !important;
    letter-spacing: 0 !important;
  }

  /* optional: slightly smaller eyebrow and CTA */
  .hero .eyebrow{ font-size: 0.7rem !important; }
  .btn-hero-quote{
    min-width: 240px !important;
    height: 50px !important;
    font-size: 16px !important;
  }
}



/* ---------- OUR SOLUTIONS (v2) ---------- */
.solutions-v2{
  background:#fff;
  padding:160px 0 170px;
  text-align:center;
}
.solutions-v2 .container{
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}
.solutions-v2__title{
  font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(32px, 3.8vw, 56px);
  line-height:1.15;
  margin:0 0 14px;
  color:#0d0d0d;
}
.solutions-v2__label{
  margin:0 0 64px;
  font-size:15px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#3c3c3c;
  opacity:.9;
  font-weight:700;
}
.solutions-v2__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:84px;
  align-items:start;
}
.solutions-v2__card{background:transparent; padding:0}
.solutions-v2__icon{margin:0 auto 22px; width:156px; height:156px}
.solutions-v2__icon svg{
  width:100%; height:100%;
  stroke:#0f57c9; fill:none; stroke-width:4;
  stroke-linecap:round; stroke-linejoin:round;
}
.solutions-v2__heading{
  font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(22px, 2.6vw, 34px);
  line-height:1.3; margin:0 0 16px; color:#111;
}
.solutions-v2__text{
  max-width:560px; margin:0 auto;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:18px; line-height:1.75; color:#222;
}

/* ---------- WHY (v2) ---------- */
.why-v2{
  position:relative;
  width:100%;
  min-height:1400px;
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
  background-image:var(--why-image);
}
.why-v2::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.28));
  pointer-events:none;
}
.why-v2__inner{
  position:relative; z-index:1;
  width:100%; max-width:1500px;
  margin:0 auto; padding:80px 24px;
  display:flex; align-items:center;
  min-height:inherit;
}
.why-v2__card{
  position:relative; width:100%;
  max-width:620px; min-width:540px; min-height:860px;
  margin:100px 0 100px; color:#ffffff;
  background:rgba(18,14,11,0.78);
  border-radius:20px; box-shadow:0 14px 40px rgba(0,0,0,.35);
  padding:72px 44px 44px 92px; backdrop-filter:saturate(1.05);
}
.why-v2__card::before{
  content:""; position:absolute;
  left:30px; top:70px; bottom:110px; width:3px;
  background:rgba(255,255,255,.62); border-radius:2px;
}
.why-v2__title{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  margin:0 0 26px; font-size:32px; line-height:1.25;
}
.why-v2__card p{
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px; line-height:1.85; margin:0 0 26px; color:#f1efe9;
}
.why-v2__card em{font-style:italic}
.why-v2__btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 18px; border-radius:10px; border:2px solid rgba(255,255,255,.75);
  color:#fff; text-decoration:none;
  font-family:Georgia,"Times New Roman",serif; font-size:18px; line-height:1;
  margin-top:12px; transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.why-v2__btn .arrow{transition:transform .2s ease}
.why-v2__btn:hover{background:rgba(255,255,255,.08); border-color:#fff; transform:translateY(-1px)}
.why-v2__btn:hover .arrow{transform:translateX(2px)}

/* ---------- Carriers (v7) ---------- */
.carriers-v7{
  width:100%;
  background:#fff;
  padding:24px 0 64px;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:#1a1a1a;
}
.carriers-v7__container{
  width:min(1380px, 100vw); /* make sure we never exceed viewport width */
  margin-inline:auto;
  padding-inline:clamp(8px, 2vw, 16px);
  overflow:hidden; /* belt & suspenders against marquee overflow */
}
.carriers-v7__head h2{
  margin:0 0 8px;
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:300;
  font-size:clamp(38px, 4.2vw, 52px);
  letter-spacing:.01em;
}
.carriers-v7__head p{
  margin:0 0 18px;
  font-size:clamp(14px, 1.1vw, 17px);
  line-height:1.6; color:#666; max-width:780px;
}
.carriers-v7__group-title{
  margin:20px 0 12px;
  font-weight:300; font-size:clamp(22px, 2.2vw, 28px); color:#333;
}
.ticker-viewport{
  background:#f2f2f2;
  border-radius:6px;
  overflow:hidden; /* critical */
  padding:26px 0;
  min-height:118px;
  margin:0 0 18px;
}
.ticker-track{
  display:flex; width:200%;
  animation:scroll-rtl 36s linear infinite;
}
.ticker{
  flex:0 0 50%;
  display:flex; align-items:center;
  gap:56px; padding:0 12px;
}
.speed-2{animation-duration:39s}
.speed-3{animation-duration:42s}
.speed-4{animation-duration:45s}
@keyframes scroll-rtl{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.logo-item{
  flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:max-content;
  padding:0 4px; background:transparent; white-space:nowrap;
}
.logo-text{
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:600; font-size:30px; line-height:1; color:#2c2c2c;
}
.logo-item img{
  display:block; max-height:56px; width:auto; background:transparent;
}

/* ---------- CTA (v3) ---------- */
.cta-v3{width:100%; background:#014baf; color:#fff}
.cta-v3__inner{
  max-width:1200px; margin:0 auto; padding:78px 24px 96px; text-align:center;
}
.cta-v3__lead{
  margin:0 0 24px;
  font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:300; line-height:1.35; letter-spacing:.01em;
  font-size:clamp(18px, 1.4vw + 10px, 28px);
}
.cta-v3__lead strong{font-weight:400}
.cta-v3__btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:64px; min-width:360px; padding:0 28px;
  border-radius:12px; border:2px solid #ffffff;
  color:#ffffff; background:transparent; text-decoration:none;
  font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:200; font-size:26px; letter-spacing:.03em; text-transform:uppercase;
  transition:background .2s ease, color .2s ease, box-shadow .2s ease, transform .12s ease;
}
.cta-v3__btn:hover{background:#ffffff; color:#014baf}
.cta-v3__btn:active{transform:translateY(1px)}
.cta-v3__btn:focus-visible{
  outline:3px solid #ffffff; outline-offset:3px;
  box-shadow:0 0 0 4px rgba(255,255,255,.35);
}

/* ---------- Footer (lite) ---------- */
.footer-lite{
  background:#ffffff; color:#0b0b0b; width:100%;
  border-top:1px solid rgba(0,0,0,.06);
  padding-inline:0;
}
.footer-lite__inner{
  width:min(1600px, 100vw); /* ensure no overflow */
  margin-inline:auto;
  padding:40px clamp(8px, 1.5vw, 16px) 24px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:28px; align-items:start;
}
.footer-lite__brand{display:flex; align-items:center; gap:12px}
.footer-lite__logo{width:60px; height:60px; object-fit:contain; display:block}
.footer-lite__wordmark .efp{
  display:block; font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:600; font-size:26px; letter-spacing:.02em; line-height:1.1;
}
.footer-lite__wordmark .life-group{
  display:block; margin-top:2px;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:600; font-size:11px; letter-spacing:.34em;
}
.footer-lite__head{
  margin:4px 0 10px;
  font-family:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:600; font-size:20px; letter-spacing:.02em; text-transform:uppercase;
}
.footer-lite__list{
  list-style:none; margin:0; padding:0; display:grid; gap:8px;
}
.footer-lite__list a{
  color:#0b0b0b; text-decoration:none;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:500; font-size:16px;
}
.footer-lite__list a:hover{text-decoration:underline}
.contact-list{gap:6px}
.contact-list li{display:flex; align-items:flex-start; gap:8px}
.contact-list address{
  font-style:normal;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:500; font-size:16px; line-height:1.35; margin:0;
}
.contact-list .ico{width:18px; height:18px; display:inline-grid; place-items:center; margin-top:2px; flex:0 0 18px}
.contact-list .ico svg{width:18px; height:18px; fill:#0b0b0b}

/* ===================================================
   RESPONSIVE ENHANCEMENTS (Mobile & Tablet)
   =================================================== */

/* --- Tablets down: keep desktop look but rein-in extremes --- */
@media (max-width: 1200px){
  .hero{min-height:1200px}
}
@media (max-width: 1024px){
  .hero{min-height:920px}
  /* iOS/Android: disable fixed backgrounds for smoother scroll & to avoid odd gaps */
  .why-v2{background-attachment:scroll}
}

/* --- Header / Navigation: wrap neatly, avoid pushing width --- */
@media (max-width: 900px){
  .nav-wrap{
    height:auto;
    padding:10px 0;
    flex-wrap:wrap;
    gap:10px 14px;
  }
  .brand{order:1}
  .btn-small{order:2}
  .main-nav{order:3; width:100%}
  .main-nav ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px 16px;
    margin:6px 0 4px;
  }
  .main-nav a{font-size:.9rem}
}

/* --- Solutions grid: 2 cols on medium, 1 col on phones --- */
@media (max-width: 1024px){
  .solutions-v2__grid{gap:56px}
}
@media (max-width: 900px){
  .solutions-v2__grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 640px){
  .solutions-v2{padding:120px 0 130px}
  .solutions-v2__grid{grid-template-columns:1fr; gap:48px}
  .solutions-v2__icon{width:128px; height:128px}
  .solutions-v2__text{font-size:16px; line-height:1.7; padding:0 6px}
}

/* --- Hero on phones: readable & compact, no overflow --- */
@media (max-width: 640px){
  .hero{min-height:560px}
  .hero-inner{padding:56px 16px}
  .hero h1{font-size:clamp(30px, 10vw, 48px)}
  .btn{padding:10px 16px}
}

/* --- Why card mobile sizing already provided; keep but tighten a bit --- */
@media (max-width: 740px){
  .why-v2{min-height:760px}
  .why-v2__inner{padding:60px 16px}
  .why-v2__card{
    max-width:640px; min-width:0; min-height:600px;
    margin:64px 0 72px; padding:48px 26px 30px 64px; border-radius:18px;
  }
  .why-v2__card::before{left:22px; top:34px; bottom:90px; width:2px}
  .why-v2__title{font-size:26px; margin-bottom:22px}
  .why-v2__card p{font-size:19px; margin-bottom:22px; line-height:1.75}
  .why-v2__btn{font-size:16px}
}

/* --- Carriers stripe tweaks on phones --- */
@media (max-width: 640px){
  .carriers-v7__container{padding-inline:12px}
  .ticker{gap:34px}
  .logo-text{font-size:26px}
}

/* --- CTA button fit phones --- */
@media (max-width:640px){
  .cta-v3__inner{padding:64px 16px 80px}
  .cta-v3__btn{min-width:260px; height:58px; border-radius:10px; font-size:20px}
}

/* --- Footer responsive (already present, keep + ensure width safety) --- */
@media (max-width: 980px){
  .footer-lite__inner{
    width:min(900px, 100vw);
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
}
@media (max-width: 560px){
  .footer-lite__inner{
    width:min(600px, 100vw);
    grid-template-columns:1fr;
    gap:16px;
    padding:32px clamp(8px, 2.5vw, 16px) 20px;
  }
  .footer-lite__logo{width:54px; height:54px}
  .footer-lite__wordmark .efp{font-size:24px}
  .footer-lite__head{font-size:18px}
  .footer-lite__list a, .contact-list address{font-size:15px}
}

/* --- Reduced Motion --- */
@media (prefers-reduced-motion: reduce){
  .ticker-track{animation:none; width:auto}
  .ticker{flex-wrap:wrap; gap:28px}
}


/* ===== Quote Modal (compact version) ===== */
body.modal-open { overflow-x: hidden; } /* keep body from ever scrolling horizontally */

.modal{
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
}
.modal.is-open{
  display: grid;
  place-items: center;
}
.modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

/* dialog: narrower, tighter padding, no internal scrollbar */
.modal__dialog{
  position: relative;
  z-index: 1;
  width: min(600px, 92vw);              /* ↓ narrower than before */
  background: #fff;
  border-radius: 12px;                  /* slightly tighter radius */
  box-shadow: var(--shadow-strong);
  padding: clamp(16px, 2.5vw, 22px);    /* ↓ smaller padding */
  /* no internal vertical scrollbars */
  max-height: none;
  overflow: visible;
}

.modal__title{
  margin: 2px 0 12px;                   /* ↓ less space under title */
  text-align: center;
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight: 700;
  letter-spacing: .02em;
  font-size: clamp(20px, 2vw, 26px);    /* slightly smaller */
  color: #0b0b0b;
}

.modal__close{
  position: absolute;
  top: 8px; right: 8px;
  width: 32px; height: 32px;            /* ↓ smaller close button */
  display: grid; place-items: center;
  border-radius: 999px;
  border: 2px solid #d8d8d8;
  background: #fff;
  color: #111;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .12s ease;
}
.modal__close:hover{ background:#f3f3f3; border-color:#c9c9c9; transform: translateY(-1px) }

.quote-form .req{ color:#e53935; font-weight:700 }

/* Compact form layout */
.form-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;                            /* ↓ tighter gaps */
  margin-top: 4px;
}
.form-grid .span-2{ grid-column: 1 / -1; }

.form-field label{
  display:block;
  font-weight: 600;
  font-size: 13px;                      /* ↓ slightly smaller */
  margin: 0 0 4px;                      /* ↓ less label gap */
}
.form-field input,
.form-field select{
  width: 100%;
  height: 42px;                         /* ↓ shorter controls */
  border: 1px solid #d7d7d7;
  border-radius: 8px;                    /* ↓ slightly smaller radius */
  padding: 0 12px;                       /* ↓ tighter padding */
  font-size: 15px;                       /* ↓ a touch smaller */
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
  background:#fff;
}
.form-field input:focus,
.form-field select:focus{
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(1,75,175,.12);
}

.modal__submit{
  width: 100%;
  height: 50px;                          /* ↓ shorter button */
  margin-top: 12px;                      /* ↓ less margin above submit */
  border-radius: 10px;
  font-size: 16px;
}

/* Mobile tightening */
@media (max-width: 560px){
  .modal__dialog{
    width: min(560px, 96vw);
    padding: 14px 14px;                  /* very compact padding on phones */
    border-radius: 10px;
  }
  .form-grid{ grid-template-columns: 1fr; gap: 10px; }
  .modal__submit{ height: 48px; font-size: 15px; }
  .modal__close{ top: 6px; right: 6px; width: 30px; height: 30px; font-size: 18px; }
}

/* Make absolutely sure nothing causes horizontal scroll anywhere */
html, body { overflow-x: hidden; }
.modal__dialog, .modal, .modal * { max-width: 100%; }











/* ---------------------------
   How It works
---------------------------- */
:root{
  --blue:#014BAF;
  --ink:#111418;
  --muted:#667085;
  --line:#e6e8ee;
  --bg:#ffffff;
  --bg-2:#f5f7fb;
  --radius:12px;
  --shadow:0 10px 30px rgba(3,10,27,.12);
  --shadow-2:0 16px 40px rgba(0,0,0,.18);
  --wrap: min(1200px, 92vw);
}

/* Reset-ish */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  font-size:17px;
}

/* Utilities */
.wrap{width:var(--wrap); margin-inline:auto}
.center{text-align:center}
.muted{color:var(--muted)}
.section{padding:72px 0}
h1,h2,h3,h4,h5,h6{font-family:Poppins, Inter, Arial, sans-serif; margin:0 0 10px; line-height:1.25}
h1{font-size:clamp(46px, 5.4vw, 60px); font-weight:700}
h2{font-size:clamp(30px, 3.8vw, 38px); font-weight:700}
h3{font-size:clamp(22px, 2.2vw, 26px); font-weight:600}
h4{font-size:22px; font-weight:600}
p{margin:0 0 12px}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:Poppins, Inter, Arial, sans-serif;
  padding:0 22px; height:54px; border-radius:10px;
  font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  text-decoration:none; transition:.18s ease-in-out; cursor:pointer;
}
.btn-primary{ background:var(--blue); color:#fff; border:2px solid var(--blue) }
.btn-primary:hover{ filter:brightness(1.05); transform:translateY(-1px) }
.btn-outline{ background:transparent; color:#fff; border:2px solid #fff; }
.btn-outline:hover{ background:#fff; color:var(--blue) }

/* ---------------------------
   HERO (min-height 800px, centered content, content width 800px)
---------------------------- */
.hero{
  position:relative; width:100%; min-height:800px;
  display:grid; place-items:center; text-align:center; color:#fff;
  background:
    linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.45)),
    url('https://images.unsplash.com/photo-1551836022-d5d88e9218df?q=80&w=1800&auto=format&fit=crop') center/cover no-repeat;
}
.hero .wrap{ width:min(800px, 92vw); }
.hero .sub{font-size:19px; opacity:.92}

/* ---------------- Roadmap v9 (scoped) ---------------- */
:root{
  --rv9-blue:#014BAF;
  --rv9-ink:#0f172a;
  --rv9-muted:#667085;
  --rv9-card:#ffffff;
  --rv9-line:#e8eefc;
  --rv9-wrap: min(1280px, 94vw);
  --rv9-shadow: 0 12px 30px rgba(1, 75, 175, .08);
}

#roadmap-v9{
  padding: 110px 0 128px;
  background:#fff;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--rv9-ink);
}

#roadmap-v9 .roadmap-v9__head{
  width:var(--rv9-wrap);
  margin:0 auto 28px;
  text-align:center;
}

#roadmap-v9 .roadmap-v9__head h2{
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(34px, 4.2vw, 46px);
  line-height:1.22;
  margin:0;
}
#roadmap-v9 .roadmap-v9__head h2.accent{
  color:var(--rv9-blue);
  margin-top:2px;
}
#roadmap-v9 .roadmap-v9__head .sub{
  max-width: 980px;
  margin:14px auto 0;
  color:var(--rv9-muted);
  font-size:clamp(16px, 1.3vw, 18px);
  line-height:1.75;
}

/* cards grid */
#roadmap-v9 .roadmap-v9__grid{
  width:var(--rv9-wrap);
  margin: 34px auto 0;
  display:grid;
  grid-auto-rows: 1fr;
  grid-template-columns: repeat(4, 340px);
  gap: 28px;
  justify-content:center;
  justify-items:stretch;
}

/* card */
#roadmap-v9 .rv9-card{
  position:relative;
  background:var(--rv9-card);
  border:1px solid var(--rv9-line);
  border-radius:18px;
  box-shadow:var(--rv9-shadow);
  padding: 34px 28px 30px;
  text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  min-height: 440px;
}

/* number badge */
#roadmap-v9 .rv9-badge{
  position:absolute;
  top:-28px; left:50%; transform:translateX(-50%);
  width:58px; height:58px; border-radius:999px;
  background:#fff; color:var(--rv9-blue);
  border:3px solid var(--rv9-blue);
  display:grid; place-items:center;
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700; font-size:20px;
}

/* icon block */
#roadmap-v9 .rv9-icon{
  width:118px; height:118px;
  border-radius:18px;
  background: #f3f6ff;
  display:grid; place-items:center;
  margin-top:6px; margin-bottom:18px;
}
#roadmap-v9 .rv9-icon svg{
  width:78px; height:78px; color:#1f5fd1;
  fill: currentColor;
}

/* titles & body inside cards */
#roadmap-v9 .rv9-card h3{
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700;
  font-size: 22px;
  margin: 8px 0 10px;
  line-height:1.3;
}
#roadmap-v9 .rv9-card p{
  color:var(--rv9-muted);
  font-size: 17px;
  line-height:1.7;
  max-width: 90%;
  margin-inline:auto;
}

/* responsive */
@media (max-width: 1280px){
  #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: repeat(2, 340px); }
}
@media (max-width: 740px){
  #roadmap-v9 .roadmap-v9__grid{
    grid-template-columns: minmax(280px, 1fr);
    gap:24px;
    padding-inline:16px;
    justify-content:center;
  }
}
@media (max-width: 1200px){
  #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: repeat(2, minmax(320px, 1fr)); }
}
@media (max-width: 640px){
  #roadmap-v9{ padding: 84px 0 100px }
  #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: 1fr; }
  #roadmap-v9 .rv9-card{ min-height: 420px }
}

/* ---------- Our Products (YouTube) ---------- */
.products-yt{
  position:relative;
  padding:82px 0 94px;
  color:#fff;
  background:
    linear-gradient(0deg, rgba(0,0,0,.60), rgba(0,0,0,.60)),
    url('https://images.unsplash.com/photo-1524499982521-1ffd58dd89ea?q=80&w=1800&auto=format&fit=crop')
    center/cover no-repeat fixed;
}
.products-yt__wrap{ width:min(1400px, 95vw); margin:0 auto }
.products-yt__title{
  text-align:center; font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700; font-size:clamp(30px, 3.5vw, 44px); margin:0 0 22px;
}

/* grid */
.pyt-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(360px, 1fr));
  gap:28px;
}

/* card */
.pyt-card{
  background:rgba(20,22,26,.92);
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  box-shadow:0 16px 40px rgba(0,0,0,.25);
  padding:18px 18px 16px;
  display:flex; flex-direction:column; gap:14px;
}

/* YouTube container */
.yt-wrap{
  position:relative; border-radius:14px; overflow:hidden; background:#000;
  aspect-ratio:16/9; min-height:280px;
}
.yt-frame{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

/* text + bullets */
.pyt-card h3{
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:700;
  margin:2px 0 6px; color:#fff; letter-spacing:.02em; font-size:20px;
}
.pyt-list{
  list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px;
  color:#dbe7fb; font-size:15.5px;
}
.pyt-list .tick{
  width:16px; height:16px; display:inline-block; vertical-align:-2px;
  margin-right:10px; border-radius:50%;
  background:conic-gradient(#58c17a 0 75%, transparent 75% 100%);
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/100% no-repeat;
}

/* taller cards + buttons */
.products-yt .pyt-card{ min-height:560px; }
.products-yt .btn-cta{
  align-self:stretch; text-align:center; text-decoration:none; cursor:pointer;
  height:48px; line-height:48px; border-radius:12px;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:600; letter-spacing:.03em;
  font-size:14px; text-transform:uppercase;
  background:#014BAF; color:#fff; border:1px solid #014BAF;
  transition:transform .12s ease, filter .15s ease, box-shadow .15s ease;
}
.products-yt .btn-cta:hover{ filter:brightness(1.05); box-shadow:0 8px 20px rgba(1,75,175,.35) }
.products-yt .btn-cta:active{ transform:translateY(1px) }

@media (max-width: 680px){
  .products-yt .pyt-card{ min-height:540px; }
  .products-yt .btn-cta{ height:46px; line-height:46px; }
}

@media (max-width: 1200px){
  .pyt-grid{ grid-template-columns:repeat(2, minmax(340px, 1fr)); }
}
@media (max-width: 680px){
  .pyt-grid{ grid-template-columns:1fr; }
  .yt-wrap{ min-height:220px; }
}

/* ===== Success / Tools (v4) ===== */
:root{
  --sv4-blue:#014BAF;
  --sv4-ink:#0f172a;
  --sv4-muted:#667085;
  --sv4-border:#e9edf6;
  --sv4-shadow:0 18px 55px rgba(1,75,175,.10);
  --sv4-wrap:min(1320px, 96vw);
}

.success-v4{
  background:#ffffff;
  color:var(--sv4-ink);
  padding:120px 0 140px;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

.success-v4 .sv4-container{ width:var(--sv4-wrap); margin:0 auto; }
.success-v4 .sv4-head{ text-align:center; margin-bottom:28px; }

.success-v4 .sv4-head h2{
  margin:0;
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(34px, 4vw, 48px);
  line-height:1.22;
}
.success-v4 .sv4-head .accent{ display:block; color:var(--sv4-blue); }

.success-v4 .sv4-sub{
  max-width:980px; margin:16px auto 0;
  color:var(--sv4-muted);
  font-size:clamp(16px, 1.3vw, 18px);
  line-height:1.75;
}

/* Grid */
.success-v4 .sv4-grid{
  margin-top:34px;
  display:grid;
  grid-template-columns:repeat(3, minmax(420px, 1fr));
  gap:28px;
  justify-content:center;
}

/* Card */
.success-v4 .sv4-card{
  background:#fff;
  border:1px solid var(--sv4-border);
  border-radius:20px;
  padding:34px 34px 36px;
  box-shadow:var(--sv4-shadow);
  min-height:320px;
  display:flex; flex-direction:column;
}

.success-v4 .sv4-icon{
  width:66px; height:66px;
  border-radius:18px;
  background:#eaf1ff;
  display:grid; place-items:center;
  margin-bottom:16px;
}
.success-v4 .sv4-icon svg{ width:34px; height:34px; fill:#1f5fd1; }

.success-v4 h3{
  font-family:Poppins, Inter, Arial, sans-serif;
  font-weight:700;
  font-size:22px;
  margin:6px 0 10px;
  line-height:1.35;
}

.success-v4 p{
  color:var(--sv4-muted);
  font-size:17px;
  line-height:1.75;
}

/* Responsive */
@media (max-width: 1200px){
  .success-v4 .sv4-grid{ grid-template-columns:repeat(2, minmax(380px, 1fr)); }
}
@media (max-width: 720px){
  .success-v4{ padding:96px 0 112px; }
  .success-v4 .sv4-grid{ grid-template-columns:minmax(280px, 1fr); gap:22px; }
  .success-v4 .sv4-card{ min-height:300px; }
}

/* ===== CTA + Modal (v1) ===== */
:root{
  --cta-blue:#014BAF;
  --cta-ink:#0f172a;
  --cta-muted:#6c7686;
  --cta-radius:14px;
}

.cta-quote-v1{ background:var(--cta-blue); color:#fff; width:100%; text-align:center; }
.cta-quote-v1 .cta-q__inner{ max-width: 1100px; margin: 0 auto; padding: 84px 16px 110px; }
.cta-quote-v1 .cta-q__lead{
  margin:0 0 10px;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:700;
  font-size: clamp(20px, 2.2vw + 14px, 34px);
  line-height:1.35;
}
.cta-quote-v1 .cta-q__sub{
  margin:0 0 22px;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:600;
  font-size: clamp(18px, 2vw + 10px, 28px);
  line-height:1.35;
}

/* button */
.cta-quote-v1 .cta-q__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width: 360px; height: 56px; padding:0 28px;
  border-radius: 12px; border:2px solid #ffffff; color:#ffffff; background: transparent;
  text-decoration:none; font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; letter-spacing:.03em;
  font-size: 18px; text-transform:uppercase;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .1s ease;
}
.cta-quote-v1 .cta-q__btn:hover{
  background:#ffffff; color:var(--cta-blue);
  box-shadow:0 10px 26px rgba(255,255,255,.22);
}
.cta-quote-v1 .cta-q__btn:active{ transform:translateY(1px); }

/* overlay + dialog */
.cta-quote-v1 .cta-q__overlay[hidden]{ display:none; }
.cta-quote-v1 .cta-q__overlay{
  position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.55);
  display:grid; place-items:center; padding: 20px;
}
.cta-quote-v1 .cta-q__dialog{
  width:min(720px, 96vw);
  background:#fff; color:var(--cta-ink);
  border-radius: var(--cta-radius);
  box-shadow: 0 24px 70px rgba(0,0,0,.35);
  padding: 26px 22px 22px; position:relative;
}

/* close button */
.cta-quote-v1 .cta-q__close{
  position:absolute; top:12px; right:12px; width:38px; height:38px; border-radius:50%;
  background:#f3f4f6; color:#111; border:0; cursor:pointer; font-size:24px; line-height:1;
  display:grid; place-items:center;
}
.cta-quote-v1 .cta-q__dialog-title{
  margin:8px 0 14px; text-align:center;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:800; font-size:28px;
}

/* form */
.cta-quote-v1 .cta-q__form{ display:block; }
.cta-quote-v1 .cta-q__row{ margin-bottom:14px; }
.cta-quote-v1 .cta-q__row--2{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
@media (max-width:640px){ .cta-quote-v1 .cta-q__row--2{ grid-template-columns:1fr; } }

.cta-quote-v1 .cta-q__field label{
  display:block; font-weight:600; font-size:14px; color:#1d2430; margin:0 0 6px;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
.cta-quote-v1 .cta-q__field .req{ color:#e11d48; }

.cta-quote-v1 input[type="text"],
.cta-quote-v1 input[type="email"],
.cta-quote-v1 input[type="tel"],
.cta-quote-v1 input[type="date"],
.cta-quote-v1 select{
  width:100%; height:48px; border-radius:10px; border:1px solid #e5e7eb;
  background:#fff; color:#0f172a; padding:0 14px; font-size:16px;
  outline:none; transition:border-color .15s ease, box-shadow .15s ease;
}
.cta-quote-v1 input::placeholder{ color:#a0a6b2; }
.cta-quote-v1 select{ padding-right:36px; }

.cta-quote-v1 input:focus,
.cta-quote-v1 select:focus{
  border-color: var(--cta-blue);
  box-shadow: 0 0 0 3px rgba(1,75,175,.18);
}

/* submit */
.cta-quote-v1 .cta-q__submit{
  width:100%; height:56px; border-radius: 10px;
  background: var(--cta-blue); color:#fff; border:0;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:800; letter-spacing:.02em;
  font-size:18px; text-transform:uppercase; cursor:pointer;
  transition: filter .15s ease, transform .1s ease;
}
.cta-quote-v1 .cta-q__submit:hover{ filter:brightness(1.05); }
.cta-quote-v1 .cta-q__submit:active{ transform: translateY(1px); }

/* === CTA modal: narrower form + left-aligned labels === */
.cta-quote-v1 .cta-q__dialog{
  width: min(660px, 100vw);
  text-align: left;
  padding: 22px 18px 20px;
}
.cta-quote-v1 .cta-q__dialog-title{ text-align: center; }
.cta-quote-v1 .cta-q__field label{ text-align: left; }
.cta-quote-v1 .cta-q__row--2{ grid-template-columns: 1fr; }

/* ---------------------------
   RESPONSIVE helpers (from original footer section)
   (Header/footer rules are inline; nothing to add here.)
---------------------------- */
@media (max-width: 1180px){
  .step-grid{ grid-template-columns: repeat(2, minmax(300px, 1fr)); }
  .prod-grid{ grid-template-columns: repeat(2, minmax(360px, 1fr)); }
}
@media (max-width: 680px){
  .section{ padding:56px 0 }
  .prod-grid{ grid-template-columns:1fr }
  .f-grid{ grid-template-columns:1fr }
  .cta .btn-outline{ min-width:260px; height:58px; font-size:16px }
}



/* =========================
   PRIVACY PAGE (policy layout)
========================= */
:root{
  --blue:#014baf;
  --text:#26201b;
  --bg:#f6f7fb;
  --muted:#6b6b6b;
  --card:#ffffff;
  --rule:#e6e6e6;
  --shadow:0 6px 18px rgba(0,0,0,.06);
  --shadow-strong:0 12px 28px rgba(0,0,0,.10);
  --radius:12px;
  --paper-width: 1160px;
}
html,body{ height:100%; overflow-x:hidden; }
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.7;
  font-size:18px;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img,svg{max-width:100%; height:auto; display:block}

/* policy sheet */
.policy-wrap{ display:grid; place-items:center; padding:28px 12px 56px; }
.policy-paper{
  width:min(var(--paper-width),96vw);
  background:#fff; border:1px solid var(--rule); border-radius:10px;
  box-shadow:var(--shadow); overflow:hidden;
}
.policy-head{ padding:20px 18px 10px; text-align:center; border-bottom:1px solid var(--rule); background:#fff; }
.policy-head h1{
  margin:0 0 2px; font-family:Poppins,Inter,Arial,sans-serif; font-weight:700; font-size:26px; letter-spacing:.01em; color:#111;
}
.policy-head .brandline{ margin:0 0 10px; color:#666; font-size:14px; font-weight:600; }
.policy-meta{ background:#f2f4f6; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.policy-meta .inner{
  margin:0 18px; background:#eef1f4; border:1px solid var(--rule); border-radius:6px;
  padding:10px 14px; font-weight:700; color:#333; font-size:15px;
}
.policy-section{ padding:18px 20px 20px; border-top:1px solid var(--rule); }
.policy-section:first-of-type{ border-top:0 }
.policy-section h3{ margin:2px 0 10px; font-weight:800; font-size:18px; color:#0f0f0f; }
.policy-section p{ margin:0 0 12px; font-size:16px }
.policy-section ul{ margin:8px 0 6px 20px }
.policy-section li{ margin:6px 0; font-size:16px }
.policy-callout{ background:#fff; border-top:1px solid var(--rule); padding:18px 20px 22px; }
.contact-box{
  background:#fff; border:1px solid var(--rule); border-radius:8px;
  margin:10px 0 0; padding:14px 16px; text-align:center; box-shadow:0 3px 10px rgba(0,0,0,.03); font-size:16px;
}
.contact-box h4{
  margin:2px 0 12px; font-family:Poppins,Inter,Arial,sans-serif; font-weight:800; font-size:18px; color:#0f0f0f;
}

/* print */
@media print{
  body{ background:#fff }
  .policy-paper{ box-shadow:none }
}

/* =========================
   privacy PAGE
   (Everything except header/footer)
========================= */

/* Tokens / base */
:root{
  --ink:#111418;
  --muted:#667085;
  --line:#e6e8ee;
  --bg-2:#f5f7fb;
  --radius:12px;
  --shadow:0 10px 30px rgba(3,10,27,.12);
  --shadow-2:0 16px 40px rgba(0,0,0,.18);
  --wrap: min(1200px, 92vw);
}
.wrap{ width:var(--wrap); margin-inline:auto }
.center{text-align:center}
.muted{color:var(--muted)}
.section{padding:72px 0}
h1,h2,h3,h4,h5,h6{font-family:Poppins, Inter, Arial, sans-serif; margin:0 0 10px; line-height:1.25}
h1{font-size:clamp(46px, 5.4vw, 60px); font-weight:700}
h2{font-size:clamp(30px, 3.8vw, 38px); font-weight:700}
h3{font-size:clamp(22px, 2.2vw, 26px); font-weight:600}
h4{font-size:22px; font-weight:600}
p{margin:0 0 12px}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:Poppins, Inter, Arial, sans-serif;
  padding:0 22px; height:54px; border-radius:10px;
  font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  text-decoration:none; transition:.18s ease-in-out; cursor:pointer;
}
.btn-primary{ background:#014BAF; color:#fff; border:2px solid #014BAF }
.btn-primary:hover{ filter:brightness(1.05); transform:translateY(-1px) }
.btn-outline{ background:transparent; color:#fff; border:2px solid #fff; }
.btn-outline:hover{ background:#fff; color:#014BAF }

/* Hero */
.hero{
  position:relative; width:100%; min-height:800px;
  display:grid; place-items:center; text-align:center; color:#fff;
  background:
    linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.45)),
    url('https://images.unsplash.com/photo-1551836022-d5d88e9218df?q=80&w=1800&auto=format&fit=crop') center/cover no-repeat;
}
.hero .wrap{ width:min(800px, 92vw); }
.hero .sub{font-size:19px; opacity:.92}

/* Roadmap v9 */
:root{
  --rv9-blue:#014BAF; --rv9-ink:#0f172a; --rv9-muted:#667085; --rv9-card:#ffffff; --rv9-line:#e8eefc;
  --rv9-wrap: min(1280px, 94vw); --rv9-shadow: 0 12px 30px rgba(1, 75, 175, .08);
}
#roadmap-v9{ padding:110px 0 128px; background:#fff; color:var(--rv9-ink); font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
#roadmap-v9 .roadmap-v9__head{ width:var(--rv9-wrap); margin:0 auto 28px; text-align:center; }
#roadmap-v9 .roadmap-v9__head h2{ font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:clamp(34px, 4.2vw, 46px); line-height:1.22; margin:0; }
#roadmap-v9 .roadmap-v9__head h2.accent{ color:var(--rv9-blue); margin-top:2px; }
#roadmap-v9 .roadmap-v9__head .sub{ max-width:980px; margin:14px auto 0; color:var(--rv9-muted); font-size:clamp(16px, 1.3vw, 18px); line-height:1.75; }
#roadmap-v9 .roadmap-v9__grid{
  width:var(--rv9-wrap); margin:34px auto 0; display:grid; grid-auto-rows:1fr;
  grid-template-columns: repeat(4, 340px); gap:28px; justify-content:center; justify-items:stretch;
}
#roadmap-v9 .rv9-card{
  position:relative; background:var(--rv9-card); border:1px solid var(--rv9-line); border-radius:18px; box-shadow:var(--rv9-shadow);
  padding:34px 28px 30px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; min-height:440px;
}
#roadmap-v9 .rv9-badge{
  position:absolute; top:-28px; left:50%; transform:translateX(-50%);
  width:58px; height:58px; border-radius:999px; background:#fff; color:var(--rv9-blue);
  border:3px solid var(--rv9-blue); display:grid; place-items:center; font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:20px;
}
#roadmap-v9 .rv9-icon{ width:118px; height:118px; border-radius:18px; background:#f3f6ff; display:grid; place-items:center; margin-top:6px; margin-bottom:18px; }
#roadmap-v9 .rv9-icon svg{ width:78px; height:78px; color:#1f5fd1; fill:currentColor; }
#roadmap-v9 .rv9-card h3{ font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:22px; margin:8px 0 10px; line-height:1.3; }
#roadmap-v9 .rv9-card p{ color:var(--rv9-muted); font-size:17px; line-height:1.7; max-width:90%; margin-inline:auto; }
@media (max-width:1280px){ #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: repeat(2, 340px); } }
@media (max-width:740px){
  #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: minmax(280px, 1fr); gap:24px; padding-inline:16px; }
}
@media (max-width:1200px){ #roadmap-v9 .roadmap-v9__grid{ grid-template-columns: repeat(2, minmax(320px, 1fr)); } }
@media (max-width:640px){ #roadmap-v9{ padding:84px 0 100px } #roadmap-v9 .roadmap-v9__grid{ grid-template-columns:1fr } #roadmap-v9 .rv9-card{ min-height:420px } }

/* Our Products (YouTube) */
.products-yt{
  position:relative; padding:82px 0 94px; color:#fff;
  background: linear-gradient(0deg, rgba(0,0,0,.60), rgba(0,0,0,.60)),
      url('https://images.unsplash.com/photo-1524499982521-1ffd58dd89ea?q=80&w=1800&auto=format&fit=crop') center/cover no-repeat fixed;
}
.products-yt__wrap{ width:min(1400px,95vw); margin:0 auto }
.products-yt__title{ text-align:center; font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:clamp(30px, 3.5vw, 44px); margin:0 0 22px; }
.pyt-grid{ display:grid; grid-template-columns:repeat(3, minmax(360px, 1fr)); gap:28px; }
.pyt-card{
  background:rgba(20,22,26,.92); border:1px solid rgba(255,255,255,.10); border-radius:20px; box-shadow:0 16px 40px rgba(0,0,0,.25);
  padding:18px 18px 16px; display:flex; flex-direction:column; gap:14px; min-height:560px;
}
.yt-wrap{ position:relative; border-radius:14px; overflow:hidden; background:#000; aspect-ratio:16/9; min-height:280px; }
.yt-frame{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.pyt-card h3{ font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; margin:2px 0 6px; color:#fff; letter-spacing:.02em; font-size:20px; }
.pyt-list{ list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px; color:#dbe7fb; font-size:15.5px; }
.pyt-list .tick{ width:16px; height:16px; display:inline-block; vertical-align:-2px; margin-right:10px; border-radius:50%;
  background:conic-gradient(#58c17a 0 75%, transparent 75% 100%); mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/100% no-repeat; }
.btn-cta{
  align-self:stretch; text-align:center; text-decoration:none; cursor:pointer; height:48px; line-height:48px; border-radius:12px;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:600; letter-spacing:.03em; font-size:14px; text-transform:uppercase;
  background:#014BAF; color:#fff; border:1px solid #014BAF; transition:transform .12s ease, filter .15s ease, box-shadow .15s ease;
}
.btn-cta:hover{ filter:brightness(1.05); box-shadow:0 8px 20px rgba(1,75,175,.35) }
.btn-cta:active{ transform:translateY(1px) }
@media (max-width:1200px){ .pyt-grid{ grid-template-columns:repeat(2, minmax(340px, 1fr)); } }
@media (max-width:680px){ .pyt-grid{ grid-template-columns:1fr; } .yt-wrap{ min-height:220px; } .pyt-card{ min-height:540px } }

/* Success / Tools (v4) */
:root{
  --sv4-blue:#014BAF; --sv4-ink:#0f172a; --sv4-muted:#667085; --sv4-border:#e9edf6; --sv4-shadow:0 18px 55px rgba(1,75,175,.10);
  --sv4-wrap:min(1320px, 96vw);
}
.success-v4{ background:#fff; color:var(--sv4-ink); padding:120px 0 140px; font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.success-v4 .sv4-container{ width:var(--sv4-wrap); margin:0 auto; }
.success-v4 .sv4-head{ text-align:center; margin-bottom:28px; }
.success-v4 .sv4-head h2{ margin:0; font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:clamp(34px, 4vw, 48px); line-height:1.22; }
.success-v4 .sv4-head .accent{ display:block; color:var(--sv4-blue); }
.success-v4 .sv4-sub{ max-width:980px; margin:16px auto 0; color:var(--sv4-muted); font-size:clamp(16px, 1.3vw, 18px); line-height:1.75; }
.success-v4 .sv4-grid{
  margin-top:34px; display:grid; grid-template-columns:repeat(3, minmax(420px, 1fr)); gap:28px; justify-content:center;
}
.success-v4 .sv4-card{
  background:#fff; border:1px solid var(--sv4-border); border-radius:20px; padding:34px 34px 36px; box-shadow:var(--sv4-shadow);
  min-height:320px; display:flex; flex-direction:column;
}
.success-v4 .sv4-icon{ width:66px; height:66px; border-radius:18px; background:#eaf1ff; display:grid; place-items:center; margin-bottom:16px; }
.success-v4 .sv4-icon svg{ width:34px; height:34px; fill:#1f5fd1; }
.success-v4 h3{ font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; font-size:22px; margin:6px 0 10px; line-height:1.35; }
.success-v4 p{ color:var(--sv4-muted); font-size:17px; line-height:1.75; }
@media (max-width:1200px){ .success-v4 .sv4-grid{ grid-template-columns:repeat(2, minmax(380px, 1fr)); } }
@media (max-width:720px){
  .success-v4{ padding:96px 0 112px; }
  .success-v4 .sv4-grid{ grid-template-columns:minmax(280px, 1fr); gap:22px; }
  .success-v4 .sv4-card{ min-height:300px; }
}

/* CTA + Quote Modal (v1) */
:root{ --cta-blue:#014BAF; --cta-ink:#0f172a; --cta-muted:#6c7686; --cta-radius:14px; }
.cta-quote-v1{ background:var(--cta-blue); color:#fff; width:100%; text-align:center; }
.cta-quote-v1 .cta-q__inner{ max-width:1100px; margin:0 auto; padding:84px 16px 110px; }
.cta-quote-v1 .cta-q__lead{
  margin:0 0 10px; font-family:Poppins, Inter, Arial, sans-serif; font-weight:700;
  font-size:clamp(20px, 2.2vw + 14px, 34px); line-height:1.35;
}
.cta-quote-v1 .cta-q__sub{ margin:0 0 22px; font-family:Poppins, Inter, Arial, sans-serif; font-weight:600; font-size:clamp(18px, 2vw + 10px, 28px); line-height:1.35; }
.cta-quote-v1 .cta-q__btn{
  display:inline-flex; align-items:center; justify-content:center; min-width:360px; height:56px; padding:0 28px;
  border-radius:12px; border:2px solid #fff; color:#fff; background:transparent; text-decoration:none;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:700; letter-spacing:.03em; font-size:18px; text-transform:uppercase;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease, transform .1s ease;
}
.cta-quote-v1 .cta-q__btn:hover{ background:#fff; color:var(--cta-blue); box-shadow:0 10px 26px rgba(255,255,255,.22); }
.cta-quote-v1 .cta-q__btn:active{ transform:translateY(1px); }
.cta-quote-v1 .cta-q__overlay[hidden]{ display:none; }
.cta-quote-v1 .cta-q__overlay{ position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.55); display:grid; place-items:center; padding:20px; }
.cta-quote-v1 .cta-q__dialog{
  width:min(660px, 100vw); background:#fff; color:var(--cta-ink); border-radius:var(--cta-radius);
  box-shadow:0 24px 70px rgba(0,0,0,.35); padding:22px 18px 20px; position:relative; text-align:left;
}
.cta-quote-v1 .cta-q__close{ position:absolute; top:12px; right:12px; width:38px; height:38px; border-radius:50%; background:#f3f4f6; color:#111; border:0; cursor:pointer; font-size:24px; display:grid; place-items:center; }
.cta-quote-v1 .cta-q__dialog-title{ margin:8px 0 14px; text-align:center; font-family:Poppins, Inter, Arial, sans-serif; font-weight:800; font-size:28px; }
.cta-quote-v1 .cta-q__form{ display:block; }
.cta-quote-v1 .cta-q__row{ margin-bottom:14px; }
.cta-quote-v1 .cta-q__row--2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:640px){ .cta-quote-v1 .cta-q__row--2{ grid-template-columns:1fr; } }
.cta-quote-v1 .cta-q__field label{ display:block; font-weight:600; font-size:14px; color:#1d2430; margin:0 0 6px; font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; text-align:left; }
.cta-quote-v1 input[type="text"], .cta-quote-v1 input[type="email"], .cta-quote-v1 input[type="tel"], .cta-quote-v1 input[type="date"], .cta-quote-v1 select{
  width:100%; height:48px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; color:#0f172a; padding:0 14px; font-size:16px; outline:none; transition:border-color .15s ease, box-shadow .15s ease;
}
.cta-quote-v1 input::placeholder{ color:#a0a6b2; }
.cta-quote-v1 select{ padding-right:36px; }
.cta-quote-v1 input:focus, .cta-quote-v1 select:focus{ border-color:#014BAF; box-shadow:0 0 0 3px rgba(1,75,175,.18); }
.cta-quote-v1 .cta-q__submit{
  width:100%; height:56px; border-radius:10px; background:#014BAF; color:#fff; border:0;
  font-family:Poppins, Inter, Arial, sans-serif; font-weight:800; letter-spacing:.02em; font-size:18px; text-transform:uppercase; cursor:pointer;
  transition:filter .15s ease, transform .1s ease;
}
.cta-quote-v1 .cta-q__submit:hover{ filter:brightness(1.05); }
.cta-quote-v1 .cta-q__submit:active{ transform:translateY(1px); }




/* =========================
   TERMS PAGE — content styles
   (Header & footer styles are inline in HTML)
========================= */

/* Base / tokens (scoped for this page too) */
:root{
  --blue:#014baf;
  --text:#26201b;
  --bg:#f6f7fb;
  --muted:#6b6b6b;
  --card:#ffffff;
  --rule:#e6e6e6;
  --shadow:0 6px 18px rgba(0,0,0,.06);
  --shadow-strong:0 12px 28px rgba(0,0,0,.10);
  --radius:12px;
  --paper-width: 1120px; /* wider paper width */
}

*{ box-sizing:border-box }
html,body{ height:100%; overflow-x:hidden }

/* keep your page’s typography */
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.7;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,svg{ max-width:100%; height:auto; display:block }

.container{ width:100%; max-width:1200px; margin:0 auto; padding:0 24px; }

/* ---- Terms paper ---- */
.terms-wrap{ display:grid; place-items:center; padding:28px 12px 56px; }
.terms-paper{
  width:min(var(--paper-width), 94vw);
  background:#fff; border:1px solid var(--rule); border-radius:10px;
  box-shadow:var(--shadow); overflow:hidden;
}

/* Heading moved inside meta bar */
.terms-meta{
  background:#f2f4f6; border:1px solid var(--rule); margin:18px;
  padding:16px 16px 12px; border-radius:8px; color:#333;
}
.terms-meta h1{
  margin:0 0 4px; text-align:center;
  font-family:Poppins,Inter,Arial,sans-serif; font-weight:700; font-size:28px; letter-spacing:.01em; color:#111;
}
.terms-meta .sub{ margin:0 0 10px; text-align:center; color:#666; font-size:14px; font-weight:600; }
.terms-meta .dates{
  width:100%; background:#eef1f4; border:1px solid var(--rule);
  padding:10px 12px; border-radius:6px; font-weight:700; font-size:14px; color:#333; text-align:left;
}

.terms-section{
  padding:18px 22px 20px; border-top:1px solid var(--rule);
}
.terms-section:first-of-type{ border-top:0 }
.terms-section h3{ margin:2px 0 10px; font-weight:800; font-size:18px; color:#0f0f0f; }
.terms-section p{ margin:0 0 12px }
.terms-section ul{ margin:8px 0 6px 18px }
.terms-section li{ margin:5px 0 }

.terms-callout{
  background:#fff; border:1px solid var(--rule); border-radius:8px;
  margin:18px; padding:18px 16px; text-align:center; box-shadow:0 3px 10px rgba(0,0,0,.03); font-size:16px;
}
.terms-callout h4{
  margin:4px 0 14px; font-family:Poppins,Inter,Arial,sans-serif; font-weight:800; font-size:18px; color:#0f0f0f;
}

/* Print-friendly: hide shared header/footer when printing */
@media print{
  .efp-navbar, .footer-lite{ display:none }
  body{ background:#fff }
  .terms-paper{ box-shadow:none }
}




/* =========================
   TESTIMONIALS — content styles
   (Header & footer styles are inline in HTML)
========================= */

:root{
  --blue:#014baf;
  --text:#26201b;
  --bg:#fcfcfc;
  --muted:#6b6b6b;
  --card:#ffffff;
  --shadow:0 6px 18px rgba(0,0,0,.08);
  --shadow-strong:0 12px 28px rgba(0,0,0,.12);
  --radius:12px;
  --gold:#ffb400;
}

*{box-sizing:border-box}
html,body{height:100%}
html,body{overflow-x:hidden}

body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,svg,video,canvas{max-width:100%;height:auto;display:block}

/* Keep wider layout only for page content (not the navbar) */
.section > .container{ width:100%; max-width:1400px; margin:0 auto; padding:0 24px; }

/* ---------- Buttons (used inside page content) ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem; padding:12px 20px; border-radius:10px; border:2px solid transparent;
  font-weight:700; text-decoration:none; transition:all .2s ease;
  text-transform:uppercase; letter-spacing:.04em;
}
.btn-primary{background:var(--blue); color:#fff}
.btn-primary:hover{filter:brightness(.95)}
.btn-outline{background:transparent; color:#fff; border-color:#fff}
.btn-outline:hover{background:#fff; color:var(--blue)}
.btn-small{padding:10px 14px; font-size:.85rem}

/* ---------- HERO ---------- */
.hero{
  position:relative; width:100%;
  min-height:800px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:#fff; overflow:hidden;
}
.hero-media{
  position:absolute; inset:0;
  background-image:var(--hero-image);
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.hero-media::after{
  content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.55), rgba(0,0,0,.55));
}
.hero-inner{position:relative; z-index:1; padding:80px 24px}
.hero h1{
  margin:0 0 10px;
  font-family:Poppins,Inter,Arial,sans-serif; font-weight:800;
  font-size:clamp(40px, 5.2vw, 68px); line-height:1.15;
  text-shadow:0 2px 8px rgba(0,0,0,.2);
}
.hero p{margin:0; opacity:.96; font-size:clamp(16px, 1.3vw, 20px)}

/* ---------- Section Titles ---------- */
.section{padding:72px 0}
.section-title{
  margin:0 0 12px; text-align:center;
  font-family:Poppins,Inter,Arial,sans-serif; font-weight:700; color:#111;
  font-size:clamp(26px, 2.4vw, 32px); letter-spacing:.01em;
}

/* ---------- Testimonial Cards ---------- */
.t-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:28px;
}
@media (max-width:1024px){ .t-grid{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width:640px){ .t-grid{grid-template-columns:1fr} }

.t-card{
  background:#fff; border-radius:16px; box-shadow:var(--shadow);
  padding:26px; display:flex; flex-direction:column; align-items:center; text-align:center;
  min-height:520px;
}

/* media wrappers */
.t-media, .t-thumb{
  position:relative; width:100%; aspect-ratio:16/9; border-radius:12px; overflow:hidden; margin-bottom:14px;
  background:#ddd center/cover no-repeat;
}
.t-media video{ width:100%; height:100%; object-fit:cover; display:block; }

.t-card p{ font-size:16.5px; color:#3a3a3a; margin:8px 0 10px; line-height:1.7; }
.t-name{ margin:0 0 6px; font-weight:800; color:#0b0b0b; font-size:18px; }
.stars{display:inline-flex; gap:3px}
.stars svg{width:16px; height:16px; fill:var(--gold);}

/* ---------- Slim quote cards row ---------- */
.q-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:28px; margin-top:28px;
}
@media (max-width:900px){ .q-grid{grid-template-columns:1fr} }

.q-card{
  background:#fff; border-radius:16px; box-shadow:var(--shadow);
  padding:28px; text-align:center;
  min-height:260px;
}
.q-avatar{
  width:72px; height:72px; border-radius:999px; overflow:hidden; margin:0 auto 12px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.q-name{margin:10px 0 8px; font-weight:800; font-size:18px}
.q-card p{font-size:16.5px; color:#3a3a3a; margin:0 0 10px}

/* ---------- CTA ---------- */
.cta{ width:100%; background:var(--blue); color:#fff; text-align:center; }
.cta-inner{max-width:1200px; margin:0 auto; padding:78px 24px 96px}
.cta h2{
  margin:0 0 24px; font-family:Poppins,Inter,Arial,sans-serif; font-weight:300;
  font-size:clamp(20px, 1.4vw + 12px, 30px); letter-spacing:.01em; line-height:1.35;
}
.cta-btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:64px; min-width:360px; padding:0 28px;
  border-radius:12px; border:2px solid #ffffff;
  color:#ffffff; background:transparent; text-decoration:none;
  font-family:Poppins,Inter,Arial,sans-serif;
  font-weight:200; font-size:26px; letter-spacing:.03em; text-transform:uppercase;
  transition:background .2s ease, color .2s ease, box-shadow .2s ease, transform .12s ease;
}
.cta-btn:hover{background:#ffffff; color:#014baf}
.cta-btn:active{transform:translateY(1px)}
.cta-btn:focus-visible{outline:3px solid #ffffff; outline-offset:3px; box-shadow:0 0 0 4px rgba(255,255,255,.35)}

/* ---------- Modal (shared component styles) ---------- */
body.modal-open{overflow:hidden}
.modal{position:fixed; inset:0; z-index:1000; display:none}
.modal.is-open{display:grid; place-items:center}
.modal__overlay{position:absolute; inset:0; background:rgba(0,0,0,.55)}
.modal__dialog{
  position:relative; z-index:1;
  width:min(600px, 92vw);
  background:#fff; border-radius:12px; box-shadow:var(--shadow-strong);
  padding:clamp(16px, 2.5vw, 22px);
}
.modal__title{
  margin:2px 0 12px; text-align:center;
  font-family:Poppins,Inter,Arial,sans-serif; font-weight:700; letter-spacing:.02em; color:#0b0b0b;
  font-size:clamp(22px, 2vw, 26px);
}
.modal__close{
  position:absolute; top:8px; right:8px; width:32px; height:32px;
  display:grid; place-items:center; border-radius:999px; border:2px solid #d8d8d8;
  background:#fff; color:#111; font-size:20px; line-height:1; cursor:pointer;
}
.quote-form .req{color:#e53935; font-weight:700}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:4px}
.form-grid .span-2{grid-column:1 / -1}
.form-field label{display:block; font-weight:700; font-size:14px; margin:0 0 4px}
.form-field input,.form-field select{
  width:100%; height:42px; border:1px solid #d7d7d7; border-radius:8px; padding:0 12px; font-size:16px; outline:none;
  transition:border-color .2s ease, box-shadow .2s ease; background:#fff;
}
.form-field input:focus,.form-field select:focus{border-color:var(--blue); box-shadow:0 0 0 3px rgba(1,75,175,.12)}
.modal__submit{width:100%; height:50px; margin-top:12px; border-radius:10px; font-size:18px}

@media (max-width:560px){
  .form-grid{grid-template-columns:1fr}
  .modal__dialog{padding:14px}
}

/* Utilities */
.center{text-align:center}
.eyebrow{ text-transform:uppercase; letter-spacing:.12em; font-size:.85rem; font-weight:800; opacity:.9 }
