/* CDI V28.7 profile base CSS bundle. Generated from ordered production assets. */

/* ===== BEGIN assets/css/cdi-layout.css ===== */
/* ============================================================
   cdi-layout.css — Premium layout system
   
   PRINCIPLE:
   - Nav (topnav): full width edge-to-edge
   - Hero bands / coloured sections: full width background
   - Body content (.cw): max 1180px centred with auto margins
   - Footer: full width background, content centred inside
   
   This is exactly how Stripe, Linear, Vercel do it.
   Wide screens get whitespace on the sides — premium feel.
   ============================================================ */

/* ── The content wrapper — centred, max-width body ── */
.cw {
  width: 100%;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* ── Full-width coloured bands — background stretches, content centred ── */
.fw {
  width: 100%;
}

/* Nav content area centred inside full-width nav */
.topnav .row {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Footer inner centred */
.foot-inner,
footer .cw,
.foot-grid {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Hero sections — full-width background, content max-width inside */
.mphero,
.cdi-hero,
.page-hero,
.hero-band,
.sec-band,
.browse-toolbar {
  width: 100%;
}

.mphero .cw,
.cdi-hero .cw,
.page-hero .cw,
.hero-band .cw {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* ── Sections ── */
.sec,
.cdi-section,
section.sec {
  width: 100%;
}

.sec .cw,
.cdi-section .cw {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* ── Prevent anything from exceeding viewport ── */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* ── Mobile — full width with padding ── */
@media (max-width: 768px) {
  .cw,
  .mphero .cw,
  .sec .cw,
  .cdi-section .cw,
  .hero-band .cw,
  .topnav .row,
  .foot-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    max-width: 100% !important;
  }
}

/* ── Tablet ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .cw,
  .topnav .row,
  .foot-inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ── Tables — always scrollable ── */
.table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

table {
  min-width: 0;
  border-collapse: collapse;
}

@media (max-width: 768px) {
  /* Wrap any raw table in a scroll container */
  table:not(.no-scroll) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  
  table th,
  table td {
    font-size: 13px;
    padding: 9px 10px;
    white-space: normal;
  }
}

/* ── Filter pill rows — horizontal scroll on mobile ── */
.qf-bar,
.qf-pills,
.chip-row,
.filter-pills,
.cdi-pills-row {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 8px;
  padding-bottom: 4px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.qf-bar::-webkit-scrollbar,
.qf-pills::-webkit-scrollbar,
.chip-row::-webkit-scrollbar,
.filter-pills::-webkit-scrollbar {
  display: none;
}

/* ── Typography scale ── */
h1 { font-size: clamp(24px, 4vw, 42px); line-height: 1.1; }
h2 { font-size: clamp(20px, 3vw, 30px); line-height: 1.2; }
h3 { font-size: clamp(16px, 2.5vw, 22px); line-height: 1.3; }

@media (max-width: 768px) {
  h1 { font-size: clamp(22px, 6.5vw, 32px) !important; }
  h2 { font-size: clamp(18px, 5vw, 26px) !important; }
  h3 { font-size: clamp(15px, 4vw, 20px) !important; }
}

/* ── Grid collapse on mobile ── */
@media (max-width: 768px) {
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: repeat(2"],
  [style*="grid-template-columns: repeat(3"] {
    grid-template-columns: 1fr !important;
  }
  
  [style*="display: flex"][style*="gap"],
  [style*="display:flex"][style*="gap"] {
    flex-wrap: wrap;
  }
}

/* ── Images always fluid ── */
img {
  max-width: 100%;
  height: auto;
}

/* ── Buttons never overflow ── */
.btn {
  max-width: 100%;
  word-break: break-word;
  white-space: normal;
}

/* ── Dashboard and admin — sidebar + content layout ── */
.dsb-wrap,
.adm-wrap {
  display: grid;
  grid-template-columns: 240px 1fr;
  min-height: 100vh;
}

@media (max-width: 900px) {
  .dsb-wrap,
  .adm-wrap {
    grid-template-columns: 1fr;
  }
  .dsb-sidebar,
  .adm-sidebar {
    display: none;
  }
  .dsb-content,
  .adm-content {
    padding: 14px;
  }
}

/* ── Location city cards ── */
.loc-city-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.loc-city-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #fff;
  border: 1.5px solid var(--line, #E6E9EE);
  border-radius: 10px;
  text-decoration: none;
  color: var(--ink, #14171F);
  font-size: 14px;
  font-weight: 600;
  min-height: 52px;
  transition: border-color .15s, box-shadow .15s, transform .1s;
}

.loc-city-card:hover {
  border-color: var(--navy, #0B1F3D);
  box-shadow: 0 4px 16px rgba(11,31,61,.1);
  transform: translateY(-1px);
}

.loc-region-h {
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--line, #E6E9EE);
}

@media (max-width: 560px) {
  .loc-city-grid {
    grid-template-columns: 1fr 1fr;
  }
  .loc-city-card {
    padding: 10px 12px;
    min-height: 48px;
    font-size: 13px;
  }
}

/* ── AEO block ── */
.aeo-block {
  background: var(--mist, #F5F7FA);
  border: 1.5px solid var(--line, #E6E9EE);
  border-left: 4px solid var(--green, #00A53C);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 24px;
}

.aeo-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--green, #00A53C);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 10px;
}

.aeo-q {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 10px;
  line-height: 1.3;
}

.aeo-a {
  font-size: 14.5px;
  color: var(--slate);
  line-height: 1.7;
  margin-bottom: 14px;
}

.aeo-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}

.aeo-fact {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  background: #fff;
  border: 1.5px solid var(--line, #E6E9EE);
  border-radius: 99px;
  padding: 4px 12px;
}

.aeo-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.aeo-link {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy);
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  padding: 6px 14px;
  text-decoration: none;
  transition: border-color .15s;
}

.aeo-link:hover {
  border-color: var(--navy);
}

@media (max-width: 600px) {
  .aeo-block { padding: 14px 16px; }
  .aeo-q { font-size: 15px; }
}
/* ===== END assets/css/cdi-layout.css ===== */

/* ===== BEGIN assets/css/main.css ===== */

/* =========================================================
   Compare Driving Instructors™ — Design System
   Mobile-first. Poppins only. Black / White / Brand Green.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap');

:root{
  --ink:#14171F;
  --paper:#FFFFFF;
  --mist:#F5F7FA;
  --mist-deep:#ECF1F7;
  --blue:#2D7FF6;
  --blue-deep:#1A56C4;
  --blue-block:#4FACE6;
  --blue-block-deep:#3D93D6;
  --blue-mist:#EAF3FE;
  --navy:#0B1F3D;
  --navy-deep:#081730;
  --green:#00A53C;
  --green-deep:#00822F;
  --green-mist:#EAFBF0;
  --amber:#FFB100;
  --amber-mist:#FFF6E0;
  --slate:#5B6072;
  --slate-light:#8B91A1;
  --line:#E6E9EE;
  --red:#E5484D;
  /* legacy aliases kept so any remaining references resolve sensibly */
  --black:#0B1F3D;
  --black-soft:#13294F;
  --black-line: rgba(255,255,255,.14);

  --radius-sm:12px;
  --radius:18px;
  --radius-lg:26px;
  --shadow-sm: 0 2px 10px rgba(15,17,25,.06);
  --shadow: 0 14px 34px rgba(15,17,25,.10);
  --shadow-lg: 0 24px 64px rgba(15,17,25,.16);

  --container: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Poppins',Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font-family:'Poppins',Arial,sans-serif; }
button{ cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
:focus-visible{ outline:2.5px solid var(--blue); outline-offset:2px; border-radius:4px; }

.container{ width:min(var(--container), calc(100% - 32px)); margin:0 auto; min-width:0; }

/* ---------- type scale ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.eyebrow .dashes{ display:inline-flex; gap:4px; }
.eyebrow .dashes span{ width:10px; height:3px; border-radius:2px; background:var(--blue); }

h1{ font-weight:800; letter-spacing:-0.02em; line-height:1.08; font-size:clamp(30px,7vw,56px); }
h2{ font-weight:800; letter-spacing:-0.015em; line-height:1.14; font-size:clamp(24px,5vw,38px); }
h3{ font-weight:700; letter-spacing:-0.01em; line-height:1.25; font-size:clamp(17px,3vw,21px); }
.lede{ font-size:clamp(15px,2.4vw,18px); color:var(--slate); line-height:1.6; font-weight:400; }
.section-head{ max-width:680px; margin-bottom:28px; }
.section-head p{ margin-top:10px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; border-radius:999px; padding:14px 22px; font-size:14.5px; font-weight:700;
  white-space:nowrap; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  line-height:1;
}
.btn-lg{ padding:16px 26px; font-size:15.5px; }
@media (max-width:520px){
  .btn{ white-space:normal; text-align:center; line-height:1.3; }
}
.btn:active{ transform:scale(.96); }
.btn-sm{ padding:10px 16px; font-size:13px; }
.btn-green{ background:var(--blue); color:var(--black); box-shadow:0 6px 16px rgba(20,30,25,.14); }
.btn-green:hover{ background:var(--blue-deep); color:#fff; transform:translateY(-1px); }
.btn-black{ background:var(--black); color:#fff; box-shadow:0 12px 26px rgba(0,0,0,.22); }
.btn-black:hover{ transform:translateY(-1px); box-shadow:0 16px 32px rgba(0,0,0,.28); }
.btn-ghost{ background:#fff; color:var(--ink); border:1.5px solid var(--line); }
.btn-ghost:hover{ border-color:var(--blue); color:var(--blue-deep); }
.btn-ghost-dark{ background:transparent; color:#fff; border:1.5px solid var(--black-line); }
.btn-ghost-dark:hover{ border-color:var(--blue); color:var(--blue); }
.btn-white{ background:#fff; color:var(--black); }
.btn-white:hover{ background:var(--blue); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.45; pointer-events:none; }

/* ---------- ambient glow / texture (hero + dark sections) ---------- */
.glow-field{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.glow-field::before{
  content:''; position:absolute; width:680px; height:680px; border-radius:50%;
  background:radial-gradient(circle, rgba(45,127,246,.30) 0%, rgba(45,127,246,0) 70%);
  top:-280px; right:-180px; filter:blur(10px);
}
.glow-field::after{
  content:''; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(45,127,246,.16) 0%, rgba(45,127,246,0) 70%);
  bottom:-260px; left:-160px;
}
.grid-texture{
  position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 75%);
  mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 75%);
}
.rel-z1{ position:relative; z-index:1; }

/* ---------- "open-bracket" signature frame — taken directly from the logo mark ---------- */
.bracket-frame{ position:relative; }
.bracket-frame::before{
  content:''; position:absolute; inset:0; border-radius:var(--radius-lg);
  border:2px solid var(--blue); pointer-events:none;
  -webkit-mask: linear-gradient(#000 0 0);
  clip-path: polygon(0 0, 72% 0, 72% 2.5px, 0 2.5px, 0 100%, 100% 100%, 100% 0, 78% 0, 78% 2.5px, 100% 2.5px, 100% 0);
}
.bracket-tick{
  width:34px; height:34px; flex:none; display:grid; place-items:center;
}

/* ---------- hero split layout + AI match mock visual (signature element) ---------- */
.hero-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:center; min-width:0; }
.hero-grid > *{ min-width:0; }
.match-mock{
  background:var(--black-soft); border:1px solid var(--black-line); border-radius:var(--radius-lg);
  padding:18px; box-shadow:0 30px 70px rgba(0,0,0,.5);
}
.match-mock-head{ display:flex; align-items:center; justify-content:space-between; padding:2px 4px 14px; border-bottom:1px solid var(--black-line); margin-bottom:14px; }
.match-mock-head span{ font-size:12px; font-weight:700; color:#fff; }
.match-mock-head .live{ display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; color:#fff; }
.match-mock-head .live i{ width:7px; height:7px; border-radius:50%; background:#fff; display:block; box-shadow:0 0 0 4px rgba(255,255,255,.22); }
.mm-row{ display:flex; align-items:center; gap:12px; padding:11px; border-radius:14px; background:rgba(255,255,255,.035); margin-bottom:8px; }
.mm-row:last-child{ margin-bottom:0; }
.mm-avatar{ width:38px; height:38px; border-radius:11px; flex:none; display:grid; place-items:center; font-weight:800; font-size:13px; color:var(--black); background:linear-gradient(155deg,var(--blue),var(--blue-deep)); }
.mm-row.alt .mm-avatar{ background:linear-gradient(155deg,#3A3F4C,#1B1D24); color:#fff; }
.mm-info{ flex:1; min-width:0; }
.mm-info b{ display:block; color:#fff; font-size:13.5px; font-weight:700; }
.mm-info span{ display:block; color:#8B91A1; font-size:11.5px; margin-top:1px; }
.mm-score{ flex:none; text-align:right; }
.mm-score b{ display:block; color:#fff; font-size:14.5px; font-weight:800; }
.mm-score span{ font-size:10px; color:#73798A; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.mm-bar{ height:5px; border-radius:3px; background:rgba(255,255,255,.08); margin-top:9px; overflow:hidden; }
.mm-bar i{ display:block; height:100%; background:#fff; border-radius:3px; }
.match-mock-foot{ display:flex; align-items:center; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid var(--black-line); font-size:11.5px; color:#8B91A1; font-weight:600; }

/* ---------- light hero (replaces dark hero band) ---------- */
/* ---------- flat colour hero block (Uswitch-style) ---------- */
.hero-block{ background:var(--blue-block); position:relative; overflow:hidden; }
.hero-light{ background:var(--paper); position:relative; overflow:hidden; }
.glow-field-light{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.glow-field-light::before{
  content:''; position:absolute; width:560px; height:560px; border-radius:50%;
  background:radial-gradient(circle, rgba(14,92,52,.07) 0%, rgba(14,92,52,0) 70%);
  top:-240px; right:-160px; filter:blur(6px);
}
.glow-field-light::after{
  content:''; position:absolute; width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle, rgba(46,125,246,.05) 0%, rgba(46,125,246,0) 70%);
  bottom:-200px; left:-140px;
}
.blob-amber{ display:none; }

/* ---------- CTA strip: deep, restrained brand colour (not loud saturated green) ---------- */
.cta-band{ background:var(--blue-block); color:var(--ink); position:relative; overflow:hidden; }
.cta-band .glow-field::before, .cta-band .glow-field::after{ display:none; }

/* ---------- top nav ---------- */
.topnav{
  position:fixed; top:0; left:0; right:0; z-index:400;
  background:rgba(11,31,61,.93);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  border-bottom:1px solid rgba(255,255,255,.07);
  transition:background .25s ease, border-color .25s ease;
}
.topnav.scrolled{ background:rgba(11,31,61,.98); border-bottom-color:rgba(255,255,255,.04); }
.topnav .row{ height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand-logo img{ width:140px; height:auto; filter:brightness(0) invert(1); }
.foot-brand img{ width:180px; height:auto; }

@media (min-width:680px){
  .topnav .row{ height:68px; }
  .brand-logo img{ width:160px; height:auto; }
  .foot-brand img{ width:220px; height:auto; }
}
.topnav-spacer{ height:64px; }
@media (min-width:680px){ .topnav-spacer{ height:68px; } }
.topnav-spacer{ background:transparent; }

.nav-links{ display:none; }
.nav-actions{ display:flex; align-items:center; gap:8px; }
.nav-actions .btn-ghost-dark{ display:none; }
.hamburger{
  width:38px; height:38px; border-radius:9px; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1); display:grid; place-items:center; gap:4px;
}
.hamburger span{ width:17px; height:1.5px; background:rgba(255,255,255,.85); border-radius:2px; display:block; }
.hamburger span:nth-child(2){ width:12px; align-self:flex-end; margin-right:0; }

/* mobile drawer */
.mobile-drawer{
  position:fixed; inset:0; z-index:500; background:#0B1F3D;
  transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column;
}
.mobile-drawer.open{ transform:translateX(0); }
.mobile-drawer .dtop{ height:64px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid rgba(255,255,255,.07); }
.mobile-drawer .dtop img{ filter:brightness(0) invert(1); }
.mobile-drawer .dclose{ width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.7); font-size:16px; display:grid; place-items:center; }
.mobile-drawer nav{ padding:16px 20px; display:flex; flex-direction:column; gap:1px; overflow-y:auto; flex:1; }
.mobile-drawer nav a{ color:rgba(255,255,255,.82); font-weight:500; font-size:17px; padding:15px 6px; border-bottom:1px solid rgba(255,255,255,.06); display:flex; align-items:center; justify-content:space-between; opacity:0; transform:translateX(16px); letter-spacing:-.01em; }
.mobile-drawer nav a:hover{ color:#fff; }
.mobile-drawer.open nav a{ animation:drawerItemIn .38s cubic-bezier(.2,.8,.3,1) forwards; }
.mobile-drawer.open nav a:nth-child(1){ animation-delay:.05s; }
.mobile-drawer.open nav a:nth-child(2){ animation-delay:.09s; }
.mobile-drawer.open nav a:nth-child(3){ animation-delay:.13s; }
.mobile-drawer.open nav a:nth-child(4){ animation-delay:.17s; }
.mobile-drawer.open nav a:nth-child(5){ animation-delay:.21s; }
.mobile-drawer.open nav a:nth-child(6){ animation-delay:.25s; }
.mobile-drawer.open nav a:nth-child(7){ animation-delay:.29s; }
.mobile-drawer.open nav a:nth-child(8){ animation-delay:.33s; }
@keyframes drawerItemIn{ to{ opacity:1; transform:translateX(0); } }
.mobile-drawer nav a span.tag{ font-size:10.5px; font-weight:600; color:rgba(45,127,246,.9); background:rgba(45,127,246,.12); padding:3px 8px; border-radius:999px; }

/* Mega-menu style mobile drawer — collapsed accordion so it never needs to scroll */
.mmenu{ padding:14px 20px; flex:1; overflow-y:auto; }
.mmenu-group{ border-bottom:1px solid rgba(255,255,255,.08); }
.mmenu-group summary{
  list-style:none; cursor:pointer; padding:16px 4px; display:flex; align-items:center; justify-content:space-between;
  color:#fff; font-weight:650; font-size:16px; letter-spacing:-.01em;
}
.mmenu-group summary::-webkit-details-marker{ display:none; }
.mmenu-chevron{ font-size:13px; color:rgba(255,255,255,.5); transition:transform .2s ease; }
.mmenu-group[open] .mmenu-chevron{ transform:rotate(180deg); }
.mmenu-panel{ padding:0 4px 16px; }
.mmenu-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; }
.mmenu-grid a, .mmenu-panel > a{
  color:rgba(255,255,255,.78); font-size:14.5px; font-weight:500; padding:10px 8px; border-radius:8px;
  display:block; text-decoration:none;
}
.mmenu-grid a:active, .mmenu-panel > a:active{ background:rgba(255,255,255,.06); color:#fff; }
.mmenu-viewall{ display:block; margin-top:4px; padding:10px 8px; color:var(--skyl,#72CDF7); font-weight:700; font-size:13.5px; text-decoration:none; }
.mmenu-flat{ display:flex; align-items:center; justify-content:space-between; padding:16px 4px; color:#fff; font-weight:650; font-size:16px; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.08); }
.mmenu-flat .tag{ font-size:10.5px; font-weight:600; color:rgba(45,127,246,.9); background:rgba(45,127,246,.12); padding:3px 8px; border-radius:999px; }
.mobile-drawer .dfoot{ padding:16px 20px 32px; display:flex; flex-direction:column; gap:10px; opacity:0; transform:translateY(12px); }
.mobile-drawer.open .dfoot{ animation:drawerItemIn .42s cubic-bezier(.2,.8,.3,1) forwards; animation-delay:.36s; }
.mobile-drawer .dfoot .btn-green{ box-shadow:0 10px 26px rgba(45,127,246,.32); }

/* ---------- footer ---------- */
.site-footer{ background:var(--navy); color:#fff; padding:56px 0 22px; }
.foot-grid{ display:grid; gap:34px; grid-template-columns:1fr; }
.foot-brand p{ color:#9FB3D1; font-size:14.5px; line-height:1.7; margin-top:14px; max-width:340px; }
.foot-col h4{ font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:#9FB3D1; font-weight:700; margin-bottom:14px; }
.foot-col ul{ display:flex; flex-direction:column; gap:11px; }
.foot-col a{ font-size:14.5px; color:#E7EEF7; font-weight:500; }
.foot-col a:hover{ color:var(--blue); }
.foot-bottom{ border-top:1px solid var(--black-line); margin-top:36px; padding-top:20px; display:flex; flex-direction:column; gap:10px; font-size:12.5px; color:#8B91A1; }
.foot-social{ display:flex; gap:10px; }
.foot-social a{ width:36px; height:36px; border-radius:50%; border:1px solid var(--black-line); display:grid; place-items:center; }
.foot-social a:hover{ border-color:var(--blue); color:var(--blue); }

/* ---------- sections ---------- */
.section{ padding:52px 0; }
.section-tight{ padding:36px 0; }
.bg-mist{ background:var(--mist); }
.bg-black{ background:var(--black); color:#fff; }
.bg-green-mist{ background:var(--blue-mist); }

/* ---------- pill / chip / badge ---------- */
.chip{
  display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px;
  font-size:13px; font-weight:600; background:#fff; border:1.5px solid var(--line); color:var(--ink);
  white-space:nowrap;
}
.chip.active{ background:var(--black); border-color:var(--black); color:#fff; }
.chip-row{ display:flex; gap:9px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; min-width:0; max-width:100%; }
.chip-row::-webkit-scrollbar{ display:none; }
.badge{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:5px 10px; border-radius:7px; }
.badge-green{ background:var(--green-mist); color:var(--green-deep); }
.badge-black{ background:var(--black); color:#fff; }
.badge-amber{ background:#FFF6E0; color:#9A6B00; }
.badge-blue{ background:var(--blue-mist); color:var(--blue-deep); }

/* ---------- card: provider / instructor (premium) ---------- */
.grid{ display:grid; gap:18px; grid-template-columns:1fr; }
.results-grid{ display:grid; gap:18px; grid-template-columns:1fr; }
@media (min-width:640px){ .results-grid{ grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); } }

.p-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm); overflow:hidden; transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
  display:flex; flex-direction:column; position:relative;
}
.p-card:hover{ box-shadow:var(--shadow-lg); transform:translateY(-3px); border-color:#fff; }
.p-card-top{ padding:18px 18px 0; display:flex; gap:12px; align-items:flex-start; }
.p-card.has-compare .p-card-top{ padding-right:64px; }
.avatar{
  width:54px; height:54px; border-radius:16px; flex:none; display:grid; place-items:center;
  font-weight:800; font-size:17px; color:#fff; background:linear-gradient(155deg,var(--black) 0%, #2B2F3A 100%);
  position:relative; box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.avatar.av-green{ background:linear-gradient(155deg, var(--blue) 0%, var(--blue-deep) 100%); color:var(--black); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.avatar .av-tick{
  position:absolute; bottom:-5px; right:-5px; width:20px; height:20px; border-radius:50%;
  background:var(--blue); display:grid; place-items:center; border:2.5px solid #fff;
}
.p-card-info{ flex:1; min-width:0; }
.p-card-compare{
  position:absolute; top:14px; right:14px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:3px;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:6px 7px 5px; box-shadow:var(--shadow-sm);
}
.p-card-compare input{ width:14px; height:14px; accent-color:var(--blue); }
.p-card-compare span{ font-size:8px; font-weight:700; color:var(--slate-light); text-transform:uppercase; letter-spacing:.02em; }
.p-card-name{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.p-card-name h3{ font-size:16.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.p-card-role{ font-size:12.5px; color:var(--slate); font-weight:600; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rating-row{ display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:var(--ink); margin-top:5px; }
.rating-row .stars{ color:var(--amber); letter-spacing:1px; font-size:12px; }
.rating-row .count{ color:var(--slate-light); font-weight:500; }
.p-card-badges{ display:flex; flex-wrap:wrap; gap:6px; padding:13px 18px 0; }
.p-card-meta{ display:flex; gap:14px; padding:14px 18px 0; font-size:12.5px; color:var(--slate); }
.p-card-meta b{ color:var(--ink); }
.match-score{
  margin:14px 18px 0; padding:10px 12px; border-radius:12px; background:var(--blue-mist);
  display:flex; align-items:center; justify-content:space-between; font-size:12.5px; font-weight:700; color:var(--blue-deep);
}
.match-score .pct{ font-size:15px; }
.p-card-foot{
  margin-top:auto; padding:16px 18px 18px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  border-top:1px solid var(--line); margin-top:16px;
}
.price-from{ font-size:11.5px; color:var(--slate); font-weight:600; }
.price-from b{ display:block; font-size:19px; color:var(--ink); font-weight:800; }
.mini-bar{ height:5px; border-radius:3px; background:var(--mist-deep); margin-top:9px; overflow:hidden; }
.mini-bar i{ display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,var(--blue),var(--blue-deep)); }

/* horizontal scroll-snap row (mobile-first carousel) */
.scroller{ display:flex; gap:16px; overflow-x:auto; padding:6px 16px 18px; margin:0 -16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.scroller::-webkit-scrollbar{ display:none; }
.scroller > *{ scroll-snap-align:start; flex:0 0 84%; max-width:340px; }

/* ---------- search / AI bar ---------- */
.ai-search{
  background:#fff; border-radius:var(--radius-lg); padding:8px; box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column; gap:8px; min-width:0; max-width:100%;
}
.ai-search input{
  border:0; outline:0; padding:15px 16px; font-size:15.5px; font-weight:500; color:var(--ink); background:transparent; width:100%;
}
.ai-search input::placeholder{ color:var(--slate-light); }
.ai-search .ai-row{ display:flex; gap:8px; align-items:center; border-top:1px solid var(--line); padding-top:8px; }
.ai-chip{ font-size:12px; font-weight:600; color:var(--slate); background:var(--mist); padding:7px 12px; border-radius:999px; white-space:nowrap; }

/* ---------- form controls ---------- */
.field-label{ font-size:12.5px; font-weight:700; color:var(--ink); margin-bottom:7px; display:block; }
.input, select.input{
  width:100%; border:1.5px solid var(--line); border-radius:12px; padding:13px 14px; font-size:14.5px;
  font-weight:500; color:var(--ink); background:#fff; outline:0; transition:border-color .15s;
}
.input:focus{ border-color:var(--blue); }
.checkbox-row{ display:flex; align-items:center; gap:10px; padding:9px 0; font-size:14px; font-weight:500; }
.checkbox-row input{ width:18px; height:18px; accent-color:var(--blue); }
.range-row{ display:flex; align-items:center; justify-content:space-between; font-size:12.5px; font-weight:700; color:var(--slate); margin-bottom:6px; }
input[type="range"]{ width:100%; accent-color:var(--blue); }

/* ---------- stat strip ---------- */
.stat-strip{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.stat{ }
.stat b{ display:block; font-size:clamp(22px,5vw,30px); font-weight:800; }
.stat span{ font-size:12px; color:var(--slate-light); font-weight:600; }
.bg-black .stat span{ color:#8B91A1; }
.stat-strip.divided .stat{ padding-left:0; }

/* ---------- tables (comparison) ---------- */
.compare-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--radius); border:1px solid var(--line); }
table.compare{ border-collapse:collapse; width:100%; min-width:680px; background:#fff; }
table.compare th, table.compare td{ padding:16px 18px; text-align:left; border-bottom:1px solid var(--line); font-size:14px; }
table.compare thead th{ background:var(--mist); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--slate); font-weight:700; }
table.compare tbody tr:last-child td{ border-bottom:0; }
table.compare td.feat-col, table.compare th.feat-col{ font-weight:700; color:var(--ink); position:sticky; left:0; background:#fff; }
table.compare thead th.feat-col{ background:var(--mist); }
table.compare td.highlight{ background:var(--blue-mist); }

/* ---------- tabs ---------- */
.tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; }
.tabs::-webkit-scrollbar{ display:none; }
.tab-btn{ background:none; border:0; padding:13px 16px; font-size:14px; font-weight:700; color:var(--slate); white-space:nowrap; border-bottom:2.5px solid transparent; }
.tab-btn.active{ color:var(--ink); border-bottom-color:var(--blue); }
.tab-panel{ display:none; padding-top:22px; }
.tab-panel.active{ display:block; }

/* ---------- accordion / FAQ ---------- */
.acc-item{ border-bottom:1px solid var(--line); }
.acc-q{ width:100%; text-align:left; background:none; border:0; padding:18px 4px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:15.5px; font-weight:700; }
.acc-q .plus{ flex:none; width:24px; height:24px; border-radius:50%; background:var(--mist); display:grid; place-items:center; font-size:15px; font-weight:700; transition:transform .2s; }
.acc-item.open .acc-q .plus{ transform:rotate(45deg); background:var(--blue); color:var(--black); }
.acc-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.acc-item.open .acc-a{ max-height:400px; }
.acc-a p{ padding:0 4px 20px; color:var(--slate); font-size:14.5px; line-height:1.7; max-width:640px; }

/* ---------- floating AI assistant ---------- */
.ai-fab{
  position:fixed; right:16px; bottom:16px; z-index:150; background:var(--black); color:#fff;
  border-radius:999px; padding:14px 18px 14px 14px; display:flex; align-items:center; gap:10px;
  box-shadow:0 16px 38px rgba(0,0,0,.32); font-size:13.5px; font-weight:700; border:1px solid var(--black-line);
}
.ai-fab .dot{ width:9px; height:9px; border-radius:50%; background:var(--blue); animation:fabPulse 2.2s infinite; }
@keyframes fabPulse{
  0%{ box-shadow:0 0 0 0 rgba(45,127,246,.55); }
  70%{ box-shadow:0 0 0 9px rgba(45,127,246,0); }
  100%{ box-shadow:0 0 0 0 rgba(45,127,246,0); }
}

/* ---------- toast ---------- */
.toast-wrap{ position:fixed; top:16px; left:50%; transform:translateX(-50%) translateY(-130%); z-index:400; transition:transform .3s ease; }
.toast-wrap.show{ transform:translateX(-50%) translateY(0); }
.toast{ background:var(--black); color:#fff; padding:13px 20px; border-radius:999px; font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:9px; box-shadow:var(--shadow-lg); white-space:nowrap; }
.toast .dot{ width:8px; height:8px; border-radius:50%; background:var(--blue); }

/* ---------- sticky mobile CTA bar ---------- */
.sticky-cta{
  position:sticky; bottom:0; z-index:120; background:#fff; border-top:1px solid var(--line);
  padding:12px 16px; display:flex; align-items:center; gap:12px; box-shadow:0 -8px 24px rgba(0,0,0,.06);
}
.sticky-cta .scta-price{ flex:none; }
.sticky-cta .scta-price b{ display:block; font-size:18px; font-weight:800; }
.sticky-cta .scta-price span{ font-size:11px; color:var(--slate); font-weight:600; }
.sticky-cta .btn{ flex:1; }

/* ---------- browse layout (instructors.html) ---------- */
.browse-toolbar{ position:sticky; top:68px; z-index:90; background:#fff; border-bottom:1px solid var(--line); padding:12px 0; }
.browse-toolbar .row{ display:flex; align-items:center; gap:10px; }
.browse-toolbar select.input{ width:auto; padding:11px 12px; }
.result-count{ font-size:13px; color:var(--slate); font-weight:600; white-space:nowrap; }
.browse-layout{ display:block; padding-top:22px; }
.filters-sidebar{ display:none; }
.filters-panel-inner h4{ font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); font-weight:700; margin:22px 0 10px; }
.filters-panel-inner h4:first-child{ margin-top:0; }

.filters-drawer{
  position:fixed; inset:0; z-index:300; background:rgba(10,10,10,.4);
  opacity:0; pointer-events:none; transition:opacity .25s ease;
  display:flex; align-items:flex-end;
}
.filters-drawer.open{ opacity:1; pointer-events:auto; }
.filters-sheet{
  background:#fff; width:100%; max-height:88vh; border-radius:24px 24px 0 0; overflow-y:auto;
  transform:translateY(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); padding-bottom:90px;
}
.filters-drawer.open .filters-sheet{ transform:translateY(0); }
.filters-sheet-top{ position:sticky; top:0; background:#fff; display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); }
.filters-sheet-body{ padding:6px 20px 20px; }
.filters-sheet-foot{ position:fixed; bottom:0; left:0; right:0; background:#fff; border-top:1px solid var(--line); padding:14px 20px; display:flex; gap:10px; }

.compare-tray{
  position:fixed; left:50%; bottom:16px; transform:translateX(-50%) translateY(140%); z-index:140;
  background:var(--black); color:#fff; border-radius:999px; padding:10px 10px 10px 18px;
  display:flex; align-items:center; gap:12px; box-shadow:var(--shadow-lg); transition:transform .25s ease; white-space:nowrap;
}
.compare-tray.show{ transform:translateX(-50%) translateY(0); }
.compare-tray b{ color:var(--blue); }

/* ---------- instructor profile page ---------- */
.profile-head{ display:flex; flex-direction:column; gap:24px; }
.profile-head-main{ display:flex; gap:16px; align-items:flex-start; }
.profile-head-info{ flex:1; min-width:0; }
.booking-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow-sm); }
.booking-card-meta{ display:flex; flex-direction:column; gap:8px; font-size:12.5px; font-weight:600; color:var(--slate); }
.profile-layout{ display:block; }
.pkg-list{ display:flex; flex-direction:column; gap:8px; font-size:13.5px; color:var(--slate); }
.review-card{ border-bottom:1px solid var(--line); padding:20px 0; }
.review-card:first-child{ padding-top:0; }
.avail-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.avail-day{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 6px; text-align:center; display:flex; flex-direction:column; gap:8px; align-items:center; }
.avail-day b{ font-size:12px; color:var(--slate); }
.av-slot{ font-size:11px; font-weight:700; color:var(--green-deep); background:var(--green-mist); padding:5px 6px; border-radius:7px; width:100%; }
.av-slot.busy{ color:var(--slate-light); background:var(--mist); }

/* ---------- dashboard mock visual (for-instructors hero) ---------- */
.dash-mock{ background:#0E1712; border:1px solid var(--black-line); border-radius:var(--radius-lg); overflow:hidden; display:flex; box-shadow:0 30px 70px rgba(0,0,0,.5); }
.dash-side{ width:58px; background:#0A100C; border-right:1px solid var(--black-line); display:flex; flex-direction:column; align-items:center; gap:16px; padding:18px 0; flex:none; }
.dash-side i{ width:28px; height:28px; border-radius:9px; background:rgba(255,255,255,.06); display:block; }
.dash-side i.active{ background:var(--blue); }
.dash-main{ flex:1; padding:18px; min-width:0; }
.dash-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.dash-top span{ font-size:11.5px; font-weight:700; color:#fff; }
.dash-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.dash-kpi{ background:rgba(255,255,255,.035); border-radius:12px; padding:11px; }
.dash-kpi b{ display:block; color:#fff; font-size:17px; font-weight:800; }
.dash-kpi span{ font-size:9.5px; color:#8B91A1; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.dash-leads{ margin-top:12px; }
.dash-lead-row{ display:flex; align-items:center; justify-content:space-between; padding:9px 11px; border-radius:10px; background:rgba(255,255,255,.03); margin-bottom:7px; }
.dash-lead-row b{ color:#fff; font-size:12px; font-weight:700; display:block; }
.dash-lead-row span.sub{ color:#73798A; font-size:10.5px; }
.dash-lead-row .new{ background:var(--blue); color:var(--black); font-weight:800; font-size:9.5px; padding:3px 8px; border-radius:999px; flex:none; }

/* ---------- AI match-engine score breakdown ---------- */
.score-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow); }
.score-card-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.score-card-top span{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--slate-light); }
.score-bar-row{ margin-bottom:16px; }
.score-bar-row:last-child{ margin-bottom:0; }
.score-bar-row .lbl{ display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:7px; }
.score-bar-row .lbl span{ color:var(--blue-deep); font-weight:800; }
.score-bar-track{ height:9px; border-radius:5px; background:var(--mist-deep); overflow:hidden; }
.score-bar-track i{ display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,var(--blue),var(--blue-deep)); }
.score-total{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.score-total b{ font-size:26px; color:var(--ink); }
.score-total span{ font-size:12px; color:var(--slate); font-weight:600; }

/* ---------- AI steps (numbered, connected) ---------- */
.ai-step{ display:flex; gap:16px; }
.ai-step-num{ flex:none; width:36px; height:36px; border-radius:11px; background:var(--blue-mist); color:var(--blue-deep); display:grid; place-items:center; font-weight:800; font-size:14px; }
.ai-step-body h3{ font-size:15.5px; }
.ai-step-body p{ font-size:13.5px; color:var(--slate); margin-top:4px; line-height:1.6; }

/* ---------- driving journey timeline ---------- */
.journey{ position:relative; }
.journey-stage{ position:relative; padding-left:64px; padding-bottom:30px; }
.journey-stage:last-child{ padding-bottom:0; }
.journey-stage::before{ content:''; position:absolute; left:23px; top:50px; bottom:-30px; width:2px; background:var(--line); }
.journey-stage:last-child::before{ display:none; }
.journey-num{
  position:absolute; left:0; top:0; width:48px; height:48px; border-radius:14px; z-index:1;
  background:linear-gradient(155deg,var(--black) 0%, #1B2B20 100%); color:#fff; display:grid; place-items:center; font-weight:800; font-size:15px;
}
.journey-num.is-pass{ background:linear-gradient(155deg,var(--blue),var(--blue-deep)); color:var(--black); }
.journey-body h3{ font-size:16.5px; padding-top:8px; }
.journey-split{ display:grid; grid-template-columns:1fr; gap:10px; margin-top:12px; }
.journey-pain, .journey-help{ padding:12px 14px; border-radius:12px; font-size:13px; line-height:1.6; }
.journey-pain{ background:#FDF1F1; color:#8C3437; }
.journey-pain b{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--red); margin-bottom:4px; }
.journey-help{ background:var(--blue-mist); color:#0C6B27; }
.journey-help b{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--blue-deep); margin-bottom:4px; }

/* ---------- AI readiness estimate card ---------- */
.readiness-card{
  background:linear-gradient(155deg, var(--black) 0%, #16261B 100%); border-radius:var(--radius-lg);
  padding:26px; color:#fff; position:relative; overflow:hidden; border:1px solid var(--black-line);
}
.readiness-top{ display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--blue); }
.readiness-big{ font-size:clamp(30px,5vw,42px); font-weight:800; margin-top:10px; }
.readiness-big span{ color:var(--blue); }
.readiness-sub{ color:#9AA1AC; font-size:13px; margin-top:6px; }
.readiness-pills{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.readiness-pills span{ background:rgba(255,255,255,.07); border:1px solid var(--black-line); padding:7px 12px; border-radius:999px; font-size:12px; font-weight:700; }

/* ---------- featured/promoted listings (admin-controlled placement) ---------- */
.featured-strip{ margin-bottom:28px; }
.featured-strip-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.featured-strip-head h3{ font-size:14px; display:flex; align-items:center; gap:7px; }
.featured-strip-head h3 i{ width:16px; height:16px; border-radius:5px; background:var(--amber); display:inline-block; }
.featured-strip-head span{ font-size:12px; color:var(--slate-light); font-weight:500; }
.featured-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.p-card.featured{ border:1.5px solid #F2C744; background:linear-gradient(180deg,#FFFBEF 0%, #fff 120px); position:relative; }
.p-card.featured::before{ content:'★ FEATURED'; position:absolute; top:14px; right:14px; background:var(--amber); color:#5A3D00; font-size:9.5px; font-weight:800; letter-spacing:.04em; padding:4px 8px; border-radius:6px; }

@media (max-width:900px){
  .featured-grid{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px;
    margin:0 -20px; padding:2px 20px 8px; -webkit-overflow-scrolling:touch;
  }
  .featured-grid::-webkit-scrollbar{ display:none; }
  .featured-grid{ scrollbar-width:none; }
  .featured-grid .p-card{ flex:0 0 80%; scroll-snap-align:center; }
}

/* ---------- instructor pricing cards (swipeable on mobile) ---------- */
.pricing-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; align-items:start; }
.price-card{ background:#fff; border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:26px 22px; position:relative; }
.price-card.popular{ border-color:var(--blue); box-shadow:0 24px 56px rgba(45,127,246,.16); }
.price-card .tier-badge{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; font-size:10.5px; font-weight:800; padding:5px 14px; border-radius:999px; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.price-card h3{ font-size:16px; }
.price-card .price-tagline{ font-size:12.5px; color:var(--slate); margin-top:4px; min-height:32px; }
.price-card .price-num{ font-size:34px; font-weight:800; margin-top:14px; color:var(--ink); line-height:1; }
.price-card .price-num span{ font-size:13px; font-weight:600; color:var(--slate-light); }
.price-feat-list{ margin-top:18px; display:flex; flex-direction:column; gap:10px; padding-top:16px; border-top:1px solid var(--line); }
.price-feat-list li{ display:flex; align-items:flex-start; gap:8px; font-size:12.5px; color:var(--ink); line-height:1.5; }
.price-feat-list .feat-check{ flex:none; width:15px; height:15px; border-radius:5px; background:var(--blue-mist); color:var(--blue-deep); display:grid; place-items:center; font-size:9px; margin-top:2px; font-weight:800; }
.price-card.popular .feat-check{ background:var(--blue); color:#fff; }
.price-card .btn{ width:100%; margin-top:20px; }
.swipe-hint{ display:none; text-align:center; font-size:12px; color:var(--slate-light); font-weight:600; margin-top:10px; }

@media (max-width:900px){
  .pricing-grid{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px;
    margin:0 -20px; padding:4px 20px 10px; -webkit-overflow-scrolling:touch;
  }
  .pricing-grid::-webkit-scrollbar{ display:none; }
  .pricing-grid{ scrollbar-width:none; }
  .price-card{ flex:0 0 80%; scroll-snap-align:center; }
  .swipe-hint{ display:block; }
}

/* ---------- cost calculator widget ---------- */
.calc-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow); max-width:640px; margin:0 auto; }
.calc-row{ margin-bottom:20px; }
.calc-label{ display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:10px; }
.seg-control{ display:flex; flex-wrap:wrap; gap:8px; }
.seg-btn{ flex:1; min-width:118px; padding:11px 12px; border-radius:12px; border:1.5px solid var(--line); background:#fff; color:var(--slate); font-weight:700; font-size:12.5px; cursor:pointer; transition:all .15s ease; font-family:inherit; }
.seg-btn.active{ background:var(--blue-mist); border-color:var(--blue); color:var(--blue-deep); }
.seg-btn:hover{ border-color:var(--blue); }
.calc-results{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:20px; margin-top:4px; border-top:1px solid var(--line); }
.calc-result{ text-align:center; padding:14px 6px; border-radius:12px; background:var(--mist); }
.calc-result.highlight{ background:var(--blue-mist); }
.calc-result b{ display:block; font-size:18px; font-weight:800; color:var(--ink); }
.calc-result.highlight b{ color:var(--blue-deep); }
.calc-result span{ font-size:10px; color:var(--slate); font-weight:600; display:block; margin-top:4px; line-height:1.3; }

/* ---------- live chat widget ---------- */
.chat-panel{
  position:fixed; right:16px; bottom:88px; width:min(360px, calc(100vw - 32px)); height:min(480px, calc(100vh - 160px));
  background:#fff; border-radius:var(--radius-lg); box-shadow:0 30px 70px rgba(20,30,25,.25); border:1px solid var(--line);
  display:flex; flex-direction:column; z-index:401; overflow:hidden;
  opacity:0; transform:translateY(16px) scale(.97); pointer-events:none; transition:opacity .2s ease, transform .2s ease;
}
.chat-panel.open{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.chat-head{ background:linear-gradient(120deg,var(--emerald) 0%, var(--emerald-deep) 100%); color:#fff; padding:16px 18px; display:flex; align-items:center; justify-content:space-between; flex:none; }
.chat-head-info{ display:flex; align-items:center; gap:10px; }
.chat-head-dot{ width:9px; height:9px; border-radius:50%; background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.35); }
.chat-head b{ font-size:14px; display:block; }
.chat-head span{ font-size:11px; opacity:.85; }
.chat-close{ background:rgba(255,255,255,.18); border:0; color:#fff; width:28px; height:28px; border-radius:8px; cursor:pointer; font-size:14px; display:grid; place-items:center; }
.chat-messages{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--mist); }
.chat-bubble{ max-width:80%; padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.5; }
.chat-bubble.bot{ background:#fff; border:1px solid var(--line); align-self:flex-start; border-bottom-left-radius:4px; }
.chat-bubble.user{ background:var(--blue); color:var(--black); font-weight:600; align-self:flex-end; border-bottom-right-radius:4px; }
.chat-typing{ display:flex; gap:4px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:14px; border-bottom-left-radius:4px; align-self:flex-start; }
.chat-typing i{ width:6px; height:6px; border-radius:50%; background:var(--slate-light); animation:chatTyping 1s infinite ease-in-out; }
.chat-typing i:nth-child(2){ animation-delay:.15s; }
.chat-typing i:nth-child(3){ animation-delay:.3s; }
@keyframes chatTyping{ 0%,60%,100%{ transform:translateY(0); opacity:.5; } 30%{ transform:translateY(-4px); opacity:1; } }
.chat-input-row{ display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); background:#fff; flex:none; }
.chat-input-row input{ flex:1; border:1.5px solid var(--line); border-radius:12px; padding:10px 13px; font-size:13.5px; font-family:inherit; min-width:0; }
.chat-input-row input:focus{ outline:0; border-color:var(--blue); }
.chat-input-row button{ width:40px; height:40px; border-radius:11px; background:var(--blue); border:0; flex:none; display:grid; place-items:center; cursor:pointer; font-size:15px; }

/* ---------- breadcrumb ---------- */
.crumbs{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--slate-light); flex-wrap:wrap; }
.crumbs a:hover{ color:var(--blue-deep); }
.crumbs span{ opacity:.5; }

/* ---------- keyword block / link cloud (AI/SEO) ---------- */
.kw-cloud{ display:flex; flex-wrap:wrap; gap:10px; }
.kw-cloud a{ background:#fff; border:1.5px solid var(--line); padding:9px 15px; border-radius:10px; font-size:13.5px; font-weight:600; color:var(--ink); }
.kw-cloud a:hover{ border-color:var(--blue); color:var(--blue-deep); }

/* ---------- utility ---------- */
.flex{ display:flex; }
.flex-between{ display:flex; align-items:center; justify-content:space-between; }
.gap-8{ gap:8px;} .gap-10{ gap:10px;} .gap-12{ gap:12px;} .gap-14{ gap:14px;} .gap-16{ gap:16px;}
.mt-8{ margin-top:8px;} .mt-12{ margin-top:12px;} .mt-16{ margin-top:16px;} .mt-24{ margin-top:24px;} .mt-32{ margin-top:32px;}
.hide-mobile{ display:none; }
.show-mobile{ display:block; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.muted{ color:var(--slate); }
.relative{ position:relative; }

/* =========================================================
   TABLET — 768px+
   ========================================================= */
@media (min-width:768px){
  .section{ padding:74px 0; }
  .section-tight{ padding:50px 0; }
  .grid-2{ grid-template-columns:repeat(2,1fr); }
  .grid-3{ grid-template-columns:repeat(3,1fr); }
  .stat-strip{ grid-template-columns:repeat(4,1fr); }
  .stat-strip.divided .stat:not(:first-child){ border-left:1px solid var(--black-line); padding-left:24px; }
  .scroller > *{ flex:0 0 360px; }
  .foot-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; }
  .ai-search{ flex-direction:row; align-items:center; padding:10px 10px 10px 22px; border-radius:999px; }
  .ai-search input{ padding:12px 0; flex:1; min-width:0; }
  .ai-search .ai-row{ border-top:0; padding-top:0; flex:none; }
  .hide-mobile{ display:block; }
  .show-mobile{ display:none; }
}

/* =========================================================
   DESKTOP — 1100px+
   ========================================================= */
@media (min-width:1100px){
  .container{ width:min(var(--container), calc(100% - 64px)); }
  .nav-links{ display:flex; align-items:center; gap:2px; font-size:13.5px; font-weight:500; }
  .nav-links > *{ position:relative; }
  .nav-links > a, .nav-mega-trigger > a{
    color:rgba(255,255,255,.65); padding:8px 13px; border-radius:8px;
    transition:color .15s ease, background .15s ease;
    display:flex; align-items:center; gap:5px; white-space:nowrap; letter-spacing:-.01em;
  }
  .nav-links > a:hover, .nav-mega-trigger > a:hover, .nav-mega-trigger.open > a{ color:#fff; background:rgba(255,255,255,.07); }
  .nav-links > a.active, .nav-mega-trigger.open > a{ color:#fff; }

  /* ---------- mega menu (desktop, full-width, premium) ---------- */
  .nav-mega-trigger{ position:relative; }
  .nav-mega-chevron{
    width:14px; height:14px; display:inline-block;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,.5)' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat; background-position:center;
    transition:transform .2s cubic-bezier(.4,0,.2,1);
    flex:none;
  }
  .nav-mega-trigger.open .nav-mega-chevron,
  .nav-mega-trigger:focus-within .nav-mega-chevron{ transform:rotate(180deg); }

  /* PANEL */
  .nav-mega-panel{
    position:fixed; left:0; right:0; top:68px;
    background:rgba(8,21,48,.97);
    -webkit-backdrop-filter:blur(32px) saturate(180%);
    backdrop-filter:blur(32px) saturate(180%);
    border-bottom:1px solid rgba(255,255,255,.07);
    box-shadow:0 40px 80px rgba(0,0,0,.6);
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .22s cubic-bezier(.4,0,.2,1), transform .22s cubic-bezier(.4,0,.2,1), visibility 0s linear .22s;
    z-index:380;
  }
  .nav-mega-trigger.open .nav-mega-panel{
    opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
    transition:opacity .22s cubic-bezier(.4,0,.2,1), transform .22s cubic-bezier(.4,0,.2,1), visibility 0s;
  }

  /* INNER GRID */
  .nav-mega-inner{
    max-width:1200px; margin:0 auto; padding:36px 40px 40px;
    display:grid; grid-template-columns:260px 1fr 1fr 1fr; gap:0;
  }

  /* LEFT FEATURED PANEL */
  .nav-mega-featured{
    padding:28px 32px 28px 0; border-right:1px solid rgba(255,255,255,.07);
    display:flex; flex-direction:column; gap:0;
  }
  .nav-mega-featured-eyebrow{
    font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    color:rgba(255,255,255,.3); margin-bottom:16px;
  }
  .nav-mega-featured-title{
    font-size:22px; font-weight:700; color:#fff; line-height:1.25; letter-spacing:-.02em; margin-bottom:10px;
  }
  .nav-mega-featured-desc{
    font-size:13px; color:rgba(255,255,255,.5); line-height:1.65; flex:1; margin-bottom:24px;
  }
  .nav-mega-featured-cta{
    display:inline-flex; align-items:center; gap:7px;
    font-size:13px; font-weight:600; color:#2D7FF6;
    transition:gap .18s ease, color .15s ease;
  }
  .nav-mega-featured-cta:hover{ color:#5ba3ff; gap:10px; }
  .nav-mega-featured-cta-arrow{ font-size:16px; line-height:1; }

  /* RIGHT LINK COLUMNS */
  .nav-mega-col{
    padding:28px 0 28px 28px;
    display:flex; flex-direction:column; gap:0;
    border-right:1px solid rgba(255,255,255,.04);
  }
  .nav-mega-col:last-child{ border-right:0; }
  .nav-mega-col h4{
    font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    color:rgba(255,255,255,.3); margin-bottom:14px; padding:0 4px;
  }
  .nav-mega-item{
    display:flex; align-items:center; gap:10px;
    padding:9px 10px; border-radius:8px;
    transition:background .12s ease; margin-bottom:2px;
  }
  .nav-mega-item:hover{ background:rgba(255,255,255,.06); }
  .nav-mega-item:hover .nav-mega-item-arrow{ opacity:1; transform:translateX(0); }
  .nav-mega-item-icon{
    width:32px; height:32px; border-radius:8px;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.07);
    display:grid; place-items:center; flex:none; color:rgba(255,255,255,.6);
  }
  .nav-mega-item-icon svg{ width:15px; height:15px; }
  .nav-mega-item-text{ flex:1; min-width:0; }
  .nav-mega-item b{ display:block; font-size:13px; color:rgba(255,255,255,.88); font-weight:600; letter-spacing:-.01em; }
  .nav-mega-item small{ display:block; font-size:11px; color:rgba(255,255,255,.38); margin-top:2px; line-height:1.4; }
  .nav-mega-item-arrow{
    font-size:13px; color:rgba(255,255,255,.3);
    opacity:0; transform:translateX(-4px);
    transition:opacity .15s ease, transform .15s ease;
    flex:none;
  }

  /* CITIES GRID (Locations panel) */
  .nav-mega-cities{
    display:grid; grid-template-columns:repeat(2,1fr); gap:2px;
  }
  .nav-mega-cities a{
    font-size:12.5px; color:rgba(255,255,255,.6); font-weight:500;
    padding:8px 10px; border-radius:7px; letter-spacing:-.005em;
    transition:background .12s ease, color .12s ease;
  }
  .nav-mega-cities a:hover{ background:rgba(255,255,255,.07); color:#fff; }

  /* DIVIDER LINE between panels */
  .nav-mega-divider{ width:1px; background:rgba(255,255,255,.07); margin:28px 0; }

  .nav-mega-foot{ margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,.07); }
  .nav-mega-foot a{ font-size:12.5px; color:rgba(45,127,246,.8); font-weight:600; }
  .nav-mega-foot a:hover{ color:#5ba3ff; }

  .hamburger{ display:none; }
  .nav-actions .btn-ghost-dark{ display:inline-flex; }

  /* Override action buttons for dark nav */
  .topnav .btn-ghost-dark{
    color:rgba(255,255,255,.75); border-color:rgba(255,255,255,.18); background:transparent;
  }
  .topnav .btn-ghost-dark:hover{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.3); }
  .topnav .btn-green{ background:var(--blue); border-color:var(--blue); }
  .grid-4{ grid-template-columns:repeat(4,1fr); }
  .grid-3-d{ grid-template-columns:repeat(3,1fr); }
  .hero-grid{ grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:30px; }
  .step-row{ position:relative; }
  .step-row::before{ content:''; position:absolute; top:42px; left:16.6%; right:16.6%; height:1px; background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 16px); z-index:0; }
  .step-row .p-card{ position:relative; z-index:1; }
  .ai-explain-grid{ display:grid; grid-template-columns:1fr .85fr; gap:48px; align-items:start; }
  .journey-grid{ display:grid; grid-template-columns:1fr .8fr; gap:48px; align-items:start; }
  .scroller{ overflow:visible; display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:0; }
  .scroller.scroller-4{ grid-template-columns:repeat(4,1fr); }
  .scroller > *{ flex:none; max-width:none; }
  .sticky-cta{ display:none; }
  .browse-layout{ display:grid; grid-template-columns:280px 1fr; gap:30px; align-items:start; }
  .filters-sidebar{ display:block; position:sticky; top:140px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
  [data-filters-open]{ display:none; }
  .profile-head{ flex-direction:row; align-items:flex-start; justify-content:space-between; gap:40px; }
  .profile-head-main{ flex:1; }
  .booking-card{ width:300px; flex:none; }
  .profile-layout{ display:grid; grid-template-columns:1fr 300px; gap:40px; align-items:start; }
}
@media (min-width:1300px){
  .grid-4-d{ grid-template-columns:repeat(4,1fr); }
}

/* ---------- scroll-reveal microanimations ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .65s cubic-bezier(.16,.84,.44,1), transform .65s cubic-bezier(.16,.84,.44,1); will-change:opacity, transform; }
.reveal-in{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}


/* =========================================================
   V4 marketplace cards, pills, profile CMS and microanimations
   ========================================================= */
.marketplace-hero{background:linear-gradient(180deg,#F7FAFF 0%,#fff 100%);padding:34px 0 24px;border-bottom:1px solid var(--line)}
.marketplace-search{display:grid;grid-template-columns:1.3fr .7fr .7fr .7fr auto;gap:10px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:12px;border-radius:22px;margin-top:22px}
.marketplace-search .input{height:46px;border-radius:14px}
@media(max-width:900px){.marketplace-search{grid-template-columns:1fr}.marketplace-search .btn{width:100%}}
.filter-chipbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.filter-chipbar a,.filter-chipbar span{font-size:12.5px;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;color:var(--slate)}
.marketplace-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.filter-panel{position:sticky;top:92px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow-sm)}.filter-panel h3{font-size:16px;margin-bottom:12px}.filter-panel label{display:flex;gap:9px;align-items:center;font-size:13.5px;font-weight:600;color:var(--slate);margin:10px 0}.filter-panel .input{height:42px;border-radius:12px;margin-bottom:10px}
@media(max-width:980px){.marketplace-layout{grid-template-columns:1fr}.filter-panel{position:relative;top:auto}}
.list-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 14px}.list-section-title h2{font-size:22px}.list-section-title p{font-size:13px;color:var(--slate);line-height:1.45}.sponsored-note{font-size:12.5px;color:var(--slate);background:#F7F8FB;border:1px solid var(--line);border-radius:999px;padding:8px 12px}
.market-results{display:grid;gap:16px}.market-card{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr) 190px;gap:18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow-sm);color:inherit;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;overflow:hidden}.market-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(45,127,246,.35)}.market-card:hover .market-photo img{transform:scale(1.035)}.market-card.is-featured{background:linear-gradient(135deg,#F8FAFC 0%,#EEF5FF 100%);border-color:#D6E7FF}.market-card.is-featured::before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.45) 38%,transparent 64%);transform:translateX(-120%);transition:transform .6s ease;pointer-events:none}.market-card.is-featured:hover::before{transform:translateX(120%)}.market-photo{width:104px;height:104px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,var(--blue),var(--green));display:grid;place-items:center;color:#fff;font-size:30px;font-weight:900}.market-photo img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.market-main{min-width:0}.market-kicker{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:7px}.market-name{font-size:21px;font-weight:900;letter-spacing:-.02em;margin:0}.market-role{font-size:14px;color:var(--slate);font-weight:600;margin-top:4px}.market-summary{font-size:13.5px;color:var(--slate);line-height:1.55;margin-top:10px;max-width:660px}.market-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:center}.market-price span{display:block;font-size:12px;color:var(--slate);font-weight:700}.market-price b{font-size:24px;font-weight:900;color:var(--ink)}.market-rating{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--slate);margin-top:6px}.market-rating .stars{color:#FFB100;letter-spacing:-1px}.compare-check{display:flex;align-items:center;gap:8px;justify-content:center;font-size:13px;font-weight:800;color:var(--slate);border:1px solid var(--line);border-radius:999px;padding:10px;background:#fff;cursor:pointer}.compare-check input{accent-color:var(--blue)}
@media(max-width:760px){.market-card{grid-template-columns:72px 1fr;gap:12px;border-radius:20px}.market-photo{width:72px;height:72px;border-radius:18px;font-size:22px}.market-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr}.market-price b{font-size:20px}.market-name{font-size:18px}}
.cdi-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:11.5px;font-weight:800;line-height:1;border:1px solid transparent;white-space:nowrap}.pill-featured{background:#FFF7E6;color:#9A5B00;border-color:#FFE0A3}.pill-blue{background:#EAF3FE;color:#1A56C4;border-color:#CFE3FF}.pill-green{background:#EAFBF0;color:#00822F;border-color:#BDEFCF}.pill-amber{background:#FFF6E0;color:#9A5B00;border-color:#FFE3A8}.pill-slate{background:#F4F6F9;color:#4D5568;border-color:#E5E9F0}.pulse-dot::before{content:'';width:7px;height:7px;border-radius:50%;background:#00A53C;box-shadow:0 0 0 0 rgba(0,165,60,.45);animation:cdiPulse 1.8s infinite}@keyframes cdiPulse{70%{box-shadow:0 0 0 7px rgba(0,165,60,0)}100%{box-shadow:0 0 0 0 rgba(0,165,60,0)}}
.compare-tray{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(130%);z-index:60;background:#0B1F3D;color:#fff;border-radius:22px;padding:12px 14px;box-shadow:var(--shadow-lg);display:flex;gap:12px;align-items:center;transition:transform .2s ease;max-width:calc(100% - 24px)}.compare-tray.is-visible{transform:translateX(-50%) translateY(0)}.compare-tray span{font-size:13px;font-weight:700;color:rgba(255,255,255,.78)}
.empty-state-v4{background:#fff;border:1px solid var(--line);border-radius:28px;padding:44px;text-align:center;box-shadow:var(--shadow-sm)}.empty-state-v4 .big{font-size:42px}.empty-state-v4 h2{font-size:26px;margin-top:10px}.empty-state-v4 p{max-width:620px;margin:10px auto 0;color:var(--slate);line-height:1.65}
.profile-hero-v4{background:linear-gradient(180deg,#F7FAFF 0%,#fff 100%);padding:34px 0;border-bottom:1px solid var(--line)}.profile-hero-card{display:grid;grid-template-columns:150px minmax(0,1fr) 300px;gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:30px;padding:24px;box-shadow:var(--shadow-sm)}.profile-photo-xl{width:150px;height:150px;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,var(--blue),var(--green));display:grid;place-items:center;color:#fff;font-size:42px;font-weight:900}.profile-photo-xl img{width:100%;height:100%;object-fit:cover}.profile-cta-box{background:#F8FAFC;border:1px solid var(--line);border-radius:22px;padding:18px}.profile-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.profile-quick{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.profile-quick b{display:block;font-size:20px}.profile-quick span{font-size:12.5px;color:var(--slate);font-weight:700}.profile-body-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.profile-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow-sm);margin-bottom:18px}.profile-panel h2{font-size:22px;margin-bottom:10px}.sticky-enquiry{position:sticky;top:96px}
@media(max-width:900px){.profile-hero-card{grid-template-columns:1fr}.profile-photo-xl{width:110px;height:110px}.profile-body-grid{grid-template-columns:1fr}.profile-quick-grid{grid-template-columns:repeat(2,1fr)}}
.cms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cms-grid .full{grid-column:1 / -1}.cms-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.cms-tabs a{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:800;color:var(--slate)}.cms-tabs a.active{background:var(--blue);color:#fff;border-color:var(--blue)}.completion-ring{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:var(--ink);background:conic-gradient(var(--blue) calc(var(--pct) * 1%),#EEF2F7 0)}.completion-ring span{background:#fff;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:15px}.micro-lift{transition:transform .18s ease,box-shadow .18s ease}.micro-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
@media(max-width:700px){.cms-grid{grid-template-columns:1fr}.cms-grid .full{grid-column:auto}}

/* ---------- V5 profile CMS, comparison and search intelligence ---------- */
.search-layout-v5{ display:grid; grid-template-columns:280px minmax(0,1fr); gap:28px; align-items:start; }
@media(max-width:900px){ .search-layout-v5{ grid-template-columns:1fr; } }
.smart-search-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.filter-panel{ background:#fff; border:1px solid var(--line); border-radius:22px; padding:22px; box-shadow:var(--shadow-sm); position:sticky; top:96px; }
@media(max-width:900px){ .filter-panel{ position:static; } }
.match-score{ display:inline-flex; align-items:center; gap:3px; border:1px solid rgba(45,127,246,.18); background:rgba(45,127,246,.08); color:var(--blue-deep); border-radius:999px; padding:5px 8px; font-size:11px; font-weight:800; white-space:nowrap; }
.match-score b{ font-size:12px; }
.review-themes{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.review-themes span{ display:inline-flex; align-items:center; border:1px solid var(--line); background:#fff; border-radius:999px; padding:5px 9px; color:var(--slate); font-size:11.5px; font-weight:700; }
.review-themes.large span{ font-size:13px; padding:8px 12px; color:var(--ink); }
.profile-service-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
@media(max-width:680px){ .profile-service-grid{ grid-template-columns:1fr; } }
.profile-service-box{ border:1px solid var(--line); background:linear-gradient(180deg,#fff,#F8FAFC); border-radius:16px; padding:16px; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.profile-service-box:hover{ transform:translateY(-2px); border-color:rgba(45,127,246,.28); box-shadow:0 14px 30px rgba(11,31,61,.08); }
.profile-service-box h3{ font-size:15px; margin:0 0 7px; }
.profile-service-box p{ font-size:13px; line-height:1.55; margin-top:6px; }
.cms-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.cms-grid .full{ grid-column:1/-1; }
@media(max-width:760px){ .cms-grid{ grid-template-columns:1fr; } }
.field-label{ display:block; color:var(--slate); font-weight:800; font-size:12px; margin-bottom:7px; }
.cms-tabs{ display:flex; gap:8px; overflow:auto; margin:16px 0 20px; }
.cms-tabs a{ white-space:nowrap; border:1px solid var(--line); background:#fff; border-radius:999px; padding:9px 14px; font-size:13px; font-weight:800; color:var(--slate); }
.cms-tabs a.active{ background:var(--green-pale); color:var(--green-deep); border-color:var(--green-tint); }
.completion-ring{ --pct:0; width:96px; height:96px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--green) calc(var(--pct)*1%), #E6EDF4 0); position:relative; }
.completion-ring::before{ content:''; position:absolute; inset:9px; border-radius:50%; background:#fff; }
.completion-ring span{ position:relative; z-index:1; font-weight:900; color:var(--ink); }
.package-row{ display:grid; grid-template-columns:1.2fr .5fr .5fr .7fr 1.2fr; gap:10px; margin-bottom:10px; }
@media(max-width:880px){ .package-row{ grid-template-columns:1fr; } }
.availability-matrix{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.availability-day{ border:1px solid var(--line); border-radius:14px; padding:12px; background:#fff; display:grid; gap:8px; }
.availability-day b{ font-size:13px; color:var(--ink); margin-bottom:4px; }
@media(max-width:1050px){ .availability-matrix{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .availability-matrix{ grid-template-columns:1fr; } }
.comparison-table-wrap{ overflow:auto; background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow-sm); }
.comparison-table{ width:100%; border-collapse:collapse; min-width:820px; }
.comparison-table th{ text-align:left; padding:18px; border-bottom:1px solid var(--line); background:#F8FAFC; vertical-align:top; }
.comparison-table td{ padding:16px 18px; border-bottom:1px solid var(--line); vertical-align:top; font-size:14px; }
.comparison-table td:first-child{ font-weight:900; color:var(--ink); background:#FBFCFE; }
.compare-tray{ position:fixed; left:50%; bottom:18px; transform:translate(-50%, 130%); z-index:700; background:#0B1F3D; color:#fff; border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:10px 12px 10px 18px; display:flex; align-items:center; gap:12px; box-shadow:0 20px 50px rgba(0,0,0,.24); transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.compare-tray.is-visible{ transform:translate(-50%, 0); }
.compare-tray span{ font-weight:800; font-size:13px; }
.compare-tray .btn-ghost-dark{ border-color:rgba(255,255,255,.24); color:#fff; }
@media(max-width:620px){ .compare-tray{ left:12px; right:12px; transform:translateY(130%); justify-content:space-between; border-radius:18px; } .compare-tray.is-visible{ transform:translateY(0); } }

/* V6 radius, onboarding and operational polish */
.results-summary-v6{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:18px;color:var(--ink);font-weight:700;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.match-reasons-v6{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 6px}
.match-reasons-v6 span{font-size:11.5px;font-weight:800;color:#0f5132;background:#EAFBF0;border:1px solid #CFF7DC;border-radius:999px;padding:4px 9px;text-transform:capitalize}
.onboarding-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:22px;box-shadow:0 12px 32px rgba(15,23,42,.05)}
.onboarding-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.onboarding-top h3{font-size:18px;margin:0}.onboarding-top p{color:var(--slate);font-size:13px;margin-top:4px}
.onboarding-progress{height:9px;background:var(--mist-mid);border-radius:999px;overflow:hidden;margin-bottom:14px}.onboarding-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#42d97d);border-radius:999px;transition:width .35s ease}
.onboarding-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;list-style:none;padding:0;margin:0 0 12px}.onboarding-list li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--slate);background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:9px 11px}.onboarding-list li.is-done{background:#EAFBF0;color:#00822F;border-color:#CFF7DC}.onboarding-list span{font-weight:900}.small{font-size:12.5px}.field-label{display:block;font-size:12px;font-weight:800;color:var(--slate);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}

/* =========================================================
   V7 Premium Marketplace Visual Refinement
   Applied from approved HTML preview
   ========================================================= */
:root{
  --premium-navy:#0C1F38;
  --premium-hero:#3BB8F3;
  --premium-blue:#1F5EFF;
  --premium-blue-hover:#1648C7;
  --premium-featured:#EAF2FA;
  --premium-featured-border:#9DB7D3;
  --premium-line:#DCE5EF;
}

/* Header */
.topnav{
  background:var(--premium-navy) !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.topnav .row{
  height:74px !important;
  min-height:74px !important;
  gap:22px !important;
}
.brand-logo img{
  width:168px !important;
  max-height:66px !important;
  object-fit:contain !important;
  filter:brightness(0) invert(1) !important;
}
.nav-links{
  gap:28px !important;
  white-space:nowrap !important;
  flex-wrap:nowrap !important;
}
.nav-links a,
.nav-mega-trigger > a,
.nav-link-plain{
  color:#D9E2EE !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  letter-spacing:-.01em !important;
}
.nav-links a:hover,
.nav-mega-trigger > a:hover,
.nav-link-plain:hover{ color:#fff !important; }
.nav-actions .btn-green{
  background:#2F80ED !important;
  border-color:#2F80ED !important;
  color:#071426 !important;
  min-height:40px !important;
  padding:10px 18px !important;
  font-size:13.5px !important;
  font-weight:900 !important;
  box-shadow:none !important;
}
.nav-actions .btn-green:hover{ background:#3B8DF6 !important; color:#071426 !important; }
.topnav-spacer{ height:74px !important; background:transparent !important; }
@media(max-width:1100px){
  .brand-logo img{ width:150px !important; }
  .nav-links{ gap:18px !important; }
  .nav-links a,.nav-mega-trigger > a,.nav-link-plain{ font-size:13px !important; }
}
@media(max-width:980px){
  .topnav .row{ height:68px !important; min-height:68px !important; }
  .topnav-spacer{ height:68px !important; }
  .brand-logo img{ width:150px !important; }
}

/* Hero sections */
.hero-block,
.marketplace-hero{
  background:var(--premium-hero) !important;
  background-image:none !important;
  border-bottom:1px solid #2EA8DF !important;
}
.hero-block h1,
.marketplace-hero h1{ color:#071426 !important; }
.hero-block .lede,
.marketplace-hero .lede{ color:#17324F !important; }
.hero-block .eyebrow,
.marketplace-hero .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:9px !important;
  border:1px solid rgba(12,31,56,.18) !important;
  background:rgba(255,255,255,.90) !important;
  border-radius:999px !important;
  padding:7px 12px !important;
  font-size:11px !important;
  font-weight:900 !important;
  color:var(--premium-navy) !important;
  box-shadow:0 8px 22px rgba(12,31,56,.08) !important;
}
.eyebrow .dashes span{ background:#2F80ED !important; }

/* Slim premium search module */
.ai-search,
.marketplace-search{
  max-width:860px !important;
  background:#fff !important;
  border:1px solid rgba(12,31,56,.14) !important;
  border-radius:22px !important;
  box-shadow:0 16px 38px rgba(12,31,56,.16) !important;
  padding:10px !important;
}
.marketplace-search{
  display:grid !important;
  grid-template-columns:1.15fr .82fr .9fr 190px !important;
  gap:8px !important;
  align-items:stretch !important;
}
.marketplace-search .input,
.ai-search input,
.ai-search select{
  min-height:58px !important;
  height:58px !important;
  background:#F9FBFE !important;
  border:1px solid var(--premium-line) !important;
  border-radius:15px !important;
  padding:9px 13px !important;
  font-size:14px !important;
  font-weight:800 !important;
  color:var(--premium-navy) !important;
}
.ai-search .ai-row{ gap:8px !important; }
.ai-search .btn-green,
.marketplace-search .btn-green{
  min-width:0 !important;
  min-height:58px !important;
  height:58px !important;
  border-radius:18px !important;
  background:var(--premium-blue) !important;
  color:#fff !important;
  border:1px solid var(--premium-blue) !important;
  box-shadow:0 10px 22px rgba(31,94,255,.22) !important;
  font-size:14px !important;
  font-weight:900 !important;
}
.ai-search .btn-green:hover,
.marketplace-search .btn-green:hover{
  background:var(--premium-blue-hover) !important;
  color:#fff !important;
  border-color:var(--premium-blue-hover) !important;
}
@media(max-width:900px){
  .marketplace-search{ grid-template-columns:1fr !important; }
  .ai-search,.marketplace-search{ max-width:none !important; }
}

/* General CTA/button refinements */
.btn-green{
  background:var(--premium-blue) !important;
  color:#fff !important;
  border:1px solid var(--premium-blue) !important;
}
.btn-green:hover{ background:var(--premium-blue-hover) !important; color:#fff !important; }

/* Featured cards and marketplace listings */
.market-card{
  border-radius:24px !important;
  border:1px solid #DCE4EE !important;
  box-shadow:0 10px 26px rgba(12,31,56,.065) !important;
  background:#fff !important;
}
.market-card:hover{
  transform:translateY(-4px) !important;
  border-color:#416F9E !important;
  box-shadow:0 18px 42px rgba(12,31,56,.10) !important;
}
.market-card.is-featured{
  background:var(--premium-featured) !important;
  border:1px solid var(--premium-featured-border) !important;
  box-shadow:0 14px 32px rgba(23,58,94,.13) !important;
}
.market-card.is-featured::before,
.market-card.is-featured::after{ display:none !important; content:none !important; }
.market-card.is-featured:hover{
  border-color:#416F9E !important;
  box-shadow:0 22px 46px rgba(23,58,94,.18) !important;
}
.market-kicker{
  margin-bottom:12px !important;
  gap:8px !important;
}
.market-name{ margin-top:0 !important; }
.market-photo{
  width:74px !important;
  height:74px !important;
  border-radius:20px !important;
  background:#FFFFFF !important;
  border:1px solid #B9C8D8 !important;
  color:var(--premium-navy) !important;
  box-shadow:none !important;
}
.market-icon-svg{
  width:34px;
  height:34px;
  stroke:var(--premium-navy);
  stroke-width:1.9;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pill-featured{
  background:#FFFFFF !important;
  color:#173A5E !important;
  border:1px solid var(--premium-featured-border) !important;
  border-radius:999px !important;
  padding:7px 12px !important;
  font-size:10.5px !important;
  font-weight:950 !important;
  letter-spacing:.075em !important;
  text-transform:uppercase !important;
  line-height:1 !important;
  box-shadow:0 6px 14px rgba(23,58,94,.10) !important;
}
.pill-featured::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#2F80ED;
  display:inline-block;
  flex:0 0 7px;
}
.market-card.is-featured:hover .pill-featured{
  background:#F8FBFF !important;
  border-color:#416F9E !important;
  color:var(--premium-navy) !important;
}
.market-card.is-featured:hover .pill-featured::before{ background:var(--premium-navy); }

/* Hide sticky comparison tray. Compare checkboxes and /compare page remain available. */
.compare-tray,
#compareTray,
[data-compare-tray]{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Remove old gradient visuals from core UI areas to match approved flat preview */
.glow-field::before,.glow-field::after,.glow-field-light::before,.glow-field-light::after{ display:none !important; }
.grid-texture{ background-image:none !important; opacity:0 !important; }
.mm-avatar,.mm-row.alt .mm-avatar,.avatar,.avatar.av-green,.journey-num,.journey-num.is-pass,.profile-photo-xl{ background:#E8EEF5 !important; color:var(--premium-navy) !important; border:1px solid #B9C8D8 !important; }
.mini-bar i,.score-bar-track i,.onboarding-progress span{ background:var(--premium-blue) !important; }
.p-card.featured{ background:#EAF2FA !important; border-color:#9DB7D3 !important; }
.profile-hero-v4{ background:#F7F9FC !important; }
.profile-service-box{ background:#fff !important; }
.chat-head{ background:var(--premium-navy) !important; }

/* === CDI marketplace comparison upgrade === */
.marketplace-focus{padding:34px 0;background:#F6F9FC;border-top:1px solid rgba(13,31,56,.06);border-bottom:1px solid rgba(13,31,56,.06)}
.marketplace-grid{display:grid;grid-template-columns:1.05fr 1.35fr;gap:24px;align-items:center}
.marketplace-grid h2{font-size:clamp(22px,3vw,34px);letter-spacing:-.02em;margin:8px 0 10px;color:var(--ink)}
.marketplace-grid p{font-size:15.5px;line-height:1.65;color:var(--slate);max-width:620px;margin:0}
.comparison-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.comparison-points span{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;font-size:13.5px;font-weight:800;color:var(--ink);box-shadow:0 8px 20px rgba(13,31,56,.04)}
.comparison-points span:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:var(--gm);color:var(--gd);font-weight:900;flex:0 0 20px}
.compare-tray.compare-tray-enhanced{position:fixed;left:50%;bottom:18px;z-index:9999;transform:translate(-50%,120%);display:flex !important;visibility:visible !important;opacity:0 !important;pointer-events:none !important;align-items:center;justify-content:space-between;gap:18px;width:min(720px,calc(100vw - 28px));background:rgba(12,31,56,.96);color:#fff;border-radius:22px;padding:13px 14px 13px 18px;box-shadow:0 20px 60px rgba(7,20,38,.28);transition:transform .22s ease,opacity .22s ease;border:1px solid rgba(255,255,255,.12)}
.compare-tray.compare-tray-enhanced.is-visible{transform:translate(-50%,0);opacity:1 !important;pointer-events:auto !important}
.compare-tray-enhanced .ct-left{display:flex;flex-direction:column;gap:2px;min-width:0}
.compare-tray-enhanced .ct-left strong{font-size:15px;line-height:1.1;color:#fff}
.compare-tray-enhanced .ct-left span{font-size:12.5px;color:rgba(255,255,255,.72)}
.compare-tray-enhanced .ct-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.compare-tray-enhanced .btn-green{background:var(--green);color:#fff;border-color:var(--green)}
.compare-tray-enhanced .btn-ghost-dark{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.compare-tray-enhanced .btn-white{background:#fff;color:var(--navy)}
.compare-upgrade-note{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:16px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;box-shadow:0 8px 22px rgba(13,31,56,.04)}
.compare-upgrade-note h3{font-size:16px;margin:0 0 4px;color:var(--ink)}
.compare-upgrade-note p{font-size:13.5px;line-height:1.5;color:var(--slate);margin:0}
.comparison-help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 20px}
.comparison-help-grid div{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:13px}.comparison-help-grid strong{display:block;color:var(--ink);font-size:13.5px;margin-bottom:4px}.comparison-help-grid span{display:block;color:var(--muted);font-size:12.5px;line-height:1.35}
@media(max-width:760px){.marketplace-grid{grid-template-columns:1fr}.comparison-points{grid-template-columns:1fr}.compare-tray.compare-tray-enhanced{bottom:10px;border-radius:18px;align-items:stretch;gap:10px;flex-direction:column;padding:13px}.compare-tray-enhanced .ct-actions{display:grid;grid-template-columns:1fr auto}.compare-upgrade-note{grid-template-columns:1fr}.comparison-help-grid{grid-template-columns:1fr 1fr}}
/* V17 marketplace intelligence */
.ic-mini-badge{display:inline-flex;align-items:center;margin:0 4px 4px 0;padding:3px 7px;border-radius:999px;background:rgba(44,170,226,.10);color:#075985;font-size:11px;font-weight:800;line-height:1.1}
.ic-topic-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.ic-topic-row span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#fff7ed;color:#92400e;font-size:10.5px;font-weight:800;border:1px solid #fed7aa}
.v17-save-panel{background:linear-gradient(135deg,#f8fafc,#eef7ff);border:1px solid var(--line);border-radius:20px;padding:16px 18px;margin:0 0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.v17-save-panel strong{font-size:15px;color:var(--ink)}
.v17-save-panel p{font-size:13px;color:var(--slate);margin:3px 0 0;line-height:1.45}
/* ===== END assets/css/main.css ===== */

/* ===== BEGIN assets/css/cdi-app.css ===== */

/* ==========================================================
   Compare Driving Instructors - Clean Premium App CSS
   Load order: main.css, then this file.
   This replaces all previous patch CSS files.
   ========================================================== */

:root{
  --cdi-ink:#08111F;
  --cdi-navy:#0C1F38;
  --cdi-navy-2:#132B49;
  --cdi-blue:#2F80ED;
  --cdi-sky:#3BB8F3;
  --cdi-bg:#F6F8FB;
  --cdi-card:#FFFFFF;
  --cdi-line:#DCE7F2;
  --cdi-muted:#52657D;
  --cdi-soft:#EEF5FB;
  --cdi-shadow:0 14px 34px rgba(12,31,56,.075);
  --cdi-shadow-lg:0 26px 72px rgba(12,31,56,.16);
}

/* Global reset against legacy heavy CSS */
html,body{overflow-x:hidden !important;}
body{
  background:var(--cdi-bg) !important;
  color:var(--cdi-ink) !important;
  font-size:14px !important;
  line-height:1.58 !important;
  letter-spacing:-.004em !important;
}
body,p,li,a,span,small,input,select,textarea,button,td,th,label,
.mm-info span,.match-mock-foot,.foot-brand p,.foot-col a{
  font-weight:500 !important;
}
h1,h2,h3,h4,h5,h6,b,strong,.btn,.badge,.eyebrow{
  font-weight:800 !important;
}
h1{
  font-size:clamp(34px,5.8vw,50px) !important;
  line-height:1.04 !important;
  letter-spacing:-.052em !important;
}
h2{
  font-size:clamp(25px,4.6vw,38px) !important;
  line-height:1.1 !important;
  letter-spacing:-.038em !important;
}
h3{
  font-size:clamp(18px,3vw,23px) !important;
  line-height:1.18 !important;
  letter-spacing:-.025em !important;
}
.lede,.lead{
  font-size:clamp(15.5px,3vw,18.5px) !important;
  line-height:1.58 !important;
  font-weight:500 !important;
  color:var(--cdi-muted) !important;
}
.container{width:min(1200px,calc(100% - 28px)) !important;}

/* Header and CTA */
.topnav{
  background:var(--cdi-navy) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  overflow:visible !important;
  box-shadow:none !important;
}
.topnav .row{
  min-height:72px !important;
  padding:8px 0 !important;
  overflow:visible !important;
  align-items:center !important;
}
.brand-logo img{
  width:158px !important;
  height:auto !important;
  filter:brightness(0) invert(1) contrast(1.08) !important;
}
.nav-links{
  gap:30px !important;
  align-items:center !important;
  overflow:visible !important;
}
.nav-links > a,
.nav-link-plain,
.nav-mega-trigger > a{
  color:#E2ECF7 !important;
  font-size:13.5px !important;
  font-weight:650 !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.nav-mega-trigger > a{
  height:42px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 16px !important;
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(255,255,255,.11) !important;
  border-radius:13px !important;
}
.nav-actions{display:flex !important;align-items:center !important;gap:10px !important;}
.nav-actions .btn,.topnav a.btn{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  border-radius:999px !important;
  background:var(--cdi-blue) !important;
  border:1px solid var(--cdi-blue) !important;
  color:#071426 !important;
  font-size:13.5px !important;
  font-weight:750 !important;
  box-shadow:none !important;
  transform:none !important;
  margin:0 !important;
}

/* Hero */
.hero-block,.saas-hero{
  background:var(--cdi-navy) !important;
  color:#fff !important;
  padding:52px 0 42px !important;
  position:relative !important;
  overflow:hidden !important;
}
.hero-block::before,.hero-block::after,.saas-hero::before,.saas-hero::after{
  display:none !important;
  content:none !important;
}
.hero-block .container,.saas-hero .container{position:relative !important;z-index:1 !important;}
.hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 420px !important;
  gap:52px !important;
  align-items:center !important;
}
.hero-block h1,.saas-hero h1{
  color:#FFFFFF !important;
  max-width:760px !important;
  margin:12px 0 0 !important;
  overflow:visible !important;
}
.hero-block .lede,.hero-block .lead,.saas-hero .lede,.saas-hero .lead{
  color:#D3E2F2 !important;
  max-width:680px !important;
  margin-top:16px !important;
}
.hero-block .eyebrow,.saas-hero .eyebrow{color:#BFE9FB !important;}
.match-mock{
  width:100% !important;
  max-width:420px !important;
  margin-left:auto !important;
  border-radius:26px !important;
  box-shadow:0 24px 70px rgba(0,0,0,.20) !important;
}

/* Search and chips */
.ai-search{
  width:100% !important;
  max-width:690px !important;
  padding:8px !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:0 20px 54px rgba(0,0,0,.22) !important;
  border:1px solid rgba(255,255,255,.28) !important;
}
.ai-search > input,.ai-row select,.ai-row .input{
  min-height:50px !important;
  border-radius:15px !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  color:var(--cdi-ink) !important;
  background:#F8FBFE !important;
  border:1px solid var(--cdi-line) !important;
}
.ai-row{gap:8px !important;}
.ai-row .btn{
  min-height:50px !important;
  border-radius:15px !important;
  background:var(--cdi-blue) !important;
  border-color:var(--cdi-blue) !important;
  color:#fff !important;
}
.chip{
  font-size:12.8px !important;
  font-weight:650 !important;
  padding:10px 14px !important;
  border-radius:999px !important;
  background:#fff !important;
  border:1px solid var(--cdi-line) !important;
  box-shadow:var(--cdi-shadow) !important;
}

/* Cards and stats */
.stat-strip.divided{gap:14px !important;border-top:1px solid rgba(255,255,255,.14) !important;}
.stat-strip .stat,.stat-box,.p-card,.card,.saas-feature,.cdi-demo-shell,.feature-box,.quick-box{
  padding:20px !important;
  border-radius:24px !important;
  background:#fff !important;
  border:1px solid var(--cdi-line) !important;
  box-shadow:var(--cdi-shadow) !important;
}
.stat-strip .stat b,.stat b{
  display:block !important;
  font-size:24px !important;
  line-height:1.1 !important;
  margin:0 0 8px !important;
  color:var(--cdi-ink) !important;
}
.stat-strip .stat span,.stat span{
  display:block !important;
  font-size:12.5px !important;
  color:var(--cdi-muted) !important;
  font-weight:600 !important;
}

/* Mega menu */
.nav-mega-trigger{position:static !important;}
.nav-mega-panel{
  top:calc(100% + 12px) !important;
  width:min(1080px,calc(100vw - 56px)) !important;
  z-index:9999 !important;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease !important;
}
.nav-mega-panel::before{
  content:"" !important;
  position:absolute !important;
  top:-20px !important;
  left:0 !important;
  right:0 !important;
  height:20px !important;
  display:block !important;
}
.nav-mega-trigger:hover .nav-mega-panel,
.nav-mega-trigger:focus-within .nav-mega-panel,
.nav-mega-trigger.is-open .nav-mega-panel,
.nav-mega-panel:hover{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateX(-50%) translateY(0) !important;
}
.nav-mega-panel,.nav-mega-panel *{opacity:1 !important;text-shadow:none !important;}
.nav-mega-panel a{text-decoration:none !important;}
.cdi-mega-v2,.premium-mega{
  width:100% !important;
  display:grid !important;
  grid-template-columns:210px minmax(0,1fr) 340px !important;
  gap:14px !important;
  background:#fff !important;
  border:1px solid var(--cdi-line) !important;
  border-radius:24px !important;
  box-shadow:var(--cdi-shadow-lg) !important;
  padding:14px !important;
}
.cdi-mega-v2-menu,.cdi-mega-v2-locations,.premium-mega-left,.premium-mega-middle{
  background:#F8FBFE !important;
  border:1px solid #E2EBF4 !important;
  border-radius:18px !important;
  padding:14px !important;
}
.cdi-mega-label,.premium-mini-label,.mega-v9-label{
  color:var(--cdi-blue) !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  margin-bottom:10px !important;
}
.cdi-mega-v2-menu a,.premium-menu-link{
  color:#24364B !important;
  font-size:13px !important;
  font-weight:600 !important;
}
.cdi-mega-v2-menu a.is-strong,.premium-menu-link.highlight{
  color:#fff !important;
  background:var(--cdi-navy) !important;
}
.cdi-location-grid a,.cdi-test-centre-links a,.premium-location-grid a{
  color:#10233D !important;
  background:#fff !important;
  border:1px solid #CFE0F2 !important;
  font-weight:650 !important;
}
.cdi-mega-v2-feature,.premium-mega-feature{
  background:var(--cdi-navy) !important;
  border-radius:20px !important;
  padding:22px !important;
  overflow:hidden !important;
}
.cdi-mega-v2-feature h3,.premium-mega-feature h3{
  color:#fff !important;
  font-size:20px !important;
  line-height:1.1 !important;
  letter-spacing:-.035em !important;
  max-width:280px !important;
  white-space:normal !important;
  overflow-wrap:break-word !important;
}
.cdi-mega-v2-feature p,.premium-mega-feature p{
  color:#C8D8EA !important;
  font-size:13px !important;
  line-height:1.5 !important;
  font-weight:500 !important;
  max-width:280px !important;
}

/* Location dropdown */
.location-mega-panel{width:min(980px,calc(100vw - 56px)) !important;}
.location-mega-v9{
  display:grid !important;
  grid-template-columns:260px minmax(0,1fr) 230px !important;
  gap:14px !important;
  background:#fff !important;
  border:1px solid var(--cdi-line) !important;
  border-radius:24px !important;
  padding:14px !important;
  box-shadow:var(--cdi-shadow-lg) !important;
}
.location-mega-left,.location-mega-grid,.location-mega-test{
  background:#F8FBFE !important;
  border:1px solid #E2EBF4 !important;
  border-radius:18px !important;
  padding:16px !important;
}
.location-mega-left h3{
  color:var(--cdi-ink) !important;
  font-size:22px !important;
  margin:0 0 8px !important;
}
.location-mega-left p{
  color:var(--cdi-muted) !important;
  font-size:13px !important;
  line-height:1.55 !important;
}
.mega-v9-cta{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:40px !important;
  border-radius:999px !important;
  padding:0 14px !important;
  background:var(--cdi-navy) !important;
  color:#fff !important;
  font-size:13px !important;
  font-weight:750 !important;
  margin-top:14px !important;
}
.location-mega-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:9px !important;
}
.location-mega-grid a{
  display:grid !important;
  grid-template-columns:34px 1fr !important;
  gap:9px !important;
  align-items:center !important;
  background:#fff !important;
  border:1px solid #CFE0F2 !important;
  border-radius:14px !important;
  padding:10px !important;
}
.location-mega-grid span{
  width:34px !important;
  height:34px !important;
  border-radius:12px !important;
  background:#EAF2FA !important;
  color:var(--cdi-navy) !important;
  display:grid !important;
  place-items:center !important;
}
.location-mega-grid b{
  display:block !important;
  color:var(--cdi-ink) !important;
  font-size:13px !important;
  font-weight:750 !important;
}
.location-mega-grid small{
  display:block !important;
  color:var(--cdi-muted) !important;
  font-size:11.5px !important;
  line-height:1.25 !important;
  margin-top:2px !important;
  font-weight:500 !important;
}
.location-mega-test{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
}
.location-mega-test a{
  background:#fff !important;
  border:1px solid #CFE0F2 !important;
  border-radius:13px !important;
  padding:10px !important;
  color:var(--cdi-ink) !important;
  font-size:12.5px !important;
  font-weight:650 !important;
}

/* General pages and forms */
main .container > h1:first-child{
  font-size:clamp(34px,5.2vw,50px) !important;
  color:var(--cdi-ink) !important;
  line-height:1.05 !important;
  margin-bottom:12px !important;
}
main .container > h1:first-child + p,main .container > p{
  font-size:16px !important;
  color:var(--cdi-muted) !important;
  font-weight:500 !important;
}
main .container .btn,main .container a.btn{
  min-height:46px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 20px !important;
}
form .grid,form [style*="grid-template-columns"]{gap:14px !important;}
form label,.field-label{
  font-size:12px !important;
  font-weight:750 !important;
  letter-spacing:.04em !important;
  color:#31445C !important;
}
input,select,textarea,.input,.form-control{
  border:1px solid var(--cdi-line) !important;
  border-radius:15px !important;
  background:#fff !important;
  min-height:48px !important;
  font-size:14px !important;
  font-weight:500 !important;
  box-shadow:0 6px 18px rgba(12,31,56,.04) !important;
}
select{
  appearance:none !important;
  background-image:linear-gradient(45deg,transparent 50%,#52657D 50%),linear-gradient(135deg,#52657D 50%,transparent 50%) !important;
  background-position:calc(100% - 18px) 21px,calc(100% - 12px) 21px !important;
  background-size:6px 6px,6px 6px !important;
  background-repeat:no-repeat !important;
  padding-right:40px !important;
}
.cdi-pill-tabs{display:flex !important;gap:10px !important;flex-wrap:wrap !important;margin:12px 0 20px !important;}
.cdi-pill-tabs button{
  min-height:44px !important;
  border:1px solid var(--cdi-line) !important;
  background:#fff !important;
  color:var(--cdi-ink) !important;
  border-radius:999px !important;
  padding:0 16px !important;
  font-weight:750 !important;
}
.cdi-pill-tabs button.is-active{
  background:var(--cdi-navy) !important;
  color:#fff !important;
  border-color:var(--cdi-navy) !important;
}

/* Tables and footer */
.table-scroll{width:100% !important;overflow-x:auto !important;-webkit-overflow-scrolling:touch !important;border-radius:18px !important;}
table{min-width:640px !important;max-width:none !important;}
.site-footer{background:var(--cdi-navy) !important;}
.site-footer img{filter:brightness(0) invert(1) contrast(1.08) !important;opacity:1 !important;}
.site-footer p,.site-footer a,.site-footer li{
  color:#D1DCEB !important;
  font-size:13.5px !important;
  font-weight:500 !important;
}
.site-footer h4{
  color:#fff !important;
  font-size:13px !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
}

/* Mobile */
@media(max-width:900px){
  .container{width:calc(100% - 24px) !important;}
  .topnav .row{min-height:66px !important;}
  .brand-logo img{width:140px !important;}
  .nav-links,.nav-actions .btn{display:none !important;}
  .hamburger{display:flex !important;}
  .nav-cta-mobile{display:inline-flex !important;}
  .hero-block,.saas-hero{padding:34px 0 28px !important;}
  .hero-grid{grid-template-columns:1fr !important;gap:24px !important;}
  .hero-block h1,.saas-hero h1{font-size:clamp(34px,10.5vw,48px) !important;}
  .ai-row{grid-template-columns:1fr !important;}
  .stat-strip.divided{display:flex !important;overflow-x:auto !important;gap:12px !important;}
  .stat-strip .stat{flex:0 0 82% !important;}
  .grid.grid-3,.saas-grid-3,.package-grid,.pricing-grid,.lesson-package-grid{
    display:flex !important;
    overflow-x:auto !important;
    gap:14px !important;
    padding-bottom:12px !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .grid.grid-3 > *,.saas-grid-3 > *,.package-grid > *,.pricing-grid > *,.lesson-package-grid > *{
    flex:0 0 84% !important;
    scroll-snap-align:start !important;
  }
  .nav-mega-panel{display:none !important;}
  main .container > h1:first-child{font-size:clamp(32px,10vw,44px) !important;}
  table{min-width:620px !important;}
}

/* Desktop */
@media(min-width:980px){
  .stat-strip.divided{
    display:grid !important;
    grid-template-columns:repeat(4,1fr) !important;
    overflow:visible !important;
    gap:14px !important;
  }
  .grid.grid-3,.saas-grid-3{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    overflow:visible !important;
  }
}

/* ==========================================================
   CLEANUP FIX 2
   Fixes remaining dropdown conflict, duplicate arrows and pale hero pill.
   This is part of cdi-app.css, not an extra patch file.
   ========================================================== */

/* Hero eyebrow pill readability */
.hero-block .eyebrow,
.saas-hero .eyebrow,
.eyebrow{
  color:#0C1F38 !important;
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(255,255,255,.36) !important;
  border-radius:999px !important;
  padding:8px 14px !important;
  font-size:10.5px !important;
  font-weight:750 !important;
  letter-spacing:.08em !important;
  box-shadow:0 10px 28px rgba(0,0,0,.10) !important;
}

.hero-block .eyebrow .dashes span,
.saas-hero .eyebrow .dashes span,
.eyebrow .dashes span{
  background:#2F80ED !important;
}

/* Stop doubled chevron */
.nav-mega-chevron{
  background-image:none !important;
  width:10px !important;
  height:10px !important;
  display:inline-block !important;
  position:relative !important;
  font-size:0 !important;
  line-height:0 !important;
  margin-left:5px !important;
  flex:none !important;
}

.nav-mega-chevron::after{
  content:"" !important;
  position:absolute !important;
  left:1px !important;
  top:1px !important;
  width:7px !important;
  height:7px !important;
  border-right:2px solid rgba(255,255,255,.72) !important;
  border-bottom:2px solid rgba(255,255,255,.72) !important;
  transform:rotate(45deg) !important;
  transition:transform .18s ease !important;
}

.nav-mega-trigger:hover .nav-mega-chevron::after,
.nav-mega-trigger:focus-within .nav-mega-chevron::after,
.nav-mega-trigger.open .nav-mega-chevron::after,
.nav-mega-trigger.is-open .nav-mega-chevron::after{
  transform:rotate(225deg) translate(-2px,-2px) !important;
}

/* Make dropdowns real centred cards, overriding old fixed full-width rule */
@media(min-width:901px){
  .topnav,
  .topnav .row,
  .nav-links,
  .nav-links > *,
  .nav-mega-trigger{
    overflow:visible !important;
  }

  .nav-mega-trigger{
    position:relative !important;
  }

  .nav-mega-panel{
    position:absolute !important;
    top:calc(100% + 16px) !important;
    left:50% !important;
    right:auto !important;
    width:min(1040px,calc(100vw - 56px)) !important;
    max-width:1040px !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    padding:0 !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateX(-50%) translateY(8px) !important;
    transition:opacity .16s ease, transform .16s ease, visibility .16s ease !important;
    z-index:99999 !important;
  }

  .locations-trigger .nav-mega-panel,
  .location-mega-panel{
    width:min(920px,calc(100vw - 56px)) !important;
    max-width:920px !important;
  }

  .nav-mega-panel::before{
    content:"" !important;
    position:absolute !important;
    top:-20px !important;
    left:0 !important;
    right:0 !important;
    height:20px !important;
    display:block !important;
    background:transparent !important;
  }

  .nav-mega-trigger:hover .nav-mega-panel,
  .nav-mega-trigger:focus-within .nav-mega-panel,
  .nav-mega-trigger.open .nav-mega-panel,
  .nav-mega-trigger.is-open .nav-mega-panel,
  .nav-mega-panel:hover{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
  }

  .cdi-mega-v2{
    grid-template-columns:205px minmax(0,1fr) 330px !important;
    gap:14px !important;
    max-height:none !important;
  }

  .cdi-mega-v2-feature h3,
  .premium-mega-feature h3{
    font-size:19px !important;
    line-height:1.12 !important;
    max-width:285px !important;
  }

  .cdi-mega-v2-feature p,
  .premium-mega-feature p{
    font-size:12.5px !important;
    max-width:285px !important;
  }

  .feature-mini-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .feature-mini-grid a{
    font-size:12.5px !important;
    font-weight:650 !important;
    color:#FFFFFF !important;
    background:rgba(255,255,255,.09) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:12px !important;
    padding:9px 10px !important;
  }

  .cdi-feature-cta{
    background:#3BB8F3 !important;
    color:#071426 !important;
    font-size:13px !important;
    font-weight:750 !important;
    height:40px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:999px !important;
    padding:0 16px !important;
    margin-top:12px !important;
  }
}

/* Reduce menu boldness further */
.nav-links > a,
.nav-link-plain,
.nav-mega-trigger > a{
  font-weight:650 !important;
}

.cdi-mega-v2-menu a,
.cdi-location-grid a,
.cdi-test-centre-links a,
.location-mega-grid b,
.location-mega-test a{
  font-weight:650 !important;
}

/* Full desktop breathing room */
@media(min-width:1200px){
  .container{
    width:min(1280px,calc(100% - 80px)) !important;
  }
}

/* Mobile: keep hero readable and avoid sideways page scroll */
@media(max-width:900px){
  .hero-block .eyebrow,
  .saas-hero .eyebrow,
  .eyebrow{
    max-width:100% !important;
    white-space:normal !important;
    line-height:1.35 !important;
  }

  .ai-search{
    max-width:100% !important;
  }
}

/* ==========================================================
   CLEANUP FIX 3
   Fix Driving Lessons mega menu left clipping.
   Desktop mega panels are viewport-centred, not trigger-centred.
   ========================================================== */

@media(min-width:901px){
  .nav-mega-trigger{
    position:static !important;
  }

  .nav-mega-panel,
  .locations-trigger .nav-mega-panel,
  .location-mega-panel{
    position:fixed !important;
    top:96px !important;
    left:50vw !important;
    right:auto !important;
    width:min(1040px,calc(100vw - 56px)) !important;
    max-width:1040px !important;
    transform:translateX(-50%) translateY(8px) !important;
    margin:0 !important;
    z-index:99999 !important;
  }

  .location-mega-panel,
  .locations-trigger .nav-mega-panel{
    width:min(920px,calc(100vw - 56px)) !important;
    max-width:920px !important;
  }

  .nav-mega-trigger:hover .nav-mega-panel,
  .nav-mega-trigger:focus-within .nav-mega-panel,
  .nav-mega-trigger.open .nav-mega-panel,
  .nav-mega-trigger.is-open .nav-mega-panel,
  .nav-mega-panel:hover{
    transform:translateX(-50%) translateY(0) !important;
  }

  .nav-mega-panel::before{
    top:-24px !important;
    height:24px !important;
  }

  .cdi-mega-v2{
    grid-template-columns:210px minmax(0,1fr) 340px !important;
    align-items:stretch !important;
  }

  .cdi-mega-v2-menu,
  .cdi-mega-v2-locations,
  .cdi-mega-v2-feature{
    min-width:0 !important;
  }

  .cdi-location-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px !important;
  }

  .cdi-test-centre-links{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px !important;
  }

  .cdi-location-grid a,
  .cdi-test-centre-links a{
    min-width:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .cdi-mega-v2-menu a{
    display:flex !important;
    align-items:center !important;
    min-height:38px !important;
    white-space:normal !important;
  }
}

@media(min-width:1400px){
  .nav-mega-panel{
    top:98px !important;
  }
}

/* ==========================================================
   CLEANUP FIX 4
   Fix Locations dropdown left-column text clipping.
   Keeps viewport-centred mega menu and clean file structure.
   ========================================================== */

@media(min-width:901px){
  .location-mega-panel,
  .locations-trigger .nav-mega-panel{
    width:min(1060px,calc(100vw - 56px)) !important;
    max-width:1060px !important;
  }

  .location-mega-v9{
    grid-template-columns:300px minmax(360px,1fr) 230px !important;
    gap:14px !important;
    align-items:stretch !important;
  }

  .location-mega-left,
  .location-mega-grid,
  .location-mega-test{
    min-width:0 !important;
    overflow:hidden !important;
  }

  .location-mega-left h3{
    font-size:20px !important;
    line-height:1.12 !important;
    letter-spacing:-.035em !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    margin-bottom:10px !important;
  }

  .location-mega-left p{
    font-size:12.8px !important;
    line-height:1.5 !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .location-mega-left .mega-v9-cta{
    width:auto !important;
    max-width:100% !important;
    white-space:nowrap !important;
  }

  .location-mega-grid a{
    min-width:0 !important;
  }

  .location-mega-grid b,
  .location-mega-grid small{
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
}

@media(min-width:901px) and (max-width:1180px){
  .location-mega-panel,
  .locations-trigger .nav-mega-panel{
    width:min(980px,calc(100vw - 42px)) !important;
  }

  .location-mega-v9{
    grid-template-columns:270px minmax(330px,1fr) 210px !important;
  }

  .location-mega-left h3{
    font-size:19px !important;
  }

  .location-mega-left p{
    font-size:12.5px !important;
  }
}

/* ==========================================================
   CLEANUP FIX 5
   Rebuild both desktop dropdowns into one consistent premium style.
   Removes clunky nested box appearance and text clipping.
   ========================================================== */

@media(min-width:901px){

  /* Desktop dropdown positioning */
  .nav-mega-trigger{
    position:static !important;
  }

  .nav-mega-panel,
  .locations-trigger .nav-mega-panel,
  .location-mega-panel{
    position:fixed !important;
    top:96px !important;
    left:50vw !important;
    right:auto !important;
    width:min(980px,calc(100vw - 64px)) !important;
    max-width:980px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateX(-50%) translateY(10px) !important;
    transition:opacity .16s ease, transform .16s ease, visibility .16s ease !important;
    z-index:99999 !important;
  }

  .nav-mega-panel::before{
    content:"" !important;
    position:absolute !important;
    top:-24px !important;
    left:0 !important;
    right:0 !important;
    height:24px !important;
    display:block !important;
    background:transparent !important;
  }

  .nav-mega-trigger:hover .nav-mega-panel,
  .nav-mega-trigger:focus-within .nav-mega-panel,
  .nav-mega-trigger.open .nav-mega-panel,
  .nav-mega-trigger.is-open .nav-mega-panel,
  .nav-mega-panel:hover{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
  }

  /* One shared shell for both menu types */
  .cdi-mega-v2,
  .location-mega-v9,
  .premium-mega{
    width:100% !important;
    display:grid !important;
    grid-template-columns:230px minmax(0,1fr) 280px !important;
    gap:16px !important;
    background:#FFFFFF !important;
    border:1px solid #DCE7F2 !important;
    border-radius:24px !important;
    box-shadow:0 28px 80px rgba(12,31,56,.18) !important;
    padding:16px !important;
    max-height:none !important;
    overflow:hidden !important;
  }

  /* Shared panels */
  .cdi-mega-v2-menu,
  .cdi-mega-v2-locations,
  .cdi-mega-v2-feature,
  .location-mega-left,
  .location-mega-grid,
  .location-mega-test,
  .premium-mega-left,
  .premium-mega-middle,
  .premium-mega-feature{
    min-width:0 !important;
    overflow:hidden !important;
    border-radius:18px !important;
  }

  .cdi-mega-v2-menu,
  .cdi-mega-v2-locations,
  .location-mega-left,
  .location-mega-grid,
  .location-mega-test,
  .premium-mega-left,
  .premium-mega-middle{
    background:#F8FBFE !important;
    border:1px solid #E2EBF4 !important;
    padding:16px !important;
  }

  .cdi-mega-v2-feature,
  .premium-mega-feature{
    background:#0C1F38 !important;
    border:1px solid rgba(255,255,255,.08) !important;
    padding:22px !important;
    color:#FFFFFF !important;
  }

  /* Labels */
  .cdi-mega-label,
  .premium-mini-label,
  .mega-v9-label{
    display:block !important;
    color:#2F80ED !important;
    font-size:10px !important;
    line-height:1.1 !important;
    font-weight:800 !important;
    letter-spacing:.1em !important;
    text-transform:uppercase !important;
    margin:0 0 12px !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  /* Left menu links */
  .cdi-mega-v2-menu a,
  .premium-menu-link{
    display:flex !important;
    align-items:center !important;
    min-height:38px !important;
    padding:8px 10px !important;
    border-radius:12px !important;
    color:#10233D !important;
    background:transparent !important;
    border:0 !important;
    font-size:13px !important;
    line-height:1.2 !important;
    font-weight:650 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .cdi-mega-v2-menu a:hover,
  .premium-menu-link:hover{
    background:#FFFFFF !important;
    color:#0C1F38 !important;
  }

  .cdi-mega-v2-menu a.is-strong,
  .premium-menu-link.highlight{
    background:#0C1F38 !important;
    color:#FFFFFF !important;
    justify-content:center !important;
    margin-top:8px !important;
  }

  /* Driving Lessons middle grids */
  .cdi-location-grid,
  .cdi-test-centre-links{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .cdi-location-grid{
    margin-bottom:14px !important;
  }

  .cdi-test-centre-links{
    margin-top:8px !important;
  }

  .cdi-location-grid a,
  .cdi-test-centre-links a,
  .premium-location-grid a{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    min-height:42px !important;
    padding:10px 12px !important;
    border-radius:13px !important;
    background:#FFFFFF !important;
    border:1px solid #CFE0F2 !important;
    color:#10233D !important;
    font-size:13px !important;
    line-height:1.2 !important;
    font-weight:650 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    box-shadow:none !important;
  }

  .cdi-location-grid a:hover,
  .cdi-test-centre-links a:hover,
  .premium-location-grid a:hover{
    background:#EAF2FA !important;
    border-color:#B9CDE2 !important;
  }

  .cdi-location-grid span,
  .premium-location-grid span{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    border-radius:9px !important;
    background:#EAF2FA !important;
    color:#0C1F38 !important;
    display:grid !important;
    place-items:center !important;
    font-size:12px !important;
  }

  /* Feature panel */
  .cdi-mega-v2-feature h3,
  .premium-mega-feature h3{
    color:#FFFFFF !important;
    font-size:20px !important;
    line-height:1.12 !important;
    letter-spacing:-.035em !important;
    max-width:100% !important;
    margin:0 0 10px !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  .cdi-mega-v2-feature p,
  .premium-mega-feature p{
    color:#C8D8EA !important;
    font-size:12.8px !important;
    line-height:1.5 !important;
    max-width:100% !important;
    margin:0 0 14px !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  .feature-mini-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    margin:10px 0 14px !important;
  }

  .feature-mini-grid a{
    display:flex !important;
    align-items:center !important;
    min-height:36px !important;
    padding:8px 10px !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.09) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    color:#FFFFFF !important;
    font-size:12.2px !important;
    line-height:1.2 !important;
    font-weight:650 !important;
    white-space:normal !important;
  }

  .cdi-feature-cta,
  .premium-feature-cta{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:40px !important;
    padding:0 16px !important;
    border-radius:999px !important;
    background:#3BB8F3 !important;
    color:#071426 !important;
    font-size:13px !important;
    font-weight:750 !important;
    border:0 !important;
    margin-top:0 !important;
  }

  /* Locations menu rebuilt */
  .location-mega-v9{
    grid-template-columns:250px minmax(0,1fr) 230px !important;
  }

  .location-mega-left h3{
    color:#08111F !important;
    font-size:21px !important;
    line-height:1.12 !important;
    letter-spacing:-.035em !important;
    margin:0 0 10px !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  .location-mega-left p{
    color:#52657D !important;
    font-size:13px !important;
    line-height:1.48 !important;
    font-weight:500 !important;
    margin:0 0 16px !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  .mega-v9-cta{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:40px !important;
    padding:0 16px !important;
    border-radius:999px !important;
    background:#0C1F38 !important;
    color:#FFFFFF !important;
    font-size:13px !important;
    font-weight:750 !important;
    white-space:normal !important;
    line-height:1.15 !important;
  }

  .location-mega-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .location-mega-grid a{
    display:grid !important;
    grid-template-columns:34px 1fr !important;
    gap:10px !important;
    align-items:center !important;
    min-height:62px !important;
    padding:10px !important;
    border-radius:14px !important;
    background:#FFFFFF !important;
    border:1px solid #CFE0F2 !important;
    color:#10233D !important;
    overflow:hidden !important;
  }

  .location-mega-grid span{
    width:34px !important;
    height:34px !important;
    border-radius:12px !important;
    background:#EAF2FA !important;
    color:#0C1F38 !important;
    display:grid !important;
    place-items:center !important;
    font-size:12px !important;
  }

  .location-mega-grid b{
    color:#08111F !important;
    display:block !important;
    font-size:13px !important;
    line-height:1.2 !important;
    font-weight:750 !important;
    white-space:normal !important;
    overflow:visible !important;
  }

  .location-mega-grid small{
    color:#52657D !important;
    display:block !important;
    font-size:11.8px !important;
    line-height:1.25 !important;
    font-weight:500 !important;
    margin-top:4px !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .location-mega-test{
    display:flex !important;
    flex-direction:column !important;
    gap:9px !important;
  }

  .location-mega-test a{
    display:flex !important;
    align-items:center !important;
    min-height:40px !important;
    padding:9px 11px !important;
    border-radius:13px !important;
    background:#FFFFFF !important;
    border:1px solid #CFE0F2 !important;
    color:#10233D !important;
    font-size:12.5px !important;
    line-height:1.2 !important;
    font-weight:650 !important;
    white-space:normal !important;
  }
}

@media(min-width:901px) and (max-width:1120px){
  .nav-mega-panel,
  .locations-trigger .nav-mega-panel,
  .location-mega-panel{
    width:min(920px,calc(100vw - 42px)) !important;
  }

  .cdi-mega-v2,
  .premium-mega{
    grid-template-columns:200px minmax(0,1fr) 280px !important;
  }

  .location-mega-v9{
    grid-template-columns:230px minmax(0,1fr) 210px !important;
  }

  .cdi-mega-v2-feature h3,
  .premium-mega-feature h3,
  .location-mega-left h3{
    font-size:19px !important;
  }
}

/* ==========================================================
   CLEANUP FIX 6
   Refine Locations dropdown cards.
   Keeps current lush dropdown style, reduces awkward 3-line snippets.
   ========================================================== */

@media(min-width:901px){
  .location-mega-v9{
    grid-template-columns:260px minmax(0,1fr) 250px !important;
    width:100% !important;
  }

  .location-mega-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .location-mega-grid a{
    min-height:58px !important;
    grid-template-columns:32px minmax(0,1fr) !important;
    align-items:center !important;
    gap:10px !important;
    padding:11px 12px !important;
  }

  .location-mega-grid span{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
  }

  .location-mega-grid b{
    font-size:13.2px !important;
    line-height:1.15 !important;
    margin-bottom:3px !important;
  }

  .location-mega-grid small{
    font-size:11.4px !important;
    line-height:1.25 !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
  }

  .location-mega-test a{
    min-height:42px !important;
    padding:10px 12px !important;
  }
}

@media(min-width:1180px){
  .location-mega-panel,
  .locations-trigger .nav-mega-panel{
    width:min(1040px,calc(100vw - 80px)) !important;
    max-width:1040px !important;
  }

  .location-mega-v9{
    grid-template-columns:270px minmax(0,1fr) 250px !important;
  }

  .location-mega-grid a{
    min-height:56px !important;
  }

  .location-mega-grid small{
    -webkit-line-clamp:1 !important;
    white-space:nowrap !important;
    display:block !important;
  }
}

/* ==========================================================
   CLEANUP FIX 7
   Locations dropdown final polish.
   Hides awkward truncated card descriptions.
   Does not alter Driving Lessons dropdown.
   ========================================================== */

@media(min-width:901px){
  .location-mega-grid a{
    min-height:54px !important;
    grid-template-columns:34px minmax(0,1fr) !important;
    align-items:center !important;
    padding:10px 12px !important;
  }

  .location-mega-grid b{
    font-size:13.5px !important;
    line-height:1.15 !important;
    margin:0 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .location-mega-grid small{
    display:none !important;
  }

  .location-mega-grid span{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
  }

  .location-mega-left p{
    max-width:230px !important;
  }
}

@media(min-width:1180px){
  .location-mega-grid a{
    min-height:52px !important;
  }
}

/* ==========================================================
   CLEANUP FIX 8
   Consistent dropdown hover states.
   Applies the same premium hover behaviour to Driving Lessons
   and Locations dropdowns. Keeps dark readable text.
   ========================================================== */

@media(min-width:901px){

  /* Shared hover state for all white dropdown cards */
  .cdi-mega-v2-menu a:not(.is-strong):hover,
  .cdi-location-grid a:hover,
  .cdi-test-centre-links a:hover,
  .premium-menu-link:not(.highlight):hover,
  .premium-location-grid a:hover,
  .location-mega-grid a:hover,
  .location-mega-test a:hover{
    background:#EAF2FA !important;
    border-color:#B9CDE2 !important;
    color:#0C1F38 !important;
    box-shadow:0 8px 18px rgba(12,31,56,.055) !important;
    transform:none !important;
  }

  /* Make sure all nested text stays readable on hover */
  .cdi-mega-v2-menu a:not(.is-strong):hover *,
  .cdi-location-grid a:hover *,
  .cdi-test-centre-links a:hover *,
  .premium-menu-link:not(.highlight):hover *,
  .premium-location-grid a:hover *,
  .location-mega-grid a:hover *,
  .location-mega-test a:hover *{
    color:#0C1F38 !important;
  }

  .location-mega-grid a:hover span,
  .cdi-location-grid a:hover span,
  .premium-location-grid a:hover span{
    background:#DDECF8 !important;
    color:#0C1F38 !important;
  }

  /* Keep dark CTA-style links dark, but readable */
  .cdi-mega-v2-menu a.is-strong:hover,
  .premium-menu-link.highlight:hover,
  .mega-v9-cta:hover{
    background:#132B49 !important;
    color:#FFFFFF !important;
    border-color:#132B49 !important;
  }

  .cdi-mega-v2-menu a.is-strong:hover *,
  .premium-menu-link.highlight:hover *,
  .mega-v9-cta:hover *{
    color:#FFFFFF !important;
  }

  /* Remove accidental white text from old hover rules */
  .cdi-location-grid a:hover,
  .cdi-test-centre-links a:hover,
  .location-mega-grid a:hover,
  .location-mega-test a:hover{
    text-decoration:none !important;
  }
}

/* ==========================================================
   CLEANUP FIX 9
   Homepage premium rhythm + unified typography.
   Does not change dropdown layout or dropdown hover rules.
   ========================================================== */

/* Unified body copy */
body p,
.section p,
.home-section p,
.saas-section p,
.demo-section p,
.card p,
.p-card p,
.feature-box p,
.quick-box p,
.cdi-demo-shell p,
.hero-block p,
.saas-hero p{
  font-size:15.5px !important;
  line-height:1.58 !important;
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

.section .lead,
.home-section .lead,
.saas-section .lead,
.demo-section .lead,
.cdi-demo-shell .lead,
.hero-block .lead,
.hero-block .lede,
.saas-hero .lead,
.saas-hero .lede{
  font-size:clamp(16px,2vw,18px) !important;
  line-height:1.58 !important;
  font-weight:500 !important;
  letter-spacing:-.012em !important;
}

/* Keep the top hero premium navy */
body:not(.admin-body) .hero-block:first-of-type,
body:not(.admin-body) .saas-hero:first-of-type{
  background:#0C1F38 !important;
  color:#FFFFFF !important;
  padding-top:56px !important;
  padding-bottom:46px !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}

body:not(.admin-body) .hero-block:first-of-type h1,
body:not(.admin-body) .saas-hero:first-of-type h1{
  color:#FFFFFF !important;
}

body:not(.admin-body) .hero-block:first-of-type .lead,
body:not(.admin-body) .hero-block:first-of-type .lede,
body:not(.admin-body) .saas-hero:first-of-type .lead,
body:not(.admin-body) .saas-hero:first-of-type .lede{
  color:#D3E2F2 !important;
}

/* Homepage rhythm: sections after hero should not all look like the hero */
body:not(.admin-body) main > section:not(.hero-block):not(.saas-hero){
  padding-top:58px !important;
  padding-bottom:58px !important;
  position:relative !important;
}

body:not(.admin-body) main > section:nth-of-type(odd):not(.hero-block):not(.saas-hero){
  background:#F6F8FB !important;
}

body:not(.admin-body) main > section:nth-of-type(even):not(.hero-block):not(.saas-hero){
  background:#FFFFFF !important;
}

/* Preserve intentional blue comparison/search bands */
body:not(.admin-body) main > section.compare-band,
body:not(.admin-body) main > section.search-band,
body:not(.admin-body) main > section[style*="3BB8F3"],
body:not(.admin-body) section[style*="#3BB8F3"],
body:not(.admin-body) section[style*="background:#3BB8F3"],
body:not(.admin-body) section[style*="background: #3BB8F3"]{
  background:#3BB8F3 !important;
  color:#071426 !important;
}

body:not(.admin-body) section[style*="3BB8F3"] h1,
body:not(.admin-body) section[style*="3BB8F3"] h2,
body:not(.admin-body) section[style*="3BB8F3"] h3,
body:not(.admin-body) section[style*="#3BB8F3"] h1,
body:not(.admin-body) section[style*="#3BB8F3"] h2,
body:not(.admin-body) section[style*="#3BB8F3"] h3{
  color:#071426 !important;
}

body:not(.admin-body) section[style*="3BB8F3"] p,
body:not(.admin-body) section[style*="3BB8F3"] .lead,
body:not(.admin-body) section[style*="3BB8F3"] .lede,
body:not(.admin-body) section[style*="#3BB8F3"] p,
body:not(.admin-body) section[style*="#3BB8F3"] .lead,
body:not(.admin-body) section[style*="#3BB8F3"] .lede{
  color:#0C1F38 !important;
}

/* Search/listing style bands should feel like the second screenshot */
body:not(.admin-body) .search-hero,
body:not(.admin-body) .listing-hero,
body:not(.admin-body) .compare-hero{
  background:#3BB8F3 !important;
  color:#071426 !important;
}

/* White premium demo blocks */
.cdi-demo-shell,
.demo-section{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  box-shadow:0 20px 54px rgba(12,31,56,.08) !important;
  border-radius:28px !important;
}

/* Dashboard preview visual consistency */
.profile-dashboard,
.dashboard-preview,
.demo-dashboard,
.mock-dashboard{
  background:#0C1F38 !important;
  border-radius:26px !important;
  box-shadow:0 24px 70px rgba(12,31,56,.15) !important;
}

.profile-dashboard p,
.dashboard-preview p,
.demo-dashboard p,
.mock-dashboard p{
  color:#D3E2F2 !important;
  font-size:14px !important;
  line-height:1.55 !important;
}

.profile-dashboard h3,
.dashboard-preview h3,
.demo-dashboard h3,
.mock-dashboard h3{
  color:#FFFFFF !important;
}

/* Home cards: unified body text */
.stat-strip .stat span,
.card span,
.p-card span,
.feature-box span,
.quick-box span{
  font-size:13px !important;
  line-height:1.45 !important;
}

.card p,
.p-card p,
.feature-box p,
.quick-box p{
  color:#52657D !important;
}

/* Prevent hero search button and form controls looking oversized compared with body copy */
.ai-search input,
.ai-search select,
.ai-search .input,
.ai-search button,
.ai-row input,
.ai-row select,
.ai-row .input,
.ai-row button{
  font-size:14px !important;
  font-weight:600 !important;
}

.ai-row .btn,
.ai-search .btn{
  font-weight:800 !important;
}

/* Make stat cards premium on dark/blue backgrounds */
.hero-block .stat-strip .stat,
.saas-hero .stat-strip .stat,
section[style*="3BB8F3"] .stat-strip .stat,
section[style*="#3BB8F3"] .stat-strip .stat{
  background:#FFFFFF !important;
  color:#071426 !important;
  border:1px solid rgba(255,255,255,.72) !important;
}

/* Mobile homepage polish */
@media(max-width:900px){
  body:not(.admin-body) .hero-block:first-of-type,
  body:not(.admin-body) .saas-hero:first-of-type{
    padding-top:36px !important;
    padding-bottom:34px !important;
  }

  body p,
  .section p,
  .home-section p,
  .saas-section p,
  .demo-section p,
  .card p,
  .p-card p,
  .feature-box p,
  .quick-box p,
  .cdi-demo-shell p{
    font-size:14.5px !important;
    line-height:1.56 !important;
  }

  .section .lead,
  .home-section .lead,
  .saas-section .lead,
  .demo-section .lead,
  .cdi-demo-shell .lead,
  .hero-block .lead,
  .hero-block .lede,
  .saas-hero .lead,
  .saas-hero .lede{
    font-size:15.5px !important;
    line-height:1.55 !important;
  }

  body:not(.admin-body) main > section:not(.hero-block):not(.saas-hero){
    padding-top:38px !important;
    padding-bottom:38px !important;
  }

  .cdi-demo-shell,
  .demo-section{
    border-radius:22px !important;
  }
}

/* ==========================================================
   CLEANUP FIX 10
   Homepage hero back to CDI blue.
   Keeps header/dropdowns untouched.
   ========================================================== */

body:not(.admin-body) .hero-block:first-of-type,
body:not(.admin-body) .saas-hero:first-of-type{
  background:#3BB8F3 !important;
  color:#071426 !important;
  border-bottom:0 !important;
}

body:not(.admin-body) .hero-block:first-of-type h1,
body:not(.admin-body) .saas-hero:first-of-type h1{
  color:#071426 !important;
}

body:not(.admin-body) .hero-block:first-of-type .lead,
body:not(.admin-body) .hero-block:first-of-type .lede,
body:not(.admin-body) .saas-hero:first-of-type .lead,
body:not(.admin-body) .saas-hero:first-of-type .lede{
  color:#0C1F38 !important;
}

body:not(.admin-body) .hero-block:first-of-type .eyebrow,
body:not(.admin-body) .saas-hero:first-of-type .eyebrow{
  background:#FFFFFF !important;
  color:#0C1F38 !important;
  border-color:rgba(255,255,255,.74) !important;
}

body:not(.admin-body) .hero-block:first-of-type .match-mock,
body:not(.admin-body) .saas-hero:first-of-type .match-mock{
  background:#0C1F38 !important;
  color:#FFFFFF !important;
}

body:not(.admin-body) .hero-block:first-of-type .match-mock p,
body:not(.admin-body) .saas-hero:first-of-type .match-mock p,
body:not(.admin-body) .hero-block:first-of-type .match-mock span,
body:not(.admin-body) .saas-hero:first-of-type .match-mock span{
  color:#C8D8EA !important;
}

body:not(.admin-body) .hero-block:first-of-type .match-mock h3,
body:not(.admin-body) .saas-hero:first-of-type .match-mock h3,
body:not(.admin-body) .hero-block:first-of-type .match-mock strong,
body:not(.admin-body) .saas-hero:first-of-type .match-mock strong{
  color:#FFFFFF !important;
}

/* keep stats readable on the blue hero */
body:not(.admin-body) .hero-block:first-of-type .stat-strip .stat,
body:not(.admin-body) .saas-hero:first-of-type .stat-strip .stat{
  background:#FFFFFF !important;
  color:#071426 !important;
  border:1px solid rgba(255,255,255,.72) !important;
}

/* ==========================================================
   CLEANUP FIX 11
   Unified primary CTA blue.
   Makes header CTA and homepage/search CTAs use the same blue.
   ========================================================== */

:root{
  --cdi-primary-blue:#2F80ED;
  --cdi-primary-blue-hover:#256FDB;
}

/* Header primary CTA */
.nav-actions .btn,
.topnav a.btn,
.topnav .nav-actions a.btn,
.topnav .nav-actions .btn,
a.btn.btn-green,
.btn.btn-green{
  background:var(--cdi-primary-blue) !important;
  border-color:var(--cdi-primary-blue) !important;
  color:#071426 !important;
}

/* Main primary CTAs */
.ai-row .btn,
.ai-search .btn,
button[type="submit"],
input[type="submit"],
.btn-primary,
a.btn-primary{
  background:var(--cdi-primary-blue) !important;
  border-color:var(--cdi-primary-blue) !important;
  color:#FFFFFF !important;
}

/* Hover states */
.nav-actions .btn:hover,
.topnav a.btn:hover,
.topnav .nav-actions a.btn:hover,
.topnav .nav-actions .btn:hover,
a.btn.btn-green:hover,
.btn.btn-green:hover{
  background:var(--cdi-primary-blue-hover) !important;
  border-color:var(--cdi-primary-blue-hover) !important;
  color:#071426 !important;
}

.ai-row .btn:hover,
.ai-search .btn:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.btn-primary:hover,
a.btn-primary:hover{
  background:var(--cdi-primary-blue-hover) !important;
  border-color:var(--cdi-primary-blue-hover) !important;
  color:#FFFFFF !important;
}

/* Keep rounded premium shape consistent */
.nav-actions .btn,
.topnav a.btn,
.ai-row .btn,
.ai-search .btn,
button[type="submit"],
input[type="submit"],
.btn-primary,
a.btn-primary{
  box-shadow:none !important;
}

/* ==========================================================
   CLEANUP FIX 12
   Final CTA policy across the whole application.
   Hero stays CDI blue. Primary CTA uses deeper action blue.
   No dropdown layout changes.
   ========================================================== */

:root{
  --cdi-hero-blue:#3BB8F3;
  --cdi-primary-blue:#2F80ED;
  --cdi-primary-blue-hover:#256FDB;
  --cdi-primary-text:#FFFFFF;
  --cdi-primary-text-dark:#071426;
  --cdi-navy:#0C1F38;
}

/* Homepage hero stays CDI blue */
body:not(.admin-body) .hero-block:first-of-type,
body:not(.admin-body) .saas-hero:first-of-type{
  background:var(--cdi-hero-blue) !important;
  color:var(--cdi-primary-text-dark) !important;
}

body:not(.admin-body) .hero-block:first-of-type h1,
body:not(.admin-body) .saas-hero:first-of-type h1,
body:not(.admin-body) .hero-block:first-of-type h2,
body:not(.admin-body) .saas-hero:first-of-type h2{
  color:var(--cdi-primary-text-dark) !important;
}

body:not(.admin-body) .hero-block:first-of-type p,
body:not(.admin-body) .hero-block:first-of-type .lead,
body:not(.admin-body) .hero-block:first-of-type .lede,
body:not(.admin-body) .saas-hero:first-of-type p,
body:not(.admin-body) .saas-hero:first-of-type .lead,
body:not(.admin-body) .saas-hero:first-of-type .lede{
  color:var(--cdi-navy) !important;
}

/* Final primary CTA standard */
.btn-primary,
a.btn-primary,
button.btn-primary,
.ai-row .btn,
.ai-search .btn,
.search-form .btn,
form button[type="submit"],
form input[type="submit"],
.hero-block .btn,
.saas-hero .btn,
.card .btn,
.p-card .btn,
.profile-card .btn,
.instructor-card .btn,
.demo-section .btn,
.cdi-demo-shell .btn,
.dashboard-card .btn,
a[href*="dashboard"].btn,
a[href*="profile"].btn,
a[href*="register"].btn,
a[href*="enquire"].btn,
a[href*="instructor"].btn,
a[href*="compare"].btn,
.nav-actions .btn,
.topnav a.btn,
.topnav .nav-actions a.btn,
.topnav .nav-actions .btn,
a.btn.btn-green,
.btn.btn-green{
  background:var(--cdi-primary-blue) !important;
  border:1px solid var(--cdi-primary-blue) !important;
  color:var(--cdi-primary-text) !important;
  box-shadow:0 12px 26px rgba(47,128,237,.18) !important;
}

/* Primary CTA hover */
.btn-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover,
.ai-row .btn:hover,
.ai-search .btn:hover,
.search-form .btn:hover,
form button[type="submit"]:hover,
form input[type="submit"]:hover,
.hero-block .btn:hover,
.saas-hero .btn:hover,
.card .btn:hover,
.p-card .btn:hover,
.profile-card .btn:hover,
.instructor-card .btn:hover,
.demo-section .btn:hover,
.cdi-demo-shell .btn:hover,
.dashboard-card .btn:hover,
a[href*="dashboard"].btn:hover,
a[href*="profile"].btn:hover,
a[href*="register"].btn:hover,
a[href*="enquire"].btn:hover,
a[href*="instructor"].btn:hover,
a[href*="compare"].btn:hover,
.nav-actions .btn:hover,
.topnav a.btn:hover,
.topnav .nav-actions a.btn:hover,
.topnav .nav-actions .btn:hover,
a.btn.btn-green:hover,
.btn.btn-green:hover{
  background:var(--cdi-primary-blue-hover) !important;
  border-color:var(--cdi-primary-blue-hover) !important;
  color:var(--cdi-primary-text) !important;
  box-shadow:0 14px 30px rgba(37,111,219,.22) !important;
  transform:translateY(-1px) !important;
}

/* Keep primary CTA text readable even when nested spans/strong tags exist */
.btn-primary *,
.ai-row .btn *,
.ai-search .btn *,
.search-form .btn *,
form button[type="submit"] *,
.hero-block .btn *,
.saas-hero .btn *,
.card .btn *,
.p-card .btn *,
.profile-card .btn *,
.instructor-card .btn *,
.demo-section .btn *,
.cdi-demo-shell .btn *,
.dashboard-card .btn *,
.nav-actions .btn *,
.topnav a.btn *{
  color:var(--cdi-primary-text) !important;
}

/* Consistent primary CTA sizing */
.btn-primary,
a.btn-primary,
button.btn-primary,
.ai-row .btn,
.ai-search .btn,
.search-form .btn,
form button[type="submit"],
form input[type="submit"],
.hero-block .btn,
.saas-hero .btn,
.card .btn,
.p-card .btn,
.profile-card .btn,
.instructor-card .btn,
.demo-section .btn,
.cdi-demo-shell .btn,
.dashboard-card .btn,
.nav-actions .btn,
.topnav a.btn{
  min-height:44px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:800 !important;
  line-height:1 !important;
  text-decoration:none !important;
}

/* Search/form primary buttons can stay slightly chunkier */
.ai-row .btn,
.ai-search .btn,
.search-form .btn,
form button[type="submit"],
form input[type="submit"]{
  min-height:50px !important;
}

/* Header CTA alignment and colour */
.nav-actions .btn,
.topnav a.btn,
.topnav .nav-actions a.btn,
.topnav .nav-actions .btn{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:0 24px !important;
  color:#FFFFFF !important;
}

/* Secondary CTA policy */
.btn-secondary,
a.btn-secondary,
.btn-outline,
a.btn-outline,
.secondary-btn,
a.secondary-btn{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  color:#0C1F38 !important;
  box-shadow:none !important;
}

.btn-secondary:hover,
a.btn-secondary:hover,
.btn-outline:hover,
a.btn-outline:hover,
.secondary-btn:hover,
a.secondary-btn:hover{
  background:#EAF2FA !important;
  border-color:#B9CDE2 !important;
  color:#0C1F38 !important;
}

/* Filter/pill policy */
.chip,
.filter-chip,
.pill,
.tag,
.lesson-pill{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  color:#071426 !important;
  box-shadow:0 8px 18px rgba(12,31,56,.05) !important;
}

.chip:hover,
.filter-chip:hover,
.pill:hover,
.tag:hover,
.lesson-pill:hover{
  background:#EAF2FA !important;
  color:#0C1F38 !important;
  border-color:#B9CDE2 !important;
}

/* ==========================================================
   MULTI-LANDING PREMIUM UPDATE
   Batch fixes: FAQ accordions, blog, legal, location pages and pricing.
   ========================================================== */

/* FAQ accordions across resource pages */
.acc-item{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:18px !important;
  box-shadow:0 10px 26px rgba(12,31,56,.055) !important;
  margin-bottom:12px !important;
  overflow:hidden !important;
}

.acc-q{
  width:100% !important;
  min-height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  padding:18px 20px !important;
  background:#FFFFFF !important;
  border:0 !important;
  color:#071426 !important;
  text-align:left !important;
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
  cursor:pointer !important;
}

.acc-q:hover{
  background:#EAF2FA !important;
  color:#0C1F38 !important;
}

.acc-q .plus{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  background:#EAF2FA !important;
  color:#0C1F38 !important;
  font-weight:900 !important;
  transition:transform .18s ease !important;
}

.acc-item.open .acc-q .plus{
  transform:rotate(45deg) !important;
}

.acc-a{
  display:none !important;
  padding:0 20px 20px !important;
  color:#52657D !important;
}

.acc-item.open .acc-a{
  display:block !important;
}

.acc-a p{
  margin:0 !important;
  color:#52657D !important;
  font-size:14.5px !important;
  line-height:1.65 !important;
}

/* Resource page heroes, ADI guide and cost guide */
body:not(.admin-body) main .section-tight.bg-mist:first-child,
body:not(.admin-body) .section-tight.bg-mist:first-of-type{
  background:#3BB8F3 !important;
  color:#071426 !important;
  border-bottom:0 !important;
}

body:not(.admin-body) .section-tight.bg-mist:first-of-type h1{
  color:#071426 !important;
  font-size:clamp(34px,5vw,58px) !important;
  line-height:1.02 !important;
  letter-spacing:-.055em !important;
  max-width:840px !important;
}

body:not(.admin-body) .section-tight.bg-mist:first-of-type .lede,
body:not(.admin-body) .section-tight.bg-mist:first-of-type .muted,
body:not(.admin-body) .section-tight.bg-mist:first-of-type p{
  color:#0C1F38 !important;
}

/* Blog page cleanup */
body:has(a[href^="/blog/"]) .section-tight.bg-mist:first-of-type h1{
  font-size:clamp(34px,4.5vw,52px) !important;
  line-height:1.05 !important;
}

body:has(a[href^="/blog/"]) .p-card h2{
  font-size:18px !important;
  line-height:1.25 !important;
  letter-spacing:-.025em !important;
}

body:has(a[href^="/blog/"]) .p-card{
  border-radius:24px !important;
  padding:22px !important;
  box-shadow:0 12px 30px rgba(12,31,56,.07) !important;
}

body:has(a[href^="/blog/"]) .p-card p{
  font-size:14px !important;
  line-height:1.55 !important;
}

/* Legal pages: wider, premium and less cramped */
body:has(a[href^="mailto:"]) .section-tight .container[style*="max-width:760px"]{
  max-width:980px !important;
}

body:has(a[href^="mailto:"]) .section-tight .container[style*="font-size:15px"]{
  max-width:980px !important;
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:28px !important;
  padding:34px !important;
  box-shadow:0 18px 48px rgba(12,31,56,.07) !important;
  color:#52657D !important;
}

body:has(a[href^="mailto:"]) .section-tight .container[style*="font-size:15px"] h2{
  font-size:21px !important;
  line-height:1.2 !important;
  color:#071426 !important;
  margin-top:34px !important;
  margin-bottom:12px !important;
  letter-spacing:-.02em !important;
}

body:has(a[href^="mailto:"]) .section-tight .container[style*="font-size:15px"] p{
  font-size:15px !important;
  line-height:1.75 !important;
  margin-top:0 !important;
  margin-bottom:18px !important;
}

/* Location/city pages */
.results-grid{
  gap:18px !important;
}

.results-grid .p-card{
  border-radius:24px !important;
  border:1px solid #DCE7F2 !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.results-grid .p-card:hover{
  transform:translateY(-2px) !important;
  border-color:#B9CDE2 !important;
  box-shadow:0 20px 48px rgba(12,31,56,.12) !important;
}

.p-card-name h3,
.p-card-info h3{
  font-size:18px !important;
  line-height:1.2 !important;
}

.p-card-foot{
  margin-top:18px !important;
  padding-top:16px !important;
  border-top:1px solid #E6EEF6 !important;
}

.price-from b{
  color:#071426 !important;
  font-size:18px !important;
}

/* Premium instructor/school supply page */
.pro-hero{
  background:#3BB8F3 !important;
  color:#071426 !important;
  padding:64px 0 !important;
}

.pro-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(420px,.92fr) !important;
  gap:56px !important;
  align-items:center !important;
}

.pro-hero h1{
  color:#071426 !important;
  max-width:760px !important;
  margin:14px 0 0 !important;
  font-size:clamp(42px,5vw,68px) !important;
  line-height:.98 !important;
}

.pro-hero .lead{
  color:#0C1F38 !important;
  max-width:740px !important;
  margin-top:20px !important;
}

.hero-actions{
  display:flex !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-top:28px !important;
}

.supply-stat-row{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-top:28px !important;
  max-width:740px !important;
}

.supply-stat-row div{
  background:#FFFFFF !important;
  border:1px solid rgba(255,255,255,.72) !important;
  border-radius:18px !important;
  padding:16px !important;
  box-shadow:0 12px 28px rgba(12,31,56,.08) !important;
}

.supply-stat-row strong{
  display:block !important;
  font-size:19px !important;
  line-height:1.1 !important;
  color:#071426 !important;
}

.supply-stat-row span{
  display:block !important;
  margin-top:6px !important;
  color:#52657D !important;
  font-size:12.5px !important;
}

.dashboard-preview-card{
  background:#0C1F38 !important;
  border-radius:28px !important;
  padding:26px !important;
  color:#FFFFFF !important;
  box-shadow:0 24px 70px rgba(12,31,56,.18) !important;
}

.dash-top{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
  padding-bottom:16px !important;
  margin-bottom:16px !important;
}

.dash-top span{
  width:12px !important;
  height:12px !important;
  border-radius:999px !important;
  background:#89A4C4 !important;
}

.dash-top b{
  margin-left:10px !important;
  color:#FFFFFF !important;
}

.dash-grid{
  display:grid !important;
  grid-template-columns:150px 1fr !important;
  gap:16px !important;
}

.dash-nav,
.dash-metrics div{
  background:rgba(255,255,255,.08) !important;
  border-radius:18px !important;
  padding:18px !important;
}

.dash-nav{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
}

.dash-nav strong,
.dash-nav span{
  color:#FFFFFF !important;
  font-size:13px !important;
}

.dash-metrics{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
}

.dash-metrics strong{
  display:block !important;
  color:#FFFFFF !important;
  font-size:24px !important;
}

.dash-metrics span{
  color:#C8D8EA !important;
  font-size:12px !important;
}

.dash-checklist{
  background:#FFFFFF !important;
  border-radius:20px !important;
  padding:20px !important;
  margin-top:14px !important;
}

.dash-checklist h3{
  color:#071426 !important;
  margin:0 0 12px !important;
}

.dash-checklist p{
  color:#52657D !important;
  font-size:13.5px !important;
  margin:8px 0 !important;
}

.pro-section{
  padding:64px 0 !important;
  background:#FFFFFF !important;
}

.pro-soft{
  background:#F6F8FB !important;
}

.premium-card-grid{
  display:grid !important;
  gap:16px !important;
}

.premium-card-grid.six{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.premium-info-card,
.profile-path-card,
.pricing-plan{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:24px !important;
  padding:24px !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
}

.mini-icon,
.profile-path-card span{
  display:inline-grid !important;
  place-items:center !important;
  width:36px !important;
  height:36px !important;
  border-radius:13px !important;
  background:#EAF2FA !important;
  color:#0C1F38 !important;
  font-weight:850 !important;
  margin-bottom:18px !important;
}

.premium-info-card h3,
.profile-path-card h3{
  color:#071426 !important;
  font-size:18px !important;
  margin:0 !important;
}

.premium-info-card p,
.profile-path-card p{
  color:#52657D !important;
  font-size:14px !important;
  line-height:1.6 !important;
  margin-top:10px !important;
}

.pricing-grid-pro{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:16px !important;
  margin-top:32px !important;
}

.pricing-plan{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
}

.pricing-plan.is-featured{
  border-color:#2F80ED !important;
  box-shadow:0 20px 52px rgba(47,128,237,.16) !important;
}

.plan-badge{
  position:absolute !important;
  top:16px !important;
  right:16px !important;
  background:#0C1F38 !important;
  color:#FFFFFF !important;
  border-radius:999px !important;
  padding:6px 10px !important;
  font-size:11px !important;
  font-weight:800 !important;
}

.pricing-plan h3{
  font-size:20px !important;
  margin:0 !important;
}

.plan-price{
  font-size:32px !important;
  font-weight:900 !important;
  color:#071426 !important;
  margin-top:14px !important;
}

.plan-price span{
  font-size:13px !important;
  color:#52657D !important;
  margin-left:4px !important;
}

.pricing-plan p{
  color:#52657D !important;
  font-size:13.5px !important;
  min-height:44px !important;
}

.pricing-plan ul{
  list-style:none !important;
  padding:0 !important;
  margin:18px 0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
}

.pricing-plan li{
  color:#33475F !important;
  font-size:13.5px !important;
  line-height:1.45 !important;
}

.pricing-plan .btn{
  margin-top:auto !important;
}

.pricing-note{
  text-align:center !important;
  color:#52657D !important;
  margin-top:22px !important;
  font-size:13.5px !important;
}

.profile-path-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px !important;
  max-width:920px !important;
  margin:28px auto 0 !important;
}

.profile-path-card{
  text-decoration:none !important;
  color:inherit !important;
}

.profile-path-card b{
  display:inline-flex !important;
  margin-top:16px !important;
  color:#2F80ED !important;
}

.final-cta-band{
  background:#0C1F38 !important;
  color:#FFFFFF !important;
}

.final-cta-band h2,
.final-cta-band .lead{
  color:#FFFFFF !important;
}

.narrow{
  max-width:780px !important;
}

/* Ensure #pricing anchor is not hidden under sticky nav */
#pricing{
  scroll-margin-top:110px !important;
}

/* Responsive */
@media(max-width:1100px){
  .pro-hero-grid,
  .contact-hero-grid{
    grid-template-columns:1fr !important;
  }

  .pricing-grid-pro{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .premium-card-grid.six{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:760px){
  body:not(.admin-body) .section-tight.bg-mist:first-of-type h1,
  .pro-hero h1{
    font-size:clamp(34px,10vw,46px) !important;
  }

  .pro-hero{
    padding:38px 0 !important;
  }

  .supply-stat-row,
  .premium-card-grid.six,
  .pricing-grid-pro,
  .profile-path-grid,
  .dash-grid,
  .dash-metrics{
    grid-template-columns:1fr !important;
  }

  .pricing-plan p{
    min-height:0 !important;
  }

  body:has(a[href^="mailto:"]) .section-tight .container[style*="font-size:15px"]{
    padding:24px !important;
    border-radius:22px !important;
  }
}


/* ==========================================================
   PREMIUM CONTACT PAGE
   Contact landing page upgrade.
   ========================================================== */

.contact-hero{
  background:#3BB8F3 !important;
  color:#071426 !important;
  padding:64px 0 58px !important;
  overflow:hidden !important;
}

.contact-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 420px !important;
  gap:56px !important;
  align-items:center !important;
}

.contact-hero h1{
  color:#071426 !important;
  max-width:760px !important;
  margin:14px 0 0 !important;
}

.contact-hero .lead{
  color:#0C1F38 !important;
  max-width:680px !important;
  margin-top:18px !important;
}

.contact-eyebrow,
.contact-eyebrow-light{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  width:auto !important;
}

.contact-trust-row{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-top:28px !important;
  max-width:720px !important;
}

.contact-trust-row div{
  background:#FFFFFF !important;
  border:1px solid rgba(255,255,255,.74) !important;
  border-radius:18px !important;
  padding:16px !important;
  box-shadow:0 12px 28px rgba(12,31,56,.08) !important;
}

.contact-trust-row strong{
  display:block !important;
  color:#071426 !important;
  font-size:18px !important;
  line-height:1.1 !important;
}

.contact-trust-row span{
  display:block !important;
  color:#52657D !important;
  font-size:12.5px !important;
  margin-top:6px !important;
}

.contact-hero-panel{
  background:#0C1F38 !important;
  color:#FFFFFF !important;
  border-radius:28px !important;
  padding:28px !important;
  box-shadow:0 24px 70px rgba(12,31,56,.18) !important;
  border:1px solid rgba(255,255,255,.12) !important;
}

.panel-kicker{
  color:#9EDFFD !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:850 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase !important;
  margin-bottom:12px !important;
}

.contact-hero-panel h2,
.side-panel-dark h3{
  color:#FFFFFF !important;
  font-size:26px !important;
  line-height:1.08 !important;
  letter-spacing:-.04em !important;
  margin:0 !important;
}

.contact-route-list{
  display:grid !important;
  gap:10px !important;
  margin-top:22px !important;
}

.contact-route-list a{
  display:grid !important;
  grid-template-columns:38px 1fr !important;
  gap:12px !important;
  align-items:center !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:16px !important;
  padding:14px !important;
  text-decoration:none !important;
}

.contact-route-list span{
  width:38px !important;
  height:38px !important;
  border-radius:14px !important;
  display:grid !important;
  place-items:center !important;
  background:#3BB8F3 !important;
  color:#071426 !important;
  font-size:12px !important;
  font-weight:850 !important;
}

.contact-route-list b{
  display:block !important;
  color:#FFFFFF !important;
  font-size:14px !important;
  line-height:1.2 !important;
}

.contact-route-list small{
  display:block !important;
  color:#C8D8EA !important;
  font-size:12.5px !important;
  line-height:1.35 !important;
  margin-top:3px !important;
}

.contact-options-section,
.contact-form-section,
.contact-faq-section{
  padding:64px 0 !important;
}

.contact-options-section{
  background:#F6F8FB !important;
}

.contact-form-section{
  background:#FFFFFF !important;
}

.contact-faq-section{
  background:#F6F8FB !important;
}

.contact-section-head{
  max-width:760px !important;
  margin-bottom:28px !important;
}

.contact-section-head.compact{
  margin-bottom:24px !important;
}

.contact-section-head h2{
  color:#071426 !important;
  margin:12px 0 0 !important;
}

.contact-section-head p{
  color:#52657D !important;
  max-width:640px !important;
  margin-top:12px !important;
}

.contact-option-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:16px !important;
}

.contact-option-card{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:24px !important;
  padding:22px !important;
  text-decoration:none !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.contact-option-card:hover{
  transform:translateY(-2px) !important;
  border-color:#B9CDE2 !important;
  box-shadow:0 20px 48px rgba(12,31,56,.11) !important;
}

.option-number{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  height:36px !important;
  border-radius:13px !important;
  background:#EAF2FA !important;
  color:#0C1F38 !important;
  font-size:12px !important;
  font-weight:850 !important;
  margin-bottom:18px !important;
}

.contact-option-card h3{
  color:#071426 !important;
  font-size:18px !important;
  margin:0 !important;
}

.contact-option-card p{
  color:#52657D !important;
  font-size:14px !important;
  margin-top:10px !important;
}

.contact-form-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 360px !important;
  gap:24px !important;
  align-items:start !important;
}

.contact-form-card{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:28px !important;
  padding:30px !important;
  box-shadow:0 20px 54px rgba(12,31,56,.08) !important;
}

.contact-form-header{
  margin-bottom:22px !important;
}

.contact-form-header h2{
  margin:12px 0 0 !important;
}

.contact-form-header p{
  color:#52657D !important;
  max-width:620px !important;
  margin-top:10px !important;
}

.premium-contact-form{
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;
}

.form-two{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}

.premium-contact-form textarea.input{
  min-height:160px !important;
  resize:vertical !important;
}

.contact-error{
  background:#FEF2F2 !important;
  border:1px solid #FECACA !important;
  border-radius:16px !important;
  padding:14px 16px !important;
  margin-bottom:20px !important;
}

.contact-error p{
  color:#991B1B !important;
  font-size:13.5px !important;
  font-weight:650 !important;
  margin:0 !important;
}

.contact-error p + p{
  margin-top:6px !important;
}

.contact-success{
  background:#F4FBF7 !important;
  border:1px solid #D1FAE5 !important;
  border-radius:24px !important;
  padding:36px !important;
  text-align:left !important;
}

.success-mark{
  width:48px !important;
  height:48px !important;
  border-radius:16px !important;
  display:grid !important;
  place-items:center !important;
  background:#0BAA4B !important;
  color:#FFFFFF !important;
  font-size:26px !important;
  font-weight:850 !important;
  margin-bottom:18px !important;
}

.contact-success h2{
  color:#071426 !important;
  margin:0 !important;
}

.contact-success p{
  color:#52657D !important;
  max-width:540px !important;
  margin-top:10px !important;
}

.contact-success-actions{
  display:flex !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-top:24px !important;
}

.contact-side-panel{
  display:grid !important;
  gap:14px !important;
}

.side-panel-dark{
  background:#0C1F38 !important;
  color:#FFFFFF !important;
  border-radius:24px !important;
  padding:24px !important;
  box-shadow:0 20px 54px rgba(12,31,56,.12) !important;
}

.side-panel-dark p{
  color:#C8D8EA !important;
  margin-top:12px !important;
}

.support-metrics{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:18px !important;
}

.support-metrics div{
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:16px !important;
  padding:14px !important;
}

.support-metrics strong{
  display:block !important;
  color:#FFFFFF !important;
  font-size:22px !important;
  line-height:1 !important;
}

.support-metrics span{
  display:block !important;
  color:#C8D8EA !important;
  font-size:12px !important;
  margin-top:7px !important;
}

.contact-mini-card{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:22px !important;
  padding:20px !important;
  box-shadow:0 12px 30px rgba(12,31,56,.06) !important;
}

.contact-mini-card h3{
  color:#071426 !important;
  font-size:17px !important;
  margin:0 !important;
}

.contact-mini-card p{
  color:#52657D !important;
  font-size:13.5px !important;
  margin-top:8px !important;
}

.contact-mini-card a{
  display:inline-flex !important;
  margin-top:12px !important;
  color:#2F80ED !important;
  font-size:13.5px !important;
  font-weight:800 !important;
  text-decoration:none !important;
}

.contact-faq-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:16px !important;
}

.contact-faq-card{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:22px !important;
  padding:22px !important;
  box-shadow:0 12px 30px rgba(12,31,56,.06) !important;
}

.contact-faq-card h3{
  color:#071426 !important;
  font-size:17px !important;
  margin:0 !important;
}

.contact-faq-card p{
  color:#52657D !important;
  font-size:14px !important;
  margin-top:10px !important;
}

@media(max-width:1050px){
  .contact-hero-grid,
  .contact-form-grid{
    grid-template-columns:1fr !important;
  }

  .contact-hero-panel,
  .contact-side-panel{
    max-width:none !important;
  }

  .contact-option-grid,
  .contact-faq-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:700px){
  .contact-hero{
    padding:38px 0 34px !important;
  }

  .contact-options-section,
  .contact-form-section,
  .contact-faq-section{
    padding:40px 0 !important;
  }

  .contact-trust-row,
  .contact-option-grid,
  .contact-faq-grid,
  .form-two{
    grid-template-columns:1fr !important;
  }

  .contact-hero-panel,
  .contact-form-card,
  .side-panel-dark{
    border-radius:22px !important;
    padding:22px !important;
  }

  .contact-form-card{
    padding:22px !important;
  }

  .contact-route-list a{
    grid-template-columns:34px 1fr !important;
  }

  .contact-success{
    padding:24px !important;
  }
}

/* ==========================================================
   PREMIUM CONTACT PAGE FIX 2
   Tighter hero, less empty space, balanced right panel.
   Contact page only.
   ========================================================== */

.contact-hero{
  min-height:auto !important;
  padding:54px 0 52px !important;
}

.contact-hero .container{
  width:min(1280px,calc(100% - 72px)) !important;
}

.contact-hero-grid{
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr) !important;
  gap:58px !important;
  align-items:center !important;
}

.contact-hero-copy{
  max-width:780px !important;
}

.contact-hero h1{
  font-size:clamp(46px,5.4vw,72px) !important;
  line-height:.98 !important;
  letter-spacing:-.058em !important;
  max-width:760px !important;
}

.contact-hero .lead{
  font-size:clamp(18px,1.6vw,22px) !important;
  line-height:1.42 !important;
  max-width:760px !important;
  margin-top:24px !important;
}

.contact-trust-row{
  max-width:720px !important;
  margin-top:34px !important;
}

.contact-trust-row div{
  min-height:94px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.contact-hero-panel{
  max-width:440px !important;
  margin-left:auto !important;
  padding:26px !important;
  border-radius:28px !important;
}

.contact-hero-panel h2{
  font-size:clamp(27px,2.4vw,36px) !important;
  line-height:1.04 !important;
  max-width:390px !important;
}

.contact-route-list{
  gap:12px !important;
  margin-top:24px !important;
}

.contact-route-list a{
  grid-template-columns:46px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:center !important;
  padding:16px !important;
  min-height:92px !important;
}

.contact-route-list span{
  width:46px !important;
  height:46px !important;
  border-radius:16px !important;
}

.contact-route-list b{
  font-size:15.5px !important;
  line-height:1.2 !important;
}

.contact-route-list small{
  font-size:13px !important;
  line-height:1.35 !important;
  max-width:280px !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

.contact-options-section{
  padding-top:54px !important;
}

/* Prevent sticky header overlap feeling on contact page */
body:has(.contact-hero) .contact-hero{
  margin-top:0 !important;
}

/* Desktop large screens: use space better without making it airy */
@media(min-width:1400px){
  .contact-hero{
    padding-top:62px !important;
    padding-bottom:60px !important;
  }

  .contact-hero-grid{
    gap:72px !important;
  }

  .contact-hero-panel{
    max-width:470px !important;
  }
}

/* Medium desktop: keep panel from becoming too narrow */
@media(max-width:1180px){
  .contact-hero .container{
    width:min(1180px,calc(100% - 40px)) !important;
  }

  .contact-hero-grid{
    grid-template-columns:minmax(0,1fr) 390px !important;
    gap:34px !important;
  }

  .contact-hero h1{
    font-size:clamp(42px,5vw,60px) !important;
  }

  .contact-hero .lead{
    font-size:18px !important;
  }

  .contact-route-list a{
    min-height:86px !important;
  }
}

/* Tablet/mobile */
@media(max-width:1050px){
  .contact-hero{
    padding:40px 0 42px !important;
  }

  .contact-hero .container{
    width:calc(100% - 28px) !important;
  }

  .contact-hero-grid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .contact-hero-panel{
    max-width:none !important;
    margin-left:0 !important;
  }

  .contact-hero h1{
    font-size:clamp(38px,9vw,54px) !important;
  }

  .contact-hero .lead{
    font-size:16.5px !important;
    line-height:1.5 !important;
  }
}

@media(max-width:700px){
  .contact-hero{
    padding:32px 0 34px !important;
  }

  .contact-trust-row{
    gap:10px !important;
  }

  .contact-route-list a{
    min-height:auto !important;
    grid-template-columns:42px minmax(0,1fr) !important;
    padding:14px !important;
  }

  .contact-route-list small{
    max-width:none !important;
  }
}





/* ==========================================================
   CONSOLIDATED PREMIUM UX PASS
   Global page polish for desktop + mobile.
   Fixes oversized headings, thin legal pages, plain contact fallback,
   static FAQs, and clunky content/card spacing.
   ========================================================== */

/* Overall desktop and mobile type scale */
body:not(.admin-body){
  font-size:15px !important;
  line-height:1.6 !important;
  background:#F6F8FB !important;
}

body:not(.admin-body) p,
body:not(.admin-body) li,
body:not(.admin-body) td,
body:not(.admin-body) th{
  font-size:15px !important;
  line-height:1.65 !important;
  font-weight:500 !important;
  color:#52657D !important;
}

body:not(.admin-body) h1{
  font-size:clamp(36px,4.7vw,58px) !important;
  line-height:1.03 !important;
  letter-spacing:-.055em !important;
  margin-bottom:18px !important;
}

body:not(.admin-body) h2{
  font-size:clamp(27px,3.3vw,42px) !important;
  line-height:1.1 !important;
  letter-spacing:-.045em !important;
  margin-bottom:14px !important;
}

body:not(.admin-body) h3{
  font-size:clamp(18px,2vw,24px) !important;
  line-height:1.18 !important;
  letter-spacing:-.03em !important;
  margin-bottom:10px !important;
}

/* Prevent paragraphs sitting directly under big headings */
body:not(.admin-body) h1 + p,
body:not(.admin-body) h2 + p,
body:not(.admin-body) h3 + p,
body:not(.admin-body) .section-head p,
body:not(.admin-body) .lede,
body:not(.admin-body) .lead{
  margin-top:12px !important;
}

body:not(.admin-body) .lead,
body:not(.admin-body) .lede{
  font-size:clamp(16px,1.6vw,19px) !important;
  line-height:1.6 !important;
  color:#52657D !important;
  max-width:760px !important;
}

/* Full desktop but not stretched edge-to-edge */
body:not(.admin-body) .container{
  width:min(1240px,calc(100% - 64px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Premium default section rhythm */
body:not(.admin-body) main > section,
body:not(.admin-body) .section,
body:not(.admin-body) .section-tight{
  padding-top:58px !important;
  padding-bottom:58px !important;
}

body:not(.admin-body) main > section:nth-of-type(odd):not(.hero-block):not(.saas-hero):not(.contact-hero):not(.pro-hero){
  background:#F6F8FB !important;
}

body:not(.admin-body) main > section:nth-of-type(even):not(.hero-block):not(.saas-hero):not(.contact-hero):not(.pro-hero){
  background:#FFFFFF !important;
}

/* Blue hero standard */
body:not(.admin-body) .hero-block:first-of-type,
body:not(.admin-body) .saas-hero:first-of-type,
body:not(.admin-body) .pro-hero,
body:not(.admin-body) .contact-hero,
body:not(.admin-body) .section-tight.bg-mist:first-of-type{
  background:#3BB8F3 !important;
  color:#071426 !important;
}

body:not(.admin-body) .hero-block:first-of-type h1,
body:not(.admin-body) .saas-hero:first-of-type h1,
body:not(.admin-body) .pro-hero h1,
body:not(.admin-body) .contact-hero h1,
body:not(.admin-body) .section-tight.bg-mist:first-of-type h1{
  color:#071426 !important;
}

body:not(.admin-body) .hero-block:first-of-type p,
body:not(.admin-body) .saas-hero:first-of-type p,
body:not(.admin-body) .pro-hero p,
body:not(.admin-body) .contact-hero p,
body:not(.admin-body) .section-tight.bg-mist:first-of-type p,
body:not(.admin-body) .section-tight.bg-mist:first-of-type .muted,
body:not(.admin-body) .section-tight.bg-mist:first-of-type .lede{
  color:#0C1F38 !important;
}

/* Cards across pages */
body:not(.admin-body) .card,
body:not(.admin-body) .p-card,
body:not(.admin-body) .premium-info-card,
body:not(.admin-body) .pricing-plan,
body:not(.admin-body) .profile-path-card,
body:not(.admin-body) .contact-option-card,
body:not(.admin-body) .contact-faq-card,
body:not(.admin-body) .contact-mini-card,
body:not(.admin-body) .quick-box,
body:not(.admin-body) .feature-box{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:24px !important;
  padding:22px !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
}

body:not(.admin-body) .card:hover,
body:not(.admin-body) .p-card:hover,
body:not(.admin-body) .premium-info-card:hover,
body:not(.admin-body) .profile-path-card:hover,
body:not(.admin-body) .contact-option-card:hover{
  transform:translateY(-2px) !important;
  border-color:#B9CDE2 !important;
  box-shadow:0 20px 48px rgba(12,31,56,.11) !important;
}

/* Cost page: stop huge empty horizontal cards looking thin */
.cost-row,
.cost-card,
.breakdown-row,
.fee-row{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:24px !important;
  padding:24px !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
}

/* If cost cards are raw divs inside a narrow cost section, give them a better rhythm */
body:not(.admin-body) .section-tight .container > div[style*="border"],
body:not(.admin-body) .section .container > div[style*="border"]{
  border-color:#DCE7F2 !important;
  border-radius:24px !important;
  box-shadow:0 14px 34px rgba(12,31,56,.07) !important;
}

/* Blog page */
.blog-grid,
.posts-grid,
.article-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
}

.blog-grid .p-card h2,
.posts-grid .p-card h2,
.article-grid .p-card h2,
.blog-card h2{
  font-size:20px !important;
  line-height:1.22 !important;
  letter-spacing:-.03em !important;
}

.blog-grid .p-card p,
.posts-grid .p-card p,
.article-grid .p-card p,
.blog-card p{
  font-size:14.2px !important;
  line-height:1.58 !important;
}

/* Legal/privacy/terms pages */
.legal-page,
.terms-page,
.privacy-page,
.policy-page{
  background:#F6F8FB !important;
}

.legal-content,
.policy-content,
.terms-content,
.privacy-content{
  max-width:980px !important;
  margin:0 auto !important;
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:28px !important;
  padding:36px !important;
  box-shadow:0 18px 48px rgba(12,31,56,.07) !important;
}

.legal-content h2,
.policy-content h2,
.terms-content h2,
.privacy-content h2{
  font-size:22px !important;
  line-height:1.24 !important;
  margin-top:34px !important;
  margin-bottom:12px !important;
}

.legal-content p,
.policy-content p,
.terms-content p,
.privacy-content p{
  margin-bottom:18px !important;
}

/* Catch existing thin inline legal containers */
body:not(.admin-body) .section-tight .container[style*="max-width:760px"],
body:not(.admin-body) .section-tight .container[style*="max-width: 760px"]{
  max-width:980px !important;
}

body:not(.admin-body) .section-tight .container[style*="font-size:15px"],
body:not(.admin-body) .section-tight .container[style*="font-size: 15px"]{
  max-width:980px !important;
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:28px !important;
  padding:36px !important;
  box-shadow:0 18px 48px rgba(12,31,56,.07) !important;
}

/* City/location pages */
.location-hero,
.city-hero{
  background:#3BB8F3 !important;
  color:#071426 !important;
}

.results-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
}

.results-grid .p-card{
  min-height:100% !important;
}

/* FAQ accordions: consistent behaviour and visual style */
.acc-item{
  background:#FFFFFF !important;
  border:1px solid #DCE7F2 !important;
  border-radius:18px !important;
  margin-bottom:12px !important;
  overflow:hidden !important;
  box-shadow:0 10px 26px rgba(12,31,56,.055) !important;
}

.acc-q{
  width:100% !important;
  min-height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  padding:18px 20px !important;
  background:#FFFFFF !important;
  border:0 !important;
  color:#071426 !important;
  text-align:left !important;
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
  cursor:pointer !important;
}

.acc-q:hover{
  background:#EAF2FA !important;
  color:#0C1F38 !important;
}

.acc-q .plus{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  background:#EAF2FA !important;
  color:#0C1F38 !important;
  font-weight:900 !important;
  transition:transform .18s ease !important;
}

.acc-item.open .acc-q .plus{
  transform:rotate(45deg) !important;
}

.acc-a{
  display:none !important;
  padding:0 20px 20px !important;
}

.acc-item.open .acc-a{
  display:block !important;
}

.acc-a p{
  margin:0 !important;
  font-size:14.5px !important;
  line-height:1.65 !important;
}

/* Contact page fail-safe: if CSS cascade misses, force premium layout */
.contact-hero{
  background:#3BB8F3 !important;
  color:#071426 !important;
  padding:52px 0 !important;
}

.contact-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr) !important;
  gap:52px !important;
  align-items:center !important;
}

.contact-route-list a{
  grid-template-columns:46px minmax(0,1fr) !important;
}

.contact-route-list a > div{
  min-width:0 !important;
}

.contact-route-list small{
  max-width:320px !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

/* Responsive */
@media(max-width:1050px){
  body:not(.admin-body) .container{
    width:calc(100% - 32px) !important;
  }

  .contact-hero-grid,
  .pro-hero-grid{
    grid-template-columns:1fr !important;
  }

  .blog-grid,
  .posts-grid,
  .article-grid,
  .results-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:760px){
  body:not(.admin-body){
    font-size:14.5px !important;
  }

  body:not(.admin-body) p,
  body:not(.admin-body) li{
    font-size:14.5px !important;
    line-height:1.62 !important;
  }

  body:not(.admin-body) h1{
    font-size:clamp(34px,10vw,46px) !important;
  }

  body:not(.admin-body) h2{
    font-size:clamp(25px,8vw,34px) !important;
  }

  body:not(.admin-body) main > section,
  body:not(.admin-body) .section,
  body:not(.admin-body) .section-tight{
    padding-top:38px !important;
    padding-bottom:38px !important;
  }

  body:not(.admin-body) .container{
    width:calc(100% - 24px) !important;
  }

  .blog-grid,
  .posts-grid,
  .article-grid,
  .results-grid,
  .pricing-grid-pro,
  .premium-card-grid.six,
  .profile-path-grid,
  .contact-option-grid,
  .contact-faq-grid,
  .contact-trust-row{
    grid-template-columns:1fr !important;
  }

  .legal-content,
  .policy-content,
  .terms-content,
  .privacy-content,
  body:not(.admin-body) .section-tight .container[style*="font-size:15px"],
  body:not(.admin-body) .section-tight .container[style*="font-size: 15px"]{
    padding:24px !important;
    border-radius:22px !important;
  }

  .contact-hero{
    padding:34px 0 !important;
  }

  .contact-hero-grid{
    grid-template-columns:1fr !important;
    gap:26px !important;
  }
}

/* ==========================================================
   CDI V10 REVIEWED PREMIUM SEO/GEO SYSTEM
   Applied after full admin/database review.
   ========================================================== */
:root{
  --cdi-hero-blue:#3BB8F3;
  --cdi-primary-blue:#2F80ED;
  --cdi-primary-blue-hover:#256FDB;
  --cdi-navy:#0C1F38;
  --cdi-ink:#071426;
  --cdi-muted:#52657D;
  --cdi-bg:#F6F8FB;
  --cdi-line:#DCE7F2;
  --cdi-card:#FFFFFF;
  --cdi-radius:24px;
  --cdi-shadow:0 14px 34px rgba(12,31,56,.07);
  --cdi-shadow-lg:0 24px 70px rgba(12,31,56,.14);
}
body:not(.admin-body){background:var(--cdi-bg)!important;font-size:15px!important;line-height:1.6!important;}
body:not(.admin-body) .container{width:min(1240px,calc(100% - 64px))!important;margin-left:auto!important;margin-right:auto!important;}
body:not(.admin-body) h1{font-size:clamp(36px,5vw,62px)!important;line-height:1.02!important;letter-spacing:-.058em!important;margin-bottom:18px!important;}
body:not(.admin-body) h2{font-size:clamp(28px,3.4vw,44px)!important;line-height:1.1!important;letter-spacing:-.045em!important;margin-bottom:14px!important;}
body:not(.admin-body) h3{font-size:clamp(18px,2vw,24px)!important;line-height:1.18!important;letter-spacing:-.028em!important;}
body:not(.admin-body) p,body:not(.admin-body) li{font-size:15px!important;line-height:1.66!important;}
body:not(.admin-body) .lede,body:not(.admin-body) .lead{font-size:clamp(16px,1.7vw,20px)!important;line-height:1.56!important;max-width:760px!important;}
body:not(.admin-body) .section,body:not(.admin-body) .section-tight{padding-top:58px!important;padding-bottom:58px!important;}
body:not(.admin-body) .section-head{max-width:780px!important;text-align:left!important;margin-left:0!important;margin-right:auto!important;margin-bottom:30px!important;}
body:not(.admin-body) .section-head.center{ text-align:left!important; margin-left:0!important; margin-right:auto!important; }
body:not(.admin-body) .final-cta-band .container,body:not(.admin-body) .container.center{ text-align:center!important; }
body:not(.admin-body) .hero-block,body:not(.admin-body) .cdi-page-hero,body:not(.admin-body) .geo-hero,body:not(.admin-body) .service-hero,body:not(.admin-body) .resource-hero,body:not(.admin-body) .section-tight.bg-mist:first-of-type{background:var(--cdi-hero-blue)!important;color:var(--cdi-ink)!important;}
body:not(.admin-body) .hero-block p,body:not(.admin-body) .cdi-page-hero p,body:not(.admin-body) .geo-hero p,body:not(.admin-body) .section-tight.bg-mist:first-of-type p{color:var(--cdi-navy)!important;}
.cdi-breadcrumbs{margin:0 0 18px!important;font-size:13px!important;}
.cdi-breadcrumbs ol{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;list-style:none!important;padding:0!important;margin:0!important;}
.cdi-breadcrumbs li{display:flex!important;align-items:center!important;gap:8px!important;color:rgba(7,20,38,.7)!important;font-size:13px!important;}
.cdi-breadcrumbs li:not(:last-child)::after{content:"/";color:rgba(7,20,38,.42)!important;}
.cdi-breadcrumbs a{color:var(--cdi-navy)!important;text-decoration:none!important;font-weight:800!important;}
.cdi-breadcrumbs span{color:#33475F!important;font-weight:700!important;}
.cdi-hero-grid,.geo-hero-grid,.cdi-editorial{display:grid!important;grid-template-columns:minmax(0,1fr) 380px!important;gap:clamp(28px,5vw,64px)!important;align-items:center!important;}
.cdi-side-card,.geo-side-card,.eeat-card,.proof-card,.quick-answer,.geo-answer,.ai-overview-answer{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:var(--cdi-radius)!important;padding:24px!important;box-shadow:var(--cdi-shadow)!important;}
.cdi-side-card.dark,.geo-side-card.dark,.eeat-card.dark{background:var(--cdi-navy)!important;color:#fff!important;}
.cdi-side-card.dark h3,.geo-side-card.dark h3,.eeat-card.dark h3{color:#fff!important;}
.cdi-side-card.dark p,.geo-side-card.dark p,.eeat-card.dark p{color:#C8D8EA!important;}
.geo-answer,.ai-overview-answer,.quick-answer{border-left:5px solid var(--cdi-primary-blue)!important;margin:24px 0!important;}
.geo-answer h2,.ai-overview-answer h2,.quick-answer h2{font-size:22px!important;line-height:1.18!important;margin:0 0 10px!important;}
.cdi-proof-strip,.eeat-strip,.trust-strip,.stat-strip.divided{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;margin-top:28px!important;border-top:0!important;padding:0!important;}
.cdi-proof-strip>*,.eeat-strip>*,.trust-strip>*,.stat-strip.divided .stat{background:#fff!important;border:1px solid rgba(255,255,255,.72)!important;border-radius:18px!important;padding:16px!important;box-shadow:0 12px 28px rgba(12,31,56,.08)!important;text-align:left!important;}
.stat-strip.divided .stat b,.cdi-proof-strip strong,.eeat-strip strong,.trust-strip strong{display:block!important;font-size:18px!important;line-height:1.1!important;color:var(--cdi-ink)!important;}
.stat-strip.divided .stat span,.cdi-proof-strip span,.eeat-strip span,.trust-strip span{display:block!important;color:var(--cdi-muted)!important;font-size:12.5px!important;line-height:1.35!important;margin-top:6px!important;}
.p-card,.premium-info-card,.review-card,.social-proof-card,.profile-panel,.contact-option-card,.contact-form-card,.pricing-plan{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:24px!important;box-shadow:var(--cdi-shadow)!important;}
.p-card:hover,.premium-info-card:hover,.review-card:hover{transform:translateY(-2px)!important;border-color:#B9CDE2!important;box-shadow:0 20px 48px rgba(12,31,56,.11)!important;}
.results-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
.cdi-carousel,.instructor-carousel,.lesson-carousel,.proof-carousel,.blog-carousel{display:flex!important;gap:14px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;padding-bottom:12px!important;}
.cdi-carousel::-webkit-scrollbar,.instructor-carousel::-webkit-scrollbar,.lesson-carousel::-webkit-scrollbar,.proof-carousel::-webkit-scrollbar,.blog-carousel::-webkit-scrollbar{display:none!important;}
.cdi-carousel>*,.instructor-carousel>*,.lesson-carousel>*,.proof-carousel>*,.blog-carousel>*{flex:0 0 min(84%,340px)!important;scroll-snap-align:start!important;}
@media(min-width:980px){.desktop-grid.cdi-carousel,.desktop-grid.instructor-carousel,.desktop-grid.lesson-carousel,.desktop-grid.proof-carousel,.desktop-grid.blog-carousel{display:grid!important;overflow:visible!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.desktop-grid.cdi-carousel>*,.desktop-grid.instructor-carousel>*,.desktop-grid.lesson-carousel>*,.desktop-grid.proof-carousel>*,.desktop-grid.blog-carousel>*{flex:auto!important}}
.instructor-card-media,.school-card-media,.geo-card-media{aspect-ratio:16/10!important;background:#EAF2FA url('/assets/images/placeholder-instructor.png') center/cover no-repeat!important;border-radius:20px!important;overflow:hidden!important;}
.school-card-media{background-image:url('/assets/images/placeholder-school.png')!important}.geo-card-media{background-image:url('/assets/images/cdi-default-location.svg')!important}
.profile-photo-xl{background:#EAF2FA!important;background-image:url('/assets/images/placeholder-instructor.png')!important;background-size:cover!important;background-position:center!important;color:transparent!important;}
.profile-photo-xl img{background:#EAF2FA!important;}
.acc-item,.faq-item,.faq-card,.faq-row,.faq-block,details{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:18px!important;margin-bottom:12px!important;box-shadow:0 10px 26px rgba(12,31,56,.055)!important;overflow:hidden!important;}
.acc-q,.faq-toggle,details summary{width:100%!important;min-height:58px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;padding:18px 20px!important;background:#fff!important;border:0!important;color:var(--cdi-ink)!important;text-align:left!important;font-size:15px!important;line-height:1.35!important;font-weight:850!important;cursor:pointer!important;list-style:none!important;}
.acc-q:hover,.faq-toggle:hover,details summary:hover{background:#EAF2FA!important;}
.acc-q .plus,.faq-toggle .plus,details summary::after{width:30px!important;height:30px!important;min-width:30px!important;border-radius:999px!important;display:grid!important;place-items:center!important;background:#EAF2FA!important;color:var(--cdi-navy)!important;font-weight:900!important;transition:transform .18s ease!important;}
details summary::after{content:"+"!important;}
details summary::-webkit-details-marker{display:none!important;}
.acc-item.open .acc-q .plus,.faq-item.open .faq-toggle .plus,.faq-card.open .faq-toggle .plus,.faq-row.open .faq-toggle .plus,.faq-block.open .faq-toggle .plus,details[open] summary::after{transform:rotate(45deg)!important;}
.acc-a,.faq-answer{display:none!important;padding:0 20px 20px!important}.acc-item.open .acc-a,.faq-item.open .faq-answer,.faq-card.open .faq-answer,.faq-row.open .faq-answer,.faq-block.open .faq-answer{display:block!important}.acc-a p,.faq-answer p{margin:0!important;font-size:14.5px!important;line-height:1.65!important;color:var(--cdi-muted)!important;}
.final-cta-band{background:var(--cdi-navy)!important;color:#fff!important}.final-cta-band h2,.final-cta-band p{color:#fff!important}.final-cta-band .btn{background:var(--cdi-primary-blue)!important;color:#fff!important;border-color:var(--cdi-primary-blue)!important}.final-cta-band .btn:hover{background:var(--cdi-primary-blue-hover)!important;border-color:var(--cdi-primary-blue-hover)!important;}
.btn-green,.btn-primary,.mega-v9-cta,.cdi-feature-cta{background:var(--cdi-primary-blue)!important;color:#fff!important;border-color:var(--cdi-primary-blue)!important}.btn-green:hover,.btn-primary:hover,.mega-v9-cta:hover,.cdi-feature-cta:hover{background:var(--cdi-primary-blue-hover)!important;border-color:var(--cdi-primary-blue-hover)!important;color:#fff!important;}
@media(max-width:1050px){body:not(.admin-body) .container{width:calc(100% - 32px)!important}.cdi-hero-grid,.geo-hero-grid,.cdi-editorial{grid-template-columns:1fr!important}.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cdi-proof-strip,.eeat-strip,.trust-strip,.stat-strip.divided{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important}.cdi-proof-strip>*,.eeat-strip>*,.trust-strip>*,.stat-strip.divided .stat{flex:0 0 82%!important;scroll-snap-align:start!important}}
@media(max-width:760px){body:not(.admin-body) .container{width:calc(100% - 24px)!important}body:not(.admin-body) h1{font-size:clamp(34px,10vw,46px)!important}body:not(.admin-body) h2{font-size:clamp(25px,8vw,34px)!important}body:not(.admin-body) .section,body:not(.admin-body) .section-tight{padding-top:38px!important;padding-bottom:38px!important}.results-grid{grid-template-columns:1fr!important}.acc-q,.faq-toggle,details summary{font-size:14.5px!important;padding:16px!important}.acc-a,.faq-answer{padding:0 16px 16px!important}.cdi-demo-logins{display:none!important}}




/* ==========================================================
   CDI FINAL LIVE PREMIUM SYSTEM
   Sleek production styling: smaller type, tighter spacing, refined FAQs,
   mobile-first cards, GEO/SEO layout support.
   ========================================================== */

:root{
  --cdi-blue:#2F80ED;
  --cdi-cyan:#3BB8F3;
  --cdi-navy:#0C1F38;
  --cdi-ink:#071426;
  --cdi-muted:#56677F;
  --cdi-bg:#F5F8FC;
  --cdi-line:#DFE9F3;
  --cdi-card:#FFFFFF;
  --cdi-shadow:0 14px 34px rgba(12,31,56,.065);
  --cdi-shadow-lg:0 24px 64px rgba(12,31,56,.12);
}

body:not(.admin-body){
  background:var(--cdi-bg)!important;
  color:var(--cdi-ink)!important;
  font-size:15px!important;
  line-height:1.6!important;
}

body:not(.admin-body) .container{
  width:min(1220px,calc(100% - 56px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

body:not(.admin-body) h1{
  font-size:clamp(34px,4.6vw,56px)!important;
  line-height:1.02!important;
  letter-spacing:-.056em!important;
  margin:18px 0 14px!important;
}

body:not(.admin-body) h2{
  font-size:clamp(25px,3.1vw,38px)!important;
  line-height:1.09!important;
  letter-spacing:-.045em!important;
  margin:0 0 12px!important;
}

body:not(.admin-body) h3{
  font-size:clamp(17px,1.8vw,21px)!important;
  line-height:1.16!important;
  letter-spacing:-.025em!important;
}

body:not(.admin-body) p,
body:not(.admin-body) li{
  font-size:14.5px!important;
  line-height:1.62!important;
  color:var(--cdi-muted)!important;
}

.cdi-hero,
.compact-hero{
  background:linear-gradient(135deg,#3BB8F3 0%,#48BFF5 60%,#68CDF7 100%)!important;
  padding:42px 0 50px!important;
  color:var(--cdi-ink)!important;
}

.cdi-hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.02fr) minmax(340px,.72fr)!important;
  gap:42px!important;
  align-items:center!important;
}

.hero-copy{
  text-align:left!important;
  max-width:790px!important;
}

.lead,
.body-lead{
  font-size:clamp(16px,1.45vw,18px)!important;
  line-height:1.55!important;
  color:#12304D!important;
  max-width:680px!important;
  margin:0!important;
}

.eyebrow{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  width:auto!important;
  background:rgba(255,255,255,.9)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  color:var(--cdi-navy)!important;
  border-radius:999px!important;
  padding:8px 13px!important;
  font-size:11.5px!important;
  font-weight:850!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
  box-shadow:0 10px 22px rgba(12,31,56,.055)!important;
}

.cdi-breadcrumbs{
  margin:0 0 16px!important;
}

.cdi-breadcrumbs ol{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  padding:0!important;
  margin:0!important;
  list-style:none!important;
}

.cdi-breadcrumbs li{
  font-size:12.5px!important;
  color:rgba(7,20,38,.68)!important;
  font-weight:700!important;
}

.cdi-breadcrumbs li:not(:last-child)::after{
  content:"/"!important;
  margin-left:8px!important;
  color:rgba(7,20,38,.38)!important;
}

.cdi-breadcrumbs a{
  color:var(--cdi-navy)!important;
  text-decoration:none!important;
}

.premium-search{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 180px auto!important;
  gap:10px!important;
  max-width:780px!important;
  margin-top:24px!important;
  padding:10px!important;
  background:#fff!important;
  border:1px solid rgba(255,255,255,.85)!important;
  border-radius:24px!important;
  box-shadow:0 18px 44px rgba(12,31,56,.11)!important;
}

.input{
  height:50px!important;
  border:1px solid var(--cdi-line)!important;
  border-radius:15px!important;
  padding:0 14px!important;
  background:#F8FBFF!important;
  color:var(--cdi-ink)!important;
  font-size:14px!important;
  font-weight:700!important;
}

.btn,
button.btn{
  border-radius:999px!important;
  min-height:46px!important;
  padding:12px 20px!important;
  font-size:14px!important;
  font-weight:850!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  cursor:pointer!important;
}

.btn-primary{
  background:var(--cdi-blue)!important;
  color:#fff!important;
  box-shadow:0 12px 26px rgba(47,128,237,.22)!important;
}

.btn-secondary{
  background:#fff!important;
  color:var(--cdi-navy)!important;
  box-shadow:0 10px 22px rgba(12,31,56,.08)!important;
}

.trust-row.compact{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  max-width:720px!important;
  margin-top:22px!important;
}

.trust-row.compact div{
  background:rgba(255,255,255,.9)!important;
  border:1px solid rgba(255,255,255,.8)!important;
  border-radius:17px!important;
  padding:14px!important;
  box-shadow:0 12px 28px rgba(12,31,56,.07)!important;
}

.trust-row.compact strong{
  display:block!important;
  color:var(--cdi-ink)!important;
  font-size:16px!important;
  line-height:1.1!important;
}

.trust-row.compact span{
  display:block!important;
  margin-top:5px!important;
  color:var(--cdi-muted)!important;
  font-size:12.5px!important;
  line-height:1.32!important;
}

.hero-profile-card{
  background:#fff!important;
  border:1px solid rgba(255,255,255,.82)!important;
  border-radius:28px!important;
  overflow:hidden!important;
  box-shadow:var(--cdi-shadow-lg)!important;
}

.hero-profile-card img{
  display:block!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  object-fit:cover!important;
  background:#F8FBFF!important;
}

.hero-profile-body{
  padding:18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}

.hero-profile-body h2{
  font-size:20px!important;
  margin:0 0 5px!important;
}

.hero-profile-body p{
  margin:0!important;
  font-size:13.5px!important;
}

.cdi-section{
  padding:52px 0!important;
  background:var(--cdi-bg)!important;
}

.cdi-section.white{
  background:#fff!important;
}

.cdi-split{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 340px!important;
  gap:28px!important;
  align-items:start!important;
}

.answer-card,
.side-card,
.sleek-card,
.faq-row{
  background:#fff!important;
  border:1px solid var(--cdi-line)!important;
  box-shadow:var(--cdi-shadow)!important;
}

.answer-card{
  border-left:4px solid var(--cdi-blue)!important;
  border-radius:20px!important;
  padding:20px!important;
  margin-top:20px!important;
  max-width:760px!important;
}

.answer-card p{
  margin:0!important;
  font-size:15px!important;
  color:#33475F!important;
}

.side-card{
  border-radius:22px!important;
  padding:22px!important;
}

.side-card.slim h3{
  margin:0 0 14px!important;
}

.side-card.dark{
  background:var(--cdi-navy)!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#fff!important;
}

.side-card.dark h3{
  color:#fff!important;
}

.side-card.dark p{
  color:#C8D8EA!important;
}

.clean-list{
  list-style:none!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  gap:10px!important;
}

.clean-list li{
  font-size:14px!important;
  color:var(--cdi-muted)!important;
  font-weight:650!important;
}

.clean-list li::before{
  content:""!important;
  display:inline-block!important;
  width:7px!important;
  height:7px!important;
  border-radius:50%!important;
  background:var(--cdi-blue)!important;
  margin-right:9px!important;
  vertical-align:middle!important;
}

.section-head.left{
  text-align:left!important;
  max-width:740px!important;
  margin:0 0 24px!important;
}

.section-head.left p{
  margin:0!important;
  color:var(--cdi-muted)!important;
}

.sleek-card-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}

.sleek-card{
  border-radius:22px!important;
  padding:22px!important;
  text-decoration:none!important;
  color:var(--cdi-ink)!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease!important;
}

.sleek-card:hover{
  transform:translateY(-2px)!important;
  border-color:#C9DCEF!important;
  box-shadow:0 20px 48px rgba(12,31,56,.095)!important;
}

.sleek-card span{
  display:block!important;
  color:var(--cdi-blue)!important;
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
  margin-bottom:28px!important;
}

.sleek-card h3{
  margin:0 0 9px!important;
  font-size:19px!important;
}

.sleek-card p{
  margin:0!important;
  font-size:13.8px!important;
}

.faq-container{
  max-width:900px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.faq-row{
  border-radius:16px!important;
  margin-bottom:10px!important;
  overflow:hidden!important;
}

.faq-q{
  width:100%!important;
  min-height:54px!important;
  padding:15px 18px!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:18px!important;
  border:0!important;
  background:#fff!important;
  color:var(--cdi-ink)!important;
  font-size:14.5px!important;
  font-weight:820!important;
  text-align:left!important;
  cursor:pointer!important;
}

.faq-q span{
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#EEF5FD!important;
  color:var(--cdi-navy)!important;
  font-size:18px!important;
  font-weight:850!important;
  transition:transform .16s ease!important;
}

.faq-a{
  display:none!important;
  padding:0 18px 16px!important;
}

.faq-row.open .faq-a{
  display:block!important;
}

.faq-row.open .faq-q span{
  transform:rotate(45deg)!important;
}

.faq-a p{
  margin:0!important;
  font-size:13.8px!important;
  line-height:1.58!important;
}

.cdi-final-cta{
  background:var(--cdi-navy)!important;
  color:#fff!important;
  text-align:center!important;
  padding:48px 0!important;
}

.cdi-final-cta h2{
  color:#fff!important;
  margin:0 0 8px!important;
  font-size:clamp(27px,3vw,38px)!important;
}

.cdi-final-cta p{
  color:#C8D8EA!important;
  margin:0 auto 20px!important;
  max-width:620px!important;
}

@media(max-width:980px){
  body:not(.admin-body) .container{
    width:calc(100% - 28px)!important;
  }

  .cdi-hero-grid,
  .cdi-split{
    grid-template-columns:1fr!important;
  }

  .premium-search{
    grid-template-columns:1fr!important;
    border-radius:20px!important;
  }

  .trust-row.compact,
  .sleek-card-grid{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    gap:12px!important;
    padding-bottom:8px!important;
  }

  .trust-row.compact div,
  .sleek-card{
    flex:0 0 84%!important;
    scroll-snap-align:start!important;
  }

  .hero-profile-card{
    max-width:520px!important;
  }

  .hero-profile-body{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
}

@media(max-width:640px){
  .cdi-hero,
  .compact-hero{
    padding:30px 0 36px!important;
  }

  .cdi-section{
    padding:38px 0!important;
  }

  body:not(.admin-body) h1{
    font-size:36px!important;
    letter-spacing:-.052em!important;
  }

  body:not(.admin-body) h2{
    font-size:27px!important;
  }

  .lead{
    font-size:15.5px!important;
  }

  .btn,
  button.btn{
    width:100%!important;
  }

  .hero-profile-card img{
    max-height:240px!important;
  }

  .side-card,
  .answer-card,
  .sleek-card{
    border-radius:18px!important;
    padding:18px!important;
  }

  .faq-q{
    min-height:50px!important;
    padding:14px 15px!important;
  }

  .faq-a{
    padding:0 15px 15px!important;
  }
}


/* ==========================================================
   CDI HOMEPAGE SEO-RICH SLEEK UPDATE
   Adds content depth without returning to clunky landing-page styling.
   ========================================================== */

.compact-process .sleek-card span{
  margin-bottom:18px!important;
}

.sleek-card-grid.three{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.compact-link-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:22px!important;
  max-width:620px!important;
}

.compact-link-grid a,
.compact-location-links a{
  background:#fff!important;
  border:1px solid var(--cdi-line)!important;
  border-radius:15px!important;
  padding:13px 15px!important;
  color:var(--cdi-ink)!important;
  text-decoration:none!important;
  font-size:14px!important;
  font-weight:780!important;
  box-shadow:0 10px 24px rgba(12,31,56,.045)!important;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease!important;
}

.compact-link-grid a:hover,
.compact-location-links a:hover{
  transform:translateY(-1px)!important;
  border-color:#C9DCEF!important;
  box-shadow:0 14px 30px rgba(12,31,56,.075)!important;
}

.inline-actions{
  display:flex!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin-top:22px!important;
}

.compact-location-links{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:10px!important;
}

.compact-location-links a{
  text-align:center!important;
}

@media(max-width:980px){
  .sleek-card-grid.three,
  .compact-location-links{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    gap:12px!important;
    padding-bottom:8px!important;
  }

  .sleek-card-grid.three .sleek-card,
  .compact-location-links a{
    flex:0 0 78%!important;
    scroll-snap-align:start!important;
  }

  .compact-link-grid{
    grid-template-columns:1fr!important;
  }

  .inline-actions .btn{
    width:auto!important;
  }
}

@media(max-width:640px){
  .inline-actions{
    flex-direction:column!important;
  }

  .inline-actions .btn{
    width:100%!important;
  }
}



/* CDI MOBILE-FIRST PRODUCTION RESET */
html,body{overflow-x:hidden!important}
body:not(.admin-body){background:#F5F8FC!important}
@media(max-width:760px){
.site-header,.cdi-header,header.site-header{background:#0C1F38!important;border-bottom:1px solid rgba(255,255,255,.10)!important}
.site-header .container,.cdi-header .container,.header-inner,.nav-wrap,.header-wrap{width:100%!important;min-height:64px!important;padding:8px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.logo img,.site-logo img,.brand img,header img{max-width:160px!important;max-height:50px!important;object-fit:contain!important}
.header-cta,.nav-cta,.site-header .btn-primary,.cdi-header .btn-primary,header .btn-primary[href*="register"],header a[href*="register"],header a[href*="profile"]{width:auto!important;min-width:0!important;max-width:145px!important;height:42px!important;min-height:42px!important;padding:8px 16px!important;border-radius:999px!important;font-size:13px!important;line-height:1.05!important;white-space:normal!important;text-align:center!important;box-shadow:none!important}
.menu-toggle,.burger,.mobile-menu-toggle,.hamburger,button[aria-label*="menu" i],button[aria-label*="navigation" i]{width:42px!important;height:42px!important;min-width:42px!important;border-radius:14px!important;background:#1C314B!important;border:1px solid rgba(255,255,255,.13)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding:0!important;box-shadow:none!important;position:relative!important}
.menu-toggle span,.burger span,.mobile-menu-toggle span,.hamburger span,button[aria-label*="menu" i] span,button[aria-label*="navigation" i] span{display:block!important;width:18px!important;height:2px!important;min-height:2px!important;border-radius:99px!important;background:#fff!important;opacity:1!important;margin:0!important;transform:none!important}
.menu-toggle::before,.menu-toggle::after,.burger::before,.burger::after,.mobile-menu-toggle::before,.mobile-menu-toggle::after,.hamburger::before,.hamburger::after{content:""!important;display:block!important;width:18px!important;height:2px!important;border-radius:99px!important;background:#fff!important;position:static!important;transform:none!important;opacity:1!important}
}
.mobile-clean-hero .cdi-hero-grid,.mobile-clean-hero .hero-copy{display:block!important}
.mobile-clean-hero .hero-profile-card{display:none!important}
.cdi-hero,.compact-hero,.mobile-clean-hero{padding:38px 0 42px!important;min-height:0!important}
@media(max-width:760px){
.cdi-hero,.compact-hero,.mobile-clean-hero{padding:28px 0 34px!important}
.cdi-hero h1,.compact-hero h1,.mobile-clean-hero h1{font-size:32px!important;line-height:1.05!important;letter-spacing:-.045em!important;margin:16px 0 10px!important;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}
.lead,.body-lead,.mobile-clean-hero .lead{font-size:15px!important;line-height:1.5!important;max-width:100%!important}
}
.premium-search{width:100%!important;max-width:760px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 170px auto!important;gap:9px!important;padding:9px!important;margin-top:22px!important;border-radius:20px!important}
.premium-search .input,.premium-search select,.premium-search input{min-width:0!important;width:100%!important;height:48px!important;font-size:14px!important;border-radius:14px!important;text-overflow:ellipsis!important}
.premium-search .btn{height:48px!important;min-height:48px!important;padding:10px 18px!important;font-size:14px!important}
@media(max-width:760px){
.premium-search{grid-template-columns:1fr!important;gap:8px!important;padding:8px!important;margin-top:18px!important}
.premium-search .input,.premium-search select,.premium-search input,.premium-search .btn{height:46px!important;min-height:46px!important;width:100%!important}
}
.trust-row.compact{max-width:720px!important;gap:9px!important;margin-top:18px!important}
.trust-row.compact div{border-radius:14px!important;padding:11px 12px!important;min-height:auto!important}
.trust-row.compact strong{font-size:14.5px!important;line-height:1.1!important}
.trust-row.compact span{font-size:11.5px!important;line-height:1.25!important;margin-top:4px!important}
@media(max-width:760px){
.trust-row.compact{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;overflow:visible!important;padding:0!important}
.trust-row.compact div{padding:10px 8px!important;text-align:left!important}
.trust-row.compact strong{font-size:13px!important}
.trust-row.compact span{font-size:10.5px!important}
}
@media(max-width:760px){
.sleek-card-grid.carousel-mobile,.sleek-card-grid.three,.compact-location-links{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;gap:10px!important;padding:0 0 8px!important}
.sleek-card-grid.carousel-mobile::-webkit-scrollbar,.sleek-card-grid.three::-webkit-scrollbar,.compact-location-links::-webkit-scrollbar{display:none!important}
.sleek-card,.sleek-card-grid.three .sleek-card,.compact-location-links a{flex:0 0 76%!important;scroll-snap-align:start!important;border-radius:16px!important;padding:16px!important}
.sleek-card span{margin-bottom:18px!important;font-size:11px!important}
.sleek-card h3{font-size:17px!important;line-height:1.15!important}
.sleek-card p{font-size:13px!important;line-height:1.45!important}
.cdi-section{padding:34px 0!important}
.section-head.left{margin-bottom:18px!important}
.section-head.left h2,.cdi-section h2{font-size:25px!important;line-height:1.12!important;letter-spacing:-.035em!important}
.answer-card,.side-card{border-radius:16px!important;padding:16px!important}
}
.faq-row{border-radius:14px!important;box-shadow:0 8px 18px rgba(12,31,56,.045)!important}
.faq-q{min-height:48px!important;padding:13px 15px!important;font-size:14px!important}
.faq-q span{width:24px!important;height:24px!important;min-width:24px!important;font-size:16px!important}
.faq-a{padding:0 15px 14px!important}
.faq-a p{font-size:13.5px!important}
.cdi-final-cta,.final-cta-band,footer,.site-footer{background:#0C1F38!important;color:#fff!important}
.cdi-final-cta h2,.cdi-final-cta p,.final-cta-band h2,.final-cta-band p,footer h2,footer h3,footer h4,footer p,footer li,footer a,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer p,.site-footer li,.site-footer a{color:#fff!important}
.cdi-final-cta p,footer p,footer li,.site-footer p,.site-footer li{opacity:.82!important}
@media(max-width:760px){.cdi-final-cta{padding:36px 0!important}.cdi-final-cta h2{font-size:27px!important}.cdi-final-cta p{font-size:14.5px!important}}



/* CDI HOMEPAGE PREMIUM SPLIT HERO FIX */
.homepage-premium-hero{padding:54px 0 50px!important}
.homepage-premium-hero .homepage-hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr)!important;gap:54px!important;align-items:center!important}
.homepage-premium-hero .hero-copy{max-width:760px!important}
.homepage-comparison-panel{background:#0C1F38!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:30px!important;padding:26px!important;color:#fff!important;box-shadow:0 24px 70px rgba(12,31,56,.18)!important}
.panel-topline{display:flex!important;align-items:center!important;gap:24px!important;border-bottom:1px solid rgba(255,255,255,.14)!important;padding-bottom:16px!important;margin-bottom:16px!important}
.panel-topline span{width:12px!important;height:12px!important;border-radius:999px!important;background:#89A4C4!important}
.panel-topline strong{margin-left:auto!important;color:#fff!important;font-size:15px!important}
.panel-inner-grid{display:grid!important;grid-template-columns:150px 1fr!important;gap:16px!important}
.panel-side-nav{background:rgba(255,255,255,.08)!important;border-radius:18px!important;padding:18px!important;display:flex!important;flex-direction:column!important;gap:12px!important}
.panel-side-nav b,.panel-side-nav span{color:#fff!important;font-size:13px!important}
.panel-side-nav span{color:#C8D8EA!important}
.panel-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.panel-metrics div{background:rgba(255,255,255,.08)!important;border-radius:16px!important;padding:16px!important}
.panel-metrics strong{display:block!important;color:#fff!important;font-size:22px!important;line-height:1.1!important}
.panel-metrics span{display:block!important;color:#C8D8EA!important;font-size:12px!important;margin-top:6px!important}
.panel-profile-card{background:#fff!important;border-radius:20px!important;padding:20px!important;margin-top:14px!important}
.panel-profile-card h2{color:#071426!important;font-size:22px!important;margin:0 0 8px!important}
.panel-profile-card p{color:#52657D!important;font-size:14px!important;line-height:1.5!important;margin:0!important}
.panel-tags{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:16px!important}
.panel-tags span{background:#EAF2FA!important;color:#0C1F38!important;border-radius:999px!important;padding:7px 10px!important;font-size:12px!important;font-weight:800!important}
@media(max-width:1100px){
.homepage-premium-hero .homepage-hero-grid{grid-template-columns:1fr!important;gap:30px!important}
.homepage-comparison-panel{max-width:680px!important}
}
@media(max-width:760px){
.homepage-premium-hero{padding:30px 0 34px!important}
.homepage-premium-hero .homepage-hero-grid{display:block!important}
.homepage-comparison-panel{margin-top:24px!important;padding:18px!important;border-radius:22px!important}
.panel-inner-grid{grid-template-columns:1fr!important}
.panel-side-nav{display:none!important}
.panel-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.panel-metrics div{padding:11px 9px!important}
.panel-metrics strong{font-size:16px!important}
.panel-metrics span{font-size:10.5px!important}
.panel-profile-card{padding:16px!important;border-radius:16px!important}
.panel-profile-card h2{font-size:19px!important}
}



/* CDI HOMEPAGE FULL-WIDTH FAQ + SERVICES REFINE */

/* Remove heavy bottom CTA look by moving search CTA into body */
.cdi-final-cta{display:none!important}

/* Auto-scroll marquee */
.search-marquee-section{
  background:#fff!important;
  border-bottom:1px solid #DFE9F3!important;
  overflow:hidden!important;
  padding:12px 0!important;
}
.marquee-track{
  display:flex!important;
  width:max-content!important;
  animation:cdiMarquee 34s linear infinite!important;
}
.marquee-line{
  display:flex!important;
  gap:10px!important;
  padding-right:10px!important;
}
.marquee-line a{
  display:inline-flex!important;
  align-items:center!important;
  min-height:38px!important;
  padding:8px 15px!important;
  border-radius:999px!important;
  background:#F5F8FC!important;
  border:1px solid #DFE9F3!important;
  color:#0C1F38!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:780!important;
  white-space:nowrap!important;
}
@keyframes cdiMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.search-marquee-section:hover .marquee-track{animation-play-state:paused!important}

/* Services section similar to NLG rhythm but CDI compact */
.centre-lite{
  text-align:center!important;
  max-width:860px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.centre-lite .eyebrow{
  margin-left:auto!important;
  margin-right:auto!important;
}
.service-card-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
}
.service-card{
  background:#fff!important;
  border:1px solid #DFE9F3!important;
  border-top:4px solid #23D2B5!important;
  border-radius:22px!important;
  padding:24px!important;
  min-height:230px!important;
  box-shadow:0 14px 34px rgba(12,31,56,.065)!important;
  text-decoration:none!important;
  color:#071426!important;
  display:flex!important;
  flex-direction:column!important;
}
.service-card span{
  color:#23BFA6!important;
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  margin-bottom:44px!important;
}
.service-card h3{
  font-size:22px!important;
  line-height:1.14!important;
  letter-spacing:-.035em!important;
  margin:0 0 12px!important;
  color:#071426!important;
}
.service-card p{
  font-size:14px!important;
  line-height:1.58!important;
  color:#56677F!important;
  margin:0!important;
}

/* In-body CTA, not footer */
.cta-in-body{
  align-items:center!important;
}
.inline-search-card{
  background:#0C1F38!important;
  border-radius:24px!important;
  padding:20px!important;
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:10px!important;
  box-shadow:0 24px 64px rgba(12,31,56,.13)!important;
}
.inline-search-card .input{
  background:#fff!important;
}

/* Full width premium FAQ */
.faq-wide-section{
  padding-top:64px!important;
  padding-bottom:64px!important;
}
.faq-wide-container{
  width:min(1320px,calc(100% - 72px))!important;
}
.faq-wide-list{
  margin-top:34px!important;
}
.faq-wide-list .faq-row{
  border-radius:18px!important;
  margin-bottom:14px!important;
  box-shadow:0 10px 28px rgba(12,31,56,.045)!important;
}
.faq-wide-list .faq-q{
  min-height:68px!important;
  padding:20px 28px!important;
  font-size:17px!important;
  font-weight:850!important;
}
.faq-wide-list .faq-q::after{
  content:"→"!important;
  margin-left:8px!important;
  font-weight:900!important;
  opacity:.8!important;
}
.faq-wide-list .faq-q span{
  margin-left:auto!important;
  width:28px!important;
  height:28px!important;
}
.faq-wide-list .faq-a{
  padding:0 28px 22px!important;
}
.faq-wide-list .faq-a p{
  font-size:15px!important;
  line-height:1.7!important;
  max-width:980px!important;
}

/* Footer sharpness */
footer .cdi-final-cta,
.site-footer .cdi-final-cta,
footer .final-cta-band,
.site-footer .final-cta-band{
  display:none!important;
}

@media(max-width:980px){
  .service-card-grid.carousel-mobile{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch!important;
    gap:12px!important;
    padding-bottom:8px!important;
  }
  .service-card-grid.carousel-mobile::-webkit-scrollbar{display:none!important}
  .service-card{
    flex:0 0 78%!important;
    scroll-snap-align:start!important;
    min-height:220px!important;
  }
  .inline-search-card{
    grid-template-columns:1fr!important;
  }
  .faq-wide-container{
    width:calc(100% - 28px)!important;
  }
}
@media(max-width:640px){
  .search-marquee-section{
    padding:9px 0!important;
  }
  .marquee-line a{
    min-height:34px!important;
    padding:7px 12px!important;
    font-size:12px!important;
  }
  .centre-lite{
    text-align:left!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .centre-lite .eyebrow{
    margin-left:0!important;
    margin-right:0!important;
  }
  .service-card{
    flex-basis:82%!important;
    min-height:210px!important;
    border-radius:18px!important;
    padding:18px!important;
  }
  .service-card span{
    margin-bottom:28px!important;
  }
  .service-card h3{
    font-size:19px!important;
  }
  .faq-wide-section{
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  .faq-wide-list{
    margin-top:22px!important;
  }
  .faq-wide-list .faq-q{
    min-height:56px!important;
    padding:16px 16px!important;
    font-size:14.5px!important;
  }
  .faq-wide-list .faq-a{
    padding:0 16px 16px!important;
  }
  .faq-wide-list .faq-a p{
    font-size:13.8px!important;
  }
}



/* CDI AI OVERVIEW HOMEPAGE + FAQ FIX */

/* AI overview block */
.ai-overview-section{
  background:#FFFFFF!important;
  padding:54px 0!important;
  border-bottom:1px solid #DFE9F3!important;
}
.ai-overview-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(360px,.45fr)!important;
  gap:34px!important;
  align-items:start!important;
}
.ai-overview-copy h2{
  font-size:clamp(30px,3.7vw,48px)!important;
  line-height:1.06!important;
  letter-spacing:-.05em!important;
  margin:0 0 18px!important;
  color:#2B4B59!important;
  max-width:760px!important;
}
.ai-overview-copy p{
  font-size:17px!important;
  line-height:1.72!important;
  color:#56677F!important;
  max-width:880px!important;
}
.ai-overview-card{
  background:#FFFFFF!important;
  border:1px solid #DFE9F3!important;
  border-radius:24px!important;
  padding:24px!important;
  box-shadow:0 16px 42px rgba(12,31,56,.06)!important;
}
.ai-overview-card h3{
  margin:0 0 18px!important;
  font-size:22px!important;
  color:#071426!important;
}
.ai-stat-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}
.ai-stat-grid div{
  background:#F5F8FC!important;
  border:1px solid #DFE9F3!important;
  border-radius:16px!important;
  padding:16px!important;
}
.ai-stat-grid strong{
  display:block!important;
  color:#2F80ED!important;
  font-size:20px!important;
}
.ai-stat-grid span{
  display:block!important;
  margin-top:5px!important;
  color:#0C1F38!important;
  font-size:12.5px!important;
  font-weight:750!important;
}

/* NLG-style service cards, compact */
.service-card-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
}
.service-card{
  background:#fff!important;
  border:1px solid #DFE9F3!important;
  border-top:4px solid #23D2B5!important;
  border-radius:22px!important;
  padding:24px!important;
  min-height:230px!important;
  box-shadow:0 14px 34px rgba(12,31,56,.065)!important;
  text-decoration:none!important;
  color:#071426!important;
}
.service-card span{
  color:#23BFA6!important;
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  display:block!important;
  margin-bottom:42px!important;
}
.service-card h3{
  font-size:22px!important;
  line-height:1.14!important;
  letter-spacing:-.035em!important;
  margin:0 0 12px!important;
  color:#071426!important;
}
.service-card p{
  font-size:14px!important;
  line-height:1.58!important;
  color:#56677F!important;
  margin:0!important;
}

/* Marquee and in-body CTA */
.search-marquee-section{
  background:#fff!important;
  border-bottom:1px solid #DFE9F3!important;
  overflow:hidden!important;
  padding:12px 0!important;
}
.marquee-track{
  display:flex!important;
  width:max-content!important;
  animation:cdiMarquee 34s linear infinite!important;
}
.marquee-line{
  display:flex!important;
  gap:10px!important;
  padding-right:10px!important;
}
.marquee-line a{
  display:inline-flex!important;
  align-items:center!important;
  min-height:38px!important;
  padding:8px 15px!important;
  border-radius:999px!important;
  background:#F5F8FC!important;
  border:1px solid #DFE9F3!important;
  color:#0C1F38!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:780!important;
  white-space:nowrap!important;
}
@keyframes cdiMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.search-marquee-section:hover .marquee-track{animation-play-state:paused!important}
.cdi-final-cta{display:none!important}
.inline-search-card{
  background:#0C1F38!important;
  border-radius:24px!important;
  padding:20px!important;
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:10px!important;
  box-shadow:0 24px 64px rgba(12,31,56,.13)!important;
}

/* FAQ full width and clean. No arrow. Only plus. */
.faq-wide-container{
  width:min(1320px,calc(100% - 72px))!important;
}
.faq-wide-section{
  padding-top:64px!important;
  padding-bottom:64px!important;
}
.faq-wide-list{
  margin-top:34px!important;
}
.faq-wide-list .faq-row{
  background:#fff!important;
  border:1px solid #DFE9F3!important;
  border-radius:18px!important;
  margin-bottom:14px!important;
  box-shadow:0 10px 28px rgba(12,31,56,.045)!important;
  overflow:hidden!important;
}
.faq-wide-list .faq-q{
  min-height:68px!important;
  width:100%!important;
  padding:20px 28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  background:#fff!important;
  border:0!important;
  color:#071426!important;
  text-align:left!important;
  font-size:17px!important;
  font-weight:850!important;
  cursor:pointer!important;
}
.faq-wide-list .faq-q::after{
  content:none!important;
  display:none!important;
}
.faq-wide-list .faq-q span{
  margin-left:auto!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:#EEF5FD!important;
  color:#0C1F38!important;
  font-size:18px!important;
  font-weight:900!important;
  transition:transform .18s ease!important;
}
.faq-wide-list .faq-a{
  display:none!important;
  padding:0 28px 22px!important;
}
.faq-wide-list .faq-row.open .faq-a{
  display:block!important;
}
.faq-wide-list .faq-row.open .faq-q span{
  transform:rotate(45deg)!important;
}
.faq-wide-list .faq-a p{
  font-size:15px!important;
  line-height:1.7!important;
  max-width:980px!important;
  color:#56677F!important;
  margin:0!important;
}

@media(max-width:980px){
  .ai-overview-grid{
    grid-template-columns:1fr!important;
  }
  .service-card-grid.carousel-mobile{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch!important;
    gap:12px!important;
    padding-bottom:8px!important;
  }
  .service-card-grid.carousel-mobile::-webkit-scrollbar{display:none!important}
  .service-card{
    flex:0 0 78%!important;
    scroll-snap-align:start!important;
    min-height:220px!important;
  }
  .inline-search-card{
    grid-template-columns:1fr!important;
  }
  .faq-wide-container{
    width:calc(100% - 28px)!important;
  }
}
@media(max-width:640px){
  .ai-overview-section{
    padding:38px 0!important;
  }
  .ai-overview-copy h2{
    font-size:30px!important;
  }
  .ai-overview-copy p{
    font-size:15px!important;
    line-height:1.65!important;
  }
  .ai-stat-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .service-card{
    flex-basis:82%!important;
    min-height:210px!important;
    border-radius:18px!important;
    padding:18px!important;
  }
  .service-card span{
    margin-bottom:28px!important;
  }
  .service-card h3{
    font-size:19px!important;
  }
  .faq-wide-section{
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  .faq-wide-list{
    margin-top:22px!important;
  }
  .faq-wide-list .faq-q{
    min-height:56px!important;
    padding:16px 16px!important;
    font-size:14.5px!important;
  }
  .faq-wide-list .faq-a{
    padding:0 16px 16px!important;
  }
  .faq-wide-list .faq-a p{
    font-size:13.8px!important;
  }
}



/* ==========================================================
   CDI COMPLETE OVERHAUL FINAL OVERRIDE
   Production mobile-first fixes, mega readability, AI/GEO content,
   NLG-style full-width FAQs, clean footer, carousel rows.
   ========================================================== */

:root{
  --cdi-blue:#2F80ED;
  --cdi-cyan:#3BB8F3;
  --cdi-navy:#0C1F38;
  --cdi-ink:#071426;
  --cdi-muted:#56677F;
  --cdi-bg:#F5F8FC;
  --cdi-line:#DFE9F3;
  --cdi-green:#23D2B5;
}
html,body{overflow-x:hidden!important}
body:not(.admin-body){background:var(--cdi-bg)!important;color:var(--cdi-ink)!important;font-size:15px!important;line-height:1.6!important}
body:not(.admin-body) .container{width:min(1220px,calc(100% - 56px))!important;margin-left:auto!important;margin-right:auto!important}
body:not(.admin-body) h1{font-size:clamp(38px,4.7vw,62px)!important;line-height:1.02!important;letter-spacing:-.056em!important}
body:not(.admin-body) h2{font-size:clamp(28px,3.1vw,42px)!important;line-height:1.09!important;letter-spacing:-.045em!important}
body:not(.admin-body) p,body:not(.admin-body) li{font-size:15px!important;line-height:1.65!important;color:var(--cdi-muted)!important}

/* Header/menu readability */
.topnav{background:var(--cdi-navy)!important}
.topnav .btn-green,.nav-actions .btn-green{background:var(--cdi-blue)!important;color:#fff!important}
.cdi-mega-v2-feature,.location-mega-left{background:var(--cdi-navy)!important;color:#fff!important}
.cdi-mega-v2-feature h3,.cdi-mega-v2-feature p,.cdi-mega-v2-feature span,.cdi-mega-v2-feature b,.cdi-mega-v2-feature a,
.location-mega-left h3,.location-mega-left p,.location-mega-left span,.location-mega-left b,.location-mega-left a{
  color:#fff!important;
}
.cdi-mega-v2-feature p,.location-mega-left p{opacity:.78!important}
.feature-mini-grid a,.cdi-feature-cta,.mega-v9-cta{color:#fff!important}
.cdi-mega-v2,.location-mega-v9{box-shadow:0 24px 72px rgba(12,31,56,.18)!important}

/* Homepage split hero */
.homepage-premium-hero{background:linear-gradient(135deg,#3BB8F3 0%,#48BFF5 62%,#68CDF7 100%)!important;padding:54px 0 50px!important}
.homepage-hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr)!important;gap:54px!important;align-items:center!important}
.homepage-premium-hero .hero-copy{max-width:760px!important;text-align:left!important}
.homepage-premium-hero .lead{font-size:clamp(16px,1.5vw,19px)!important;line-height:1.55!important;color:#12304D!important;max-width:680px!important}
.eyebrow{display:inline-flex!important;width:auto!important;background:rgba(255,255,255,.92)!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:999px!important;padding:8px 13px!important;color:var(--cdi-navy)!important;font-size:11.5px!important;font-weight:900!important;letter-spacing:.07em!important;text-transform:uppercase!important}
.premium-search{width:100%!important;max-width:780px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 180px auto!important;gap:10px!important;background:#fff!important;border-radius:24px!important;padding:10px!important;margin-top:24px!important;box-shadow:0 18px 44px rgba(12,31,56,.11)!important}
.input{height:50px!important;border:1px solid var(--cdi-line)!important;border-radius:15px!important;padding:0 14px!important;background:#F8FBFF!important;color:var(--cdi-ink)!important;font-size:14px!important;font-weight:700!important;min-width:0!important}
.btn{border-radius:999px!important;min-height:46px!important;padding:12px 20px!important;font-size:14px!important;font-weight:850!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:0!important;cursor:pointer!important}
.btn-primary{background:var(--cdi-blue)!important;color:#fff!important}
.btn-secondary{background:#fff!important;color:var(--cdi-navy)!important}
.trust-row.compact{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important;max-width:720px!important;margin-top:18px!important}
.trust-row.compact div{background:rgba(255,255,255,.9)!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:14px!important;padding:11px 12px!important;box-shadow:0 12px 28px rgba(12,31,56,.07)!important}
.trust-row.compact strong{display:block!important;color:var(--cdi-ink)!important;font-size:14.5px!important;line-height:1.1!important}
.trust-row.compact span{display:block!important;color:var(--cdi-muted)!important;font-size:11.5px!important;line-height:1.25!important;margin-top:4px!important}
.homepage-comparison-panel{background:var(--cdi-navy)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:30px!important;padding:26px!important;color:#fff!important;box-shadow:0 24px 70px rgba(12,31,56,.18)!important}
.panel-topline{display:flex!important;align-items:center!important;gap:24px!important;border-bottom:1px solid rgba(255,255,255,.14)!important;padding-bottom:16px!important;margin-bottom:16px!important}
.panel-topline span{width:12px!important;height:12px!important;border-radius:999px!important;background:#89A4C4!important}
.panel-topline strong{margin-left:auto!important;color:#fff!important;font-size:15px!important}
.panel-inner-grid{display:grid!important;grid-template-columns:150px 1fr!important;gap:16px!important}
.panel-side-nav{background:rgba(255,255,255,.08)!important;border-radius:18px!important;padding:18px!important;display:flex!important;flex-direction:column!important;gap:12px!important}
.panel-side-nav b,.panel-side-nav span{color:#fff!important;font-size:13px!important}
.panel-side-nav span{color:#C8D8EA!important}
.panel-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.panel-metrics div{background:rgba(255,255,255,.08)!important;border-radius:16px!important;padding:16px!important}
.panel-metrics strong{display:block!important;color:#fff!important;font-size:22px!important;line-height:1.1!important}
.panel-metrics span{display:block!important;color:#C8D8EA!important;font-size:12px!important;margin-top:6px!important}
.panel-profile-card{background:#fff!important;border-radius:20px!important;padding:20px!important;margin-top:14px!important}
.panel-profile-card h2{color:#071426!important;font-size:22px!important;margin:0 0 8px!important}
.panel-profile-card p{color:#52657D!important;font-size:14px!important;line-height:1.5!important;margin:0!important}
.panel-tags{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:16px!important}
.panel-tags span{background:#EAF2FA!important;color:#0C1F38!important;border-radius:999px!important;padding:7px 10px!important;font-size:12px!important;font-weight:800!important}

/* AI overview section */
.ai-overview-section{background:#fff!important;padding:54px 0!important;border-bottom:1px solid var(--cdi-line)!important}
.ai-overview-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,.45fr)!important;gap:34px!important;align-items:start!important}
.ai-overview-copy h2{font-size:clamp(30px,3.7vw,48px)!important;line-height:1.06!important;letter-spacing:-.05em!important;margin:0 0 18px!important;color:#2B4B59!important;max-width:760px!important}
.ai-overview-copy p{font-size:17px!important;line-height:1.72!important;color:var(--cdi-muted)!important;max-width:880px!important}
.ai-overview-card{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:24px!important;padding:24px!important;box-shadow:0 16px 42px rgba(12,31,56,.06)!important}
.ai-overview-card h3{margin:0 0 18px!important;font-size:22px!important;color:#071426!important}
.ai-stat-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.ai-stat-grid div{background:#F5F8FC!important;border:1px solid var(--cdi-line)!important;border-radius:16px!important;padding:16px!important}
.ai-stat-grid strong{display:block!important;color:var(--cdi-blue)!important;font-size:20px!important}
.ai-stat-grid span{display:block!important;margin-top:5px!important;color:var(--cdi-navy)!important;font-size:12.5px!important;font-weight:750!important}

/* Sections/cards */
.cdi-section{padding:56px 0!important;background:var(--cdi-bg)!important}
.cdi-section.white{background:#fff!important}
.cdi-split{display:grid!important;grid-template-columns:minmax(0,1fr) 340px!important;gap:28px!important;align-items:start!important}
.answer-card,.side-card,.sleek-card,.faq-row,.service-card{background:#fff!important;border:1px solid var(--cdi-line)!important;box-shadow:0 14px 34px rgba(12,31,56,.065)!important}
.answer-card{border-left:4px solid var(--cdi-blue)!important;border-radius:20px!important;padding:20px!important;margin-top:20px!important;max-width:760px!important}
.side-card{border-radius:22px!important;padding:22px!important}
.side-card.dark{background:var(--cdi-navy)!important;border-color:rgba(255,255,255,.12)!important;color:#fff!important}
.side-card.dark h3,.side-card.dark p{color:#fff!important}
.clean-list{list-style:none!important;padding:0!important;margin:0!important;display:grid!important;gap:10px!important}
.clean-list li{font-size:14px!important;color:var(--cdi-muted)!important;font-weight:650!important}
.clean-list li::before{content:""!important;display:inline-block!important;width:7px!important;height:7px!important;border-radius:50%!important;background:var(--cdi-blue)!important;margin-right:9px!important;vertical-align:middle!important}
.section-head.left{max-width:740px!important;text-align:left!important;margin:0 0 24px!important}
.centre-lite{text-align:center!important;max-width:860px!important;margin-left:auto!important;margin-right:auto!important}
.centre-lite .eyebrow{margin-left:auto!important;margin-right:auto!important}
.sleek-card-grid,.service-card-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important}
.sleek-card,.service-card{border-radius:22px!important;padding:24px!important;text-decoration:none!important;color:var(--cdi-ink)!important}
.sleek-card span{display:block!important;color:var(--cdi-blue)!important;font-size:12px!important;font-weight:950!important;letter-spacing:.12em!important;margin-bottom:28px!important}
.sleek-card h3,.service-card h3{font-size:21px!important;line-height:1.14!important;letter-spacing:-.035em!important;margin:0 0 10px!important;color:#071426!important}
.sleek-card p,.service-card p{font-size:14px!important;line-height:1.58!important;color:var(--cdi-muted)!important;margin:0!important}
.service-card{border-top:4px solid var(--cdi-green)!important;min-height:230px!important}
.service-card span{color:#23BFA6!important;font-size:12px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;display:block!important;margin-bottom:42px!important}

/* Marquee */
.search-marquee-section{background:#fff!important;border-bottom:1px solid var(--cdi-line)!important;overflow:hidden!important;padding:12px 0!important}
.marquee-track{display:flex!important;width:max-content!important;animation:cdiMarquee 34s linear infinite!important}
.marquee-line{display:flex!important;gap:10px!important;padding-right:10px!important}
.marquee-line a{display:inline-flex!important;align-items:center!important;min-height:38px!important;padding:8px 15px!important;border-radius:999px!important;background:#F5F8FC!important;border:1px solid var(--cdi-line)!important;color:var(--cdi-navy)!important;text-decoration:none!important;font-size:13px!important;font-weight:780!important;white-space:nowrap!important}
@keyframes cdiMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.search-marquee-section:hover .marquee-track{animation-play-state:paused!important}

/* Links/search CTA */
.compact-link-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-top:22px!important;max-width:620px!important}
.compact-location-links{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:10px!important}
.compact-link-grid a,.compact-location-links a{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:15px!important;padding:13px 15px!important;color:var(--cdi-ink)!important;text-decoration:none!important;font-size:14px!important;font-weight:780!important;box-shadow:0 10px 24px rgba(12,31,56,.045)!important;text-align:center!important}
.inline-actions{display:flex!important;gap:10px!important;flex-wrap:wrap!important;margin-top:22px!important}
.inline-search-card{background:var(--cdi-navy)!important;border-radius:24px!important;padding:20px!important;display:grid!important;grid-template-columns:1fr auto!important;gap:10px!important;box-shadow:0 24px 64px rgba(12,31,56,.13)!important}
.inline-search-card .input{background:#fff!important}
.cdi-final-cta,.final-cta-band{display:none!important}

/* Full-width FAQ */
.faq-wide-container{width:min(1320px,calc(100% - 72px))!important}
.faq-wide-section{padding-top:64px!important;padding-bottom:64px!important}
.faq-wide-list{margin-top:34px!important}
.faq-wide-list .faq-row{background:#fff!important;border:1px solid var(--cdi-line)!important;border-radius:18px!important;margin-bottom:14px!important;box-shadow:0 10px 28px rgba(12,31,56,.045)!important;overflow:hidden!important}
.faq-wide-list .faq-q{min-height:68px!important;width:100%!important;padding:20px 28px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;background:#fff!important;border:0!important;color:#071426!important;text-align:left!important;font-size:17px!important;font-weight:850!important;cursor:pointer!important}
.faq-wide-list .faq-q::after{content:none!important;display:none!important}
.faq-wide-list .faq-q span{margin-left:auto!important;width:30px!important;height:30px!important;min-width:30px!important;display:grid!important;place-items:center!important;border-radius:999px!important;background:#EEF5FD!important;color:#0C1F38!important;font-size:18px!important;font-weight:900!important;transition:transform .18s ease!important}
.faq-wide-list .faq-a{display:none!important;padding:0 28px 22px!important}
.faq-wide-list .faq-row.open .faq-a{display:block!important}
.faq-wide-list .faq-row.open .faq-q span{transform:rotate(45deg)!important}
.faq-wide-list .faq-a p{font-size:15px!important;line-height:1.7!important;max-width:980px!important;color:var(--cdi-muted)!important;margin:0!important}

/* Footer sharpness */
footer,.site-footer{background:var(--cdi-navy)!important;color:#fff!important}
footer h2,footer h3,footer h4,footer p,footer li,footer a,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer p,.site-footer li,.site-footer a{color:#fff!important}
footer p,footer li,.site-footer p,.site-footer li{opacity:.84!important}

/* Mobile */
@media(max-width:1100px){
  .homepage-hero-grid{grid-template-columns:1fr!important;gap:30px!important}
  .homepage-comparison-panel{max-width:680px!important}
}
@media(max-width:980px){
  body:not(.admin-body) .container{width:calc(100% - 28px)!important}
  .ai-overview-grid,.cdi-split{grid-template-columns:1fr!important}
  .service-card-grid.carousel-mobile,.sleek-card-grid.carousel-mobile,.sleek-card-grid.three,.compact-location-links{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;gap:12px!important;padding-bottom:8px!important}
  .service-card-grid.carousel-mobile::-webkit-scrollbar,.sleek-card-grid.carousel-mobile::-webkit-scrollbar,.sleek-card-grid.three::-webkit-scrollbar,.compact-location-links::-webkit-scrollbar{display:none!important}
  .service-card,.sleek-card,.compact-location-links a{flex:0 0 78%!important;scroll-snap-align:start!important}
  .inline-search-card{grid-template-columns:1fr!important}
  .faq-wide-container{width:calc(100% - 28px)!important}
}
@media(max-width:760px){
  .topnav .container.row{width:100%!important;min-height:64px!important;padding:8px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
  .brand-logo img{max-width:160px!important;max-height:50px!important;object-fit:contain!important}
  .nav-actions .btn-green{width:auto!important;min-width:0!important;max-width:145px!important;height:42px!important;min-height:42px!important;padding:8px 16px!important;border-radius:999px!important;font-size:13px!important;line-height:1.05!important;white-space:normal!important;text-align:center!important;box-shadow:none!important}
  .hamburger{width:42px!important;height:42px!important;min-width:42px!important;border-radius:14px!important;background:#1C314B!important;border:1px solid rgba(255,255,255,.13)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding:0!important;box-shadow:none!important}
  .hamburger span{display:block!important;width:18px!important;height:2px!important;border-radius:99px!important;background:#fff!important;opacity:1!important;margin:0!important;transform:none!important}
  .homepage-premium-hero{padding:30px 0 34px!important}
  .homepage-hero-grid{display:block!important}
  body:not(.admin-body) h1{font-size:34px!important;line-height:1.05!important;letter-spacing:-.045em!important;margin:16px 0 10px!important;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}
  body:not(.admin-body) h2{font-size:27px!important}
  .premium-search{grid-template-columns:1fr!important;gap:8px!important;padding:8px!important;margin-top:18px!important;border-radius:20px!important}
  .premium-search .input,.premium-search select,.premium-search input,.premium-search .btn{height:46px!important;min-height:46px!important;width:100%!important}
  .trust-row.compact{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;overflow:visible!important;padding:0!important}
  .trust-row.compact div{padding:10px 8px!important;text-align:left!important}
  .trust-row.compact strong{font-size:13px!important}
  .trust-row.compact span{font-size:10.5px!important}
  .homepage-comparison-panel{margin-top:24px!important;padding:18px!important;border-radius:22px!important}
  .panel-inner-grid{grid-template-columns:1fr!important}
  .panel-side-nav{display:none!important}
  .panel-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .panel-metrics div{padding:11px 9px!important}
  .panel-metrics strong{font-size:16px!important}
  .panel-metrics span{font-size:10.5px!important}
  .panel-profile-card{padding:16px!important;border-radius:16px!important}
  .panel-profile-card h2{font-size:19px!important}
  .ai-overview-section{padding:38px 0!important}
  .ai-overview-copy h2{font-size:30px!important}
  .ai-overview-copy p{font-size:15px!important;line-height:1.65!important}
  .cdi-section{padding:40px 0!important}
  .centre-lite{text-align:left!important;margin-left:0!important;margin-right:0!important}
  .centre-lite .eyebrow{margin-left:0!important;margin-right:0!important}
  .service-card,.sleek-card{flex-basis:82%!important;min-height:210px!important;border-radius:18px!important;padding:18px!important}
  .service-card span,.sleek-card span{margin-bottom:28px!important}
  .service-card h3,.sleek-card h3{font-size:19px!important}
  .compact-link-grid{grid-template-columns:1fr!important}
  .inline-actions{flex-direction:column!important}
  .inline-actions .btn{width:100%!important}
  .faq-wide-section{padding-top:42px!important;padding-bottom:42px!important}
  .faq-wide-list{margin-top:22px!important}
  .faq-wide-list .faq-q{min-height:56px!important;padding:16px!important;font-size:14.5px!important}
  .faq-wide-list .faq-a{padding:0 16px 16px!important}
  .faq-wide-list .faq-a p{font-size:13.8px!important}
  .search-marquee-section{padding:9px 0!important}
  .marquee-line a{min-height:34px!important;padding:7px 12px!important;font-size:12px!important}
}
/* ===== END assets/css/cdi-app.css ===== */

/* ===== BEGIN assets/css/cdi-premium.css ===== */
/* ============================================================
   CDI PREMIUM DESIGN SYSTEM
   Locked style — loads AFTER main.css and cdi-app.css to
   override the legacy theme. Do not remove the load order
   in includes/header.php.

   Public-facing content should be wrapped in <div class="cdi-premium">
   so the typography rules apply (h1/h2/h3/p/a/ul are scoped there
   to avoid bleeding into the admin/instructor dashboard areas).
   ============================================================ */

/* ══ CDI DESIGN SYSTEM ══ */
:root{
  --sky:#41BCF4;--skyd:#2DA8E0;--skyl:#72CDF7;--skym:#E8F7FE;--skyp:#F0FAFF;
  --navy:#1D2F46;--navyd:#0C1F38;--navy3:#1F3148;
  --ink:#071426;--slate:#4A5568;--muted:#8A9BB0;
  --line:#E2ECF4;--line2:#F0F5FA;
  --paper:#fff;--surf:#F4F8FC;--trust:#F8FBFF;
  --green:#00B074;--gd:#009060;--gm:#E6F9F3;
  --amber:#F59E0B;--red:#EF4444;--redm:#FEF2F2;
  --purple:#7C3AED;--purplem:#F5F3FF;
  --r:12px;--rl:18px;--rx:24px;--r2:32px;
  --sh:0 4px 16px rgba(7,20,38,.09);
  --shl:0 16px 40px rgba(7,20,38,.14);
  --shxl:0 28px 64px rgba(7,20,38,.2);

  /* Remap legacy theme variables onto the locked palette so any
     existing component still using --cdi-navy / --cdi-blue inherits
     the correct premium colours automatically. */
  --cdi-navy:#1D2F46;
  --cdi-navy-deep:#0C1F38;
  --cdi-blue:#41BCF4;
}
body{font-family:'Poppins',sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.cdi-premium *{box-sizing:border-box}
.cdi-premium h1{font-size:clamp(26px,4vw,52px);font-weight:800;line-height:1.07;letter-spacing:-.025em;color:var(--ink);margin:0}
.cdi-premium h2{font-size:clamp(18px,3vw,32px);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin:0}
.cdi-premium h3{font-size:clamp(14px,2vw,18px);font-weight:700;line-height:1.3;margin:0}
.cdi-premium p{margin:0}.cdi-premium a{color:inherit;text-decoration:none}.cdi-premium ul{list-style:none;padding:0;margin:0}
.fw{width:100%}
.cw{width:min(1380px,calc(100% - 40px));margin:0 auto}
/* UTIL BAR */
.util{background:#040b18;border-bottom:1px solid rgba(255,255,255,.06);padding:8px 0;width:100%}
.util-in{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ut{display:flex;align-items:center;gap:5px;font-size:12px;color:rgba(255,255,255,.5);font-weight:500}
.ut-left{display:flex;gap:16px;align-items:center}
.pd{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pd 2s infinite}
@keyframes pd{0%,100%{box-shadow:0 0 0 0 rgba(0,176,116,.5)}50%{box-shadow:0 0 0 5px rgba(0,176,116,0)}}
.ut-soc{display:flex;gap:5px}
.us{width:22px;height:22px;border-radius:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:rgba(255,255,255,.4)}
/* NAV */
.nav{background:var(--navy);height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;position:sticky;top:0;z-index:200;border-bottom:1px solid rgba(255,255,255,.06);width:100%}
.nav-logo img{height:34px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:2px}
.nl{font-size:13px;font-weight:600;color:rgba(255,255,255,.75);padding:7px 13px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.12s}
.nl:hover,.nl.a{background:rgba(255,255,255,.08);color:#fff}
.nav-cta{background:var(--sky);color:var(--ink);font-size:13px;font-weight:800;padding:9px 20px;border-radius:99px;border:none;cursor:pointer;white-space:nowrap}
.hbg{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:6px;cursor:pointer}
.hbg span{display:block;width:21px;height:2px;background:#fff;border-radius:2px}
/* URG */
.urg{background:#040b18;border-bottom:1px solid rgba(255,255,255,.06);padding:9px 0;width:100%}
.urg-in{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
.ui{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,255,255,.6);font-weight:500}
.ui strong{color:#fff}
/* BTNS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:700;line-height:1;border:none;border-radius:999px;padding:11px 22px;cursor:pointer;transition:.15s;white-space:nowrap;text-decoration:none}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navyd)}
.btn-sky{background:var(--sky);color:var(--ink);font-weight:800}.btn-sky:hover{background:var(--skyd);color:#fff}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--gd)}
.btn-red{background:var(--red);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--sky);color:var(--skyd)}
.btn-ghost-sky{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.25)}
.btn-ghost-dark{background:transparent;color:var(--ink);border:2px solid rgba(7,20,38,.22)}
.btn-sm{padding:8px 16px;font-size:12.5px}
.btn-lg{padding:15px 28px;font-size:15px}
.btn-block{width:100%;display:flex}
.btn-amber{background:var(--amber);color:#fff}
.btn-purple{background:var(--purple);color:#fff}
/* PILLS */
.pl{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;line-height:1;white-space:nowrap}
.pl-sky{background:rgba(65,188,244,.13);color:var(--skyd)}
.pl-green{background:var(--gm);color:var(--gd)}
.pl-slate{background:var(--line2);color:var(--slate)}
.pl-amber{background:#fffbeb;color:#92400e}
.pl-red{background:var(--redm);color:#991b1b}
.pl-purple{background:var(--purplem);color:var(--purple)}
.pl-dark{background:var(--navy3);color:rgba(255,255,255,.8)}
.pl-navy{background:var(--navyd);color:var(--skyl);border:1px solid rgba(65,188,244,.2)}
/* EYEBROW */
.eye{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--skyd);display:flex;align-items:center;gap:8px;margin-bottom:12px}
.eye::before{content:'';display:block;width:18px;height:2px;background:var(--skyd);border-radius:2px}
.eye.c{justify-content:center}.eye.w{color:var(--skyl)}.eye.w::before{background:var(--skyl)}
.eyepill{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(7,20,38,.5);margin-bottom:12px;padding:0}
.lede{font-size:16px;color:var(--slate);line-height:1.65;margin-top:10px}
/* SECTIONS */
.sec{padding:72px 0;width:100%}.is-mobile .sec{padding:44px 0}
.sf{background:var(--surf)}.sd{background:var(--navyd)}
/* FORM FIELDS */
.ff{width:100%;border:1.5px solid var(--line);border-radius:var(--r);padding:10px 13px;font-size:13.5px;font-family:'Poppins',sans-serif;color:var(--ink);background:var(--paper);outline:none;appearance:none;display:block;transition:.15s}
.ff:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(65,188,244,.12)}
.ff::placeholder{color:var(--muted)}
.fl{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--slate);margin-bottom:6px}
/* HERO — full sky-blue bg, right side is a floating dark glass card */
.hero{background:var(--sky);position:relative;overflow:hidden;width:100%}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(255,255,255,.22) 0%,transparent 62%),radial-gradient(ellipse at 15% 85%,rgba(255,255,255,.14) 0%,transparent 50%);pointer-events:none;z-index:0}
.hgrid{display:grid;grid-template-columns:65fr 35fr;gap:40px;align-items:center;min-height:500px;position:relative;z-index:1;padding:48px 28px 48px 0}
.hl{padding:12px 48px 12px clamp(20px,5vw,72px);display:flex;flex-direction:column;justify-content:center}
.hero-search{background:#fff;border-radius:99px;padding:6px 6px 6px 18px;display:flex;gap:8px;align-items:center;box-shadow:0 6px 24px rgba(7,20,38,.18);margin-bottom:18px}
.hs-in{flex:1;border:none;background:transparent;font-size:14px;font-family:'Poppins',sans-serif;color:var(--ink);outline:none;padding:7px 0;min-width:0}
.hs-in::placeholder{color:var(--muted)}
.hs-sep{width:1px;height:22px;background:var(--line);flex-shrink:0}
.hs-sel{border:none;background:transparent;font-size:13px;font-family:'Poppins',sans-serif;font-weight:600;color:var(--ink);outline:none;padding:7px 24px 7px 8px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238A9BB0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}
.hs-btn{background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:700;border:none;padding:12px 24px;border-radius:99px;cursor:pointer;flex-shrink:0}
.tboxes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.tbox{background:var(--trust);border:1.5px solid rgba(255,255,255,.75);border-radius:14px;padding:10px 14px;box-shadow:0 2px 8px rgba(7,20,38,.08)}
.tbox strong{display:block;font-size:13.5px;font-weight:800;color:var(--ink);margin-bottom:0;line-height:1.3}
.tbox span{font-size:11px;color:var(--slate);font-weight:500;line-height:1.3}
/* hero right — floating dark glass card (like a compare panel), not full-bleed */
.hr{position:relative;overflow:hidden;border-radius:28px;min-height:460px;max-height:520px;box-shadow:0 30px 70px -10px rgba(7,20,38,.4),0 10px 30px rgba(7,20,38,.25);border:1px solid rgba(255,255,255,.15)}
.slides{position:absolute;inset:0}.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s}.slide.on{opacity:1}
.sov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;background:linear-gradient(to top,rgba(7,20,38,.92) 0%,rgba(7,20,38,.55) 55%,rgba(7,20,38,.25) 100%)}
.slbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.45);margin-bottom:6px}
.sstat{font-size:clamp(26px,4vw,44px);font-weight:800;color:#fff;letter-spacing:-.025em;line-height:1;margin-bottom:5px}
.ssub{font-size:13.5px;color:rgba(255,255,255,.6);line-height:1.5;margin-bottom:12px}
.schips{display:flex;gap:7px;flex-wrap:wrap}
.sch{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:99px;padding:5px 13px;font-size:11.5px;font-weight:600;color:#fff}
.sdots{position:absolute;bottom:16px;right:18px;display:flex;gap:5px;z-index:5}
.sdot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:.2s}
.sdot.on{background:#fff;width:18px;border-radius:99px}
/* STAT BAR */
.sbar{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);width:100%}
.sbi{background:var(--paper);padding:24px 18px;text-align:center}
.sbi strong{display:block;font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--ink);line-height:1;margin-bottom:4px}
.sbi strong em{font-style:normal;color:var(--skyd)}
.sbi span{font-size:12.5px;color:var(--slate);font-weight:500}
/* MARQUEE */
.marq{padding:14px 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surf);width:100%}
.mt{display:flex}.mi{display:flex;gap:8px;animation:mq 32s linear infinite;flex-shrink:0}
.mc{white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--slate);padding:6px 14px;background:var(--paper);border:1px solid var(--line);border-radius:99px;flex-shrink:0;cursor:pointer}
.mc:hover{color:var(--skyd);border-color:var(--sky)}
@keyframes mq{0%{transform:translateX(0)}100%{transform:translateX(calc(-100% - 8px))}}
/* INSTRUCTOR CAROUSEL */
.carwrap{position:relative;overflow:hidden;width:100%}
.cartrack{display:flex;gap:16px;transition:transform .45s cubic-bezier(.4,0,.2,1)}
.carc{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);min-width:232px;max-width:260px;flex-shrink:0;overflow:hidden;transition:.2s;cursor:pointer}
.carc:hover{transform:translateY(-3px);box-shadow:var(--shl);border-color:var(--sky)}
.cphoto{height:188px;background:linear-gradient(135deg,var(--navyd),var(--navy3));display:flex;align-items:center;justify-content:center;position:relative}
.cav{width:74px;height:74px;border-radius:50%;color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.2)}
.cbadge{position:absolute;top:11px;right:11px;background:var(--gm);color:var(--gd);font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px}
.cfbadge{position:absolute;top:11px;left:11px;background:var(--navyd);color:var(--skyl);font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px}
.cbody{padding:15px}
.cname{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:2px}
.cloc{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:7px}
.crat{display:flex;align-items:center;gap:5px;font-size:12px;margin-bottom:9px}
.cpills{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.cprice{display:flex;align-items:baseline;gap:3px;margin-bottom:10px}
.cprice strong{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.cprice span{font-size:12px;color:var(--muted)}
.ccta{width:100%;background:var(--green);color:#fff;border:none;border-radius:99px;padding:9px;font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer}
.carrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;color:var(--ink);box-shadow:var(--sh)}
.carrow:hover{background:var(--sky)}
.cprev{left:-16px}.cnext{right:-16px}
.car-cont{position:relative;padding:0 22px}
/* REVIEW CAROUSEL */
.revc{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:22px;width:360px;flex-shrink:0;transition:.2s;cursor:default}
.revc:hover{box-shadow:var(--shl)}
.rplatf{display:flex;align-items:center;gap:7px;margin-bottom:12px}
.rpi{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}
.rstars{color:var(--amber);font-size:17px;letter-spacing:-1px;margin-bottom:9px;display:block}
.rtxt{font-size:13.5px;color:var(--slate);line-height:1.65;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rauth{display:flex;align-items:center;gap:9px}
.rav{width:34px;height:34px;border-radius:50%;color:var(--ink);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:linear-gradient(135deg,var(--sky),var(--skyd))}
.raname{font-size:13px;font-weight:700;color:var(--ink);display:block}
.rasub{font-size:11.5px;color:var(--muted)}
/* TRUST STRIP */
.tstrip{background:var(--surf);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;width:100%}
.tlogs{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.tli{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--slate);opacity:.75}
.tlic{width:34px;height:34px;border-radius:8px;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:17px}
/* SERVICE CARDS */
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.svc{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:22px;display:flex;flex-direction:column;gap:9px;transition:.2s;cursor:pointer}
.svc:hover{transform:translateY(-3px);box-shadow:var(--shl);border-color:var(--sky)}
.svc-ic{width:42px;height:42px;border-radius:11px;background:var(--skym);display:flex;align-items:center;justify-content:center;font-size:19px}
.svc h3{font-size:15px}
.svc p{font-size:13px;color:var(--slate);line-height:1.55;flex:1}
.svc-arr{font-size:12.5px;color:var(--skyd);font-weight:700}
/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative;margin-top:44px}
.steps::before{content:'';position:absolute;top:26px;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent)}
.sn{width:52px;height:52px;border-radius:50%;background:var(--sky);color:var(--ink);font-size:19px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:16px;position:relative;z-index:1}
.step h3{font-size:17px;margin-bottom:7px}
.step p{font-size:13.5px;color:var(--slate);line-height:1.6}
/* LOCATION GRID */
.lg{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.lc{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rl);padding:16px 18px;display:flex;flex-direction:column;gap:5px;transition:.2s;cursor:pointer}
.lc:hover{border-color:var(--sky);box-shadow:var(--shl)}
.lct{font-size:15px;font-weight:700;color:var(--ink)}
.lcc{font-size:12px;color:var(--muted);font-weight:500}
.lcf{font-size:12.5px;color:var(--skyd);font-weight:600}
.lca{margin-top:auto;font-size:12px;color:var(--skyd);font-weight:700}
/* FAQ DARK */
.fqs{background:var(--navyd);padding:72px 0;width:100%}
.fqg{display:grid;grid-template-columns:1fr 1fr;gap:0}
.fql{padding-right:56px;border-right:1px solid rgba(255,255,255,.08)}
.fqr{padding-left:56px}
.feye{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--skyl);display:flex;align-items:center;gap:8px;margin-bottom:16px}
.feye::before{content:'';display:block;width:18px;height:2px;background:var(--skyl);border-radius:2px}
.fh{font-size:clamp(20px,3vw,32px);font-weight:700;color:#fff;margin-bottom:12px;letter-spacing:-.02em;line-height:1.15}
.fd{font-size:14.5px;color:rgba(255,255,255,.5);line-height:1.65;margin-bottom:22px}
.fi{border-bottom:1px solid rgba(255,255,255,.08)}
.fq{display:flex;align-items:center;justify-content:space-between;padding:16px 0;cursor:pointer;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.8);gap:10px;user-select:none}
.fq::after{content:'+';font-size:21px;font-weight:300;color:rgba(255,255,255,.3);flex-shrink:0;transition:.2s}
.fi.o .fq::after{transform:rotate(45deg);color:var(--skyl)}.fi.o .fq{color:#fff}
.fa{display:none;font-size:14px;color:rgba(255,255,255,.5);line-height:1.7;padding-bottom:16px}
.fi.o .fa{display:block}
/* CTA BAND */
.cband{background:var(--navyd);padding:72px 0;text-align:center;position:relative;overflow:hidden;width:100%}
.cband::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(65,188,244,.1) 0%,transparent 70%);top:-200px;right:-80px;pointer-events:none}
.cband h2{color:#fff;margin-top:12px}.cband p{color:rgba(255,255,255,.55);margin:12px auto 28px;max-width:500px;font-size:16px;line-height:1.6}
.cbtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* FOR INSTRUCTORS BAND */
.iband{background:var(--sky);padding:72px 0;width:100%}
.ibgrid{display:grid;grid-template-columns:0.78fr 1.22fr;gap:36px;align-items:center}
.ibh{font-size:clamp(19px,3vw,32px);font-weight:800;color:var(--ink);line-height:1.12;letter-spacing:-.02em;margin-bottom:12px}
.ibp{font-size:14.5px;color:rgba(7,20,38,.65);line-height:1.6;margin-bottom:18px}
.iblist{display:grid;gap:8px;margin-bottom:20px}
.ibli{display:flex;align-items:center;gap:9px;font-size:13px;color:rgba(7,20,38,.8);font-weight:500}
.ibli::before{content:'✓';width:18px;height:18px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}
.ibbtns{display:flex;gap:8px;flex-wrap:nowrap}
.ibbtns .btn{flex:1;white-space:nowrap;padding-left:16px;padding-right:16px}
/* ══════════════════════════════════════════
   PREMIUM PRICING CARDS — v2, stand-out edition
══════════════════════════════════════════ */
@keyframes tcGlow{
  0%,100%{box-shadow:0 0 0 0 rgba(0,176,116,.35),0 30px 70px -10px rgba(0,176,116,.4),0 10px 30px rgba(7,20,38,.35)}
  50%{box-shadow:0 0 0 10px rgba(0,176,116,0),0 36px 80px -10px rgba(0,176,116,.55),0 10px 30px rgba(7,20,38,.35)}
}
@keyframes tcFloat{
  0%,100%{transform:translateY(-14px) rotateX(0deg)}
  50%{transform:translateY(-20px) rotateX(0deg)}
}
@keyframes tcRise{
  from{opacity:0;transform:translateY(24px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes tcShine{
  0%{transform:translateX(-120%) skewX(-20deg)}
  100%{transform:translateX(220%) skewX(-20deg)}
}
@keyframes tcCheckPop{
  0%{transform:scale(0);opacity:0}
  60%{transform:scale(1.25);opacity:1}
  100%{transform:scale(1);opacity:1}
}
.tcards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;align-items:center;position:relative;
  padding-top:18px;perspective:1400px;
}
/* shared card base */
.tc{
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(255,255,255,.16);
  border-radius:22px;
  padding:30px 26px;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  position:relative;
  overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease;
  animation:tcRise .6s cubic-bezier(.2,.8,.2,1) both;
  transform-style:preserve-3d;
}
.tcards .tc:nth-child(1){animation-delay:.05s}
.tcards .tc:nth-child(2){animation-delay:.15s}
.tcards .tc:nth-child(3){animation-delay:.25s}
.tc:hover{
  transform:translateY(-10px) rotateX(3deg) rotateY(-2deg);
  box-shadow:0 28px 60px rgba(7,20,38,.35);
  border-color:rgba(255,255,255,.32);
}
/* shine sweep on hover */
.tc::before{
  content:'';position:absolute;top:0;left:0;width:40%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.16),transparent);
  pointer-events:none;opacity:0;
}
.tc:hover::before{opacity:1;animation:tcShine 1.1s ease forwards}
/* FEATURED / Growth — the centerpiece that stands out */
.tc.feat{
  background:linear-gradient(165deg,rgba(7,20,38,.92) 0%,rgba(12,31,56,.88) 100%);
  border:2px solid var(--green);
  border-radius:26px;
  padding:38px 30px;
  transform:translateY(-16px);
  z-index:3;
  box-shadow:0 30px 70px -10px rgba(0,176,116,.4),0 10px 30px rgba(7,20,38,.35);
  animation:tcRise .6s cubic-bezier(.2,.8,.2,1) both, tcGlow 3.2s ease-in-out .6s infinite;
}
.tc.feat:hover{transform:translateY(-24px) rotateX(2deg);animation-play-state:paused}
/* Recommended ribbon */
.tc-rec-badge{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  background:linear-gradient(90deg,var(--gd),var(--green) 50%,var(--gd));
  background-size:200% auto;
  color:#fff;font-size:10.5px;font-weight:800;
  padding:7px 22px;border-radius:0 0 14px 14px;
  letter-spacing:.07em;text-transform:uppercase;
  white-space:nowrap;display:flex;align-items:center;gap:5px;
  box-shadow:0 6px 16px rgba(0,176,116,.4);
  animation:tcBadgeSheen 3s linear infinite;
}
@keyframes tcBadgeSheen{0%{background-position:0% center}100%{background-position:200% center}}
.tc-rec-badge::before{content:'⭐';font-size:11px}
/* Header / name */
.tcn{
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;
  color:rgba(255,255,255,.55);margin-bottom:14px;display:flex;align-items:center;gap:8px;
}
.tcn::before{content:'';display:block;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);flex-shrink:0}
.tc.feat .tcn{color:var(--skyl);margin-top:16px}
.tc.feat .tcn::before{background:var(--green);box-shadow:0 0 8px var(--green)}
/* Price */
.tcp{
  font-size:42px;font-weight:900;color:#fff;letter-spacing:-.035em;line-height:1;
  margin-bottom:4px;display:flex;align-items:baseline;gap:5px;
}
.tcp small{font-size:13px;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:0}
.tcp-sub{font-size:12.5px;color:rgba(255,255,255,.45);margin-bottom:20px;min-height:18px}
.tc.feat .tcp{font-size:46px;background:linear-gradient(135deg,#fff,var(--skyl));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tc.feat .tcp-sub{color:rgba(255,255,255,.6)}
/* Save badge */
.tc-save{
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(0,176,116,.18);color:#5eead4;
  font-size:11px;font-weight:700;padding:4px 12px;border-radius:99px;
  border:1px solid rgba(0,176,116,.35);margin-bottom:16px;
}
.tc-save::before{content:'↓'}
/* Divider */
.tc-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);margin:18px 0}
/* Features list — staggered pop-in checks on hover */
.tcf{display:grid;gap:11px;margin-bottom:26px}
.tfi{font-size:13.5px;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:10px;line-height:1.4}
.tfi-check{
  width:19px;height:19px;border-radius:50%;flex-shrink:0;
  background:rgba(0,176,116,.22);border:1.5px solid rgba(0,176,116,.5);
  display:flex;align-items:center;justify-content:center;font-size:10px;color:#5eead4;font-weight:800;
}
.tc.feat .tfi{color:rgba(255,255,255,.92)}
.tc.feat .tfi-check{background:var(--green);border-color:var(--green);color:#06281d;box-shadow:0 0 12px rgba(0,176,116,.5)}
/* CTA button */
.tc-btn{
  width:100%;border:none;border-radius:99px;padding:14px;
  font-family:"Poppins",sans-serif;font-size:14px;font-weight:800;
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  display:block;text-align:center;position:relative;overflow:hidden;
  background:rgba(255,255,255,.13);color:#fff;border:1.5px solid rgba(255,255,255,.22);
}
.tc-btn:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.tc.feat .tc-btn{
  background:linear-gradient(135deg,var(--green) 0%,var(--gd) 100%);
  color:#fff;border:none;font-size:15px;padding:16px;
  box-shadow:0 10px 28px rgba(0,176,116,.45);
}
.tc.feat .tc-btn:hover{
  background:linear-gradient(135deg,#00c780 0%,var(--gd) 100%);
  box-shadow:0 14px 34px rgba(0,176,116,.6);
  transform:translateY(-3px);
}
.tc.feat .tc-btn::after{
  content:'→';margin-left:8px;display:inline-block;transition:transform .18s ease;
}
.tc.feat .tc-btn:hover::after{transform:translateX(4px)}
/* Corner glow accents */
.tc-glow-corner{
  position:absolute;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(65,188,244,.25),transparent 70%);
  top:-70px;right:-60px;pointer-events:none;opacity:.7;
}
.tc.feat .tc-glow-corner{background:radial-gradient(circle,rgba(0,176,116,.35),transparent 70%)}
/* FOOTER */
.foot{background:var(--navyd);padding:56px 0 0;width:100%}
.fg{display:grid;grid-template-columns:230px 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.08)}
.flimg{height:30px;width:auto;display:block;margin-bottom:12px;filter:brightness(0) invert(1)}
.fdesc{font-size:13px;color:rgba(255,255,255,.4);line-height:1.65;margin-bottom:16px}
.fsocs{display:flex;gap:7px}
.fsb{width:30px;height:30px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:rgba(255,255,255,.45);cursor:pointer}
.fct{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.26);margin-bottom:12px}
.fc ul{display:flex;flex-direction:column;gap:8px}
.fc li a{font-size:12.5px;color:rgba(255,255,255,.5)}
.fc li a:hover{color:#fff}
.fbtm{padding:18px 0;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:rgba(255,255,255,.26);gap:10px;flex-wrap:wrap}
.fbtm a{color:rgba(255,255,255,.36)}
/* SEARCH/RESULTS */
.mphero{background:var(--sky);padding:44px 0 36px;position:relative;overflow:hidden;width:100%}
.mphero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80%,rgba(255,255,255,.2),transparent 60%);pointer-events:none}
.mps{background:#fff;border-radius:99px;padding:6px;display:flex;gap:5px;box-shadow:0 4px 20px rgba(7,20,38,.16);max-width:820px}
.mps input,.mps select{background:transparent;border:none;font-family:'Poppins',sans-serif;color:var(--ink);outline:none;font-size:13px;padding:8px 13px}
.mps select{appearance:none}
.mpd{width:1px;background:var(--line);margin:4px 0}
.mptrig{display:none;background:#fff;border-radius:var(--rl);padding:12px 15px;box-shadow:0 4px 16px rgba(7,20,38,.15);align-items:center;justify-content:space-between}
.acchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.acchip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;background:rgba(7,20,38,.15);color:var(--ink);border:1px solid rgba(7,20,38,.18);border-radius:99px;padding:4px 11px;cursor:pointer}
.sl{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.fp{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:20px;position:sticky;top:68px}
.fp h3{font-size:14px;font-weight:700;margin-bottom:14px}
.fgg{margin-bottom:13px;padding-bottom:13px;border-bottom:1px solid var(--line2)}
.fgg:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}
.fgg label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--slate);margin-bottom:6px}
.fgg select,.fgg input{width:100%;border:1.5px solid var(--line);border-radius:var(--r);padding:8px 12px;font-size:13px;font-family:'Poppins',sans-serif;color:var(--ink);background:var(--paper);outline:none;appearance:none}
/* MOBILE STEP FILTER */
.mobsteps{display:none;background:var(--paper);border-radius:var(--rx);border:1.5px solid var(--line);overflow:hidden;margin-bottom:14px}
.msprog{height:4px;background:var(--line)}.msb{height:100%;background:var(--sky);border-radius:99px;transition:.3s}
.msstep{display:none;padding:18px}.msstep.a{display:block}
.msslbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.msstep h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:3px}
.msstep p{font-size:12.5px;color:var(--slate);margin-bottom:13px}
.tt{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tt.t3{grid-template-columns:repeat(3,1fr)}
.tile{background:var(--surf);border:1.5px solid var(--line);border-radius:var(--rl);padding:13px 11px;text-align:center;cursor:pointer;transition:.15s}
.tile:hover,.tile.s{background:var(--skym);border-color:var(--sky)}
.tile .tic{font-size:21px;display:block;margin-bottom:4px}
.tile .tl{font-size:12px;font-weight:700;color:var(--ink);display:block}
.tile .ts{font-size:10.5px;color:var(--muted);display:block;margin-top:2px}
.tile.s .tl{color:var(--skyd)}
.msnav{display:flex;gap:7px;margin-top:14px}
.msback{background:var(--surf);border:1.5px solid var(--line);color:var(--slate);font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:600;padding:10px 16px;border-radius:99px;cursor:pointer;flex-shrink:0}
.msnext{flex:1;background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:700;padding:11px;border-radius:99px;border:none;cursor:pointer}
/* INSTRUCTOR CARDS (results) */
.ic{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);display:grid;grid-template-columns:140px 1fr 160px;overflow:hidden;transition:.2s;position:relative;width:100%}
.ic.featured{background:#F5FBFF;border-color:#BDE7FA}
.ic-featured-badge{position:absolute;top:11px;left:11px;font-size:10px;font-weight:700;background:#0C1F38;color:#fff;padding:3px 9px;border-radius:99px;z-index:2}
.cdi-custom-block{overflow-x:auto;max-width:100%}
.cdi-custom-block img{max-width:100%;height:auto}
.ic:hover{transform:translateY(-2px);box-shadow:var(--shl);border-color:#CBD5E1}
.ic+.ic{margin-top:11px}
.ic-ph{background:linear-gradient(135deg,var(--skym),var(--line));display:flex;align-items:center;justify-content:center;min-height:170px}
.ic-av{width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center}
.ic-main{padding:16px 18px;display:flex;flex-direction:column;gap:4px;min-width:0}
.icname{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.015em}
.icrole{font-size:12px;color:var(--slate);display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.icrole .sp{color:var(--line)}
.icrat{display:flex;align-items:center;gap:5px;font-size:12px}
.icrat .rs{color:var(--amber);letter-spacing:-1px;font-size:13px}
.icrat .rv{font-weight:700;color:var(--ink)}
.icrat .rc{color:var(--muted)}
.icsum{font-size:12.5px;color:var(--slate);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ictop{display:flex;flex-wrap:wrap;gap:4px}
.ictop span{font-size:10.5px;background:var(--surf);color:var(--slate);border:1px solid var(--line);padding:2px 8px;border-radius:99px;font-weight:500}
.ic-act{padding:16px 14px 16px 11px;border-left:1px solid var(--line2);display:flex;flex-direction:column;gap:7px;justify-content:center}
.icplbl{font-size:10.5px;color:var(--muted);display:block;margin-bottom:1px}
.icprice{font-size:26px;font-weight:800;color:var(--ink);letter-spacing:-.025em;line-height:1;display:block;margin-bottom:11px}
.icprice small{font-size:12px;font-weight:500;color:var(--slate)}
.cmpchk{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);cursor:pointer;font-weight:600}
/* ════ PREMIUM INSTRUCTOR PROFILE PAGE ════ */
.profhero{background:var(--surf);border-bottom:1px solid var(--line);width:100%}
.phtop{padding:36px 0 0}
.pbc{font-size:12px;color:var(--muted);margin-bottom:16px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.pbc a{color:var(--slate)}
/* Profile hero layout */
.phero-grid{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:start}
.pavatar{width:110px;height:110px;border-radius:var(--rl);background:var(--navy);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;color:#fff;box-shadow:var(--sh);flex-shrink:0;position:relative}
.pavatar-badge{position:absolute;bottom:-6px;right:-6px;background:var(--green);border:2.5px solid var(--surf);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.pinfo h1{font-size:clamp(20px,3.5vw,32px);margin:7px 0 5px}
.prole{font-size:13.5px;color:var(--slate);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.prat{display:flex;align-items:center;gap:6px;font-size:13px;margin-top:9px}
.prat .rs{color:var(--amber);font-size:15px;letter-spacing:-1px}
.ptopics{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.ptopics span{font-size:11px;background:var(--paper);color:var(--slate);border:1px solid var(--line);padding:3px 8px;border-radius:99px;font-weight:500}
.pctab{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:20px;min-width:188px;box-shadow:var(--sh)}
.pplbl{font-size:11.5px;color:var(--muted);margin-bottom:3px}
.ppr{font-size:34px;font-weight:800;color:var(--ink);letter-spacing:-.035em;line-height:1;margin-bottom:14px}
/* Stats strip */
.pstats{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line);margin-top:24px}
.pstat{background:var(--paper);padding:16px;text-align:center}
.pstat strong{display:block;font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-bottom:2px}
.pstat span{font-size:10.5px;color:var(--muted);font-weight:600}
/* Profile nav tabs */
.prof-tabs{background:var(--paper);border-bottom:1px solid var(--line);padding:0;width:100%;overflow-x:auto}
.prof-tabs-inner{display:flex;gap:0}
.ptab{font-size:13.5px;font-weight:600;color:var(--slate);padding:14px 20px;border-bottom:2.5px solid transparent;cursor:pointer;white-space:nowrap;transition:.15s}
.ptab.a{color:var(--skyd);border-bottom-color:var(--sky)}
.ptab:hover:not(.a){color:var(--ink)}
/* Profile body */
.pbody{padding:36px 0;width:100%}
.pgrid{display:grid;grid-template-columns:1fr 308px;gap:24px;align-items:start}
.pp{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:22px;margin-bottom:14px}
.pp:last-child{margin-bottom:0}
.pp>h2{font-size:17px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--line2)}
/* Detail grid */
.pdg{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.pdi{background:var(--surf);border-radius:var(--r);padding:11px 13px}
.pdi strong{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:1px}
.pdi span{font-size:11px;color:var(--muted)}
/* Package cards */
.pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pkg-card{background:var(--surf);border:1.5px solid var(--line);border-radius:var(--rl);padding:16px;transition:.2s;cursor:pointer}
.pkg-card:hover{border-color:var(--sky);box-shadow:var(--sh)}
.pkg-card.best{border-color:var(--green);background:var(--gm)}
.pkg-name{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:3px}
.pkg-price{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin-bottom:2px}
.pkg-detail{font-size:12.5px;color:var(--slate);line-height:1.55}
/* Availability grid */
.avail-grid{display:grid;grid-template-columns:auto repeat(3,1fr);gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden}
.avail-head{background:var(--navyd);color:rgba(255,255,255,.55);font-size:11px;font-weight:700;padding:10px 12px;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.avail-day{background:var(--surf);font-size:12.5px;font-weight:700;color:var(--slate);padding:10px 12px;text-align:right}
.avail-cell{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:8px}
.avail-yes{width:24px;height:24px;border-radius:50%;background:var(--gm);color:var(--gd);font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:700}
.avail-no{width:24px;height:24px;border-radius:50%;background:var(--line2);color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:center}
/* Coverage chips */
.coverage-chips{display:flex;flex-wrap:wrap;gap:6px}
.cov-chip{background:var(--skym);color:var(--skyd);font-size:12px;font-weight:700;padding:5px 11px;border-radius:99px;border:1px solid rgba(65,188,244,.25)}
/* Video embed placeholder */
.vid-placeholder{background:var(--navyd);border-radius:var(--r);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden}
.vid-placeholder::before{content:'▶';font-size:48px;color:rgba(255,255,255,.7);z-index:1}
.vid-placeholder::after{content:'Click to play video intro';position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:13px;color:rgba(255,255,255,.5);white-space:nowrap}
/* Review score breakdown */
.rev-breakdown{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-bottom:12px}
.rev-bar-wrap{height:6px;background:var(--line);border-radius:99px;overflow:hidden}
.rev-bar{height:100%;background:var(--amber);border-radius:99px}
/* Sticky enquiry */
.stickya{position:sticky;top:72px}
.enqbox{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:20px}
.pdisp{padding:14px;background:var(--skyp);border-radius:var(--r);margin-bottom:12px;display:flex;align-items:baseline;gap:7px;border:1px solid rgba(65,188,244,.2)}
.pdisp strong{font-size:30px;font-weight:800;color:var(--ink);letter-spacing:-.03em}
.pdisp span{font-size:12.5px;color:var(--muted)}
/* Similar instructors mini carousel */
.sim-scroll{display:flex;gap:11px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.sim-scroll::-webkit-scrollbar{display:none}
.sim-card{background:var(--surf);border:1px solid var(--line);border-radius:var(--rl);padding:14px;min-width:180px;flex-shrink:0;cursor:pointer;transition:.15s}
.sim-card.featured{background:#F5FBFF;border-color:#BDE7FA}
.rev-summary-grid{display:grid;grid-template-columns:auto 1fr;gap:20px;margin-bottom:20px;align-items:start}
@media(max-width:600px){ .rev-summary-grid{grid-template-columns:1fr} }
.sim-card:hover{border-color:var(--sky);box-shadow:var(--sh)}
/* ════ COMPARE TABLE ════ */
.ctw{overflow-x:auto;border:1.5px solid var(--line);border-radius:var(--rx);box-shadow:var(--sh);width:100%}
.ct{width:100%;border-collapse:collapse;min-width:520px}
.ct thead{background:var(--navyd);position:sticky;top:64px;z-index:10}
.ct thead th{padding:16px;text-align:center;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.6);border-right:1px solid rgba(255,255,255,.07);vertical-align:top}
.ct thead th:first-child{text-align:left;color:rgba(255,255,255,.35);font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;width:130px}
.ct thead th:last-child{border-right:none}
.tha{width:48px;height:48px;border-radius:12px;background:var(--navy3);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;margin:0 auto 7px}
.tha.b{background:linear-gradient(135deg,#7C3AED,#5B21B6)}
.tha.c{background:linear-gradient(135deg,var(--gd),#047857)}
.thn{display:block;font-size:13.5px;font-weight:800;color:#fff;margin-bottom:5px}
.thp{display:flex;flex-wrap:wrap;gap:3px;justify-content:center}
.bb{font-size:9.5px;font-weight:700;background:var(--green);color:#fff;padding:2px 7px;border-radius:99px;display:inline-block;margin-top:4px}
.ct tbody tr{border-bottom:1px solid var(--line2)}
.ct tbody tr:last-child{border-bottom:none}
.ct tbody tr:hover{background:var(--surf)}
.ct tbody tr.wr{background:#ebf9f4!important}
.ct tbody td{padding:12px 16px;text-align:center;font-size:13.5px;border-right:1px solid var(--line2);vertical-align:middle}
.ct tbody td:first-child{text-align:left;font-size:10.5px;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;background:var(--surf)}
.ct tbody td:last-child{border-right:none}
.pcc strong{font-size:20px;font-weight:800;color:var(--ink);display:block;margin-bottom:1px}
.wb{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;background:var(--green);color:#fff;padding:2px 7px;border-radius:99px;margin-top:3px}
.sdd{color:var(--amber);font-size:14px;letter-spacing:-1px}
.pb2{height:5px;background:var(--line);border-radius:99px;overflow:hidden;max-width:90px;margin:3px auto 2px}
.pf{height:100%;border-radius:99px}
/* ════ LEARNER PROFILE / DASHBOARD ════ */
.ldash-hero{background:linear-gradient(135deg,var(--navyd) 0%,var(--navy3) 100%);padding:40px 0;width:100%}
.ldash-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:14px;margin-top:28px}
.lstat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--rl);padding:18px}
.lstat strong{display:block;font-size:26px;font-weight:800;color:#fff;letter-spacing:-.025em;line-height:1;margin-bottom:4px}
.lstat span{font-size:12px;color:rgba(255,255,255,.55);font-weight:500}
.lbody{padding:32px 0;width:100%}
.lpgrid{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start}
/* Learner sidebar */
.lsidebar{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);padding:20px;position:sticky;top:72px}
.lavatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--sky),var(--skyd));color:var(--ink);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.lname{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:2px}
.lmeta{font-size:12.5px;color:var(--muted);margin-bottom:16px}
.lnav{display:flex;flex-direction:column;gap:2px}
.lnav-item{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--slate);padding:9px 11px;border-radius:var(--r);cursor:pointer;transition:.15s}
.lnav-item:hover,.lnav-item.a{background:var(--skym);color:var(--skyd)}
.lnav-item .icon{font-size:16px;width:20px;text-align:center}
/* Saved shortlist */
.saved-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);overflow:hidden;display:grid;grid-template-columns:80px 1fr auto;transition:.2s;margin-bottom:10px}
.saved-card:hover{box-shadow:var(--sh);border-color:#CBD5E1}
.saved-ph{background:linear-gradient(135deg,var(--skym),var(--line));display:flex;align-items:center;justify-content:center}
.saved-av{width:40px;height:40px;border-radius:50%;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;background:var(--navy)}
.saved-info{padding:12px 14px;min-width:0}
.saved-name{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:2px}
.saved-meta{font-size:12px;color:var(--muted)}
.saved-price{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.saved-price small{font-size:11px;font-weight:500;color:var(--slate)}
.saved-act{padding:12px;display:flex;flex-direction:column;gap:6px;justify-content:center;border-left:1px solid var(--line2)}
/* Enquiry tracking */
.enq-row{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rl);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;transition:.2s}
.enq-row:hover{border-color:var(--sky);box-shadow:var(--sh)}
.enq-name{font-size:14px;font-weight:700;color:var(--ink)}
.enq-meta{font-size:12px;color:var(--muted);margin-top:2px}
.enq-status{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:99px;white-space:nowrap}
.es-new{background:var(--skym);color:var(--skyd)}
.es-replied{background:var(--gm);color:var(--gd)}
.es-read{background:var(--line2);color:var(--slate)}
/* ════ INSTRUCTOR DASHBOARD ════ */
.dash-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 44px);background:var(--surf)}
.dash-sidebar{background:var(--paper);border-right:1px solid var(--line);padding:18px 10px;display:flex;flex-direction:column;gap:3px;position:sticky;top:44px;height:calc(100vh - 44px);overflow-y:auto}
.dash-sidebar .dlogo{height:26px;margin-bottom:18px;padding:0 4px;filter:brightness(0) saturate(100%)}
.dash-nav-item{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--slate);padding:9px 12px;border-radius:var(--r);cursor:pointer;transition:.15s;text-decoration:none}
.dash-nav-item:hover,.dash-nav-item.a{background:var(--gm);color:var(--gd)}
.dash-nav-item .nic{font-size:17px;width:22px;text-align:center}
.dash-nav-sep{height:1px;background:var(--line2);margin:8px 0}
.dash-nav-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 12px;margin-bottom:2px;margin-top:6px}
.dash-main{padding:24px;max-width:none}
.dtopbar{background:var(--paper);border-bottom:1px solid var(--line);padding:13px 24px;display:flex;align-items:center;justify-content:space-between;margin:-24px -24px 24px;gap:12px;flex-wrap:wrap}
.dtopbar h1{font-size:18px;font-weight:700;color:var(--ink)}
.dstat{background:var(--paper);border:1px solid var(--line);border-radius:var(--rl);padding:18px 20px}
.dstat b{display:block;font-family:'Poppins',sans-serif;font-size:28px;font-weight:900;color:var(--green);letter-spacing:-.025em;line-height:1;margin-bottom:4px}
.dstat span{font-size:12px;color:var(--slate);font-weight:600}
.dcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--rl);padding:20px;margin-bottom:18px}
.dcard h2{font-size:16px;margin:0 0 14px;font-weight:700}
/* Lead card */
.lead-card{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.lead-card.is-new{border-left:3px solid var(--green)}
.lead-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.lead-meta{font-size:12px;color:var(--slate);margin-top:2px}
/* Profile completion bar */
.comp-bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:6px}
.comp-fill{height:100%;border-radius:99px}
/* Chart placeholder */
.chart-ph{height:160px;background:var(--surf);border-radius:var(--r);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);position:relative;overflow:hidden}
.chart-bars{position:absolute;bottom:0;left:0;right:0;height:140px;display:flex;align-items:flex-end;gap:8px;padding:0 16px 0}
.chart-bar{flex:1;border-radius:4px 4px 0 0;background:var(--sky);opacity:.35;transition:.3s}
.chart-bar.hi{opacity:.85;background:var(--skyd)}
/* Status badges */
.sb-active{background:var(--gm);color:var(--gd);border:1px solid rgba(0,176,116,.2);padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700}
.sb-pending{background:#fffbeb;color:#92400e;border:1px solid #fde68a;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700}
.sb-susp{background:var(--redm);color:#991b1b;border:1px solid #fecaca;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700}
.sb-new{background:var(--skym);color:var(--skyd);border:1px solid rgba(65,188,244,.2);padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700}
.sb-replied{background:var(--gm);color:var(--gd);padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700}
/* Toggle */
.toggle-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink);font-weight:600;cursor:pointer}
.toggle{width:44px;height:24px;background:var(--line);border-radius:99px;position:relative;transition:.2s;flex-shrink:0}
.toggle.on{background:var(--green)}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle.on::after{left:23px}
/* ════ SUPER ADMIN ════ */
.admin-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 44px);background:var(--surf)}
.admin-sidebar{background:var(--navyd);padding:18px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:44px;height:calc(100vh - 44px);overflow-y:auto}
.admin-sidebar .alogo{height:24px;margin-bottom:18px;padding:0 4px;filter:brightness(0) invert(1)}
.ansk{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.28);padding:0 10px;margin-bottom:3px;margin-top:8px}
.anavitem{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.6);padding:8px 10px;border-radius:8px;cursor:pointer;transition:.15s}
.anavitem:hover,.anavitem.a{background:rgba(255,255,255,.09);color:#fff}
.anavitem .anic{font-size:16px;width:20px;text-align:center}
.admin-main{padding:22px;max-width:none}
.atopbar{background:var(--paper);border-bottom:1px solid var(--line);padding:12px 22px;display:flex;align-items:center;justify-content:space-between;margin:-22px -22px 22px;gap:10px;flex-wrap:wrap}
.atopbar h1{font-size:17px;font-weight:700;color:var(--ink)}
.astat{background:var(--paper);border:1px solid var(--line);border-radius:var(--rl);padding:16px 18px}
.astat b{display:block;font-family:'Poppins',sans-serif;font-size:26px;font-weight:900;color:var(--green);letter-spacing:-.025em;line-height:1;margin-bottom:3px}
.astat span{font-size:11.5px;color:var(--slate);font-weight:600}
.acard{background:var(--paper);border:1px solid var(--line);border-radius:var(--rl);padding:18px;margin-bottom:16px}
.acard h2{font-size:15px;margin:0 0 13px;font-weight:700}
/* Admin table */
.atable{width:100%;border-collapse:collapse;background:var(--paper);border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.atable th{background:var(--surf);padding:11px 14px;text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);font-weight:700}
.atable td{padding:12px 14px;border-top:1px solid var(--line2);font-size:13px;vertical-align:middle}
.atable tr:hover td{background:var(--surf)}
/* Alert banner */
.alert-amber{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--r);padding:14px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.alert-amber strong{color:#92400e;font-size:13.5px}
.alert-amber span{color:#92400e;font-size:13px}
/* Revenue chart placeholder */
.rev-chart{height:180px;background:var(--surf);border-radius:var(--r);border:1px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}
.rev-line{position:absolute;bottom:0;left:0;right:0;height:160px}
/* School profile additions */
.school-instructors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:4px}
.si-card{background:var(--surf);border:1.5px solid var(--line);border-radius:var(--rl);padding:15px;text-align:center;transition:.2s;cursor:pointer}
.si-card:hover{border-color:var(--sky);box-shadow:var(--sh)}
.si-av{width:52px;height:52px;border-radius:50%;color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 8px}
.si-name{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:2px}
.si-meta{font-size:11.5px;color:var(--muted)}
.si-price{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin:7px 0}
/* PROFILE PAGE TAB CONTENT */
.tab-section{display:none}.tab-section.active{display:block}
.rev-car-cont{position:relative;padding:0 28px}.is-mobile .rev-car-cont{padding:0 8px}
.rev-car-cont::after{content:"";position:absolute;top:0;right:28px;bottom:0;width:80px;background:linear-gradient(to right,transparent,#0C1F38 90%);pointer-events:none;z-index:5}
.rev-car-cont .carrow{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff}
.rev-car-cont .carrow:hover{background:var(--sky);color:var(--ink)}
/* ── INSTRUCTOR MARQUEE (auto-scroll, no jerk) ── */
.imarq-wrap{overflow:hidden;width:100%;position:relative}
.imarq-wrap::after{content:"";position:absolute;top:0;right:0;bottom:0;width:80px;background:linear-gradient(to right,transparent,var(--paper));pointer-events:none;z-index:5}
.imarq-wrap::before{content:"";position:absolute;top:0;left:0;bottom:0;width:40px;background:linear-gradient(to left,transparent,var(--paper));pointer-events:none;z-index:5}
.imarq-track{display:flex;gap:16px;animation:imarq 40s linear infinite;width:max-content}
.imarq-track:hover{animation-play-state:paused}
@keyframes imarq{0%{transform:translateX(0)}100%{transform:translateX(calc(-50% - 8px))}}
.imarq-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--rx);width:260px;flex-shrink:0;overflow:hidden;transition:.2s;cursor:pointer}
.imarq-card:hover{transform:translateY(-4px);box-shadow:var(--shl);border-color:var(--sky)}
.imarq-photo{height:180px;display:flex;align-items:center;justify-content:center;position:relative}
.imarq-av{width:72px;height:72px;border-radius:50%;color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.2)}
.imarq-badge{position:absolute;top:10px;right:10px;background:var(--gm);color:var(--gd);font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px}
.imarq-feat{position:absolute;top:10px;left:10px;background:var(--navyd);color:var(--skyl);font-size:10px;font-weight:700;padding:3px 8px;border-radius:99px}
.imarq-body{padding:16px}
.imarq-name{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:2px;letter-spacing:-.01em}
.imarq-loc{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:7px}
.imarq-rat{display:flex;align-items:center;gap:5px;font-size:12px;margin-bottom:9px}
.imarq-pills{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.imarq-price{display:flex;align-items:baseline;gap:3px;margin-bottom:10px}
.imarq-price strong{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.imarq-price span{font-size:12px;color:var(--muted)}
.imarq-cta{width:100%;background:var(--green);color:#fff;border:none;border-radius:99px;padding:10px;font-family:"Poppins",sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:.12s}
.imarq-cta:hover{background:var(--gd)}
/* Dark section review marquee */
.rmarq-wrap{overflow:hidden;width:100%;position:relative}
.rmarq-wrap::after{content:"";position:absolute;top:0;right:0;bottom:0;width:100px;background:linear-gradient(to right,transparent,var(--navyd));pointer-events:none;z-index:5}
.rmarq-wrap::before{content:"";position:absolute;top:0;left:0;bottom:0;width:60px;background:linear-gradient(to left,transparent,var(--navyd));pointer-events:none;z-index:5}
.rmarq-track{display:flex;gap:16px;animation:rmarq 50s linear infinite;width:max-content}
.rmarq-track:hover{animation-play-state:paused}
@keyframes rmarq{0%{transform:translateX(0)}100%{transform:translateX(calc(-50% - 8px))}}
/* ── MOBILE GRID OVERRIDES ── */
/* Why CDI section — hide compare visual panel on mobile */
/* Stat grids on dashboards */
/* imarq mobile — smaller cards, still auto-scroll */
/* rmarq mobile */
/* Fix overflow on all sections mobile */
/* Saved cards mobile */
/* Admin table mobile — scroll horizontally */
/* School instructor grid */
/* Avmatrix mobile — scrollable */
/* Remove the h1 font-size clamp issues on mobile */
/* Fix stat bars */
/* Dash layouts on mobile — single col */
/* Learner sidebar on mobile */
/* AEO / AI-OVERVIEW SECTION — dense factual copy block for LLM indexing */
.aeo-sec{padding:56px 0 0;width:100%;background:var(--paper)}
.aeo-top{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;margin-bottom:40px}
.aeo-h1{font-size:clamp(24px,3.2vw,38px);font-weight:800;color:var(--ink);line-height:1.18;letter-spacing:-.02em;margin-bottom:14px}
.aeo-sub{font-size:14.5px;color:var(--muted);line-height:1.6}
.aeo-body p{font-size:15px;color:var(--slate);line-height:1.7;margin-bottom:14px}
.aeo-body p:last-child{margin-bottom:0}
.aeo-card{background:var(--surf);border:1px solid var(--line);border-radius:24px;padding:36px;margin-bottom:0}
.aeo-card h2{font-size:clamp(19px,2.6vw,28px);font-weight:800;color:var(--ink);letter-spacing:-.015em;margin-bottom:14px}
.aeo-card p{font-size:14.5px;color:var(--slate);line-height:1.7;margin-bottom:24px;max-width:760px}
.aeo-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.aeo-stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 14px;text-align:center}
.aeo-stat strong{display:block;font-size:clamp(22px,2.6vw,30px);font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1;margin-bottom:8px}
.aeo-stat strong em{font-style:normal;color:var(--skyd)}
.aeo-stat span{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.3}
/* ════════════════════════════════════════════════════════════
   PRODUCTION OVERRIDES — restyle the existing nav/footer markup
   (header.php / footer.php) to the locked premium look without
   touching their HTML or breaking the mega menu / drawer JS.
   ════════════════════════════════════════════════════════════ */

/* NAV */
.topnav{background:var(--navy) !important;border-bottom:1px solid rgba(255,255,255,.08) !important;box-shadow:none !important}
.topnav .row{min-height:66px !important;padding:0 !important;align-items:center !important}
.topnav .container{width:min(1380px,calc(100% - 40px)) !important;max-width:none !important;margin:0 auto !important}
.brand-logo img{transition:transform .2s ease;transform-origin:left center}
.topnav.scrolled .brand-logo img{transform:scale(.85)}
.nav-cta-mobile{
  display:none;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--sky,#41BCF4),var(--skyd,#2DA8E0));
  color:#071426;font-weight:800;font-size:12.5px;letter-spacing:-.01em;
  padding:0 14px;height:34px;border-radius:99px;text-decoration:none;
  white-space:nowrap;box-shadow:0 4px 12px rgba(65,188,244,.35);
}
.nav-cta-mobile:active{transform:scale(.96)}
.brand-logo img{width:auto !important;height:34px !important;filter:brightness(0) invert(1) !important}
.nav-links{gap:2px !important}
.nav-links > a,.nav-link-plain,.nav-mega-trigger > a{
  color:rgba(255,255,255,.78) !important;font-size:13px !important;font-weight:600 !important;
  padding:7px 13px !important;border-radius:8px !important;
  background:transparent !important;border:none !important;height:auto !important;
}
.nav-links > a:hover,.nav-link-plain:hover,.nav-mega-trigger > a:hover,
.nav-mega-trigger > a[aria-expanded="true"]{
  background:rgba(255,255,255,.08) !important;color:#fff !important;
}
.nav-actions .btn,.topnav a.btn{
  background:var(--sky) !important;border:none !important;color:var(--ink) !important;
  font-weight:800 !important;border-radius:99px !important;padding:0 20px !important;
  height:40px !important;min-height:40px !important;max-height:40px !important;
}
.nav-actions .btn:hover,.topnav a.btn:hover{background:var(--skyd) !important;color:#fff !important}
.hamburger span{background:#fff !important}

/* Mega menu panel */
.nav-mega-panel{background:#fff !important;border-radius:18px !important;box-shadow:0 24px 60px rgba(7,20,38,.22) !important;border:1px solid var(--line) !important}
.cdi-mega-label{color:var(--muted) !important;font-weight:700 !important;letter-spacing:.06em !important;text-transform:uppercase !important;font-size:11px !important}
.cdi-mega-v2-menu a,.location-mega-grid a,.cdi-test-centre-links a{color:var(--slate) !important}
.cdi-mega-v2-menu a:hover,.location-mega-grid a:hover,.cdi-test-centre-links a:hover{color:var(--skyd) !important}
.cdi-mega-v2-feature{background:var(--navyd) !important;border-radius:16px !important}
.cdi-feature-cta{background:var(--sky) !important;color:var(--ink) !important;border-radius:99px !important;font-weight:800 !important}
.mega-v9-cta{background:var(--sky) !important;color:var(--ink) !important;border-radius:99px !important;font-weight:800 !important}

/* Mega panel: anchor to bottom of sticky nav instead of a fixed
   viewport offset, since the util bar + urgency strip above the
   nav are not sticky and scroll away normally. */
@media (min-width:901px){
  .nav-mega-panel,.locations-trigger .nav-mega-panel,.location-mega-panel{
    top:66px !important;
  }
}

/* Mobile drawer */
.mobile-drawer{background:#fff !important}
.mobile-drawer nav a{color:var(--ink) !important;font-weight:600 !important}
.dfoot .btn-green{background:var(--green) !important;border-radius:99px !important}
.dfoot .btn-ghost{border-radius:99px !important;border-color:var(--line) !important}

/* FOOTER */
.site-footer{background:var(--navyd) !important;padding:56px 0 0 !important}
.site-footer .container{width:min(1380px,calc(100% - 40px)) !important;max-width:none !important;margin:0 auto !important}
.foot-grid{gap:44px !important;padding-bottom:44px !important;border-bottom:1px solid rgba(255,255,255,.08) !important}
.foot-brand img{height:30px !important;width:auto !important;filter:brightness(0) invert(1) !important}
.foot-brand p{font-size:13px !important;color:rgba(255,255,255,.4) !important;line-height:1.65 !important}
.foot-social a{
  width:30px !important;height:30px !important;border-radius:6px !important;
  background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.1) !important;
  color:rgba(255,255,255,.45) !important;display:inline-flex !important;align-items:center !important;
  justify-content:center !important;font-size:10px !important;font-weight:700 !important;
}
.foot-col h4{font-size:11px !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.09em !important;color:rgba(255,255,255,.26) !important;margin-bottom:12px !important}
.foot-col li a{font-size:12.5px !important;color:rgba(255,255,255,.5) !important}
.foot-col li a:hover{color:#fff !important}
.foot-bottom{padding:20px 0 !important;color:rgba(255,255,255,.26) !important;font-size:12px !important}
.foot-bottom a{color:rgba(255,255,255,.36) !important}

/* AI chat FAB */
.ai-fab{background:var(--navy) !important;border-radius:99px !important;box-shadow:var(--shl) !important}
.ai-fab .dot{background:var(--green) !important}


/* ============================================================
   RESPONSIVE — MOBILE (≤ 760px)
   ============================================================ */
@media (max-width: 760px) {
.cw{width:calc(100% - 24px)}
.util{display:none}
.nav{padding:0 16px;height:56px}
.nav-logo img{height:26px}
.nav-links{display:none}
.nav-cta{display:none}
.hbg{display:flex}
.urg .ui+.ui{display:none}
.lede{font-size:14px}
.hgrid{grid-template-columns:1fr;min-height:auto;gap:0;padding:0}
.hl{padding:36px 20px 32px}
.hero-search{flex-direction:column;border-radius:18px;padding:12px;gap:9px;align-items:stretch}
.hs-sep{display:none}
.hs-sel{border:1.5px solid var(--line);border-radius:10px;padding:11px 36px 11px 13px}
.hs-btn{border-radius:10px;padding:13px;text-align:center;width:100%}
.tboxes{grid-template-columns:1fr 1fr}
.hr{display:none}
.sbar{grid-template-columns:1fr 1fr}
.sbi{padding:16px 10px}
.sbi strong{font-size:19px}
.carc{min-width:200px;max-width:210px}
.cphoto{height:150px}
.cprev{left:4px}.cnext{right:4px}
.car-cont{padding:0 8px}
.revc{width:300px;padding:16px}
.tlogs{gap:14px}
.sg{grid-template-columns:1fr 1fr;gap:9px}
.svc{padding:14px;gap:7px}
.svc h3{font-size:13px}
.svc p{display:none}
.steps{grid-template-columns:1fr;gap:24px;margin-top:28px}
.steps::before{display:none}
.lg{grid-template-columns:1fr 1fr}
.lc{padding:12px}
.fqs{padding:44px 0}
.fqg{grid-template-columns:1fr}
.fql{padding-right:0;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:28px;margin-bottom:28px}
.fqr{padding-left:0}
.cband{padding:48px 0}
.cband p{font-size:14px}
.iband{padding:44px 0}
.ibgrid{grid-template-columns:1fr;gap:28px}
.ibbtns{flex-wrap:wrap}
.ibbtns .btn{flex:1 1 auto}
.tcards{grid-template-columns:1fr !important;gap:18px;padding-top:0;perspective:none}
.tc:hover{transform:none}
.tc.feat{transform:none;padding:30px 24px;border-radius:22px;animation:tcRise .6s cubic-bezier(.2,.8,.2,1) both}
.tc.feat:hover{transform:none}
.foot{padding:44px 0 0}
.fg{grid-template-columns:1fr 1fr;gap:24px;padding-bottom:28px}
.fbtm{flex-direction:column;text-align:center}
.mps{display:none}
.mptrig{display:flex}
.sl{grid-template-columns:1fr !important}
.fp{display:none}
.mobsteps{display:block}
.ic{grid-template-columns:82px 1fr;grid-template-rows:auto auto}
.ic-ph{min-height:100px}
.ic-main{padding:11px}
.icname{font-size:13.5px}
.ic-act{grid-column:1/-1;border-left:none;border-top:1px solid var(--line2);flex-direction:row;flex-wrap:wrap;padding:9px 11px;align-items:center}
.icprice{font-size:19px;display:inline;margin-bottom:0}
.cmpchk{margin-left:auto}
.phtop{padding:20px 0 0}
.phero-grid{grid-template-columns:auto 1fr;grid-template-rows:auto auto}
.pctop{grid-column:1/-1}
.pavatar{width:68px;height:68px;font-size:20px;border-radius:12px}
.ppr{font-size:26px;margin-bottom:11px}
.pstats{grid-template-columns:repeat(3,1fr)}
.pstat{padding:11px 7px}
.pstat strong{font-size:14px}
.ptab{padding:12px 14px;font-size:12.5px}
.pbody{padding:20px 0}
.pgrid{grid-template-columns:1fr}
.pp{padding:15px;border-radius:var(--rl)}
.pdg{grid-template-columns:1fr 1fr}
.pkg-grid{grid-template-columns:1fr}
.enqbox{border-radius:var(--rl);padding:15px}
.ct thead{top:56px}
.ldash-hero{padding:24px 0}
.ldash-grid{grid-template-columns:1fr 1fr;gap:10px}
.lstat{padding:14px}
.lstat strong{font-size:20px}
.lbody{padding:20px 0}
.lpgrid{grid-template-columns:1fr}
.lsidebar{position:static;margin-bottom:16px}
.enq-row{flex-wrap:wrap}
.dash-layout{grid-template-columns:1fr}
.dash-sidebar{display:none}
.dash-main{padding:16px}
.dtopbar{margin:-16px -16px 16px;padding:11px 16px}
.dstat{padding:14px}
.dstat b{font-size:22px}
.dcard{padding:15px}
.lead-card{flex-wrap:wrap}
.admin-layout{grid-template-columns:1fr}
.admin-sidebar{display:none}
.admin-main{padding:14px}
.atopbar{margin:-14px -14px 14px;padding:11px 14px}
.astat{padding:12px}
.astat b{font-size:20px}
.acard{padding:13px}
.school-instructors-grid{grid-template-columns:1fr 1fr}
.rev-car-cont::after{right:8px;width:40px}
.ibgrid{grid-template-columns:1fr !important;gap:28px}
.fqg{grid-template-columns:1fr !important}
.fql{padding-right:0;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:28px;margin-bottom:28px}
.fqr{padding-left:0}
.tcards{grid-template-columns:1fr !important}
.pkg-grid{grid-template-columns:1fr !important}
.pdg{grid-template-columns:1fr 1fr}
.plan-grid{grid-template-columns:1fr 1fr !important;gap:8px}
.cms-grid{grid-template-columns:1fr !important}
.spec-grid{grid-template-columns:1fr 1fr !important}
.profile-edit-grid{grid-template-columns:1fr !important}
.school-inst-grid{grid-template-columns:1fr 1fr}
.lpgrid{grid-template-columns:1fr !important}
.pgrid{grid-template-columns:1fr !important}
.why-vis-panel{display:none !important}
.why-left-only{grid-template-columns:1fr !important;gap:0}
.dash-stat-grid{grid-template-columns:1fr 1fr !important;gap:10px}
.admin-stat-grid{grid-template-columns:1fr 1fr !important;gap:10px}
.dash-card-grid{grid-template-columns:1fr !important;gap:14px}
.acard-grid{grid-template-columns:1fr !important;gap:14px}
.imarq-wrap::after{width:40px}
.imarq-wrap::before{width:20px}
.imarq-card{width:220px}
.imarq-photo{height:150px}
.rmarq-wrap::after{width:40px}
.rmarq-wrap::before{width:20px}
.revc{width:280px;padding:16px}
.cw{overflow:hidden}
[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
[style*="grid-template-columns:2fr 1fr"]{grid-template-columns:1fr !important}
[style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr 1fr !important}
[style*="grid-template-columns:repeat(4"]{grid-template-columns:1fr 1fr !important}
[style*="gap:64px"]{gap:24px !important}
[style*="gap:56px"]{gap:22px !important}
[style*="gap:48px"]{gap:20px !important}
[style*="gap:44px"]{gap:18px !important}
.saved-card{grid-template-columns:60px 1fr;grid-template-rows:auto auto}
.saved-act{grid-column:1/-1;border-left:none;border-top:1px solid var(--line2);flex-direction:row;padding:8px 10px;align-items:center;gap:8px;display:flex}
.atable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.atable{min-width:600px}
.school-inst-grid{grid-template-columns:1fr 1fr;gap:10px}
.avmatrix{overflow-x:auto;-webkit-overflow-scrolling:touch}
.avday-row{min-width:340px}
h1{font-size:clamp(24px,8vw,36px) !important;letter-spacing:-.02em}
h2{font-size:clamp(18px,6vw,26px) !important}
.sbar{grid-template-columns:1fr 1fr}
.pstats{grid-template-columns:repeat(3,1fr)}
.ldash-stats{grid-template-columns:1fr 1fr;gap:10px}
.dash-layout{grid-template-columns:1fr !important}
.admin-layout{grid-template-columns:1fr !important}
.lsidebar{position:static !important;margin-bottom:16px}
.stickya{position:static}
.aeo-sec{padding:36px 0 0}
.aeo-top{grid-template-columns:1fr;gap:18px;margin-bottom:24px}
.aeo-card{padding:22px;border-radius:18px}
.aeo-card p{margin-bottom:18px}
.aeo-stats{grid-template-columns:1fr 1fr;gap:10px}
.aeo-stat{padding:16px 10px}
.aeo-stat strong{font-size:21px;margin-bottom:5px}
.aeo-stat span{font-size:11px}
}
/* ===== END assets/css/cdi-premium.css ===== */

/* ===== BEGIN assets/css/cdi-fixes.css ===== */
/* ============================================================
   CDI-FIXES.CSS — loaded LAST, resolves conflicts between
   main.css, cdi-app.css and cdi-premium.css.
   Keep site-wide overrides here instead of adding more
   !important rules to the other three files.
   ============================================================ */

/* ---------- 1. Kill horizontal overflow (empty gap on the right) ---------- */
html{ overflow-x:clip; }
body{ overflow-x:clip !important; }
.fw{ max-width:100%; }

/* ---------- 2. Header layout: sticky nav, no dead space at the top ----------
   main.css made .topnav position:fixed, but header.php printed the
   util bar + urgency strip BEFORE the nav and the spacer AFTER them,
   which produced a tall empty band under the header on every page.
   Sticky nav takes up its own space, so the spacer is removed. */
.topnav{
  position:fixed !important;
  top:0; left:0; right:0;
  z-index:9900;
  background:var(--navy, #0B1F3D) !important;
  /* CRITICAL: backdrop-filter creates a stacking context that clips child position:fixed elements */
  /* Removed backdrop-filter to allow mega dropdowns to render above the nav correctly */
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  /* Must be visible to allow dropdowns to overflow below */
  overflow:visible !important;
}
.topnav .row{ overflow:visible !important; }
.topnav-spacer{ display:block !important; height:64px !important; }
@media(min-width:680px){ .topnav-spacer{ height:68px !important; } }

/* ---------- 3. White logo image (header, mobile drawer, footer) ----------
   logo-white-v2.png is already white-on-transparent, so no filters needed.
   These rules override the img filter/size rules in the other stylesheets. */
.brand-logo{ display:inline-flex; align-items:center; }
img.brand-logo-img{
  width:auto !important;
  height:44px !important;
  max-height:none !important;
  object-fit:contain !important;
  filter:none !important;
  display:block;
}
.topnav.scrolled img.brand-logo-img{ transform:scale(.9); transform-origin:left center; transition:transform .2s ease; }
img.brand-logo-img.drawer-logo{ height:34px !important; }
img.brand-logo-img.foot-logo{ height:52px !important; margin-bottom:14px; }
@media (max-width:760px){
  img.brand-logo-img{ height:36px !important; }
  img.brand-logo-img.foot-logo{ height:46px !important; }
}

/* ---------- 4. Default text colours on light backgrounds ----------
   (replaces the forced !important colours removed from cdi-app.css)
   :where() keeps specificity at zero so any component class —
   e.g. .fh, .ibh, .cband h2 — overrides these defaults normally. */
:where(body:not(.admin-body)) :where(h1,h2,h3){ color:var(--cdi-ink, #0C1F38); }
:where(body:not(.admin-body)) :where(p,li){ color:var(--cdi-muted, #4A5A70); }

/* ---------- 5. Readable text on dark sections ---------- */
.cband h2{ color:#fff !important; }
.cband p{ color:rgba(255,255,255,.65) !important; }
.cband .eye{ color:var(--skyl, #9CD9FB) !important; }

.iband[style*="navyd"] h2,
.iband[style*="navyd"] .ibh{ color:#fff !important; }
.iband[style*="navyd"] p,
.iband[style*="navyd"] .ibp{ color:rgba(255,255,255,.7) !important; }
.iband[style*="navyd"] .ibli{ color:rgba(255,255,255,.85) !important; }
.iband[style*="navyd"] .eye{ color:rgba(255,255,255,.55) !important; }

.site-footer,
.site-footer p,
.site-footer li{ color:rgba(255,255,255,.55) !important; }
.site-footer a{ color:rgba(255,255,255,.6) !important; }
.site-footer a:hover{ color:#fff !important; }
.site-footer h4{ color:rgba(255,255,255,.4) !important; }

/* ---------- 6. Hero trust ticks + stat boxes (premium treatment) ----------
   Frosted-glass pills with badge checks, and elevated stat cards.
   (Old class "trust-strip" collided with a legacy card grid in
   cdi-app.css — renamed to .hero-ticks in index.php.) */
.hero-ticks{
  display:flex;
  flex-wrap:wrap;
  gap:10px 10px;
  margin-top:22px;
}
.hero-ticks .htick{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  font-weight:650;
  letter-spacing:-.01em;
  color:#0C1F38;
  background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  backdrop-filter:blur(10px) saturate(140%);
  border:1px solid rgba(255,255,255,.85);
  border-radius:999px;
  padding:8px 15px 8px 9px;
  box-shadow:0 4px 16px rgba(7,20,38,.09), inset 0 1px 0 rgba(255,255,255,.9);
}
.hero-ticks .htick::before{
  content:'\2713';
  width:17px; height:17px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--green, #00B074), #009463);
  color:#fff;
  font-size:9px;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  box-shadow:0 2px 6px rgba(0,176,116,.35);
}

.hero-ticks + .tboxes{ margin-top:18px; gap:12px; }
.tbox{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, #FFFFFF 0%, #F5FAFE 100%) !important;
  border:1px solid rgba(255,255,255,.95) !important;
  border-radius:16px !important;
  padding:14px 16px 14px 19px !important;
  box-shadow:0 10px 28px rgba(7,20,38,.12), inset 0 1px 0 #fff !important;
  transition:transform .18s ease, box-shadow .18s ease;
}
.tbox::before{
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:linear-gradient(180deg, #2F80ED, var(--green, #00B074));
}
.tbox:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 36px rgba(7,20,38,.16), inset 0 1px 0 #fff !important;
}
.tbox strong{
  font-size:14px !important;
  letter-spacing:-.015em;
}
.tbox span{
  font-size:11.5px !important;
  color:rgba(7,20,38,.55) !important;
}

@media (max-width:760px){
  .hero-ticks{
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:8px !important;
    padding-bottom:4px !important;
  }
  .hero-ticks::-webkit-scrollbar{ display:none; }
  .hero-ticks .htick{
    flex:0 0 auto !important;
    scroll-snap-align:start;
    font-size:11.5px;
    padding:7px 13px 7px 8px;
    white-space:nowrap;
  }
}

/* toast: fully hidden until triggered (was peeking below the top edge) */
.toast-wrap{ visibility:hidden; opacity:0; transition:transform .3s ease, opacity .3s ease; }
.toast-wrap.show{ visibility:visible; opacity:1; }

/* utility + urgency strips now flow normally above/below the sticky nav */
.util{ position:relative; z-index:1; }
.urg{ position:relative; z-index:1; }

/* ============================================================
   7. MOBILE UX PASS
   ============================================================ */

/* ---------- 7a. Segmented pill control (reusable form pattern) ----------
   Replaces native selects with tappable pills, NLG-style.
   Markup: .hs-pills > label.hs-pill > input[type=radio] + span */
.hs-pills{
  display:flex;
  gap:4px;
  background:#EEF4FA;
  border:1px solid #E2EAF3;
  border-radius:999px;
  padding:4px;
  flex-shrink:0;
}
.hs-pill{ position:relative; flex:1; }
.hs-pill input{
  position:absolute; inset:0;
  opacity:0; margin:0;
  cursor:pointer;
}
.hs-pill span{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:9px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:-.01em;
  color:#41546E;
  white-space:nowrap;
  transition:background .15s ease, color .15s ease, box-shadow .15s ease;
}
.hs-pill input:checked + span{
  background:var(--navy, #0B1F3D);
  color:#fff;
  box-shadow:0 4px 12px rgba(11,31,61,.28);
}
.hs-pill input:focus-visible + span{ outline:2px solid #2F80ED; outline-offset:2px; }

/* ---------- 7b. Hero search: never overflow the viewport ---------- */
.hero-search{ width:100%; max-width:100%; }
.hero-search *{ min-width:0; }
.hero-search .hs-in{ width:100%; }

/* ---------- 7b2. Hero grid: collapse to single column on mobile ----------
   .hgrid is the two-column desktop split (text left, slideshow right).
   Without a mobile rule .hl was being squeezed to ~50% width, causing
   the search box, transmission pills and tick badges to overflow the
   right edge of the screen. On mobile: hide the slideshow, let the
   text/search column go full-width. */
@media (max-width:760px){
  .hgrid{
    display:block !important;
  }
  .hr{
    display:none !important;
  }
  .hl{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  .hero-search{
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
  .hs-pills{
    width:100% !important;
    box-sizing:border-box !important;
  }
  .hs-in{
    width:100% !important;
    box-sizing:border-box !important;
  }
  .hs-btn{
    width:100% !important;
    box-sizing:border-box !important;
  }
}

/* ---------- 7c. Contact us pill (FAQ section) ---------- */
.fq-contact{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:auto !important;
  padding:13px 26px !important;
  margin:6px 0 30px !important;
  border-radius:999px !important;
  font-size:14px !important;
  font-weight:700 !important;
  color:#fff !important;
  background:rgba(255,255,255,.08) !important;
  border:1.5px solid rgba(255,255,255,.22) !important;
}
.fq-contact:hover{ background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.4) !important; }

/* ---------- 7d. Footer: single divider, no double line ---------- */
.site-footer .foot-grid{ border-bottom:0 !important; padding-bottom:26px !important; gap:30px !important; }
.site-footer .foot-bottom{
  border-top:1px solid rgba(255,255,255,.1) !important;
  margin-top:0 !important;
  padding:18px 0 28px !important;
  gap:8px !important;
}

/* ---------- 7e. Mobile drawer: light premium theme ----------
   main.css styled it dark (white text) but cdi-premium forces a white
   background — white-on-white. Restyle coherently, and stop the FAQ
   accordion's white-card `details summary` rule leaking in here. */
.mobile-drawer{ background:#fff !important; }
.mobile-drawer .dtop{
  background:var(--navy, #0B1F3D) !important;
  border-bottom:0 !important;
  padding:0 18px !important;
}
.mobile-drawer .dclose{
  background:rgba(255,255,255,.1) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  color:#fff !important;
}
.mobile-drawer .mmenu-group{ border-bottom:1px solid rgba(12,31,56,.08) !important; }
.mobile-drawer .mmenu-group summary,
.mobile-drawer details summary{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  min-height:0 !important;
  padding:16px 4px !important;
  font-size:16px !important;
  font-weight:700 !important;
  color:#0C1F38 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}
.mobile-drawer details summary::after{ content:none !important; }
.mobile-drawer .mmenu-chevron{ color:rgba(12,31,56,.45) !important; }
.mobile-drawer .mmenu-grid a,
.mobile-drawer .mmenu-panel > a{
  color:#41546E !important;
  font-size:14.5px !important;
  font-weight:600 !important;
  padding:11px 10px !important;
  border-radius:10px !important;
  background:#F4F8FC !important;
  border:1px solid #E8EFF6 !important;
  margin-bottom:6px;
  opacity:1 !important;
  transform:none !important;
}
.mobile-drawer .mmenu-grid a:active,
.mobile-drawer .mmenu-panel > a:active{ background:#E8F1FA !important; color:#0C1F38 !important; }
.mobile-drawer .mmenu-viewall{ color:#2F80ED !important; font-weight:700 !important; }
.mobile-drawer .mmenu-flat{
  color:#0C1F38 !important;
  border-bottom:1px solid rgba(12,31,56,.08) !important;
  font-weight:700 !important;
}
.mobile-drawer nav a{ opacity:1 !important; transform:none !important; }

/* ---------- 7f. Mobile header + hamburger + section spacing ---------- */
@media (max-width:760px){
  /* one pill only, one line: hide "List your profile", keep "Free listing" */
  .topnav .nav-actions .hide-mobile{ display:none !important; }
  .nav-cta-mobile{
    white-space:nowrap !important;
    display:inline-flex !important;
    align-items:center !important;
    padding:10px 16px !important;
    border-radius:999px !important;
    font-size:13px !important;
    font-weight:800 !important;
    line-height:1 !important;
  }

  /* hamburger: exactly 3 clean bars (cdi-app added ::before/::after = 5-6 bars) */
  .hamburger::before,
  .hamburger::after{ content:none !important; display:none !important; }
  .hamburger span{ width:18px !important; }
  .hamburger span:nth-child(2){ width:18px !important; margin:0 !important; align-self:center !important; }

  /* breathing room: 20px side padding instead of 12px */
  .cw{ width:calc(100% - 40px) !important; }
  body:not(.admin-body) .container{ width:calc(100% - 40px) !important; }
  .hl{ padding-left:20px !important; padding-right:20px !important; }

  /* dead band between quick tiles and "How it works": hide the logo
     marquee on mobile and tighten the section paddings around it */
  .marq{ display:none !important; }
  .aeo-sec{ padding-bottom:36px !important; }

  /* segmented pills go full-width in the stacked mobile search */
  .hero-search .hs-pills{ width:100%; }
  .hero-search .hs-pill span{ padding:11px 8px; font-size:13.5px; }
}

/* ---------- 8. Instructor band: proof rail beside the pricing card ----------
   Fills the empty right side of the "list your profile" section with
   live platform stats (only rendered when real data exists) and
   truthful value-prop cards, styled to match the dark pricing card. */
.ib-right{
  display:flex;
  gap:16px;
  align-items:stretch;
  justify-content:flex-end;
}
.ib-proof{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:256px;
  flex-shrink:0;
}
.ibp-stat{
  background:linear-gradient(160deg, #0C1F38, #10273F);
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  padding:16px 18px;
  box-shadow:0 12px 30px rgba(7,20,38,.22);
}
.ibp-stat b{
  display:block;
  font-size:26px;
  font-weight:800;
  letter-spacing:-.03em;
  color:#fff;
  line-height:1;
}
.ibp-stat span{
  display:block;
  margin-top:5px;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.02em;
  color:rgba(255,255,255,.55);
}
.ibp-card{
  flex:1;
  display:flex;
  gap:11px;
  align-items:flex-start;
  background:rgba(12,31,56,.92);
  border:1px solid rgba(255,255,255,.09);
  border-radius:16px;
  padding:14px 16px;
  box-shadow:0 12px 30px rgba(7,20,38,.22);
}
.ibp-ic{
  width:30px; height:30px;
  flex-shrink:0;
  border-radius:9px;
  background:rgba(65,188,244,.14);
  border:1px solid rgba(65,188,244,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}
.ibp-card b{
  display:block;
  font-size:13px;
  font-weight:750;
  color:#fff;
  letter-spacing:-.01em;
  margin-bottom:3px;
}
.ibp-card p{
  font-size:11.5px !important;
  line-height:1.5 !important;
  color:rgba(255,255,255,.55) !important;
  margin:0 !important;
}
@media (max-width:1180px){
  .ib-proof{ display:none; }
  .ib-right{ justify-content:center; }
}

/* ---------- 9. Ask AI chat panel ----------
   Panel was inline-styled display:none while the JS toggled a class —
   plus the JS selectors never matched the markup, so the button was
   dead. Rebuilt: desktop floating card, mobile bottom sheet. */
.chat-overlay{
  position:fixed; inset:0; z-index:500;
  background:rgba(4,11,24,.45);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease;
}
.chat-overlay.open{ opacity:1; pointer-events:auto; }
.chat-panel{
  position:fixed; bottom:84px; right:16px; z-index:501;
  width:360px; max-width:calc(100vw - 32px);
  background:#fff; border-radius:20px;
  box-shadow:0 24px 64px rgba(4,11,24,.3);
  overflow:hidden;
  display:flex; flex-direction:column;
  opacity:0; pointer-events:none;
  transform:translateY(12px) scale(.98);
  transition:opacity .2s ease, transform .2s ease;
}
.chat-panel.open{ opacity:1; pointer-events:auto; transform:none; }
.chat-head{
  background:var(--navy, #0B1F3D);
  padding:14px 16px;
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0;
}
.chat-head-title{ display:flex; align-items:center; gap:8px; color:#fff; font-size:14px; font-weight:700; }
.chat-dot{ width:8px; height:8px; border-radius:50%; background:var(--green, #00B074); }
.chat-close{
  width:30px; height:30px; border-radius:9px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14);
  color:#fff; font-size:17px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.chat-msgs{
  height:300px; overflow-y:auto; padding:16px;
  display:flex; flex-direction:column; gap:10px;
  background:#F7FAFD;
}
.chat-bubble{
  max-width:85%;
  padding:10px 14px;
  border-radius:16px;
  font-size:13.5px; line-height:1.55;
}
.chat-bubble.bot{
  align-self:flex-start;
  background:#fff; color:#22334B;
  border:1px solid #E5EDF5;
  border-bottom-left-radius:6px;
  box-shadow:0 2px 8px rgba(12,31,56,.05);
}
.chat-bubble.user{
  align-self:flex-end;
  background:var(--navy, #0B1F3D); color:#fff;
  border-bottom-right-radius:6px;
}
.chat-links{ display:flex; flex-wrap:wrap; gap:6px; align-self:flex-start; max-width:90%; }
.chat-links a{
  display:inline-flex;
  padding:8px 13px;
  border-radius:999px;
  background:#EAF3FC;
  border:1px solid #CFE3F5;
  color:#1B62C4 !important;
  font-size:12.5px; font-weight:700;
  text-decoration:none;
}
.chat-links a:active{ background:#DBEBFA; }
.chat-typing{ align-self:flex-start; display:flex; gap:4px; padding:12px 14px; background:#fff; border:1px solid #E5EDF5; border-radius:16px; border-bottom-left-radius:6px; }
.chat-typing i{ width:6px; height:6px; border-radius:50%; background:#9FB4CB; animation:chatDot 1s infinite; }
.chat-typing i:nth-child(2){ animation-delay:.15s; }
.chat-typing i:nth-child(3){ animation-delay:.3s; }
@keyframes chatDot{ 0%,100%{ opacity:.35; transform:translateY(0);} 50%{ opacity:1; transform:translateY(-3px);} }
.chat-chips{
  display:flex; flex-wrap:wrap; gap:6px;
  padding:0 14px 10px; background:#F7FAFD;
  flex-shrink:0;
}
.chat-chips:empty{ padding:0; }
.chat-chip{
  padding:9px 14px;
  border-radius:999px;
  background:#fff;
  border:1.5px solid #DCE7F2;
  color:#22334B;
  font-size:12.5px; font-weight:700;
  font-family:inherit;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease;
}
.chat-chip:active{ background:#EAF3FC; border-color:#9CC4EA; }
.chat-inputbar{ padding:10px; border-top:1px solid #E5EDF5; background:#fff; flex-shrink:0; }
.chat-inputbar form{ display:flex; gap:8px; }
.chat-inputbar input{
  flex:1; min-width:0;
  border:1.5px solid #DCE7F2; border-radius:999px;
  padding:11px 16px; font-size:14px; font-family:inherit;
  outline:none;
}
.chat-inputbar input:focus{ border-color:#2F80ED; }
.chat-send{
  width:42px; height:42px; flex-shrink:0;
  border-radius:50%; border:none;
  background:var(--green, #00B074); color:#fff;
  font-size:15px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
@media (max-width:600px){
  .chat-panel{
    right:0; left:0; bottom:0;
    width:100%; max-width:100%;
    border-radius:20px 20px 0 0;
    transform:translateY(24px);
  }
  .chat-panel.open{ transform:none; }
  .chat-msgs{ height:min(46vh, 380px); }
  .chat-inputbar input{ font-size:16px; } /* prevents iOS zoom-on-focus */
}

/* ============================================================
   10. MOBILE-FIRST POLISH PASS 2
   ============================================================ */

/* ---------- 10a. Sane mobile typography (kills the giant fonts) ----------
   cdi-app.css forces h1 up to 46px / 10vw on phones, which made the
   terms page, blog and tables look blown up. Recalibrated. */
@media (max-width:760px){
  body:not(.admin-body) h1{ font-size:clamp(25px,6.6vw,32px) !important; line-height:1.12 !important; letter-spacing:-.035em !important; }
  body:not(.admin-body) h2{ font-size:clamp(20px,5.4vw,25px) !important; line-height:1.16 !important; letter-spacing:-.03em !important; }
  body:not(.admin-body) h3{ font-size:17px !important; line-height:1.25 !important; }
  body:not(.admin-body) p,
  body:not(.admin-body) li{ font-size:14.5px !important; line-height:1.62 !important; }
}

/* ---------- 10b. Legal / long-form pages (terms, privacy) ---------- */
.cdi-premium .dcard{ font-size:14.5px !important; line-height:1.72 !important; }
.cdi-premium .dcard h2{ font-size:19px !important; margin:26px 0 10px !important; }
.cdi-premium .dcard h3{ font-size:16px !important; margin:20px 0 8px !important; }
.cdi-premium .dcard p{ margin-bottom:12px !important; }

/* ---------- 10c. One CTA colour system ----------
   Primary action = brand blue. Light-sky buttons are retired. */
.btn-sky,
a.btn-sky,
.cta-blue{
  background:#2F80ED !important;
  color:#fff !important;
  border-color:#2F80ED !important;
}
.btn-sky:hover{ background:#1C6BD9 !important; color:#fff !important; }
.btn-ghost-sky{
  background:transparent !important;
  color:#fff !important;
  border:1.5px solid rgba(255,255,255,.35) !important;
}
.btn-ghost-sky:hover{ border-color:#fff !important; }
/* big CTAs: never let text blow out of the pill on phones */
@media (max-width:760px){
  .btn,
  .btn-lg{
    font-size:13.5px !important;
    line-height:1 !important;
    white-space:nowrap !important;   /* CTAs are always ONE line */
    padding:13px 18px !important;
    text-align:center;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* ---------- 10d. Tables: compact, scrollable, premium ---------- */
@media (max-width:760px){
  .cdi-premium table th{ font-size:10.5px !important; padding:10px 12px !important; letter-spacing:.06em; }
  .cdi-premium table td{ font-size:13px !important; padding:11px 12px !important; line-height:1.45 !important; }
  .cdi-premium table td b, .cdi-premium table td strong{ font-size:13.5px !important; }
}
/* comparison table: sticky label column + smooth snap scrolling */
.ct-wrap, .cwrap, .ct-scroll{ -webkit-overflow-scrolling:touch; }
.ct th:first-child,
.ct td:first-child{
  position:sticky; left:0; z-index:3;
  background:#F7FAFD;
  box-shadow:2px 0 6px rgba(12,31,56,.06);
}
.ct thead th:first-child{ background:var(--navyd, #08182D); }
@media (max-width:760px){
  .ct{ min-width:560px; }
  .ct thead{ top:56px; }
  .ct thead th{ padding:12px 10px !important; }
}

/* ---------- 10e. Instructor / school card carousels on mobile ----------
   Cards were cut off mid-screen. Full-width snap cards instead. */
@media (max-width:760px){
  .car-cont{ padding:0 16px !important; scroll-snap-type:x mandatory; }
  .carc{
    min-width:calc(100vw - 72px) !important;
    max-width:calc(100vw - 72px) !important;
    scroll-snap-align:center;
  }
  .tcards{ grid-template-columns:1fr !important; max-width:100% !important; }
}

/* ---------- 10f. Pill form controls (auto-applied by cdi-pills.js) ---------- */
.cdi-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:6px 0 4px;
}
.cdi-pills-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.cdi-pill{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  background:#fff;
  border:1.5px solid #DCE7F2;
  color:#22334B;
  font-family:inherit;
  font-size:13.5px;
  font-weight:700;
  letter-spacing:-.01em;
  text-align:center;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease, color .12s ease, box-shadow .12s ease;
}
.cdi-pill:active{ transform:scale(.98); }
.cdi-pill.on{
  background:var(--navy, #0B1F3D);
  border-color:var(--navy, #0B1F3D);
  color:#fff;
  box-shadow:0 6px 16px rgba(11,31,61,.24);
}
.cdi-pills-hidden{
  position:absolute !important;
  width:1px !important; height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  margin:0 !important; padding:0 !important; border:0 !important;
}

/* ---------- 10g. Drawer: premium accordion behaviour ---------- */
.mobile-drawer .mmenu-chevron{
  font-size:0 !important;             /* hide the text glyph */
  width:26px; height:26px;
  border-radius:8px;
  background:#F1F6FB;
  border:1px solid #E2EAF3;
  position:relative;
  transition:transform .22s ease, background .22s ease;
  flex-shrink:0;
}
.mobile-drawer .mmenu-chevron::after{
  content:'';
  position:absolute; inset:0;
  margin:auto;
  width:7px; height:7px;
  border-right:2px solid #41546E;
  border-bottom:2px solid #41546E;
  transform:translateY(-2px) rotate(45deg);
}
.mobile-drawer .mmenu-group[open] .mmenu-chevron{
  transform:rotate(180deg);
  background:var(--navy, #0B1F3D);
  border-color:var(--navy, #0B1F3D);
}
.mobile-drawer .mmenu-group[open] .mmenu-chevron::after{ border-color:#fff; }
.mobile-drawer .mmenu-panel{ animation:mmenuIn .24s ease; }
@keyframes mmenuIn{ from{ opacity:0; transform:translateY(-4px);} to{ opacity:1; transform:none; } }
.mobile-drawer .mmenu-group[open] > summary{ color:var(--navy, #0B1F3D) !important; }

/* ---------- 10h. Forms never overflow the viewport ---------- */
@media (max-width:760px){
  .cms-grid,
  .contact-form-grid{ grid-template-columns:1fr !important; }
}
.cdi-premium form{ min-width:0; max-width:100%; }
.cdi-premium form > *{ min-width:0; }
.cdi-premium input,
.cdi-premium select,
.cdi-premium textarea{ max-width:100%; }
.cdi-pills-grid .cdi-pill{ min-width:0; white-space:normal; line-height:1.3; }

/* ============================================================
   11. PHASE 1 — LISTING STATUS FOUNDATION
   ============================================================ */

/* trust badges (featured stays a separate concept/badge) */
.lstb{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 11px; border-radius:999px;
  font-size:10.5px; font-weight:800; letter-spacing:.02em;
}
.lstb-unclaimed{ background:#F1F4F8; border:1px solid #DDE5EE; color:#5B6B80; }
.lstb-claimed{ background:#EAF3FC; border:1px solid #CFE3F5; color:#1B62C4; }
.lstb-verified{ background:#E7F7F0; border:1px solid #BFE9D6; color:#0B7D53; }
.lstb-ic{
  width:13px; height:13px; border-radius:50%;
  background:#00B074; color:#fff; font-size:8px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}

/* soft availability chips */
.avchip{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 11px; border-radius:999px;
  font-size:10.5px; font-weight:800;
}
.avchip .avdot{ width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.85; }
.avchip-green{ background:#E7F7F0; border:1px solid #BFE9D6; color:#0B7D53; }
.avchip-amber{ background:#FFF7E8; border:1px solid #F5E3BC; color:#9A6B00; }
.avchip-sky{ background:#EAF3FC; border:1px solid #CFE3F5; color:#1B62C4; }
.avchip-slate{ background:#F1F4F8; border:1px solid #DDE5EE; color:#5B6B80; }

.phero-badges{ display:flex; gap:7px; flex-wrap:wrap; margin:8px 0 2px; }

/* unclaimed transparency banner + owner claim strip */
.unclaimed-banner{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:#F1F4F8; border:1px solid #DDE5EE; border-radius:14px;
  padding:12px 16px; margin:14px 0 10px;
  font-size:13px; font-weight:600; color:#41546E;
}
.unclaimed-banner .ub-left{ display:flex; align-items:center; gap:10px; }
.unclaimed-banner .ub-ic{
  width:20px; height:20px; flex-shrink:0; border-radius:50%;
  background:#5B6B80; color:#fff; font-size:11px; font-weight:800; font-style:italic;
  display:inline-flex; align-items:center; justify-content:center;
}
.claim-strip{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:#EAF3FC; border:1px solid #CFE3F5; border-radius:14px;
  padding:13px 16px; margin:0 0 16px;
}
.claim-strip .cs-text{ font-size:13px; color:#22334B; line-height:1.5; }
.claim-strip .cs-btn{ flex-shrink:0; }
@media (max-width:640px){
  .unclaimed-banner, .claim-strip{ flex-direction:column; align-items:flex-start; }
  .claim-strip .cs-btn{ width:100%; justify-content:center; }
}

/* "Are you already listed?" finder */
.claim-finder{
  background:#fff; border:1px solid #E5EDF5; border-radius:20px;
  padding:26px 24px; box-shadow:0 12px 32px rgba(12,31,56,.07);
}
.cf-form{ display:flex; gap:10px; }
.cf-in{ flex:1; min-width:0; }
.cf-btn{ flex-shrink:0; }
@media (max-width:560px){ .cf-form{ flex-direction:column; } .cf-btn{ width:100%; justify-content:center; } }
.cf-results{ margin-top:16px; display:flex; flex-direction:column; gap:10px; }
.cf-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:#F7FAFD; border:1px solid #E5EDF5; border-radius:14px;
  padding:12px 14px;
}
.cf-name{ font-weight:800; font-size:14px; color:#0C1F38; }
.cf-meta{ font-size:12px; color:#5B6B80; margin-top:3px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
@media (max-width:560px){ .cf-row{ flex-direction:column; align-items:flex-start; } .cf-row .btn{ width:100%; justify-content:center; } }
.cf-empty{
  margin-top:16px; background:#F7FAFD; border:1px dashed #CBD8E6;
  border-radius:14px; padding:18px; font-size:13.5px; color:#41546E;
}

/* claim page listing preview */
.claim-preview{
  display:flex; align-items:center; gap:14px;
  background:#fff; border:1px solid #E5EDF5; border-radius:16px;
  padding:16px; margin:6px 0 18px;
}
.claim-preview .cp-av{
  width:52px; height:52px; border-radius:14px; flex-shrink:0;
  background:var(--navy, #0B1F3D); color:#fff;
  font-weight:800; font-size:17px;
  display:flex; align-items:center; justify-content:center;
}
.claim-preview .cp-name{ font-weight:800; font-size:15.5px; color:#0C1F38; }
.claim-preview .cp-meta{ font-size:12.5px; color:#5B6B80; margin:2px 0 6px; }

/* ---------- 11b. Claim-first layer (Phase 1.1) ---------- */
.chome-grid{ display:grid; grid-template-columns:1.25fr 1fr; gap:30px; align-items:start; }
.chome-ctas{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.chome-points{ display:flex; flex-direction:column; gap:12px; }
.chp{
  display:flex; gap:12px; align-items:flex-start;
  background:#F7FAFD; border:1px solid #E5EDF5; border-radius:14px;
  padding:13px 15px;
}
.chp-ic{
  width:32px; height:32px; flex-shrink:0; border-radius:10px;
  background:#EAF3FC; border:1px solid #CFE3F5;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.chp b{ display:block; font-size:13.5px; color:#0C1F38; margin-bottom:2px; }
.chp p{ font-size:12.5px !important; color:#5B6B80 !important; margin:0 !important; line-height:1.5 !important; }
@media (max-width:820px){ .chome-grid{ grid-template-columns:1fr; } }

.cd-towns{ display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.cd-town{
  padding:7px 13px; border-radius:999px;
  background:#fff; border:1.5px solid #DCE7F2;
  font-size:12px; font-weight:700; color:#41546E; text-decoration:none;
}
.cd-town.on{ background:var(--navy, #0B1F3D); border-color:var(--navy, #0B1F3D); color:#fff; }
.cd-claimed{ font-size:12px; color:#5B6B80; white-space:nowrap; }
.cd-claimed a{ color:#1B62C4; font-weight:700; }
.cd-pager{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:22px; }
.cd-pgnum{ font-size:12.5px; font-weight:700; color:#5B6B80; }

/* ---------- 11c. "Get listed" — premium dual-path panel ---------- */
.glsec{
  background:linear-gradient(180deg, var(--navyd, #08182D), var(--navy, #0B1F3D));
  padding:74px 0;
  position:relative;
  overflow:hidden;
}
.glsec::before{
  content:'';
  position:absolute; inset:auto -140px -220px auto;
  width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(65,188,244,.14), transparent 65%);
  pointer-events:none;
}
.gl-head{ text-align:center; max-width:660px; margin:0 auto 30px; }
.glsec .gl-title{ color:#fff !important; margin-bottom:12px !important; }
.gl-sub{ color:rgba(255,255,255,.62) !important; font-size:15px !important; line-height:1.65 !important; }
.gl-search{
  display:flex; gap:8px;
  background:#fff;
  border-radius:999px;
  padding:8px;
  max-width:640px; margin:0 auto 26px;
  box-shadow:0 20px 50px rgba(0,0,0,.32), inset 0 1px 0 #fff;
}
.gl-search input{
  flex:1; min-width:0;
  border:0; outline:none; background:transparent;
  padding:12px 18px;
  font-size:14.5px; font-family:inherit; color:#0C1F38;
}
.gl-search input::placeholder{ color:#7C8CA1; }
.gl-search .btn{ flex-shrink:0; }
.gl-paths{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  max-width:860px; margin:0 auto;
}
.gl-path{
  border-radius:20px;
  padding:26px 26px 24px;
  display:flex; flex-direction:column; align-items:flex-start;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
}
.gl-claim{ background:linear-gradient(165deg, rgba(65,188,244,.13), rgba(65,188,244,.04)); }
.gl-add{ background:linear-gradient(165deg, rgba(0,176,116,.14), rgba(0,176,116,.04)); }
.glp-eye{
  font-size:10.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  margin-bottom:10px; padding:5px 12px; border-radius:999px;
}
.gl-claim .glp-eye{ background:rgba(65,188,244,.16); color:#8FD8FA; border:1px solid rgba(65,188,244,.28); }
.gl-add .glp-eye{ background:rgba(0,176,116,.16); color:#7FE0BC; border:1px solid rgba(0,176,116,.3); }
.gl-path h3{ color:#fff !important; font-size:19px !important; margin-bottom:8px !important; letter-spacing:-.02em !important; }
.gl-path p{ color:rgba(255,255,255,.6) !important; font-size:13.5px !important; line-height:1.62 !important; margin-bottom:18px !important; flex:1; }
.glp-btn{ width:100%; justify-content:center; }
.gl-trust{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px;
  margin-top:26px;
}
.gltick{
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 15px; border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.75);
  font-size:12px; font-weight:700;
}
.gltick::before{
  content:'✓';
  width:15px; height:15px; border-radius:50%;
  background:var(--green, #00B074); color:#fff;
  font-size:8px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}
@media (max-width:760px){
  .glsec{ padding:52px 0; }
  .gl-paths{ grid-template-columns:1fr; }
  .gl-search{ flex-direction:column; border-radius:20px; padding:10px; }
  .gl-search input{ padding:12px 12px; text-align:center; }
  .gl-search .btn{ width:100%; justify-content:center; }
}

/* ============================================================
   12. INSTRUCTOR CARD — PREPLY ANATOMY
   portrait/logo · identity + icon rows + highlight · wide rail
   with big price, stats trio, tall CTAs. Green = trust colour.
   ============================================================ */
.ic{
  grid-template-columns:196px 1fr 300px !important;
  gap:0 24px;
  background:#fff !important;
  border:1px solid #E3EBF3 !important;
  border-radius:16px !important;
  padding:22px !important;
  box-shadow:0 1px 3px rgba(12,31,56,.04);
  align-items:start;
  overflow:visible !important;
  transition:box-shadow .18s ease, border-color .18s ease !important;
}
.ic:hover{ box-shadow:0 16px 40px rgba(12,31,56,.12); border-color:#CBDDEE !important; }
.ic+.ic{ margin-top:16px !important; }
.ic.featured{ border-color:rgba(0,176,116,.5) !important; box-shadow:0 4px 20px rgba(0,176,116,.10); }
.ic .ic-featured-badge{ background:var(--green, #00B074) !important; color:#fff !important; }

.ic .ic-ph{
  width:196px !important; height:196px !important;
  border-radius:12px !important;
  overflow:hidden !important;
  border:1px solid #E9F0F6;
  background:#F4F8FC;
  display:block;
}
.ic .ic-ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.ic .ic-ph-logo{ padding:18px; }
.ic .ic-ph-logo img{ object-fit:contain; }
.ic .ic-av{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:42px; font-weight:800; color:#fff;
  background:linear-gradient(150deg, var(--navy, #0B1F3D), #16385F);
}

/* middle: identity */
.ic-namerow{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.icname-link{ text-decoration:none; }
.ic .icname{ font-size:21px !important; font-weight:800 !important; letter-spacing:-.025em; color:#121F33 !important; }
.icvtick{
  width:19px; height:19px; border-radius:50%; flex-shrink:0;
  background:var(--green, #00B074); color:#fff;
  font-size:10px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}
.ic-match{
  font-size:11px; font-weight:800; color:var(--gd, #009060);
  background:var(--gm, #E6F9F3); border:1px solid rgba(0,176,116,.22);
  padding:3px 10px; border-radius:999px; white-space:nowrap;
}
.ic-creds{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:7px 0 12px; }
.ic-cred{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:#31435C; }
.ic-ci{ font-size:13px; }
.ic-dot{ color:#B7C6D6; }
.ic-creds .lstb{ font-size:10px; padding:3px 10px; }

/* icon detail rows */
.ic-rows{ display:flex; flex-direction:column; gap:7px; margin-bottom:12px; }
.ic-row{ display:flex; align-items:center; gap:9px; font-size:14px; color:#41546E; }
.ic-ri{ width:18px; text-align:center; font-size:14px; opacity:.85; }

/* single pastel highlight chip */
.ic-hl{
  display:inline-flex; align-items:center; gap:7px;
  padding:6px 13px; border-radius:9px;
  font-size:12.5px; font-weight:750;
  margin-bottom:12px;
}
.ic-hldot{ width:7px; height:7px; border-radius:50%; background:currentColor; }
.avtone-green{ background:linear-gradient(90deg,#E4F8EF,#EDFBF4); color:#0B7D53; }
.avtone-amber{ background:linear-gradient(90deg,#FFF4E0,#FFF9EC); color:#9A6B00; }
.avtone-sky{ background:linear-gradient(90deg,#E7F2FD,#F0F8FF); color:#1B62C4; }
.avtone-slate{ background:linear-gradient(90deg,#F0F4F8,#F6F9FC); color:#5B6B80; }

.ic .icsum{ font-size:14px !important; line-height:1.6 !important; color:#41546E !important; margin:0 !important; }
.ic .icsum b{ color:#121F33; }
.ic-more{ color:#121F33 !important; font-weight:750; text-decoration:underline !important; text-underline-offset:3px; white-space:nowrap; }

/* right rail */
.ic .ic-act{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:16px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  height:100%;
}
.ic-pricebox{ display:flex; flex-direction:column; align-items:flex-start; line-height:1; }
.ic .icprice{ font-size:31px !important; font-weight:800 !important; letter-spacing:-.03em; color:#121F33 !important; }
.ic .icper{ font-size:13px; font-weight:600; color:#7C8CA1; margin-top:5px; }
.ic-stats{ display:flex; gap:22px; }
.ic-stat{ display:flex; flex-direction:column; gap:3px; }
.ic-stat b{ font-size:15.5px; font-weight:800; color:#121F33; letter-spacing:-.01em; }
.ic-star{ color:var(--green, #00B074); }
.ic-stat span{ font-size:12px; color:#7C8CA1; font-weight:600; }
.ic-ctas{ display:flex; flex-direction:column; gap:9px; margin-top:auto; }
.ic-cta-main{
  width:100%; justify-content:center;
  padding:14px 18px !important;
  font-size:14.5px !important;
  border-radius:11px !important;
}
.ic-cta-ghost{
  width:100%; justify-content:center;
  padding:13px 18px !important;
  font-size:14px !important;
  border-radius:11px !important;
  background:#fff !important;
  border:1.5px solid #DCE7F2 !important;
  color:#31435C !important;
}
.ic-cta-ghost:hover{ border-color:#9FB9D4 !important; color:#121F33 !important; }
.ic-ctas .cmpchk{ align-self:flex-end; font-size:12px; color:#8CA0B6; }

/* mobile */
@media (max-width:920px){
  .ic{
    grid-template-columns:96px 1fr !important;
    grid-template-rows:auto auto !important;
    gap:14px 16px;
    padding:16px !important;
  }
  .ic .ic-ph{ width:96px !important; height:96px !important; }
  .ic .ic-av{ font-size:26px; }
  .ic .icname{ font-size:17.5px !important; }
  .ic-rows{ gap:6px; margin-bottom:10px; }
  /* ic-row: two items (transmission + location) were overflowing right edge.
     Wrap to a second line rather than clipping real info. */
  .ic-row{
    font-size:13px;
    flex-wrap:wrap !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .ic-row > *{ min-width:0; }
  .ic .ic-act{
    grid-column:1 / -1;
    border-top:1px solid #EDF3F9 !important;
    padding-top:14px !important;
    gap:13px;
  }
  .ic-price-stats, .ic-pricebox{ }
  .ic .ic-act{ flex-direction:column !important; }
  .ic-pricebox{ flex-direction:row; align-items:baseline; gap:8px; }
  .ic .icprice{ font-size:25px !important; }
  .ic-stats{ gap:18px; }
  /* ic-ctas: side-by-side buttons clipped "Send Message" on narrow screens.
     Stack vertically so both buttons are always fully visible. */
  .ic-ctas{ flex-direction:column !important; gap:8px !important; }
  .ic-ctas .btn{ flex:none !important; width:100% !important; }
  .ic-ctas .cmpchk{ display:none; }
}

/* ---------- green-infused "Get listed" panel ---------- */
.glsec::before{ background:radial-gradient(circle, rgba(0,176,116,.16), transparent 65%) !important; }
.glsec::after{
  content:'';
  position:absolute; inset:-180px auto auto -140px;
  width:440px; height:440px; border-radius:50%;
  background:radial-gradient(circle, rgba(65,188,244,.10), transparent 65%);
  pointer-events:none;
}
.gl-title .glfree{ color:var(--green, #00B074); }
.gl-search .btn{ background:var(--green, #00B074) !important; border-color:var(--green, #00B074) !important; }
.gl-search .btn:hover{ background:#009463 !important; }

/* restore true green CTAs — cdi-app.css line 3862 was force-painting
   every .btn-green blue. Green is the trust/action colour on cards,
   claim flows and the Get Listed panel. (Header nav keeps its own rule.) */
a.btn.btn-green,
.btn.btn-green,
.btn-green{
  background:var(--green, #00B074) !important;
  border-color:var(--green, #00B074) !important;
  color:#fff !important;
}
a.btn.btn-green:hover,
.btn.btn-green:hover,
.btn-green:hover{
  background:#009463 !important;
  border-color:#009463 !important;
  color:#fff !important;
}

/* ---------- 13. Homepage colour rhythm (premium alternation) ----------
   Was: FAQ dark → sky → schools dark → Get Listed dark → CTA dark.
   Now: dark → sky → LIGHT → dark hero moment → LIGHT finale → dark footer. */
.iband-light{ background:#fff !important; }
.iband-light .ibli::before{ background:var(--green, #00B074); }

/* ---------- iband mobile: ibgrid had no responsive rules so the
   two-column layout collapsed into a single misaligned left column.
   Stack to single column, centre content, and let the pricing card
   go full-width on small screens. */
@media (max-width:900px){
  .ibgrid{
    display:flex !important;
    flex-direction:column !important;
    gap:32px !important;
  }
  .ib-right{
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
  }
  .tcards{
    max-width:100% !important;
    width:100% !important;
  }
  .tc{
    max-width:100% !important;
    width:100% !important;
  }
  .ibbtns{
    flex-direction:column !important;
    gap:10px !important;
  }
  .ibbtns .btn{
    width:100% !important;
    text-align:center !important;
    justify-content:center !important;
  }
}

.cband-light{ background:#F4F8FC !important; }
.cband-light h2{ color:#0C1F38 !important; }
.cband-light p{ color:#5B6B80 !important; }
.cband-light .eye{ color:#1B62C4 !important; }
.cband-light .eye::before{ background:#1B62C4 !important; }

/* unclaimed card: owner-facing claim link under the learner CTAs */
.ic-claimlink{
  display:block;
  margin-top:4px;
  text-align:center;
  font-size:12px;
  color:#7C8CA1 !important;
  text-decoration:none;
}
.ic-claimlink b{ color:#1B62C4; }
.ic-claimlink:hover b{ text-decoration:underline; }

/* ---------- 14. Preply-grade profile page ---------- */
/* booking card in the rail */
.pbook{ text-align:left !important; }
.pb-price{ display:flex; align-items:baseline; gap:9px; margin-bottom:12px; }
.pbook .ppr{ font-size:30px !important; font-weight:800 !important; letter-spacing:-.03em; color:#121F33 !important; }
.pb-per{ font-size:13px; color:#7C8CA1; font-weight:600; }
.pb-stats{ display:flex; gap:20px; margin-bottom:16px; }
.pb-stat{ display:flex; flex-direction:column; gap:2px; }
.pb-stat b{ font-size:15px; color:#121F33; }
.pb-stat span{ font-size:11.5px; color:#7C8CA1; font-weight:600; }
.pb-main{ padding:14px 18px !important; font-size:14.5px !important; border-radius:11px !important; margin-bottom:9px; }
.pb-msg{ background:#fff !important; border:1.5px solid #DCE7F2 !important; color:#31435C !important; border-radius:11px !important; padding:13px 18px !important; }
.pb-msg:hover{ border-color:#9FB9D4 !important; color:#121F33 !important; }
.pb-note{
  display:flex; gap:8px; align-items:flex-start;
  margin-top:12px; padding:11px 13px;
  background:var(--gm, #E6F9F3); border:1px solid rgba(0,176,116,.2);
  border-radius:10px;
  font-size:12px; line-height:1.55; color:#0B6B49;
}
.pb-tick{
  width:15px; height:15px; flex-shrink:0; margin-top:1px;
  border-radius:50%; background:var(--green, #00B074); color:#fff;
  font-size:8px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}

/* hero: highlights + callouts */
.ph-highlights{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:14px 0 4px; }
.ph-hlbl{ font-size:12.5px; font-weight:800; color:#31435C; margin-right:2px; }
.ph-pill{
  padding:5px 13px; border-radius:8px;
  font-size:12px; font-weight:750;
  background:linear-gradient(90deg,#E4F8EF,#EAF3FC);
  color:#0B6B49; border:1px solid rgba(0,176,116,.16);
}
.ph-calls{ display:flex; flex-direction:column; gap:10px; margin:14px 0 6px; }
.ph-call{ display:flex; gap:11px; align-items:flex-start; }
.ph-ci{
  width:30px; height:30px; flex-shrink:0; border-radius:9px;
  background:#F2F7FB; border:1px solid #E2EBF4;
  display:flex; align-items:center; justify-content:center; font-size:14px;
}
.ph-ci-green{ background:var(--gm, #E6F9F3); border-color:rgba(0,176,116,.25); }
.ph-ci-gold{ background:#FFF6DE; border-color:#F2E2AE; color:#B8860B; }
.ph-call b{ display:block; font-size:13.5px; color:#121F33; }
.ph-call span{ font-size:12.5px; color:#5B6B80; line-height:1.5; }

/* SEO cross-link matrices (Preply-style) */
.seo-links{ background:#F4F8FC; border-top:1px solid #E6EDF4; padding:48px 0 54px; }
.sl-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:34px; }
.sl-h{ font-size:12px !important; font-weight:800 !important; letter-spacing:.12em; text-transform:uppercase; color:#7C8CA1 !important; margin-bottom:14px !important; }
.sl-col{ display:flex; flex-direction:column; }
.sl-col a{
  font-size:13.5px; font-weight:600; color:#31435C;
  text-decoration:none; padding:6px 0;
  border-bottom:1px solid transparent;
  width:fit-content;
}
.sl-col a:hover{ color:var(--gd, #009060); }
.sl-more{ color:var(--gd, #009060) !important; font-weight:800 !important; margin-top:6px; }
@media (max-width:760px){ .sl-grid{ grid-template-columns:1fr; gap:26px; } }

/* ---------- 15. Branded placeholder + Get Listed header dropdown ---------- */
.ic-avimg{ width:100%; height:100%; object-fit:cover; display:block; }
.pav-img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; }

.getlisted{ position:relative; }
.getlisted .gl-toggle{ list-style:none; cursor:pointer; user-select:none; }
.getlisted .gl-toggle::-webkit-details-marker{ display:none; }
.gl-car{ font-size:10px; margin-left:5px; transition:transform .18s ease; display:inline-block; }
.getlisted[open] .gl-car{ transform:rotate(180deg); }
.gl-pop{
  position:absolute; top:calc(100% + 10px); right:0; z-index:420;
  width:290px;
  background:#fff;
  border:1px solid #E3EBF3;
  border-radius:16px;
  box-shadow:0 22px 54px rgba(4,11,24,.22);
  padding:8px;
  animation:mmenuIn .18s ease;
}
.gl-opt{
  display:flex; gap:12px; align-items:flex-start;
  padding:12px 12px;
  border-radius:11px;
  text-decoration:none;
}
.gl-opt:hover{ background:#F4F9FD; }
.gl-oi{
  width:34px; height:34px; flex-shrink:0;
  border-radius:10px;
  background:#EAF3FC; border:1px solid #CFE3F5;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.gl-oi-green{ background:var(--gm, #E6F9F3); border-color:rgba(0,176,116,.28); }
.gl-opt b{ display:block; font-size:13.5px; color:#121F33; margin-bottom:2px; }
.gl-opt small{ font-size:12px; color:#5B6B80; line-height:1.45; display:block; }
/* keep the FAQ accordion's white-card summary rule out of this component */
.getlisted summary{ background:transparent !important; border:0 !important; box-shadow:none !important; min-height:0 !important; }
.getlisted summary.btn{ background:var(--green, #00B074) !important; }

/* ---------- 16. Profile page: sleek premium type scale ----------
   Detail pages must read denser than marketing pages. Scoped to
   .pg-profile so the homepage hero scale is untouched. */
.cdi-premium.pg-profile h1{ font-size:clamp(23px,2.4vw,29px) !important; line-height:1.15 !important; letter-spacing:-.03em !important; margin-bottom:6px !important; }
.cdi-premium.pg-profile h2{ font-size:clamp(17px,1.7vw,20px) !important; line-height:1.25 !important; letter-spacing:-.02em !important; margin-bottom:10px !important; }
.cdi-premium.pg-profile h3{ font-size:15.5px !important; margin-bottom:8px !important; }
.cdi-premium.pg-profile p, .cdi-premium.pg-profile li{ font-size:14px !important; line-height:1.68 !important; }
.pg-profile .ptab{ font-size:13px !important; padding:11px 16px !important; }
.pg-profile .sec{ padding:34px 0 !important; }
.pg-profile .prat{ font-size:14px !important; }
.pg-profile .ptopics span{ font-size:11.5px !important; padding:5px 12px !important; }
.pg-profile .sim-card strong{ font-size:13px !important; }
.pg-profile .icrole, .pg-profile .phero-sub{ font-size:13.5px !important; }

/* ---------- 17. "Driving lessons offered" (Preply specialties) ---------- */
.lo-card{ margin-top:16px; }
.lo-list{ display:flex; flex-direction:column; }
.lo-item{ border-bottom:1px solid #EDF3F9; }
.lo-item summary{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; cursor:pointer; list-style:none;
  background:transparent !important; border:0 !important; box-shadow:none !important;
  min-height:0 !important; border-radius:0 !important;
}
.lo-item summary::-webkit-details-marker{ display:none; }
.lo-name{ font-size:14px; font-weight:750; color:#121F33; }
.lo-chev{
  width:22px; height:22px; border-radius:7px; flex-shrink:0;
  background:#F2F7FB; border:1px solid #E2EBF4; position:relative;
  transition:transform .2s ease, background .2s ease;
}
.lo-chev::after{
  content:''; position:absolute; inset:0; margin:auto;
  width:6px; height:6px;
  border-right:2px solid #41546E; border-bottom:2px solid #41546E;
  transform:translateY(-1px) rotate(45deg);
}
.lo-item[open] .lo-chev{ transform:rotate(180deg); background:var(--gm, #E6F9F3); border-color:rgba(0,176,116,.3); }
.lo-item[open] .lo-chev::after{ border-color:var(--gd, #009060); }
.lo-desc{ padding:0 2px 14px; font-size:13.5px !important; color:#5B6B80 !important; line-height:1.6 !important; }
.lo-cta{ margin-top:16px; display:inline-flex; }

/* ============================================================
   18. PREMIUM SHARP PASS — geometry, breathing, leak fixes
   ============================================================ */

/* A. FAQ accordion icon must never leak into other components */
.getlisted summary::after,
.lo-item summary::after,
.cf-row summary::after{ content:none !important; display:none !important; }
.getlisted[open] summary::after{ content:none !important; }

/* D. Sharp button system: slimmer, squarer, one line, no bulk */
.btn, a.btn, button.btn{
  border-radius:12px !important;
  padding:11px 20px !important;
  font-size:13.5px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:.005em !important;
  box-shadow:none !important;
}
.btn-sm{ padding:9px 15px !important; font-size:12.5px !important; border-radius:10px !important; }
.btn-lg{ padding:13px 24px !important; font-size:14px !important; border-radius:12px !important; }
@media (max-width:760px){
  .btn, .btn-lg{ padding:12px 18px !important; font-size:13.5px !important; border-radius:12px !important; }
}
/* card + rail CTAs adopt the system (undo earlier chunky paddings) */
.ic-cta-main, .ic-cta-ghost{ padding:12px 16px !important; font-size:13.5px !important; border-radius:12px !important; }
.pb-main, .pb-msg{ padding:12px 16px !important; font-size:13.5px !important; border-radius:12px !important; }
.gl-toggle{ border-radius:12px !important; }
.lo-cta{ margin:18px 0 2px !important; }
.hs-btn, .gl-search .btn, .cf-btn{ border-radius:12px !important; }

/* C. Directory filter bar: calm native selects, never pill-jammed */
.fp form{ gap:10px !important; align-items:center; }
.fp form input[type="text"]{ min-width:0; }
select.fp-sel{
  appearance:none; -webkit-appearance:none;
  background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2341546E' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center;
  border:1.5px solid #E2EAF3; border-radius:12px;
  padding:11px 34px 11px 14px;
  font:600 13.5px/1 inherit; color:#31435C;
  flex-shrink:0; cursor:pointer;
}
select.fp-sel:focus{ outline:none; border-color:#2F80ED; }

/* E. Profile: breathing room everywhere */
.cdi-premium.pg-profile .pcard{
  padding:26px !important;
  margin-bottom:18px !important;
  border-radius:16px !important;
  box-shadow:0 1px 3px rgba(12,31,56,.05) !important;
  border:1px solid #E6EDF4 !important;
}
.cdi-premium.pg-profile .phero-grid{ gap:28px !important; }
.cdi-premium.pg-profile .tab-section{ padding-top:8px; }
.lo-item summary{ padding:15px 18px !important; }
.pb-stats{ margin-bottom:18px !important; }
.pbook{ padding:22px !important; }

/* F. Enquiry form: air between fields, clean labels, pill groups spaced */
#enquire form .ff{
  margin-bottom:12px !important;
  padding:13px 15px !important;
  font-size:14px !important;
  border-radius:12px !important;
}
#enquire .fq-lbl{
  display:block;
  font-size:10.5px; font-weight:800;
  letter-spacing:.1em; text-transform:uppercase;
  color:#8CA0B6; margin:4px 0 7px;
}
#enquire .cdi-pills{ margin:0 0 16px !important; gap:7px; }
#enquire .cdi-pill{ padding:10px 14px; font-size:13px; border-radius:11px; white-space:nowrap; }
#enquire .cdi-pills-grid{ grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); }

/* B/G. Homepage carousel photos + calmer stat tiles */
.imarq-photo{ overflow:hidden; }
.imarq-img{ width:100%; height:100%; object-fit:cover; display:block; }
.tbox{
  padding:12px 15px 12px 18px !important;
  border-radius:13px !important;
  box-shadow:0 5px 16px rgba(7,20,38,.08), inset 0 1px 0 #fff !important;
}
.tbox strong{ font-size:13.5px !important; }
.tbox span{ font-size:11px !important; }

/* sharp geometry must beat every legacy 2-class pill rule */
a.btn[class], button.btn[class],
.btn.btn-navy, .btn.btn-green, .btn.btn-sky, .btn.btn-ghost, .btn.btn-ghost-sky, .btn.btn-ghost-dark{
  border-radius:12px !important;
}
a.btn.btn-sm[class], .btn.btn-sm{ border-radius:10px !important; }

/* ---------- 19. Soft premium placeholders + calm carousel ----------
   Placeholder artwork renders as a small contained mark on a soft
   tile — never a loud full-bleed illustration. Real photos still
   fill the frame. Uniform borders across all carousel cards. */
/* is-ph fallback marker kept for onerror handling, but images render
   full-bleed like the primary photos — no contain/pad treatment. */
img.is-ph{ object-fit:cover !important; }
.imarq-card, .carc{
  border:1px solid #E6EDF4 !important;
  border-radius:16px !important;
  box-shadow:0 1px 3px rgba(12,31,56,.05) !important;
  background:#fff !important;
}
.imarq-card:hover, .carc:hover{ box-shadow:0 12px 30px rgba(12,31,56,.10) !important; }
.imarq-photo{
  border-radius:12px 12px 0 0 !important;
  border-bottom:1px solid #EDF3F9;
}
/* slimmer, quieter carousel CTA */
.imarq-cta, .imarq-card .btn, .carc .btn{
  display:block !important;
  padding:9px 16px !important;
  font-size:12.5px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1.5px solid #CFE0EF !important;
  color:#0B7D53 !important;
  font-weight:750 !important;
  margin:10px 14px 14px !important;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.imarq-cta:hover, .imarq-card .btn:hover, .carc .btn:hover{
  background:var(--green, #00B074) !important;
  border-color:var(--green, #00B074) !important;
  color:#fff !important;
}

/* ---------- 20. Get Listed header button: win the specificity war ----------
   main.css has `.nav-actions .btn-green{ background:#2F80ED !important }` from
   an older blue-CTA convention. That compound selector beats our plain
   `.btn-green` rule, so the Get Listed pill was rendering blue. Match and
   exceed its specificity here (loaded last, and more specific). */
.nav-actions .getlisted .btn-green,
.nav-actions details.getlisted summary.btn-green,
.nav-actions .gl-toggle{
  background:var(--green, #00B074) !important;
  border-color:var(--green, #00B074) !important;
  color:#fff !important;
}
.nav-actions .getlisted .btn-green:hover,
.nav-actions .gl-toggle:hover{
  background:#009463 !important;
  border-color:#009463 !important;
}

/* Popover rows: reinforce Claim = blue/info, Add = green/action, matching
   the pairing used everywhere else on the site (homepage Get Listed panel,
   drawer CTAs). */
.gl-opt:nth-child(2):hover{ background:var(--gm, #E6F9F3) !important; }
.gl-opt:nth-child(2) .gl-oi-green{ background:var(--gm, #E6F9F3); border-color:rgba(0,176,116,.3); }

/* ============================================================
   21. MOBILE: swipeable carousels instead of long vertical stacks
   Desktop/tablet grids are untouched (still real CSS grid). Below
   760px, candidate sections become horizontal scroll-snap strips
   with a peeking next-card to signal swipeability. Zero JS.
   ============================================================ */
@media (max-width:760px){
  .sg, .steps, .lg, .tboxes{
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch;
    gap:12px !important;
    padding:4px 4px 14px !important;
    margin:0 -4px !important;
    scrollbar-width:none;
  }
  .sg::-webkit-scrollbar, .steps::-webkit-scrollbar,
  .lg::-webkit-scrollbar, .tboxes::-webkit-scrollbar{ display:none; }

  .sg > *, .steps > .step, .lg > *, .tboxes > *{
    flex:0 0 auto !important;
    scroll-snap-align:center;
    width:78% !important;      /* next card peeks at the edge = swipe affordance */
    max-width:280px !important;
  }
  .tboxes > *{ width:44% !important; max-width:170px !important; }

  /* swipe hint label, auto-injected via ::before on the section wrapper */
  .sg-wrap, .steps-wrap, .lg-wrap{ position:relative; }
  .swipe-hint{
    display:flex; align-items:center; gap:6px;
    font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
    color:#7C8CA1; margin:-6px 0 12px;
  }
  .swipe-hint::before{ content:'↔'; font-size:13px; }
}

/* ---------- comparison table: keep horizontal scroll (correct pattern
   for wide tabular data) but make it feel intentional, not broken ---------- */
@media (max-width:760px){
  .ct-swipehead{
    display:flex; align-items:center; gap:6px;
    font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
    color:#7C8CA1; margin-bottom:8px;
  }
  .ct-swipehead::before{ content:'↔'; font-size:13px; }
  .ct-wrap, .cwrap{ position:relative; }
  .ct-wrap::after, .cwrap::after{
    content:'';
    position:absolute; top:0; right:0; bottom:0; width:28px;
    background:linear-gradient(to right, transparent, rgba(244,248,252,.9));
    pointer-events:none;
  }
}
@media (max-width:760px){ .swipe-hint{ display:flex !important; } }

/* ---------- 22. Profile tabs: guaranteed baseline alignment ---------- */
.prof-tabs-inner{ align-items:center !important; }
.ptab{ display:flex !important; align-items:center !important; line-height:1.2 !important; }

/* ---------- 23. FAQ accordions: consistent everywhere, homepage +/- style ----------
   20+ landing pages share the .fi/.fq/.fa classes but each page adds its own
   inline overrides (hardcoded "+" spans, ad-hoc borders/padding, no dark
   wrapper), so every page's FAQ looks different. This forces one consistent
   look sitewide without touching each page's unique markup: kills any
   redundant inline +/arrow glyphs, relies purely on the shared rotating
   ::after icon, and gives every FAQ item the same card treatment. Pages
   already inside the dark homepage-style .fqs keep that treatment
   (untouched); everywhere else gets a light-premium equivalent. */
.fi{
  border-bottom:1px solid #EDF3F9 !important;
  padding:0 !important;
  margin:0 !important;
}
.fi .fq > span, .fi .fq > i, .fi .fq > em{ display:none !important; } /* kill hardcoded inline +/arrow glyphs */
/* Base (light-context) FAQ look — applies everywhere by default. The
   existing homepage rule `.fqs .fi .fq{...}` in cdi-premium.css is MORE
   specific (three classes vs. two) so it naturally keeps winning inside
   the dark homepage section regardless of CSS load order — no :not()
   fragility needed. */
.fi .fq{
  cursor:pointer; list-style:none;
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  padding:16px 4px !important;
  font-size:14.5px !important; font-weight:700 !important;
  color:#121F33 !important;
  background:transparent !important;
}
.fi .fq::after{
  content:'+'; font-size:21px; font-weight:300;
  color:#7C8CA1; flex-shrink:0; transition:.2s;
}
.fi.o .fq::after{ transform:rotate(45deg); color:var(--green, #00B074); }
.fi.o .fq{ color:#0C1F38 !important; }
.fi .fa{
  display:none;
  font-size:13.5px !important; color:#5B6B80 !important; line-height:1.65 !important;
  padding:0 4px 16px !important;
}
.fi.o .fa{ display:block !important; }

/* Dark-context FAQ (.fqs — homepage, for-instructors, location pages):
   restore the original white text. Using !important here too, but with
   higher specificity (.fqs .fi .fq beats .fi .fq), so this correctly
   wins back over the light-mode base rule above. This is the fix for
   the "FAQ text invisible, needs to be white" regression — the light
   rule's !important was winning everywhere, including dark sections. */
.fqs .fi .fq{ color:rgba(255,255,255,.8) !important; }
.fqs .fi.o .fq{ color:#fff !important; }
.fqs .fi .fq::after{ color:rgba(255,255,255,.4) !important; }
.fqs .fi.o .fq::after{ color:var(--green, #00B074) !important; }
.fqs .fi .fa{ color:rgba(255,255,255,.55) !important; }
.fqs .fi{ border-bottom:1px solid rgba(255,255,255,.08) !important; }

/* ============================================================
   24. Mega menu — featured category card (NLG "Home Schooling"
   pattern applied to Female Instructors). A distinctly-styled
   callout inside the Locations column: bold title + description,
   with a subtle lift + arrow-slide microanimation on hover.
   ============================================================ */
.cdi-mega-feature-card{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
  padding:13px 14px;
  border-radius:14px;
  background:linear-gradient(135deg, #FDF2F8, #FCE7F3);
  border:1px solid #F9D3E5;
  text-decoration:none;
  transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease;
}
.cdi-mega-feature-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(219,39,119,.16);
  border-color:#F4A9CB;
}
.cdi-mfc-ic{
  width:34px; height:34px; flex-shrink:0;
  border-radius:10px;
  background:#fff;
  border:1px solid #F9D3E5;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:#DB2777;
  transition:transform .22s cubic-bezier(.2,.8,.2,1);
}
.cdi-mega-feature-card:hover .cdi-mfc-ic{ transform:scale(1.08) rotate(-4deg); }
.cdi-mfc-txt{ flex:1; display:flex; flex-direction:column; gap:2px; }
.cdi-mfc-txt b{ font-size:13.5px; color:#831843; font-weight:800; letter-spacing:-.01em; }
.cdi-mfc-txt small{ font-size:11.5px; color:#BE185D; opacity:.85; }
.cdi-mfc-arrow{
  font-size:15px; color:#DB2777; flex-shrink:0;
  transition:transform .22s cubic-bezier(.2,.8,.2,1);
}
.cdi-mega-feature-card:hover .cdi-mfc-arrow{ transform:translateX(4px); }

/* ============================================================
   25. MEGA MENU SYSTEM v5 — real header implementation
   Shared centered panel, drill-down for Driving Lessons, flat
   rich menus for Test Centres/Locations/For Instructors,
   spotlight card for Female Instructors, SVG arrows throughout.
   Namespaced with cdi- prefix; old .cdi-mega-v2/.location-mega-v9
   classes are now dead/unused (left in place, harmless).
   ============================================================ */
.navbtn2{
  background:none; border:0; color:rgba(255,255,255,.82);
  font:500 13.5px 'Poppins',sans-serif; padding:12px 14px; border-radius:9px;
  cursor:pointer; display:flex; align-items:center; gap:7px;
  transition:background .15s ease, color .15s ease;
}
.navbtn2:hover, .navbtn2.active{ background:rgba(255,255,255,.08); color:#fff; }
.navchev{ width:9px; height:9px; flex-shrink:0; color:currentColor; transition:transform .25s cubic-bezier(.4,0,.2,1); }
.navbtn2.active .navchev{ transform:rotate(180deg); }
.gl-toggle .navchev{ margin-left:2px; }
.getlisted[open] .navchev{ transform:rotate(180deg); }

.cdi-overlay{ position:fixed; inset:0; z-index:9800; display:none; }
.cdi-overlay.on{ display:block; }

.cdi-megawrap{ position:static; }
.cdi-mega{
  position:fixed;
  /* top is set dynamically by cdiPositionMega() in main.js */
  /* DO NOT set top here - JS calculates from nav bottom position */
  left:50%; transform:translateX(-50%) translateY(-8px);
  width:920px; max-width:calc(100vw - 32px);
  background:#fff; border-radius:20px; box-shadow:0 30px 70px rgba(4,11,24,.32);
  border:1px solid var(--line, #E6EDF4); overflow:hidden;
  opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease; display:flex;
  z-index:9950;
}
.cdi-mega.open{ opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }

.cdi-navpane{ width:58%; position:relative; background:#fff; }
.cdi-navpane::after{ content:''; position:absolute; top:0; right:0; bottom:0; width:1px; background:var(--line, #E6EDF4); }
.cdi-level{ position:relative; padding:26px 28px; display:none; flex-direction:column; }
.cdi-level.showing{ display:flex; }
.cdi-eyebrow{ display:flex; align-items:center; gap:7px; font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--green,#00B074); margin-bottom:8px; }
.cdi-eyebrow::before{ content:''; width:14px; height:2px; background:var(--green,#00B074); border-radius:2px; }
.cdi-h1{ font-size:19px; font-weight:700; letter-spacing:-.01em; color:#121F33; margin-bottom:4px; font-family:'Poppins',sans-serif; }
.cdi-sub{ font-size:12.5px; color:#5B6B80; font-weight:400; margin-bottom:18px; }
.cdi-backrow{ display:flex; align-items:center; gap:9px; margin-bottom:16px; cursor:pointer; width:fit-content; }
.cdi-backarrow{ width:28px; height:28px; border-radius:9px; background:#F1F6FB; border:1px solid var(--line,#E6EDF4); display:flex; align-items:center; justify-content:center; transition:background .15s ease, transform .15s ease; }
.cdi-backarrow svg{ width:12px; height:12px; }
.cdi-backrow:hover .cdi-backarrow{ background:#E8F1FA; transform:translateX(-2px); border-color:#CFE3F5; }
.cdi-backlbl{ font-size:12.5px; font-weight:600; color:#5B6B80; }

.cdi-catlist{ display:flex; flex-direction:column; gap:10px; }
.cdi-catgrid2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cdi-catcard{
  display:flex; align-items:center; gap:14px; padding:15px 16px; border-radius:14px;
  cursor:pointer; text-align:left; border:1px solid transparent; text-decoration:none;
  font-family:'Poppins',sans-serif; background:none; width:100%;
  transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease;
  position:relative; overflow:hidden;
}
.cdi-catcard::before{ content:''; position:absolute; inset:0; opacity:.5; transition:opacity .22s ease; }
.cdi-catcard:hover{ transform:translateY(-2px) translateX(2px); }
.cdi-catcard:hover::before{ opacity:.85; }
.cdi-cc1::before{ background:linear-gradient(120deg,#EAF3FC,#F7FBFF); }
.cdi-cc1:hover{ box-shadow:0 14px 30px rgba(47,128,237,.14); border-color:#CFE3F5; }
.cdi-cc2::before{ background:linear-gradient(120deg,#FDF2F8,#FFF7FB); }
.cdi-cc2:hover{ box-shadow:0 14px 30px rgba(219,39,119,.14); border-color:#F9D3E5; }
.cdi-cc3::before{ background:linear-gradient(120deg,#E6F9F3,#F3FCF8); }
.cdi-cc3:hover{ box-shadow:0 14px 30px rgba(0,176,116,.14); border-color:#BFE9D6; }
.cdi-cc4::before{ background:linear-gradient(120deg,#FFF7E8,#FFFBF2); }
.cdi-cc4:hover{ box-shadow:0 14px 30px rgba(217,155,0,.14); border-color:#F5E3BC; }
.cdi-cc5::before{ background:linear-gradient(120deg,#F3F0FF,#FAF9FF); }
.cdi-cc5:hover{ box-shadow:0 14px 30px rgba(124,58,237,.14); border-color:#E3D9FC; }
.cdi-cic{ position:relative; z-index:1; width:44px; height:44px; flex-shrink:0; border-radius:13px; background:#fff; display:flex; align-items:center; justify-content:center; font-size:19px; box-shadow:0 6px 16px rgba(12,31,56,.10); transition:transform .22s cubic-bezier(.2,.8,.2,1); }
.cdi-catcard:hover .cdi-cic{ transform:scale(1.1) rotate(-5deg); }
.cdi-ctxt{ position:relative; z-index:1; flex:1; display:flex; flex-direction:column; }
.cdi-ctxt b{ font-size:14px; font-weight:600; color:#121F33; margin-bottom:2px; }
.cdi-ctxt small{ font-size:11.5px; font-weight:400; color:#5B6B80; }
.cdi-cchev{ position:relative; z-index:1; margin-left:auto; color:#8CA0B6; flex-shrink:0; transition:transform .22s ease; }
.cdi-catcard:hover .cdi-cchev{ transform:translateX(4px); color:var(--blue,#2F80ED); }

.cdi-footlinks{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line,#E6EDF4); display:flex; gap:20px; }
.cdi-footlinks a{ font-size:12.5px; font-weight:600; color:var(--blue,#2F80ED); text-decoration:none; display:flex; align-items:center; gap:5px; }
.cdi-footlinks a:hover{ text-decoration:underline; }

.cdi-itemlist{ display:flex; flex-direction:column; gap:8px; }
.cdi-item{
  display:flex; align-items:center; gap:14px; padding:13px 15px; border-radius:13px;
  border:1px solid var(--line,#E6EDF4); text-decoration:none; color:inherit;
  font-family:'Poppins',sans-serif;
  transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.cdi-item:hover{ transform:translateX(3px); box-shadow:0 10px 22px rgba(12,31,56,.09); }
.cdi-iic{ width:38px; height:38px; flex-shrink:0; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:16px; transition:transform .22s cubic-bezier(.2,.8,.2,1); box-shadow:0 4px 10px rgba(12,31,56,.06); }
.cdi-item:hover .cdi-iic{ transform:scale(1.1) rotate(-5deg); }
.cdi-itxt{ flex:1; display:flex; flex-direction:column; }
.cdi-itxt b{ font-size:13.5px; font-weight:600; color:#121F33; margin-bottom:1px; }
.cdi-itxt span{ font-size:11.5px; font-weight:400; color:#5B6B80; line-height:1.4; }
.cdi-iarrow{ margin-left:auto; color:#8CA0B6; flex-shrink:0; transition:transform .22s ease; }
.cdi-item:hover .cdi-iarrow{ transform:translateX(3px); }

.cdi-tone-blue .cdi-iic{ background:#EAF3FC; color:var(--blue,#2F80ED); }
.cdi-tone-blue:hover{ border-color:#CFE3F5; background:#FAFCFF; }
.cdi-tone-green .cdi-iic{ background:#E6F9F3; color:var(--green,#00B074); }
.cdi-tone-green:hover{ border-color:#BFE9D6; background:#FAFDFB; }
.cdi-tone-amber .cdi-iic{ background:#FFF7E8; color:#B8860B; }
.cdi-tone-amber:hover{ border-color:#F5E3BC; background:#FFFDF8; }
.cdi-tone-purple .cdi-iic{ background:#F3F0FF; color:#7C3AED; }
.cdi-tone-purple:hover{ border-color:#E3D9FC; background:#FBFAFF; }

/* spotlight card — Female Instructors, real CTA button */
.cdi-spotlight{
  display:flex; gap:14px; align-items:flex-start; padding:16px; border-radius:16px;
  background:linear-gradient(135deg,#FDF2F8,#FEFAFC); border:1px solid #F9D3E5;
  transition:box-shadow .22s ease, border-color .22s ease, transform .22s cubic-bezier(.2,.8,.2,1);
}
.cdi-spotlight:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(219,39,119,.14); border-color:#F4A9CB; }
.cdi-spot-ic{ width:46px; height:46px; flex-shrink:0; border-radius:13px; background:#fff; color:#DB2777; font-size:20px; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(219,39,119,.14); transition:transform .22s cubic-bezier(.2,.8,.2,1); }
.cdi-spotlight:hover .cdi-spot-ic{ transform:scale(1.08) rotate(-5deg); }
.cdi-spot-body{ flex:1; display:flex; flex-direction:column; font-family:'Poppins',sans-serif; }
.cdi-spot-body b{ font-size:14.5px; font-weight:700; color:#831843; margin-bottom:4px; }
.cdi-spot-body > span{ font-size:12px; font-weight:400; color:#BE185D; line-height:1.55; margin-bottom:12px; }
.cdi-spot-btn{
  display:inline-flex; align-items:center; gap:7px; width:fit-content;
  background:#DB2777; color:#fff; text-decoration:none; font-size:12.5px; font-weight:600;
  padding:9px 15px; border-radius:10px; box-shadow:0 8px 18px rgba(219,39,119,.28);
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.cdi-spot-btn:hover{ background:#BE185D; transform:translateY(-1px); box-shadow:0 10px 22px rgba(219,39,119,.36); }
.cdi-spot-btn svg path{ stroke:#fff; }

/* persistent right feature panel */
.cdi-featurepane{
  width:42%; background:linear-gradient(155deg, var(--navyd,#08182D), var(--navy,#0B1F3D));
  padding:28px 26px; display:flex; flex-direction:column; position:relative; overflow:hidden;
  font-family:'Poppins',sans-serif;
}
.cdi-featurepane::before{ content:''; position:absolute; inset:auto -80px -100px auto; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle, rgba(65,188,244,.18), transparent 65%); }
.cdi-featurepane::after{ content:''; position:absolute; top:-60px; left:-60px; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, rgba(0,176,116,.14), transparent 65%); }
.cdi-ft{ position:relative; z-index:1; display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.cdi-ft span{ background:rgba(65,188,244,.16); border:1px solid rgba(65,188,244,.3); color:#8FD8FA; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:4px 11px; border-radius:999px; }
.cdi-ft b{ color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.04em; }
.cdi-featurepane h3{ position:relative; z-index:1; color:#fff; font-size:19px; font-weight:700; letter-spacing:-.01em; line-height:1.3; margin-bottom:10px; }
.cdi-featurepane p{ position:relative; z-index:1; color:rgba(255,255,255,.6); font-size:12.5px; font-weight:400; line-height:1.65; margin-bottom:18px; }
.cdi-tips{ position:relative; z-index:1; display:flex; flex-direction:column; gap:9px; margin-bottom:18px; }
.cdi-tip{ display:flex; gap:9px; align-items:flex-start; font-size:12px; color:rgba(255,255,255,.7); font-weight:400; line-height:1.5; }
.cdi-dot{ width:16px; height:16px; flex-shrink:0; border-radius:50%; background:rgba(0,176,116,.2); border:1px solid rgba(0,176,116,.4); display:flex; align-items:center; justify-content:center; margin-top:1px; }
.cdi-dot svg{ width:8px; height:8px; }
.cdi-chips{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.cdi-chip{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.85); font-size:11.5px; font-weight:500; padding:7px 13px; border-radius:999px; }
.cdi-cta{
  position:relative; z-index:1; margin-top:auto; background:var(--green,#00B074); color:#fff;
  text-align:center; font-size:13.5px; font-weight:600; padding:13px; border-radius:12px;
  text-decoration:none; box-shadow:0 10px 24px rgba(0,176,116,.28);
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.cdi-cta:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,176,116,.36); }

/* Get Listed popover: SVG arrow + refined layout */
.gl-arrow2{ margin-left:auto; color:#8CA0B6; flex-shrink:0; transition:transform .2s ease; align-self:center; }
.gl-opt:hover .gl-arrow2{ transform:translateX(3px); }
.gl-divider2{ height:1px; background:var(--line,#E6EDF4); margin:4px 8px; }

@media (max-width:1040px){
  .cdi-mega{ width:calc(100vw - 32px); }
}

/* ============================================================
   26. Get Listed → replaced with always-visible side-by-side tabs
   No dropdown, no JS dependency — nothing to fail to "open".
   Desktop: two plain buttons. Mobile: single link straight to
   /for-instructors, which already has both Claim/Add paths.
   ============================================================ */
.gl-tabs{ display:flex; align-items:stretch; gap:2px; background:rgba(255,255,255,.08); border-radius:12px; padding:3px; }
.gl-tab{
  display:flex; align-items:center; justify-content:center;
  padding:9px 16px; border-radius:9px;
  font:600 12.5px 'Poppins',sans-serif; text-decoration:none; white-space:nowrap;
  transition:background .18s ease, color .18s ease, transform .12s ease;
}
.gl-tab-claim{ color:rgba(255,255,255,.85); }
.gl-tab-claim:hover{ background:rgba(255,255,255,.1); color:#fff; }
.gl-tab-add{ background:var(--green,#00B074); color:#fff; box-shadow:0 4px 12px rgba(0,176,116,.3); }
.gl-tab-add:hover{ background:#009d68; transform:translateY(-1px); }

.nav-cta-mobile{
  display:none;
  background:var(--green,#00B074); color:#fff; text-decoration:none;
  font:600 13px 'Poppins',sans-serif; padding:9px 18px; border-radius:10px;
}
@media (max-width:900px){
  .nav-cta-mobile{ display:inline-flex; align-items:center; }
  .hide-mobile{ display:none !important; }
}

/* ============================================================
   27. MOBILE — force true 2-column pill layout (was relying on
   flex-wrap, which collapses to 1-per-row when pill text is long
   on narrow Android/iPhone widths — reported specifically on
   instructor profile highlight pills and card spec chips).
   ============================================================ */
@media (max-width:480px){
  .ph-highlights{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:7px !important;
  }
  .ph-hlbl{ grid-column:1 / -1; margin-bottom:2px; }
  .ph-pill{
    display:flex; align-items:center; justify-content:center;
    text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    padding:7px 8px !important; font-size:11px !important;
  }
  .ptopics{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:6px !important;
  }
  .ptopics span{
    display:flex; align-items:center; justify-content:center;
    text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    padding:6px 8px !important; font-size:10.5px !important;
  }
  .ic-rows{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:6px !important; }
}

/* ============================================================
   28. Auto-scrolling carousels (no jerk) — homepage sections that
   were finger-swipe-only now gently auto-advance too. Pauses on
   touch/hover and resumes after a pause, so it never fights the
   user. Pure progressive enhancement: if JS fails, plain swipe
   still works exactly as before.
   ============================================================ */

/* ============================================================
   29. Driving schools filter bar - was crammed into the 99px-radius
   .mps "simple search pill" component (designed for one input + one
   button), which is why it read as thick/clunky with 3 selects +
   checkbox + button stuffed inside. Calm rounded-rect bar instead,
   reusing the same .fp-sel native select styling already proven on
   the main /driving-instructors directory.
   ============================================================ */
.schfilter{
  background:#fff; border:1px solid var(--line, #E6EDF4); border-radius:16px;
  padding:14px 16px; display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  box-shadow:0 4px 20px rgba(7,20,38,.08); max-width:900px;
}
.schfilter input[type="text"]{
  flex:1 1 180px; min-width:0;
  border:1.5px solid var(--line, #E6EDF4); border-radius:12px;
  padding:11px 14px; font-size:13.5px; font-family:inherit; outline:none;
}
.schfilter input[type="text"]:focus{ border-color:var(--blue,#2F80ED); }
.schfilter label{ flex-shrink:0; }
.schfilter .btn{ flex-shrink:0; }
@media (max-width:760px){
  .schfilter{ flex-direction:column; align-items:stretch; border-radius:14px; }
  .schfilter select.fp-sel, .schfilter input[type="text"]{ width:100%; }
  .schfilter .btn{ width:100%; justify-content:center; }
}

/* ============================================================
   30. MOBILE HOMEPAGE — comprehensive spacing + carousel pass
   ============================================================ */

/* A) The master bug: .is-mobile .sec{} override NEVER fires because
   nothing in the codebase ever adds .is-mobile to any element — every
   phone has been getting the full 72px desktop section padding this
   whole time (144px dead space at every section boundary). Real
   media-query override instead, applied to every section wrapper. */
@media (max-width:760px){
  .sec{ padding:30px 0 !important; }
  .aeo-sec{ padding:22px 0 0 !important; }
  .marq{ padding:10px 0 !important; }
}

/* B) Hero mini tiles (Manual/Automatic/ADI-PDI): were a cramped 3-col
   grid forcing horizontal overflow past the hero's right padding.
   Same slim auto-scroll carousel treatment as the other tile strips. */
@media (max-width:760px){
  .tboxes{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto !important; scroll-snap-type:x mandatory !important;
    gap:8px !important; padding:2px 2px 4px !important; margin:0 !important;
  }
  .tboxes::-webkit-scrollbar{ display:none; }
  .tbox{
    flex:0 0 auto !important; scroll-snap-align:start;
    width:auto !important; min-width:112px;
    padding:9px 14px !important; border-radius:11px !important;
  }
  .tbox strong{ font-size:12.5px !important; }
  .tbox span{ font-size:10px !important; }
}

/* C) At-a-glance stats: 5 items — use 2-col grid so cards fill evenly.
   Last card spans both columns so no orphaned blank cell appears. */
@media (max-width:760px){
  .aeo-stats{ grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
  .aeo-stat{ padding:12px 10px !important; }
  .aeo-stat strong{ font-size:18px !important; }
  .aeo-stat span{ font-size:11px !important; line-height:1.3; }
  .aeo-stat:last-child:nth-child(odd){ grid-column:1 / -1; max-width:50%; margin:0 auto; }
}

/* D) Featured instructor marquee: 40s per cycle read as sluggish.
   Faster loop, still smooth and pausable on touch. */
.imarq-track{ animation-duration:20s !important; }

/* E) Placeholder image inside the marquee card was full-bleed with
   zero breathing room top/bottom. Real photos stay full-bleed cover;
   only the branded placeholder gets padding + contain. */
.imarq-photo img.is-ph{
  object-fit:contain !important;
  padding:22px 28px !important;
  background:linear-gradient(155deg,#F4F8FC,#E9F1F8) !important;
}

/* F) Location tiles: 4 stacked lines made each card too tall and
   forced awkward one-per-screen swiping. Slimmer horizontal layout —
   name + one condensed stat line — on mobile only. */
@media (max-width:760px){
  .lg{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto !important; scroll-snap-type:x mandatory !important;
    gap:10px !important; padding:2px 2px 6px !important;
  }
  .lg::-webkit-scrollbar{ display:none; }
  .lc{
    flex:0 0 auto !important; scroll-snap-align:center;
    width:76% !important; max-width:250px !important;
    flex-direction:row !important; align-items:center !important;
    flex-wrap:wrap !important; gap:2px 10px !important;
    padding:13px 15px !important;
  }
  .lct{ font-size:14px !important; flex:1 1 100%; }
  .lcc{ font-size:11px !important; }
  .lcf{ font-size:11px !important; }
  .lca{ margin-top:0 !important; margin-left:auto; font-size:11px !important; }
}

/* G) Dot indicators for auto-scrolling strips (added by JS below) */
.cdi-dots{
  display:flex; justify-content:center; gap:6px; margin-top:10px;
}
.cdi-dots .cdi-dotm{
  width:6px; height:6px; border-radius:50%;
  background:#D6E3F0; transition:background .25s ease, transform .25s ease;
}
.cdi-dots .cdi-dotm.on{ background:var(--green,#00B074); transform:scale(1.3); }

/* ============================================================
   31. "WHY COMPARE BEFORE BOOKING" section — mobile carousel
   The section uses an inline style: display:grid;grid-template-columns:repeat(3,1fr)
   so the 3 cards never collapsed on mobile: card 3 orphaned bottom-left,
   cards too tall/clunky. Convert to slim swipeable horizontal strip.
   ============================================================ */
@media (max-width:760px){
  .services-grid{
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:12px !important;
    padding:4px 4px 12px !important;
    margin:0 -4px !important;
  }
  .services-grid::-webkit-scrollbar{ display:none; }
  .services-grid > .svc{
    flex:0 0 auto !important;
    scroll-snap-align:center;
    width:72% !important;
    max-width:260px !important;
    /* slimmer cards — reduce the huge vertical padding */
    padding:16px !important;
  }
  /* Make the card icon + heading + body more compact */
  .services-grid > .svc .svc-ic{
    width:40px !important; height:40px !important;
    font-size:20px !important;
    border-radius:12px !important;
    margin-bottom:10px !important;
  }
  .services-grid > .svc h3{
    font-size:15px !important;
    margin-bottom:6px !important;
  }
  .services-grid > .svc p{
    font-size:12.5px !important;
    line-height:1.45 !important;
  }
}

/* ============================================================
   32. RELATED SEARCHES — /driving-instructors page sidebar
   Raw <a> links were stacking as a single column of full-width
   blocks with no visual treatment. Convert to a wrap of compact
   pill links that flow naturally and look intentional.
   Target the section by its heading text proximity — use the
   .seo-links wrapper or .sl-col if present; otherwise scope
   with a dedicated class the PHP should add (see note below).
   ============================================================ */

/* If the related searches section uses .seo-links > .cw already */
.seo-links .sl-col a{
  display:inline-flex !important;
  align-items:center;
  padding:8px 16px !important;
  background:#F0F5FA !important;
  border:1px solid #DDE8F2 !important;
  border-radius:999px !important;
  font-size:12.5px !important;
  font-weight:700 !important;
  color:#31435C !important;
  white-space:nowrap;
  border-bottom:none !important;
  transition:background .15s ease, border-color .15s ease;
}
.seo-links .sl-col a:hover{
  background:#E2EEF8 !important;
  border-color:#AECDE8 !important;
  color:var(--gd, #009060) !important;
}
.seo-links .sl-col{
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:8px !important;
}

/* Mobile: sl-grid was 3-col → single col stack. Make it 1 col of
   wrapped pill rows instead so it reads as a tag cloud not a list. */
@media (max-width:760px){
  .seo-links{ padding:28px 0 32px !important; }
  .sl-grid{ grid-template-columns:1fr !important; gap:20px !important; }
  .sl-h{ margin-bottom:10px !important; }
  .seo-links .sl-col{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    gap:7px !important;
  }
  .seo-links .sl-col a{
    font-size:12px !important;
    padding:7px 14px !important;
  }
}

/* ============================================================
   33. fm-hero-pills — /for-instructors page stat cards
   On mobile the hero grid collapses to 1 col but fm-hero-pills
   kept repeat(3,1fr). With 4 items: 3 in row 1, 1 orphaned
   bottom-left, right half totally empty. Fat tall cards with
   too much padding made them look broken and oversized.
   Fix: 2×2 grid with slimmer cards. Hero grid hides the right
   panel (dashboard mockup) so collapse that too.
   ============================================================ */
@media (max-width:760px){
  /* Collapse the 2-col hero layout to single column */
  .fm-hero-grid{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }
  /* Hide the right-side dashboard mockup — too complex for mobile */
  .fm-dashboard-card{
    display:none !important;
  }
  /* Search card: stack inputs vertically */
  .fm-search-card{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:12px !important;
    border-radius:18px !important;
  }
  /* 2×2 grid for 4 stat pills — no orphan, balanced layout */
  .fm-hero-pills{
    grid-template-columns:repeat(2, 1fr) !important;
    gap:8px !important;
    max-width:100% !important;
    margin-top:14px !important;
  }
  /* Slimmer, less imposing cards */
  .fm-hero-pills div{
    padding:10px 12px !important;
    border-radius:12px !important;
  }
  .fm-hero-pills strong{
    font-size:13px !important;
    line-height:1.2 !important;
  }
  .fm-hero-pills span{
    font-size:10.5px !important;
    margin-top:3px !important;
  }
  /* Hero heading tighter on mobile */
  .fm-hero h1{
    font-size:clamp(30px,8vw,42px) !important;
    letter-spacing:-.04em !important;
    margin:14px 0 10px !important;
  }
  .fm-hero p{
    font-size:15px !important;
  }
  .fm-hero{
    padding:28px 0 36px !important;
  }
}

/* ============================================================
   34. HERO SLIDESHOW — illustration background overlays
   Each .slide now contains a real SVG illustration instead of
   a tiny inline icon. Positioned to fill the upper portion of
   the card with a strong bottom fade keeping text readable.
   ============================================================ */
.slide-illus{
  position:absolute;
  top:-5%;
  right:-5%;
  width:95%;
  height:78%;
  object-fit:contain;
  object-position:center top;
  pointer-events:none;
  user-select:none;
  opacity:.32;
  /* subtle scale breathe */
  animation:illustDrift 10s ease-in-out infinite alternate;
  transform-origin:center top;
}

@keyframes illustDrift{
  0%  { transform:scale(1)    translateY(0);   }
  100%{ transform:scale(1.04) translateY(-8px); }
}

/* Strengthen the bottom gradient in .sov so text always pops
   regardless of which illustration sits behind it */
.sov{
  background:linear-gradient(
    to top,
    rgba(7,20,38,.97) 0%,
    rgba(7,20,38,.85) 38%,
    rgba(7,20,38,.45) 62%,
    rgba(7,20,38,.0)  100%
  ) !important;
}

/* ============================================================
   35. SAVED FAVOURITES — instructor cards
   Save button on each card, persisted to localStorage.
   ============================================================ */
.ic-cta-row2{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:6px;
}
.ic-save-btn{
  background:none;
  border:1.5px solid var(--line);
  border-radius:99px;
  padding:5px 12px;
  font-size:12.5px;
  font-weight:700;
  color:var(--slate);
  cursor:pointer;
  font-family:inherit;
  display:flex;
  align-items:center;
  gap:5px;
  transition:border-color .15s,color .15s,background .15s;
}
.ic-save-btn:hover{
  border-color:var(--red,#E5484D);
  color:var(--red,#E5484D);
}
.ic-save-btn.saved{
  border-color:var(--red,#E5484D);
  background:rgba(229,72,77,.08);
  color:var(--red,#E5484D);
}
.ic-save-btn.saved .ic-save-ic{ content:'♥'; }
.ic-save-ic{ font-size:14px; }
/* ============================================================
   CDI Mobile-First Global Fix
   Loaded via header.php <style> block
   Fixes: tables, grids, fixed widths, tap targets, spacing
   ============================================================ */

/* ── 1. Tables — always scrollable on mobile ── */
.table-wrap,
.upg-credit-log,
.admin-table-wrap,
.rpt-table-wrap,
.ct-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
  border: 1px solid var(--line, #E6E9EE);
}

/* Wrap ALL bare tables automatically */
table {
  min-width: 100%;
  border-collapse: collapse;
}

/* Admin tables */
.admin-table,
.rpt-table,
.upg-table,
.ct {
  min-width: 560px; /* forces scroll on mobile rather than squishing */
  width: 100%;
}

.admin-table th,
.admin-table td,
.rpt-table th,
.rpt-table td,
.upg-table th,
.upg-table td {
  padding: 10px 14px;
  font-size: 13px;
  white-space: nowrap;
  text-align: left;
  border-bottom: 1px solid var(--line, #E6E9EE);
}

.admin-table th,
.rpt-table th,
.upg-table th {
  font-size: 11px;
  font-weight: 700;
  color: var(--slate, #5B6072);
  text-transform: uppercase;
  letter-spacing: .05em;
  background: var(--mist, #F5F7FA);
}

/* ── 2. Content page grids → stack on mobile ── */
@media (max-width: 768px) {

  /* Any inline max-width on section containers should be 100% on mobile */
  .cw [style*="max-width"],
  section [style*="max-width"],
  .sec [style*="max-width"] {
    max-width: 100% !important;
    width: 100% !important;
  }

  /* Content grids */
  [style*="grid-template-columns"],
  .info-grid,
  .feat-grid,
  .cms-grid,
  .two-col,
  .three-col,
  .four-col,
  .stats-grid,
  .cards-grid,
  .features-grid,
  .benefits-grid,
  .pros-cons,
  .content-grid,
  .tc-grid,
  .cdi-stats-grid,
  .comp-grid,
  .rpt-grid,
  .upg-boost-grid,
  .upg-packs {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Keep 2-col for small items like pill grids */
  .rg-type-grid,
  .mmenu-grid,
  .filter-pills {
    grid-template-columns: 1fr 1fr !important;
  }

  /* Tables — horizontal scroll on mobile */
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }

  /* But comparison table cells should wrap text */
  .ct td, .ct th {
    white-space: normal;
    min-width: 120px;
  }

  /* Fixed widths → fluid on mobile */
  [style*="width:860px"],
  [style*="width:820px"],
  [style*="width:780px"],
  [style*="width:760px"],
  [style*="width:720px"],
  [style*="width:680px"],
  [style*="width:640px"],
  [style*="width:620px"],
  [style*="width:600px"],
  [style*="width:580px"],
  [style*="width:560px"] {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Sections full width */
  .sec, .section, section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Typography scale down */
  h1 { font-size: clamp(24px, 7vw, 40px) !important; }
  h2 { font-size: clamp(20px, 5.5vw, 32px) !important; }
  h3 { font-size: clamp(17px, 4.5vw, 24px) !important; }

  /* Hero sections */
  .hero-block,
  .cdi-hero,
  .saas-hero,
  .page-hero {
    padding: 40px 16px !important;
    text-align: center;
  }

  /* CTA buttons full width on mobile */
  .hero-ctas, .cdi-hero-ctas, .cta-row, .btn-row {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .hero-ctas .btn,
  .cdi-hero-ctas .btn,
  .cta-row .btn,
  .btn-row .btn,
  .hero-ctas a,
  .cdi-hero-ctas a {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* Instructor search form */
  .search-form,
  .cdi-search-bar,
  .hero-search {
    flex-direction: column !important;
    gap: 10px !important;
  }

  .search-form select,
  .search-form input,
  .cdi-search-bar input,
  .cdi-search-bar select {
    width: 100% !important;
  }

  /* Stat boxes — 2 col on mobile */
  .stat-boxes,
  .kpi-grid,
  .stats-row {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  /* Dashboard cards */
  .dash-card {
    padding: 16px !important;
  }

  /* Instructor card full width */
  .ic, .instructor-card {
    width: 100% !important;
  }

  /* Tap targets minimum 44px */
  button,
  .btn,
  a.btn,
  input[type="submit"],
  input[type="button"],
  select,
  .pill,
  .filter-pill,
  .rg-toggle-pill,
  .spec-chip {
    min-height: 44px !important;
  }

  /* Nav top bar utility row readable on small screens */
  .cdi-util-bar,
  .topbar-info {
    display: none !important; /* hide on very small — shown on tablet+ */
  }

  /* Upgrade page credit packs */
  .upg-packs,
  .credit-pack-grid {
    grid-template-columns: 1fr !important;
  }

  /* Boost options */
  .upg-boost-grid {
    grid-template-columns: 1fr !important;
  }

  /* Dashboard availability grid */
  .av-grid {
    font-size: 11px !important;
  }

  .av-grid th,
  .av-grid td {
    padding: 6px 4px !important;
    font-size: 11px !important;
  }
}

/* ── 3. Tablet adjustments (769px–1024px) ── */
@media (min-width: 769px) and (max-width: 1024px) {

  .three-col,
  .four-col,
  .features-grid,
  .cards-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .cdi-stats-grid,
  .stats-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── 4. Table scroll indicator on mobile ── */
@media (max-width: 768px) {
  .table-scroll-hint {
    display: block;
    font-size: 11.5px;
    color: var(--slate, #5B6072);
    margin-bottom: 6px;
    text-align: right;
  }
  .table-scroll-hint::before {
    content: '← scroll →';
    font-weight: 600;
  }
}

@media (min-width: 769px) {
  .table-scroll-hint { display: none; }
}

/* ── 5. Admin tables — always scrollable ── */
.adm-content table,
.admin-table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  border-radius: 8px;
}

/* ── 6. Contact / content page tables ── */
.content-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.content-table th,
.content-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--line, #E6E9EE);
  text-align: left;
}

.content-table th {
  background: var(--mist, #F5F7FA);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--slate, #5B6072);
}

/* ── 7. Dashboard mobile sidebar — already handled by dsb-wrap ── */
/* ── 8. Remove scroll on body when mobile drawer open ── */
body.drawer-open {
  overflow: hidden !important;
}

/* ── 9. Make upgrade payment note readable ── */
.upg-payment-note {
  font-size: 13.5px;
  line-height: 1.6;
}

/* ── 10. Comparison table on mobile → card layout ── */
@media (max-width: 600px) {
  .ct {
    display: block;
    min-width: unset;
  }

  .ct thead { display: none; }

  .ct tr {
    display: block;
    margin-bottom: 16px;
    border: 1px solid var(--line, #E6E9EE);
    border-radius: 12px;
    overflow: hidden;
  }

  .ct td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-bottom: 1px solid var(--line, #E6E9EE);
    white-space: normal;
    font-size: 13.5px;
  }

  .ct td:last-child {
    border-bottom: none;
  }
}

/* ============================================================
   MOBILE-FIRST GLOBAL FIXES — appended to cdi-fixes.css
   Fixes all responsive issues across every page without
   touching individual PHP files. Mobile-first approach.
   ============================================================ */

/* ── 1. Tables — responsive wrapper everywhere ── */
table,
table.ct,
.table-wrap table,
.cms-table table {
  width: 100% !important;
  min-width: 0 !important;
  border-collapse: collapse;
}

/* Scrollable table wrapper — prevents horizontal page scroll */
table.ct,
.cms-section table,
.dcard table,
.cdi-section table,
section table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

table.ct thead,
table.ct tbody,
table.ct tr {
  min-width: 0;
}

/* Table cells — readable on mobile */
table th,
table td {
  font-size: 13px !important;
  padding: 10px 12px !important;
  white-space: normal !important;
  min-width: 80px;
}

table th:first-child,
table td:first-child {
  min-width: 100px;
}

/* ── 2. Fixed widths → fluid ── */
@media (max-width: 768px) {
  /* Any inline width over 500px becomes 100% */
  [style*="width:600px"],
  [style*="width:700px"],
  [style*="width:800px"],
  [style*="width:900px"],
  [style*="width:1000px"],
  [style*="width: 600px"],
  [style*="width: 700px"],
  [style*="width: 800px"],
  [style*="max-width:600px"],
  [style*="max-width:700px"],
  [style*="max-width:800px"],
  [style*="max-width:900px"] {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* ── 3. Grids → single column ── */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* Two-column grids on content pages */
  .dcard > div[style*="display:grid"],
  .cms-section > div[style*="display:grid"],
  section > div[style*="display:grid"] {
    grid-template-columns: 1fr !important;
  }

  /* ── 4. Content page hero sections ── */
  .cdi-hero,
  .page-hero,
  .hero-block {
    padding: 28px 16px !important;
  }

  .cdi-hero h1,
  .page-hero h1,
  .hero-block h1 {
    font-size: clamp(24px, 7vw, 38px) !important;
    line-height: 1.15 !important;
  }

  /* ── 5. Section cards → full-width ── */
  .dcard,
  .cdi-section,
  .cms-section,
  .content-card {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 18px !important;
    border-radius: 14px !important;
  }

  /* ── 6. Dashboard stats grid → 2 cols on mobile ── */
  .dsb-stats-grid,
  .ph1-stat-grid,
  .dash-stat-row {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }

  .dash-stat b {
    font-size: 22px !important;
  }

  /* ── 7. Dashboard sidebar → hide on mobile (we have topbar) ── */
  .dsb-sidebar,
  .adm-sidebar {
    display: none !important;
  }

  .dsb-wrap,
  .adm-wrap {
    grid-template-columns: 1fr !important;
  }

  .dsb-content,
  .adm-content {
    padding: 14px !important;
  }

  /* ── 8. Checklist items → stack ── */
  .ph1-ci {
    padding: 12px 14px !important;
    gap: 10px !important;
  }

  .ph1-ci strong {
    font-size: 13px !important;
  }

  /* ── 9. Availability grid → scrollable ── */
  .availability-matrix {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* ── 10. Dashboard topbar ── */
  .dsb-topbar,
  .adm-topbar {
    padding: 0 14px !important;
  }

  .dsb-topbar-title,
  .adm-topbar-title {
    font-size: 14px !important;
  }

  .dsb-topbar-right .btn-ghost,
  .adm-topbar-right .btn-ghost {
    display: none !important; /* hide secondary actions on mobile */
  }

  /* ── 11. Compare page table ── */
  .compare-table,
  #compareTable {
    display: block !important;
    overflow-x: auto !important;
    font-size: 12px !important;
  }

  /* ── 12. Cost calculator sliders → stack ── */
  .calc-grid,
  .slider-grid {
    grid-template-columns: 1fr !important;
  }

  /* ── 13. For-instructors page → stack pricing cards ── */
  .pricing-grid,
  .plan-grid {
    grid-template-columns: 1fr !important;
  }

  /* ── 14. Instructor card actions → stack ── */
  .market-actions {
    flex-direction: column !important;
    gap: 8px !important;
  }

  .market-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  /* ── 15. Upgrade page credits/plans → stack ── */
  .upgrade-plans,
  .credit-packs {
    grid-template-columns: 1fr !important;
  }

  /* ── 16. Leads page → full width cards ── */
  .lead-card,
  .enquiry-card {
    padding: 14px !important;
  }

  .lead-card .lead-actions {
    flex-direction: column !important;
    gap: 8px !important;
  }

  .lead-card .lead-actions .btn {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* ── 17. Flex rows that need to wrap ── */
  .foot-grid,
  .cdi-footer-grid {
    flex-direction: column !important;
    gap: 24px !important;
  }

  /* ── 18. Admin tables → scrollable ── */
  .admin-table-wrap,
  .adm-content table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 10px !important;
  }

  /* ── 19. Filter pills → horizontal scroll ── */
  .filter-pills,
  .quick-filters,
  .pill-bar {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 4px !important;
    scrollbar-width: none !important;
  }

  .filter-pills::-webkit-scrollbar,
  .quick-filters::-webkit-scrollbar {
    display: none !important;
  }

  /* ── 20. Test centres page ── */
  .tc-grid,
  .test-centre-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── Tablet (769–1024px) — 2-col grids ── */
@media (min-width: 769px) and (max-width: 1024px) {
  .dsb-sidebar,
  .adm-sidebar {
    width: 180px !important;
    min-width: 180px !important;
  }

  .dsb-wrap,
  .adm-wrap {
    grid-template-columns: 180px 1fr !important;
  }

  .dsb-nav-item span,
  .adm-nav .dsb-nav-item span {
    font-size: 12px !important;
  }
}

/* ── Global utility — always ── */
/* Prevent any element from overflowing the viewport */
.cdi-wrap,
.page-wrap,
main,
.dsb-content,
.adm-content {
  overflow-x: hidden !important;
}

/* Ensure all images are fluid */
img {
  max-width: 100% !important;
  height: auto;
}

/* Ensure buttons never overflow */
.btn {
  max-width: 100%;
  white-space: normal !important;
  word-break: break-word;
}

/* Text size never too small */
p, li, td, th, span.body-text {
  font-size: max(13px, 0.8125rem);
  line-height: 1.6;
}

/* ── Location city pills — premium thick style ── */
.loc-city-card {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 12px 16px !important;
  background: #fff !important;
  border: 1.5px solid var(--line, #E6E9EE) !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  color: var(--ink, #14171F) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: border-color .15s, box-shadow .15s, transform .1s !important;
  min-height: 52px !important;
}
.loc-city-card:hover {
  border-color: var(--navy, #0B1F3D) !important;
  box-shadow: 0 4px 16px rgba(11,31,61,.1) !important;
  transform: translateY(-1px) !important;
}
.loc-city-name {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ink, #14171F) !important;
}
.loc-city-meta {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}
.loc-city-meta span {
  font-size: 12px !important;
  color: var(--slate, #5B6072) !important;
  font-weight: 500 !important;
}
.loc-city-arrow {
  color: var(--slate-light, #8B91A1) !important;
  font-size: 16px !important;
  flex-shrink: 0 !important;
}
.loc-city-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 10px !important;
  margin-top: 12px !important;
}
.loc-region {
  margin-bottom: 32px !important;
}
.loc-region-h {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--ink, #14171F) !important;
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  border-bottom: 2px solid var(--line, #E6E9EE) !important;
}
@media(max-width: 560px) {
  .loc-city-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .loc-city-card {
    padding: 10px 12px !important;
    min-height: 48px !important;
  }
  .loc-city-name {
    font-size: 13px !important;
  }
}

/* ── Scrollable pill rows ── */
.qf-pills,
.qf-bar,
.cdi-pills-row,
.filter-row {
  display: flex !important;
  overflow-x: auto !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  padding-bottom: 4px !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
}

.qf-pills::-webkit-scrollbar,
.qf-bar::-webkit-scrollbar,
.cdi-pills-row::-webkit-scrollbar {
  display: none !important;
}

/* ── Content max-width container — desktop centred, full-width sections ──
   Header, footer, hero bands = full width (fw class or no .cw)
   All body content inside .cw = max 1180px centred
   This is the standard SaaS layout pattern ── */

/* Desktop content wrapper */
.cw,
.cdi-container,
.container,
.page-container {
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}

/* Full-width sections override (hero bands, nav, footer) */
.fw > .cw,
.topnav .cw,
.mphero .cw,
.foot-inner .cw {
  max-width: 1180px !important;
}

/* The topnav .row already handles its own width */
.topnav .row {
  max-width: 1180px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}

/* ── Typography scale ── */
@media (max-width: 768px) {
  h1 { font-size: clamp(22px, 6.5vw, 36px) !important; }
  h2 { font-size: clamp(18px, 5vw, 26px) !important; }
  h3 { font-size: clamp(15px, 4vw, 20px) !important; }
}

/* ── Mobile drawer must sit above topnav ── */
.mobile-drawer {
  z-index: 9999 !important;
}

/* ── Nav mega panel - ensure above topnav ── */
.nav-mega-panel,
.nav-mega-trigger.is-open .nav-mega-panel {
  z-index: 9950 !important;
  top: 68px !important;
}
/* ===== END assets/css/cdi-fixes.css ===== */

/* ===== BEGIN assets/css/cdi-premium-v3.css ===== */
/* ============================================================
   CDI Premium v3 - controlled refinement layer
   Preserves the existing page structure, colour direction,
   Poppins typography, touch pills and swipeable carousels.
   ============================================================ */
:root{
  --cdi-navy-950:#061426;
  --cdi-navy-900:#0B1F3D;
  --cdi-navy-800:#123052;
  --cdi-blue-600:#1267D6;
  --cdi-blue-500:#1685E5;
  --cdi-cyan-500:#00BFE8;
  --cdi-green-500:#00A86B;
  --cdi-green-100:#E8F8F1;
  --cdi-ink:#0B1729;
  --cdi-muted:#667085;
  --cdi-line:#E5EAF0;
  --cdi-soft:#F6F8FB;
  --cdi-surface:#FFFFFF;
  --cdi-radius-sm:10px;
  --cdi-radius-md:16px;
  --cdi-radius-lg:24px;
  --cdi-shadow-card:0 12px 34px rgba(8,31,61,.075);
  --cdi-shadow-float:0 20px 52px rgba(8,31,61,.16);
  --cdi-container:1200px;
  --cdi-reading:780px;
  --cdi-touch:48px;
  --navy:var(--cdi-navy-900);
  --ink:var(--cdi-ink);
  --slate:var(--cdi-muted);
  --line:var(--cdi-line);
  --paper:var(--cdi-surface);
  --surf:var(--cdi-soft);
}

html{
  overflow-x:clip;
  scroll-behavior:smooth;
  scroll-padding-top:88px;
  background:var(--cdi-surface);
}

body{
  margin:0;
  overflow-x:clip;
  background:var(--cdi-surface);
  color:var(--cdi-ink);
  font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:15px;
  line-height:1.65;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

*{box-sizing:border-box}
img,svg,video{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}

/* Width hierarchy: full-width shells, 1200px product body, 780px reading copy. */
.fw,.topnav,.site-footer,.util{width:100%;max-width:none}
.cw,.container{
  width:min(var(--cdi-container),calc(100% - 48px));
  max-width:var(--cdi-container);
  margin-inline:auto;
}
.reading-width,.legal-copy,.article-body,.guide-copy{
  width:min(var(--cdi-reading),100%);
  margin-inline:auto;
}

section,.sec{position:relative}
.sec{padding-block:clamp(52px,6vw,84px)}

h1,h2,h3,h4,h5,h6{
  color:var(--cdi-ink);
  text-wrap:balance;
}
h1{letter-spacing:-.038em}
h2{letter-spacing:-.028em}
p,li{color:var(--cdi-muted)}

/* Navigation remains full width but its content is controlled. */
.topnav{
  background:var(--cdi-navy-900);
  box-shadow:0 1px 0 rgba(255,255,255,.08),0 10px 34px rgba(6,20,38,.12);
}
.topnav>.container,.topnav .row{
  width:min(var(--cdi-container),calc(100% - 48px));
  max-width:var(--cdi-container);
  margin-inline:auto;
}
.brand-logo-img{object-fit:contain}
.navbtn2,.nav-links a,.nav-actions a{min-height:44px}

/* Full-width hero shell with a restrained national marketplace finish. */
.mphero,.hero-block,.saas-hero,.home-hero,.cdi-hero{
  width:100%;
  overflow:hidden;
}
.mphero{
  background:
    radial-gradient(circle at 86% 18%,rgba(0,191,232,.14),transparent 34%),
    linear-gradient(180deg,#F9FCFF 0%,#F3F7FB 100%);
  border-bottom:1px solid var(--cdi-line);
}

/* Cards: retain current layouts, standardise the finish. */
.dcard,.card,.freecard,.fm-card,.fm-instructor-card,.fm-school-card,
.instructor-card,.school-card,.review-card,.svc,.sbi,.tbox{
  border-color:var(--cdi-line);
  border-radius:var(--cdi-radius-md);
  box-shadow:var(--cdi-shadow-card);
}
.dcard,.card,.freecard,.instructor-card,.school-card,.review-card{
  background:var(--cdi-surface);
}

/* Buttons and touch pills */
.btn,.hs-btn,.rg-btn,.pwa-banner-btn,button[type='submit']{
  min-height:var(--cdi-touch);
  border-radius:12px;
  font-weight:700;
  letter-spacing:-.01em;
}
.btn-green,.hs-btn,.btn-primary,.rg-btn{
  background:linear-gradient(135deg,var(--cdi-blue-600),var(--cdi-blue-500));
  border-color:transparent;
  color:#fff;
  box-shadow:0 10px 24px rgba(18,103,214,.2);
}
.btn-green:hover,.hs-btn:hover,.btn-primary:hover,.rg-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(18,103,214,.25);
}
.btn-ghost,.btn-secondary{
  background:#fff;
  border:1px solid var(--cdi-line);
  color:var(--cdi-navy-900);
}

input:not([type='checkbox']):not([type='radio']):not([type='range']),
select,textarea,.input,.hs-in,.fp-sel{
  min-height:var(--cdi-touch);
  border:1.5px solid var(--cdi-line);
  border-radius:12px;
  background:#fff;
  color:var(--cdi-ink);
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
textarea{min-height:120px}
input:focus,select:focus,textarea:focus,.input:focus,.hs-in:focus,.fp-sel:focus{
  border-color:var(--cdi-blue-500);
  box-shadow:0 0 0 4px rgba(22,133,229,.12);
}

.hs-pill,.rg-toggle-pill,.spec-chip,.rg-pill,.chip,.acchip{
  min-height:44px;
  border-radius:999px;
  touch-action:manipulation;
}
.hs-pill:has(input:checked),.rg-toggle-pill.is-selected,.spec-chip.selected,.rg-pill.active,.chip.active{
  background:var(--cdi-navy-900);
  color:#fff;
  border-color:var(--cdi-navy-900);
  box-shadow:0 8px 20px rgba(11,31,61,.15);
}

/* Keep touch carousels swipeable and calm. */
.freecards,.car-cont,.sim-scroll,.fm-instructor-carousel,.fm-school-carousel,
.imarq,.imarq-track,.cdi-carousel-row{
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.freecards::-webkit-scrollbar,.car-cont::-webkit-scrollbar,.sim-scroll::-webkit-scrollbar,
.fm-instructor-carousel::-webkit-scrollbar,.fm-school-carousel::-webkit-scrollbar,
.cdi-carousel-row::-webkit-scrollbar{display:none}

/* Footer remains full width, body content stays in the 1200px grid. */
.site-footer{
  width:100%;
  background:
    radial-gradient(circle at 12% 5%,rgba(0,191,232,.12),transparent 28%),
    var(--cdi-navy-950);
  border-top:1px solid rgba(255,255,255,.08);
}
.site-footer>.container{width:min(var(--cdi-container),calc(100% - 48px));max-width:var(--cdi-container)}
.site-footer p,.site-footer li,.site-footer a{color:#C9D5E3}
.site-footer h4{color:#fff}
.foot-social a{border:1px solid rgba(255,255,255,.1)}

/* Premium PWA launch screen */
.cdi-launch{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:none;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%,rgba(0,191,232,.15),transparent 31%),
    linear-gradient(145deg,#061426 0%,#0B1F3D 62%,#0B3152 100%);
  color:#fff;
  opacity:1;
  transition:opacity .34s ease,visibility .34s ease;
}
.pwa-standalone:not(.cdi-launch-seen) .cdi-launch.is-active{display:grid}
.cdi-launch.is-leaving{opacity:0;visibility:hidden}
.cdi-launch::before{
  content:'';
  position:absolute;
  inset:-40%;
  background:repeating-linear-gradient(135deg,transparent 0 46px,rgba(255,255,255,.025) 47px 48px);
  animation:cdiLaunchDrift 10s linear infinite;
}
.cdi-launch-inner{
  position:relative;
  z-index:1;
  width:min(86vw,420px);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.cdi-launch-route{
  position:absolute;
  width:280px;
  height:280px;
  inset:50% auto auto 50%;
  transform:translate(-50%,-58%) rotate(-9deg);
  opacity:.65;
}
.cdi-launch-route path{
  fill:none;
  stroke:url(#cdiRouteGradient);
  stroke-width:4;
  stroke-linecap:round;
  stroke-dasharray:520;
  stroke-dashoffset:520;
  animation:cdiRouteDraw .8s .12s cubic-bezier(.22,.8,.22,1) forwards;
}
.cdi-launch-icon{
  position:relative;
  width:126px;
  height:126px;
  border-radius:30px;
  object-fit:cover;
  box-shadow:0 28px 70px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.12);
  opacity:0;
  transform:translateY(14px) scale(.94);
  filter:blur(6px);
  animation:cdiIconReveal .55s .3s cubic-bezier(.2,.8,.2,1) forwards;
}
.cdi-launch-name{
  margin-top:24px;
  color:#fff;
  font-size:clamp(21px,5.4vw,28px);
  font-weight:700;
  letter-spacing:-.035em;
  opacity:0;
  transform:translateY(9px);
  animation:cdiTextReveal .42s .73s ease forwards;
}
.cdi-launch-line{
  margin-top:8px;
  color:rgba(255,255,255,.66);
  font-size:13px;
  font-weight:500;
  letter-spacing:.045em;
  opacity:0;
  transform:translateY(7px);
  animation:cdiTextReveal .42s .9s ease forwards;
}
.cdi-launch-progress{
  width:124px;
  height:3px;
  margin-top:28px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
}
.cdi-launch-progress span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--cdi-cyan-500),#28D9B6);
  animation:cdiProgress 1.15s .36s cubic-bezier(.2,.75,.2,1) forwards;
}

/* Installed app navigation */
.pwa-bottom-nav{
  display:none;
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:9000;
  grid-template-columns:repeat(5,minmax(0,1fr));
  padding:4px 6px max(4px,env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--cdi-line);
  box-shadow:0 -12px 34px rgba(6,20,38,.1);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.pwa-standalone .pwa-bottom-nav{display:grid}
.pwa-standalone body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
.pwa-nav-item{
  min-height:58px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border-radius:12px;
  color:var(--cdi-muted);
  font-size:10px;
  font-weight:600;
  text-decoration:none;
}
.pwa-nav-item i{font-size:21px}
.pwa-nav-item.is-active,.pwa-nav-active{color:var(--cdi-blue-600);background:rgba(18,103,214,.07)}
.pwa-nav-match-btn{
  width:48px;height:48px;
  margin-top:-16px;
  display:grid;place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,var(--cdi-blue-600),var(--cdi-cyan-500));
  box-shadow:0 10px 24px rgba(18,103,214,.28);
}

/* Premium install and update sheets */
.cdi-pwa-sheet{
  position:fixed;
  left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));
  z-index:99999;
  max-width:560px;
  margin-inline:auto;
  border:1px solid rgba(255,255,255,.13);
  border-radius:22px;
  background:rgba(6,20,38,.97);
  color:#fff;
  box-shadow:var(--cdi-shadow-float);
  overflow:hidden;
  animation:cdiSheetIn .32s cubic-bezier(.2,.8,.2,1);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.cdi-pwa-sheet-inner{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px}
.cdi-pwa-sheet-icon{width:50px;height:50px;border-radius:13px;box-shadow:0 10px 24px rgba(0,0,0,.24)}
.cdi-pwa-sheet-copy strong{display:block;color:#fff;font-size:14px;line-height:1.3;margin-bottom:3px}
.cdi-pwa-sheet-copy span{display:block;color:rgba(255,255,255,.66);font-size:11.8px;line-height:1.45}
.cdi-pwa-sheet-actions{display:flex;align-items:center;gap:7px}
.cdi-pwa-sheet .cdi-install-primary{
  min-height:40px;
  padding:0 14px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,var(--cdi-blue-500),var(--cdi-cyan-500));
  color:#fff;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.cdi-pwa-sheet .cdi-install-close{
  width:36px;height:36px;min-height:36px;
  border:0;border-radius:10px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.72);
  cursor:pointer;
}
.cdi-ios-steps{grid-column:1/-1;display:grid;gap:8px;padding-top:2px}
.cdi-ios-step{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.85);font-size:12px}
.cdi-ios-step b{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:rgba(0,191,232,.15);color:#74E5F9;flex:none}

.pwa-page-loader{position:fixed;inset:0 0 auto;height:3px;z-index:100000;pointer-events:none;opacity:0;transition:opacity .18s}
.pwa-page-loader.loading{opacity:1}
.pwa-loader-bar{height:100%;width:0;background:linear-gradient(90deg,var(--cdi-blue-600),var(--cdi-cyan-500));transition:width .35s ease}

@keyframes cdiLaunchDrift{to{transform:translate3d(48px,48px,0)}}
@keyframes cdiRouteDraw{to{stroke-dashoffset:0}}
@keyframes cdiIconReveal{to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes cdiTextReveal{to{opacity:1;transform:translateY(0)}}
@keyframes cdiProgress{to{width:100%}}
@keyframes cdiSheetIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:980px){
  .cw,.container,.topnav>.container,.topnav .row,.site-footer>.container{
    width:calc(100% - 28px);
  }
  .sec{padding-block:48px}
  .util{display:none}
  .navbtn2,.nav-links,.nav-actions>.btn{display:none}
  .hamburger{display:flex}
}

@media(max-width:760px){
  :root{--cdi-touch:50px}
  body{font-size:14.5px}
  .cw,.container,.topnav>.container,.topnav .row,.site-footer>.container{width:calc(100% - 24px)}
  .sec{padding-block:42px}
  h1{font-size:clamp(30px,9.5vw,44px)!important;line-height:1.07!important}
  h2{font-size:clamp(23px,7vw,32px)!important;line-height:1.14!important}
  .hero-search,.mps{border-radius:18px}
  .hero-ctas,.cdi-hero-ctas{display:flex;flex-direction:column;gap:10px}
  .hero-ctas>* ,.cdi-hero-ctas>*{width:100%}
  .freecards,.car-cont,.sim-scroll,.fm-instructor-carousel,.fm-school-carousel,.cdi-carousel-row{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    gap:12px!important;
    padding-bottom:10px!important;
  }
  .freecards>* ,.car-cont>* ,.fm-instructor-carousel>* ,.fm-school-carousel>* ,.cdi-carousel-row>*{
    flex:0 0 min(86vw,360px)!important;
    scroll-snap-align:start!important;
  }
  .sim-scroll>*{scroll-snap-align:start}
  .table-scroll,.ctw,.atable-wrap,.avmatrix{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:640px}
  .cdi-pwa-sheet-inner{grid-template-columns:auto 1fr;gap:12px}
  .cdi-pwa-sheet-actions{grid-column:1/-1;justify-content:flex-end}
  .cdi-pwa-sheet .cdi-install-primary{flex:1}
}

@media(max-width:420px){
  .cdi-launch-icon{width:112px;height:112px;border-radius:27px}
  .cdi-pwa-sheet{left:10px;right:10px}
  .pwa-nav-item{font-size:9.5px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .cdi-launch-route{display:none}
}
/* ===== END assets/css/cdi-premium-v3.css ===== */

/* ===== BEGIN assets/css/cdi-premium-v4.css ===== */
/* ============================================================
   CDI Premium v4 - site-wide responsive and interaction finish
   Loaded last. Preserves existing layouts, Poppins and brand palette.
   ============================================================ */
:root{
  --cdi-page-max:1200px;
  --cdi-reading-max:780px;
  --cdi-mobile-pad:16px;
  --cdi-tablet-pad:24px;
}

html,body{max-width:100%;overflow-x:clip}
body{min-width:0;background:#fff}
body.cdi-drawer-open{overflow:hidden!important;touch-action:none}

/* Full-width shells with controlled inner content */
.fw,.topnav,.site-footer,.util,.urg,.mphero,.hero-block,.cdi-hero,.page-hero{
  width:100%!important;
  max-width:none!important;
}
.cw,.container,.cdi-container,.page-container{
  width:100%!important;
  max-width:var(--cdi-page-max)!important;
  margin-inline:auto!important;
  padding-inline:var(--cdi-tablet-pad)!important;
  box-sizing:border-box!important;
  min-width:0!important;
}
.fw>.cw,.mphero>.cw,.hero-block>.cw,.cdi-hero>.cw,.page-hero>.cw,.site-footer>.container{
  max-width:var(--cdi-page-max)!important;
}
.reading-width,.article-body,.guide-copy,.legal-copy,.content-reading{
  width:100%!important;
  max-width:var(--cdi-reading-max)!important;
  margin-inline:auto!important;
}

/* Do not allow grid/flex children or media to push a public page wider. */
.cdi-premium,.cdi-premium *,.site-footer *,.topnav *{min-width:0}
.cdi-premium img,.cdi-premium svg,.cdi-premium video{max-width:100%;height:auto}
.cdi-premium p,.cdi-premium li,.cdi-premium a,.cdi-premium h1,.cdi-premium h2,.cdi-premium h3{
  overflow-wrap:anywhere;
}

/* Premium body rhythm without changing section order. */
body:not(.admin-body) .sec,
body:not(.admin-body) .section,
body:not(.admin-body) section{
  box-sizing:border-box;
}
body:not(.admin-body) .sec>.cw,
body:not(.admin-body) .section>.container,
body:not(.admin-body) .mphero>.cw{
  position:relative;
  z-index:1;
}

/* Header and drawer reliability */
.topnav>.container,.topnav>.row,.topnav .row{
  width:100%!important;
  max-width:var(--cdi-page-max)!important;
  margin-inline:auto!important;
  padding-inline:var(--cdi-tablet-pad)!important;
}
.hamburger{
  position:relative;
  z-index:10002!important;
  touch-action:manipulation;
}
.hamburger span{pointer-events:none}
.mobile-drawer{
  position:fixed!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:auto!important;
  width:min(88vw,380px)!important;
  max-width:380px!important;
  height:100dvh!important;
  z-index:10001!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  pointer-events:none!important;
  visibility:hidden!important;
  transform:translate3d(104%,0,0)!important;
  transition:transform .28s cubic-bezier(.2,.8,.25,1),visibility 0s linear .28s!important;
  box-shadow:-24px 0 60px rgba(6,20,38,.24)!important;
}
.mobile-drawer.open{
  pointer-events:auto!important;
  visibility:visible!important;
  transform:translate3d(0,0,0)!important;
  transition:transform .28s cubic-bezier(.2,.8,.25,1),visibility 0s!important;
}
.cdi-drawer-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(6,20,38,.58);
  backdrop-filter:blur(2px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility 0s linear .22s;
}
.cdi-drawer-overlay.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .22s ease,visibility 0s;
}
.mobile-drawer .dtop{position:sticky;top:0;z-index:2}
.mobile-drawer .mmenu,.mobile-drawer .dfoot{width:100%;max-width:100%}
.mobile-drawer details>summary{min-height:50px;touch-action:manipulation}

/* Shared FAQ behaviour. Actual state is controlled by cdi-core-v4.js. */
.fi{width:100%;max-width:100%}
.fi>.fq{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  min-height:54px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  font-family:'Poppins',system-ui,sans-serif!important;
  text-align:left!important;
  touch-action:manipulation;
}
.fi>.fq::after{content:'+'!important;transform:none!important}
.fi.o>.fq::after{content:'−'!important;transform:none!important}
.fi>.fa{display:none!important}
.fi.o>.fa{display:block!important}
.seo-faq-q{touch-action:manipulation}
.seo-faq-item .seo-faq-a{display:none!important}
.seo-faq-item.open .seo-faq-a{display:block!important}

/* Search/result page constraints */
.cdi-premium .sl,
.cdi-premium .sl>*,
.cdi-premium .mobsteps,
.cdi-premium .ic-list-wrap,
.cdi-premium .ic,
.cdi-premium .ic-main,
.cdi-premium .ic-act,
.cdi-premium .ph2-qfilter{
  max-width:100%!important;
  min-width:0!important;
}
.cdi-premium .ph2-qfilter,
.cdi-premium .acchips,
.cdi-premium .qf-pills,
.cdi-premium .filter-row{
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.cdi-premium .ph2-qfilter::-webkit-scrollbar,
.cdi-premium .acchips::-webkit-scrollbar{display:none}

/* Desktop maintains wide hero/footer, 1200px body. */
@media (min-width:769px){
  .cdi-premium .sl{grid-template-columns:minmax(220px,260px) minmax(0,1fr)!important}
  .cdi-premium .ic{grid-template-columns:196px minmax(0,1fr) minmax(250px,300px)!important}
  .site-footer>.container{max-width:var(--cdi-page-max)!important}
}

@media (max-width:900px){
  .nav-links,.hide-mobile{display:none!important}
  .hamburger{display:flex!important}
  .nav-actions{margin-left:auto!important}
  .nav-cta-mobile{display:inline-flex!important}
}

@media (max-width:768px){
  :root{--cdi-tablet-pad:var(--cdi-mobile-pad)}

  .cw,.container,.cdi-container,.page-container,
  .topnav>.container,.topnav>.row,.topnav .row{
    width:100%!important;
    max-width:100%!important;
    padding-left:var(--cdi-mobile-pad)!important;
    padding-right:var(--cdi-mobile-pad)!important;
  }

  /* Previous global mobile rule added padding to both section and .cw,
     causing inner pages to look clipped. Only the inner container pads now. */
  body:not(.admin-body) .sec,
  body:not(.admin-body) .section,
  body:not(.admin-body) section,
  .cdi-premium .sec{
    padding-left:0!important;
    padding-right:0!important;
  }

  .topnav .row{min-height:64px!important}
  .brand-logo{max-width:148px!important}
  .brand-logo-img{width:100%!important;max-height:46px!important;object-fit:contain!important}
  .nav-cta-mobile{min-height:42px!important;padding-inline:12px!important;font-size:12px!important}

  /* Search hero becomes a deliberate stacked app card. */
  .mphero{padding-top:30px!important;padding-bottom:26px!important}
  .mphero h1{font-size:clamp(26px,7.6vw,36px)!important;line-height:1.12!important}
  .mphero p{font-size:14px!important;line-height:1.62!important}
  .mps{display:none!important}
  .mptrig{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
    width:100%!important;
    max-width:100%!important;
    padding:14px!important;
    border-radius:16px!important;
  }
  .mptrig>span,.mptrig>button{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
  }
  .mptrig>button{min-height:46px!important;justify-content:center!important}
  .acchips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:8px!important;padding-bottom:4px!important}
  .acchip{flex:0 0 auto!important;white-space:nowrap!important}

  /* Mobile result layout, no horizontal clipping. */
  .sl{display:block!important;width:100%!important}
  .fp{display:none!important}
  .mobsteps{display:block!important;width:100%!important;border-radius:16px!important;overflow:hidden!important}
  .msstep{padding:16px!important}
  .mobsteps .tt{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
    width:100%!important;
  }
  .mobsteps .tile{
    width:100%!important;
    min-width:0!important;
    min-height:92px!important;
    padding:12px 8px!important;
    text-align:center!important;
  }
  .msnav{width:100%!important}
  .msback,.msnext{min-height:46px!important}

  .ph2-qfilter{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    width:100%!important;
    margin-inline:0!important;
    padding:10px 0 15px!important;
  }
  .ph2-qf-pill{flex:0 0 auto!important}

  .ic{
    display:grid!important;
    grid-template-columns:88px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    padding:14px!important;
    overflow:hidden!important;
    border-radius:16px!important;
  }
  .ic .ic-ph{
    width:88px!important;
    height:88px!important;
    min-height:88px!important;
    max-width:88px!important;
  }
  .ic-main{padding:0!important;overflow:hidden!important}
  .ic-namerow,.ic-creds,.ic-rows,.ic-row,.icsum{width:100%!important;max-width:100%!important;min-width:0!important}
  .ic .icname{font-size:16px!important;line-height:1.25!important}
  .ic-creds{gap:5px!important;margin:5px 0 8px!important}
  .ic-row{font-size:12.5px!important;line-height:1.45!important;align-items:flex-start!important}
  .ic-ri{flex:0 0 18px!important}
  .ic-hl{max-width:100%!important;white-space:normal!important;margin-bottom:8px!important}
  .icsum{font-size:13px!important;line-height:1.55!important}
  .ic-act{
    grid-column:1/-1!important;
    width:100%!important;
    padding-top:13px!important;
    border-top:1px solid #E8EEF5!important;
    gap:12px!important;
  }
  .ic-pricebox{display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:8px!important}
  .ic .icprice{font-size:24px!important}
  .ic-stats{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    gap:9px!important;
  }
  .ic-stat{padding:10px!important;border:1px solid #E8EEF5!important;border-radius:10px!important;background:#F8FAFC!important}
  .ic-ctas,.ic-ctas .btn,.ic-cta-row2{width:100%!important;max-width:100%!important}
  .ic-ctas{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .ic-cta-row2{display:flex!important;justify-content:space-between!important;align-items:center!important}

  /* Footer stays full width, content remains readable. */
  .site-footer>.container{padding-inline:var(--cdi-mobile-pad)!important}
  .foot-grid{grid-template-columns:1fr 1fr!important;gap:24px 16px!important}
  .foot-brand{grid-column:1/-1!important}

  /* Swipeable product rows remain swipeable, not collapsed. */
  .sg,.steps,.tboxes,.lg,.freecards,.car-cont,.sim-scroll,
  .fm-instructor-carousel,.fm-school-carousel,.cdi-carousel-row{
    max-width:100%!important;
    overscroll-behavior-inline:contain!important;
  }
}

@media (max-width:420px){
  .nav-cta-mobile{display:none!important}
  .brand-logo{max-width:142px!important}
  .mobile-drawer{width:92vw!important}
  .foot-grid{grid-template-columns:1fr!important}
  .foot-brand{grid-column:auto!important}
  .mobsteps .tt{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ic{grid-template-columns:78px minmax(0,1fr)!important;padding:12px!important;gap:10px!important}
  .ic .ic-ph{width:78px!important;height:78px!important;min-height:78px!important}
}

@media (prefers-reduced-motion:reduce){
  .mobile-drawer,.cdi-drawer-overlay{transition:none!important}
}
/* ===== END assets/css/cdi-premium-v4.css ===== */

/* ===== BEGIN assets/css/cdi-premium-v5.css ===== */
/* ============================================================
   CDI Premium V5 - essential mobile UX pass
   Preserves the existing CDI layout, colour palette and Poppins.
   ============================================================ */

:root{
  --cdi-v5-pad:20px;
  --cdi-v5-gap:10px;
  --cdi-v5-chip-border:#dbe3ec;
  --cdi-v5-chip-bg:#ffffff;
}

/* Normal browser pages must not reserve space for the installed app nav. */
html:not(.pwa-standalone) body{
  padding-bottom:0!important;
}

/* Explicit install control in the mobile drawer. */
.cdi-install-menu-btn{
  width:100%;
  min-height:48px;
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(255,255,255,.2)!important;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  cursor:pointer;
}
.cdi-install-menu-btn i{font-size:19px}
.pwa-standalone .cdi-install-menu-btn{display:none!important}

/* The install sheet is now used only for installation and instructions. */
.cdi-pwa-sheet[data-sheet-kind="install"] .cdi-pwa-sheet-copy span{
  max-width:44ch;
}
.cdi-pwa-browser-steps{
  grid-column:1/-1;
  display:grid;
  gap:8px;
  padding-top:4px;
}
.cdi-pwa-browser-step{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.86);
  font-size:12px;
  line-height:1.45;
}
.cdi-pwa-browser-step b{
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:rgba(0,191,232,.15);
  color:#78e7f8;
}

/* Footer: one mobile gutter only and no artificial white gap beneath it. */
.site-footer{
  width:100%!important;
  max-width:none!important;
}
.site-footer>.container{
  box-sizing:border-box!important;
}

/* Compact AI trigger. The label remains on desktop only. */
.ai-fab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.ai-fab .ai-fab-icon{font-size:20px;line-height:1}
.ai-fab.is-footer-near{opacity:0!important;pointer-events:none!important;transform:translateY(10px)!important}

/* Related links and facts: compact, touch friendly and not one long column. */
.aeo-facts,
.aeo-links,
.seo-interlinks-grid,
.related-searches-rail,
.sl-rail{
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.aeo-facts::-webkit-scrollbar,
.aeo-links::-webkit-scrollbar,
.seo-interlinks-grid::-webkit-scrollbar,
.related-searches-rail::-webkit-scrollbar,
.sl-rail::-webkit-scrollbar{display:none}

@media(max-width:768px){
  /* Footer alignment and size. */
  .site-footer{
    padding:38px 0 16px!important;
  }
  .site-footer>.container{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding-left:var(--cdi-v5-pad)!important;
    padding-right:var(--cdi-v5-pad)!important;
  }
  .site-footer .foot-grid{
    width:100%!important;
    margin:0!important;
    padding:0 0 24px!important;
    gap:22px 16px!important;
  }
  .site-footer .foot-brand,
  .site-footer .foot-col,
  .site-footer .foot-bottom{
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .site-footer .foot-logo{
    width:174px!important;
    max-width:174px!important;
    height:auto!important;
  }
  .site-footer .foot-brand p{
    max-width:34ch;
    margin-top:14px!important;
    line-height:1.65!important;
  }
  .site-footer .foot-bottom{
    padding-top:17px!important;
    padding-bottom:0!important;
  }

  /* Compact AI button so it does not cover pills, cards and footer links. */
  .ai-fab{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    min-height:52px!important;
    right:14px!important;
    bottom:calc(14px + env(safe-area-inset-bottom))!important;
    padding:0!important;
    border-radius:50%!important;
    transition:opacity .18s ease,transform .18s ease!important;
  }
  .ai-fab .ai-fab-label,
  .ai-fab .dot{display:none!important}
  .ai-fab .ai-fab-icon{font-size:22px!important;color:#fff!important}
  .pwa-standalone .ai-fab{
    bottom:calc(78px + env(safe-area-inset-bottom))!important;
  }
  body:has(.chat-panel.open) .ai-fab,
  body:has(form:focus-within) .ai-fab{opacity:0!important;pointer-events:none!important}

  /* Quick Answer facts and links use two balanced columns. */
  .aeo-block{
    padding:16px!important;
    border-radius:18px!important;
  }
  .aeo-facts{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:14px 0!important;
  }
  .aeo-fact{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    border-radius:14px!important;
    padding:8px 10px!important;
    font-size:11.5px!important;
    line-height:1.3!important;
    box-sizing:border-box!important;
  }
  .aeo-fact:last-child:nth-child(odd){grid-column:1/-1}
  .aeo-links{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .aeo-link{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:8px 11px!important;
    border-radius:12px!important;
    font-size:12px!important;
    line-height:1.25!important;
    box-sizing:border-box!important;
  }
  .aeo-link:last-child:nth-child(odd){grid-column:1/-1}

  /* Related-page blocks become a two-row swipe rail. */
  .seo-interlinks{
    margin:24px 0!important;
    padding:17px 16px!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }
  .seo-interlinks-grid,
  .related-searches-rail,
  .sl-rail{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-template-rows:repeat(2,minmax(46px,auto))!important;
    grid-auto-columns:minmax(158px,72%)!important;
    gap:9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity!important;
    padding:2px 20px 8px 0!important;
  }
  .seo-interlink,
  .related-searches-rail .acchip,
  .sl-rail a{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:9px 12px!important;
    border:1px solid var(--cdi-v5-chip-border)!important;
    border-radius:13px!important;
    background:var(--cdi-v5-chip-bg)!important;
    color:#0b1f3d!important;
    font-size:12.5px!important;
    font-weight:600!important;
    line-height:1.3!important;
    white-space:normal!important;
    text-decoration:none!important;
    scroll-snap-align:start!important;
  }
  .related-searches-block{
    margin-top:26px!important;
    padding-top:22px!important;
    overflow:hidden!important;
  }

  /* SEO link matrix remains crawlable but no longer creates a huge mobile list. */
  .seo-links{
    padding:32px 0 36px!important;
    overflow:hidden!important;
  }
  .seo-links .sl-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .seo-links .sl-col{
    min-width:0!important;
    overflow:hidden!important;
  }
  .seo-links .sl-h{
    margin:0 0 10px!important;
  }

  /* Pills used inside forms remain touch friendly and compact. */
  .cdi-pills-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .cdi-pills-grid .cdi-pill{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    min-height:46px!important;
  }
}

@media(max-width:360px){
  .aeo-facts,.aeo-links{grid-template-columns:1fr!important}
  .aeo-fact:last-child:nth-child(odd),
  .aeo-link:last-child:nth-child(odd){grid-column:auto}
  .seo-interlinks-grid,.related-searches-rail,.sl-rail{grid-auto-columns:82%!important}
}

@media(prefers-reduced-motion:reduce){
  .ai-fab{transition:none!important}
}

/* V20 iPhone PWA install nudge */
.cdi-pwa-sheet[data-sheet-kind="ios-install"]{
  border-color:rgba(116,229,249,.24);
  background:linear-gradient(135deg,rgba(6,20,38,.98),rgba(12,38,72,.98));
}
.cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-inner{
  align-items:flex-start;
}
.cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-copy strong{
  font-size:15px;
}
.cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-copy span{
  color:rgba(255,255,255,.74);
  max-width:52ch;
}
.cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-install-primary{
  white-space:nowrap;
}
.cdi-ios-install-row{
  background:linear-gradient(135deg,rgba(18,103,214,.06),rgba(0,191,232,.08));
  border-radius:16px;
  padding:12px!important;
  margin-top:13px;
}
.pwa-standalone .cdi-ios-install-row{display:none!important}
@media(max-width:760px){
  .cdi-pwa-sheet[data-sheet-kind="ios-install"]{
    bottom:max(12px,env(safe-area-inset-bottom));
  }
  .cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-inner{
    grid-template-columns:44px 1fr;
    padding:14px;
  }
  .cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-icon{
    width:44px;height:44px;border-radius:12px;
  }
  .cdi-pwa-sheet[data-sheet-kind="ios-install"] .cdi-pwa-sheet-actions{
    grid-column:1/-1;
    justify-content:space-between;
  }
}
/* ===== END assets/css/cdi-premium-v5.css ===== */

/* ===== BEGIN assets/css/cdi-premium-v6.css ===== */
/* ============================================================
   CDI Premium V6 - brand launch, footer geometry and compact
   mobile discovery rails. Loaded last to neutralise legacy rules.
   ============================================================ */

:root{
  --cdi-v6-mobile-gutter:16px;
  --cdi-v6-rail-gap:9px;
  --cdi-v6-chip-border:#d8e1eb;
  --cdi-v6-chip-bg:#ffffff;
}

/* Installed app launch screen: icon first, full CDI wordmark beneath. */
.cdi-launch-inner{
  width:min(88vw,430px)!important;
}
.cdi-launch-icon{
  width:88px!important;
  height:88px!important;
  border-radius:22px!important;
  box-shadow:0 20px 54px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.13)!important;
}
.cdi-launch-logo{
  width:min(68vw,278px)!important;
  height:auto!important;
  object-fit:contain!important;
  margin-top:22px!important;
  opacity:0;
  transform:translateY(10px) scale(.98);
  filter:drop-shadow(0 12px 30px rgba(0,0,0,.24));
  animation:cdiV6LogoReveal .48s .68s cubic-bezier(.2,.8,.2,1) forwards;
}
.cdi-launch-name{
  margin-top:15px!important;
  color:rgba(255,255,255,.82)!important;
  font-size:12px!important;
  font-weight:600!important;
  letter-spacing:.045em!important;
  text-transform:uppercase;
  animation-delay:.94s!important;
}
.cdi-launch-line{
  margin-top:7px!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:600!important;
  letter-spacing:.02em!important;
  animation-delay:1.04s!important;
}
.cdi-launch-progress{
  margin-top:24px!important;
  width:132px!important;
}
@keyframes cdiV6LogoReveal{
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Footer uses its own inner wrapper, avoiding all historic .container rules. */
.site-footer{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:48px 0 0!important;
  overflow:hidden!important;
}
.site-footer .cdi-footer-inner{
  width:min(1200px,calc(100% - 48px))!important;
  max-width:1200px!important;
  margin:0 auto!important;
  padding:0!important;
  box-sizing:border-box!important;
}
.site-footer .foot-grid,
.site-footer .foot-brand,
.site-footer .foot-col,
.site-footer .foot-bottom{
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Never reserve PWA navigation space in the normal browser. */
body{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
html.pwa-standalone body{
  padding-bottom:calc(68px + env(safe-area-inset-bottom))!important;
}

/* Repair the escaped check glyph visible in instructor benefit pills. */
.gltick::before{
  content:'✓'!important;
}

@media(max-width:768px){
  /* Exact one-gutter footer geometry on phones. */
  .site-footer{
    padding:34px 0 0!important;
    margin-bottom:0!important;
  }
  .site-footer .cdi-footer-inner{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 var(--cdi-v6-mobile-gutter) 0!important;
  }
  .site-footer .foot-grid{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 0 24px!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .site-footer .foot-brand,
  .site-footer .foot-col,
  .site-footer .foot-bottom{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
    transform:none!important;
  }
  .site-footer .foot-logo{
    display:block!important;
    width:164px!important;
    max-width:164px!important;
    height:auto!important;
    margin:0!important;
  }
  .site-footer .foot-brand p{
    max-width:none!important;
    margin:13px 0 0!important;
    padding:0!important;
  }
  .site-footer .foot-social{
    margin:15px 0 0!important;
  }
  .site-footer .foot-col h4,
  .site-footer .foot-col ul,
  .site-footer .foot-col li,
  .site-footer .foot-col a{
    margin-left:0!important;
    padding-left:0!important;
  }
  .site-footer .foot-bottom{
    margin:0!important;
    padding:17px 0 max(14px,env(safe-area-inset-bottom))!important;
  }
  .site-footer .foot-bottom p{
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Four links visible as a 2 x 2 board, then horizontal swipe. */
  .seo-interlinks-grid,
  .related-searches-rail,
  .sl-rail{
    display:grid!important;
    grid-auto-flow:column!important;
    grid-template-rows:repeat(2,minmax(48px,auto))!important;
    grid-auto-columns:calc((100% - var(--cdi-v6-rail-gap))/2)!important;
    gap:var(--cdi-v6-rail-gap)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-inline:0!important;
    overscroll-behavior-inline:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:2px 18px 8px 0!important;
    margin:0!important;
    scrollbar-width:none!important;
  }
  .seo-interlinks-grid::-webkit-scrollbar,
  .related-searches-rail::-webkit-scrollbar,
  .sl-rail::-webkit-scrollbar{display:none!important}

  .seo-interlink,
  .related-searches-rail .acchip,
  .sl-rail a{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    max-height:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    margin:0!important;
    padding:9px 11px!important;
    border:1px solid var(--cdi-v6-chip-border)!important;
    border-radius:13px!important;
    background:var(--cdi-v6-chip-bg)!important;
    color:#0b1f3d!important;
    box-shadow:0 2px 7px rgba(6,20,38,.035)!important;
    font-size:11.5px!important;
    font-weight:600!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-decoration:none!important;
    box-sizing:border-box!important;
    scroll-snap-align:start!important;
  }

  /* Compact two-column Quick Answer content. */
  .aeo-facts,
  .aeo-links{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .aeo-fact,
  .aeo-link{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    margin:0!important;
    padding:8px 10px!important;
    border-radius:13px!important;
    box-sizing:border-box!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    font-size:11.5px!important;
    line-height:1.28!important;
  }
  .aeo-fact:last-child:nth-child(odd),
  .aeo-link:last-child:nth-child(odd){
    grid-column:auto!important;
  }

  /* Filter and active-state pills remain a deliberate single swipe row. */
  .acchips,
  .qf-pills,
  .ph2-qf,
  .filter-pills,
  .chip-row{
    display:flex!important;
    flex-wrap:nowrap!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    gap:8px!important;
    padding:2px 16px 7px 0!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .acchips::-webkit-scrollbar,
  .qf-pills::-webkit-scrollbar,
  .ph2-qf::-webkit-scrollbar,
  .filter-pills::-webkit-scrollbar,
  .chip-row::-webkit-scrollbar{display:none!important}
  .acchips>* ,
  .qf-pills>* ,
  .ph2-qf>* ,
  .filter-pills>* ,
  .chip-row>*{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  /* Small trust and benefit groups use compact two-column cards. */
  .gl-trust,
  .fm-hero-pills{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }
  .gl-trust .gltick,
  .fm-hero-pills>div{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    justify-content:flex-start!important;
    box-sizing:border-box!important;
  }
}

@media(max-width:360px){
  .seo-interlinks-grid,
  .related-searches-rail,
  .sl-rail{
    grid-auto-columns:calc((100% - 8px)/2)!important;
    gap:8px!important;
  }
  .seo-interlink,
  .related-searches-rail .acchip,
  .sl-rail a{
    font-size:10.8px!important;
    padding:8px 9px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .cdi-launch-logo{animation:none!important;opacity:1!important;transform:none!important}
}
/* ===== END assets/css/cdi-premium-v6.css ===== */

/* ===== BEGIN assets/css/cdi-premium-v8.css ===== */
/* CDI Premium V8 - resilient SVG icons, app dashboard and PWA diagnostics */
.cdi-icon{width:1.25em;height:1.25em;display:inline-block;flex:0 0 auto;vertical-align:-.18em;color:inherit}
.cdi-icon--sm{width:1em;height:1em}.cdi-icon--md{width:1.35em;height:1.35em}.cdi-icon--lg{width:1.65em;height:1.65em}
.foot-social .cdi-icon{width:21px;height:21px}.ai-fab .cdi-icon{width:22px;height:22px}
.pwa-nav-item .cdi-icon{width:22px;height:22px;stroke-width:2}
.pwa-nav-match-btn .cdi-icon{width:24px;height:24px;color:#fff}
.cdi-pwa-sheet .cdi-icon{width:19px;height:19px}

/* Standalone app should feel like an app rather than a website with a toolbar. */
.pwa-standalone .site-footer{display:none!important}
.pwa-standalone .util{display:none!important}
.pwa-standalone body{padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;background:#f4f7fb}
.pwa-standalone .ai-fab{bottom:calc(82px + env(safe-area-inset-bottom));width:48px;height:48px;padding:0;justify-content:center;border-radius:16px}
.pwa-standalone .ai-fab-label{display:none!important}

/* V8 learner app shell */
.cdi-app-page{background:#f4f7fb}
.cdi-app-shell{max-width:1120px;margin:0 auto;padding:26px 18px 112px}
.cdi-appbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.cdi-appbar-brand{display:flex;align-items:center;gap:12px;min-width:0}
.cdi-appbar-brand img{width:52px;height:52px;border-radius:15px;box-shadow:0 12px 28px rgba(7,31,63,.18)}
.cdi-appbar-title strong{display:block;font-size:18px;color:#0b1f3d;line-height:1.2}.cdi-appbar-title span{font-size:12px;color:#6c7687}
.cdi-appbar-actions{display:flex;align-items:center;gap:8px}
.cdi-app-icon-btn{position:relative;width:46px;height:46px;border:1px solid #dde4ed;border-radius:14px;background:#fff;color:#0b1f3d;display:grid;place-items:center;box-shadow:0 8px 22px rgba(7,31,63,.06)}
.cdi-app-icon-btn .cdi-icon{width:22px;height:22px}
.cdi-app-badge{position:absolute;right:-4px;top:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;border:2px solid #f4f7fb;font-size:10px;font-weight:800;display:grid;place-items:center}
.cdi-app-greeting{margin-bottom:18px}.cdi-app-greeting small{display:block;color:#1267d6;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}.cdi-app-greeting h1{font-size:clamp(29px,8vw,44px)!important;line-height:1.05!important;margin:0;color:#071426}.cdi-app-greeting p{font-size:15px;color:#667085;margin:10px 0 0;max-width:650px}
.cdi-app-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#071a34,#0b3152);border-radius:26px;padding:24px;color:#fff;box-shadow:0 20px 44px rgba(5,25,49,.18);margin-bottom:18px}
.cdi-app-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-110px;background:radial-gradient(circle,rgba(0,191,232,.38),transparent 68%)}
.cdi-app-hero>*{position:relative;z-index:1}.cdi-app-hero-kicker{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#82eafa}.cdi-app-hero h2{color:#fff!important;font-size:25px!important;margin:12px 0 8px}.cdi-app-hero p{max-width:580px;color:rgba(255,255,255,.72);font-size:14px;line-height:1.6;margin:0 0 18px}
.cdi-app-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.cdi-app-primary,.cdi-app-secondary{min-height:48px;padding:0 18px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:800;text-decoration:none}.cdi-app-primary{background:linear-gradient(135deg,#1675e8,#00bfe8);color:#fff;box-shadow:0 10px 24px rgba(0,191,232,.22)}.cdi-app-secondary{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.18)}
.cdi-app-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:26px}.cdi-app-stat{background:#fff;border:1px solid #e1e7ef;border-radius:17px;padding:15px;min-width:0}.cdi-app-stat .cdi-icon{width:21px;height:21px;color:#1267d6;margin-bottom:10px}.cdi-app-stat strong{display:block;font-size:22px;color:#0b1f3d;line-height:1}.cdi-app-stat span{display:block;font-size:11px;color:#748093;margin-top:6px;line-height:1.35}
.cdi-app-section{margin-top:26px}.cdi-app-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.cdi-app-section-head h2{font-size:20px!important;color:#0b1f3d!important;margin:0}.cdi-app-section-head a{font-size:12px;font-weight:800;color:#1267d6;text-decoration:none}
.cdi-app-cards{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;scrollbar-width:none}.cdi-app-cards::-webkit-scrollbar{display:none}
.cdi-app-card{flex:0 0 min(84vw,330px);scroll-snap-align:start;background:#fff;border:1px solid #e0e6ee;border-radius:20px;padding:14px;box-shadow:0 12px 28px rgba(7,31,63,.06)}
.cdi-app-card-top{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:start}.cdi-app-card-photo{width:78px;height:78px;border-radius:15px;object-fit:cover;background:#e9eef5}.cdi-app-card-name{font-size:17px;font-weight:800;color:#0b1f3d;line-height:1.2}.cdi-app-card-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.cdi-app-chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:5px 8px;background:#f2f6fa;color:#536072;font-size:10px;font-weight:700}.cdi-app-price{font-size:18px;font-weight:900;color:#0b1f3d;white-space:nowrap}.cdi-app-price small{display:block;font-size:9px;color:#7a8494;font-weight:600;text-align:right}.cdi-app-card-desc{font-size:12.5px;line-height:1.55;color:#667085;margin:12px 0}.cdi-app-card-actions{display:grid;grid-template-columns:1fr auto;gap:8px}.cdi-app-card-actions a,.cdi-save-compact{min-height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.cdi-app-card-actions a{background:#1267d6;color:#fff;text-decoration:none}.cdi-save-compact{width:44px;border:1px solid #dce3eb;background:#fff;color:#0b1f3d}.cdi-save-compact.is-saved{background:#e8f7f1;color:#008a61;border-color:#aee3cf}
.cdi-app-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cdi-app-action{min-height:96px;background:#fff;border:1px solid #e1e7ef;border-radius:18px;padding:15px;text-decoration:none;color:#0b1f3d;display:flex;flex-direction:column;justify-content:space-between}.cdi-app-action .cdi-icon{width:24px;height:24px;color:#1267d6}.cdi-app-action strong{font-size:13px}.cdi-app-action span{font-size:10.5px;color:#7a8494;margin-top:3px}

/* Notification centre */
.cdi-notification-list{display:grid;gap:10px}.cdi-notification-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start;background:#fff;border:1px solid #e0e6ee;border-radius:17px;padding:14px;text-decoration:none;color:#0b1f3d}.cdi-notification-item.is-unread{border-color:#b9dcff;background:#f7fbff}.cdi-notification-icon{width:42px;height:42px;border-radius:13px;background:#eaf5ff;color:#1267d6;display:grid;place-items:center}.cdi-notification-icon .cdi-icon{width:21px;height:21px}.cdi-notification-copy strong{display:block;font-size:13px}.cdi-notification-copy p{font-size:11.5px;line-height:1.5;color:#667085;margin:4px 0}.cdi-notification-time{font-size:9.5px;color:#8a94a4;white-space:nowrap}.cdi-app-empty{background:#fff;border:1px dashed #ced7e2;border-radius:20px;padding:30px 18px;text-align:center;color:#667085}.cdi-app-empty .cdi-icon{width:34px;height:34px;color:#1267d6;margin-bottom:10px}.cdi-app-empty strong{display:block;color:#0b1f3d;margin-bottom:6px}

/* Account/status */
.cdi-account-grid{display:grid;gap:12px}.cdi-account-card{background:#fff;border:1px solid #e1e7ef;border-radius:18px;padding:17px}.cdi-account-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cdi-account-row+.cdi-account-row{border-top:1px solid #edf1f5;margin-top:13px;padding-top:13px}.cdi-account-label{display:flex;align-items:center;gap:10px}.cdi-account-label .cdi-icon{width:21px;height:21px;color:#1267d6}.cdi-account-label strong{display:block;font-size:13px;color:#0b1f3d}.cdi-account-label span{display:block;font-size:10.5px;color:#778194}.cdi-status-pill{border-radius:999px;padding:5px 9px;font-size:9.5px;font-weight:800;background:#eef2f6;color:#657082}.cdi-status-pill.is-good{background:#e5f7ef;color:#00835f}.cdi-account-link{font-size:12px;font-weight:800;color:#1267d6;text-decoration:none}.cdi-account-button{border:0;background:#1267d6;color:#fff;border-radius:11px;padding:9px 12px;font:700 11px Poppins,system-ui;cursor:pointer}

@media(min-width:760px){.cdi-app-shell{padding-inline:28px}.cdi-app-card{flex-basis:320px}.cdi-app-actions-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.cdi-app-shell{padding:18px 14px 105px}.cdi-appbar-title span{display:none}.cdi-app-hero{padding:20px}.cdi-app-hero-actions{display:grid}.cdi-app-primary,.cdi-app-secondary{width:100%}.cdi-app-stats{grid-template-columns:repeat(3,1fr)}.cdi-app-stat{padding:12px 9px}.cdi-app-stat strong{font-size:19px}.cdi-app-stat span{font-size:9.5px}.cdi-app-card{flex-basis:88vw}}

/* Dedicated installed app routes use their own compact app bar. */
.pwa-standalone body.cdi-app-page .topnav,
.pwa-standalone body.cdi-app-page .cdi-megawrap,
.pwa-standalone body.cdi-app-page .cdi-overlay,
.pwa-standalone body.cdi-app-page .mobile-drawer{display:none!important}
.pwa-standalone body.cdi-app-page .cdi-app-shell{padding-top:max(18px,env(safe-area-inset-top))}
/* ===== END assets/css/cdi-premium-v8.css ===== */

/* ===== BEGIN assets/css/v13-premium-app.css ===== */
/* CDI Premium PWA V9 - branded splash and dashboard polish */
:root{--cdi-v9-navy:#071a34;--cdi-v9-blue:#1675e8;--cdi-v9-cyan:#00bfe8;--cdi-v9-ink:#071426;--cdi-v9-muted:#667085;--cdi-v9-line:#dfe6ef;--cdi-v9-bg:#f4f7fb}

/* Full branded first-run showcase, followed by a compact launch on return. */
.cdi-launch{display:none!important;background:radial-gradient(circle at 50% -5%,rgba(0,191,232,.22),transparent 34%),linear-gradient(160deg,#061426 0%,#081d37 58%,#07374a 100%)!important;padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));}
.pwa-standalone .cdi-launch.is-active{display:grid!important}
.cdi-launch.is-leaving{opacity:0!important;visibility:hidden!important;pointer-events:none}
.cdi-launch:before{opacity:.65}
.cdi-splash-shell{position:relative;z-index:2;width:min(100%,430px);height:min(760px,calc(100dvh - 44px));display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin:auto;opacity:1;transition:opacity .25s ease,transform .25s ease}
.cdi-splash-logo-card{width:min(78vw,310px);min-height:88px;border:1px solid rgba(255,255,255,.15);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.035));box-shadow:0 24px 70px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.12);display:grid;place-items:center;padding:16px 20px;margin:4px auto 18px;backdrop-filter:blur(15px)}
.cdi-splash-logo-card img{display:block;width:min(100%,270px);height:auto;filter:drop-shadow(0 12px 28px rgba(0,0,0,.28))}
.cdi-splash-slides{position:relative;flex:1;width:100%;min-height:0}
.cdi-splash-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateX(24px) scale(.985);transition:opacity .42s ease,transform .42s cubic-bezier(.2,.75,.2,1),visibility .42s}
.cdi-splash-slide.is-active{opacity:1;visibility:visible;transform:none}
.cdi-splash-visual{width:min(84vw,360px);height:clamp(230px,38dvh,350px);border:1px solid rgba(255,255,255,.12);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(224,247,255,.94));box-shadow:0 22px 60px rgba(0,0,0,.2);display:grid;place-items:center;overflow:hidden;padding:12px 14px}
.cdi-splash-visual img{width:100%;height:100%;object-fit:contain;transform:translateY(4px);filter:drop-shadow(0 14px 18px rgba(6,31,58,.09))}
.cdi-splash-copy{text-align:center;padding:18px 10px 0;max-width:380px}
.cdi-splash-copy h2{margin:0;color:#fff!important;font-size:clamp(25px,7vw,34px)!important;line-height:1.06!important;letter-spacing:-.035em!important;font-weight:800!important}
.cdi-splash-copy p{margin:10px auto 0;color:rgba(255,255,255,.72);font-size:14px;line-height:1.55;max-width:330px}
.cdi-splash-footer{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:42px;margin-top:8px}
.cdi-splash-dots{grid-column:2;display:flex;align-items:center;gap:7px}
.cdi-splash-dots span{display:block;width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.28);transition:width .25s ease,background .25s ease}
.cdi-splash-dots span.is-active{width:24px;background:linear-gradient(90deg,#00bfe8,#29d7b5)}
.cdi-splash-skip{grid-column:3;justify-self:end;border:0;background:transparent;color:rgba(255,255,255,.72);font:600 12px Poppins,system-ui;padding:10px;cursor:pointer}
.cdi-splash-returning{display:none;position:relative;z-index:2;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.cdi-splash-returning-card{width:min(78vw,320px);border:1px solid rgba(255,255,255,.15);border-radius:27px;background:rgba(255,255,255,.07);padding:24px;box-shadow:0 28px 70px rgba(0,0,0,.24);animation:cdiV9Return .55s cubic-bezier(.2,.8,.2,1) both}
.cdi-splash-returning-card img{display:block;width:100%;height:auto}
.cdi-splash-returning p{margin:18px 0 0;color:rgba(255,255,255,.72);font-size:13px;letter-spacing:.04em;animation:cdiV9Fade .45s .22s both}
.cdi-launch.is-returning .cdi-splash-shell{display:none}
.cdi-launch.is-returning .cdi-splash-returning{display:flex}
@keyframes cdiV9Return{from{opacity:0;transform:translateY(12px) scale(.97);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes cdiV9Fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* App routes should not inherit the marketing urgency strip. */
.pwa-standalone body.cdi-app-page .urg{display:none!important}
.pwa-standalone body.cdi-app-page{background:var(--cdi-v9-bg)!important;color:var(--cdi-v9-ink)}
.pwa-standalone body.cdi-app-page .cdi-app-shell{max-width:1080px;padding:18px 16px calc(104px + env(safe-area-inset-bottom))!important}

/* Real CDI wordmark in the app header. */
.cdi-appbar{min-height:64px;margin-bottom:25px!important}
.cdi-app-wordmark{display:flex!important;align-items:center!important;min-width:0;text-decoration:none}
.cdi-app-wordmark img{display:block!important;width:clamp(168px,48vw,230px)!important;height:auto!important;max-height:76px!important;object-fit:contain!important;border-radius:0!important;box-shadow:none!important}
.cdi-appbar-actions{flex:0 0 auto}
.cdi-app-icon-btn{width:45px!important;height:45px!important;border-radius:14px!important;background:#fff!important;border:1px solid #dfe6ef!important;box-shadow:0 9px 22px rgba(7,31,63,.06)!important}

/* Better heading rhythm. */
.cdi-app-greeting{margin-bottom:22px!important}
.cdi-app-greeting small{font-size:12px!important;letter-spacing:.15em!important}
.cdi-app-greeting h1{font-size:clamp(32px,8.6vw,48px)!important;line-height:1.01!important;letter-spacing:-.045em!important;max-width:720px}
.cdi-app-greeting p{font-size:15px!important;line-height:1.65!important;max-width:610px!important}

/* Premium readable Instructor Match card with illustration. */
.cdi-app-hero{display:grid!important;grid-template-columns:1fr!important;padding:0!important;background:#fff!important;color:var(--cdi-v9-ink)!important;border:1px solid var(--cdi-v9-line)!important;border-radius:27px!important;box-shadow:0 18px 44px rgba(7,31,63,.09)!important;overflow:hidden!important}
.cdi-app-hero:after{display:none!important}
.cdi-app-hero-visual{min-height:205px;background:radial-gradient(circle at 72% 18%,rgba(0,191,232,.22),transparent 37%),linear-gradient(145deg,#edfaff,#d8f4fd);display:grid;place-items:center;padding:12px 20px 0;overflow:hidden}
.cdi-app-hero-visual img{display:block;width:min(100%,390px);height:215px;object-fit:contain;filter:drop-shadow(0 16px 26px rgba(7,31,63,.1))}
.cdi-app-hero-copy{padding:21px 20px 22px;position:relative;z-index:1}
.cdi-app-hero-kicker{color:#0c74d9!important;font-size:11px!important;letter-spacing:.13em!important}
.cdi-app-hero h2{color:var(--cdi-v9-ink)!important;font-size:clamp(24px,6.7vw,33px)!important;line-height:1.07!important;letter-spacing:-.035em!important;margin:11px 0 9px!important}
.cdi-app-hero p{color:var(--cdi-v9-muted)!important;font-size:13.5px!important;line-height:1.6!important;margin:0 0 18px!important}
.cdi-app-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
.cdi-app-primary,.cdi-app-secondary{width:100%!important;min-height:49px!important;border-radius:14px!important;font-size:13px!important}
.cdi-app-primary{background:linear-gradient(135deg,#176fe2,#00bfe8)!important;color:#fff!important}
.cdi-app-secondary{background:#f4f7fb!important;color:#0b1f3d!important;border:1px solid #dae3ec!important}

/* Quick action cards: no text collisions and equal visual rhythm. */
.cdi-app-actions-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.cdi-app-action{min-height:172px!important;padding:18px 16px!important;border-radius:21px!important;background:#fff!important;border:1px solid #dfe6ef!important;box-shadow:0 10px 28px rgba(7,31,63,.045)!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:20px!important;overflow:hidden!important}
.cdi-app-action-icon{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;border-radius:14px!important;background:#edf7ff!important;color:#1267d6!important;margin:0!important;flex:0 0 auto!important}
.cdi-app-action-icon .cdi-icon{width:24px!important;height:24px!important;color:inherit!important}
.cdi-app-action-copy{display:block!important;min-width:0!important;margin:0!important;color:inherit!important}
.cdi-app-action-copy strong{display:block!important;margin:0!important;color:#0b1f3d!important;font-size:16px!important;line-height:1.22!important;letter-spacing:-.02em!important;overflow-wrap:anywhere}
.cdi-app-action-copy small{display:block!important;margin-top:8px!important;color:#6d7889!important;font-size:11.5px!important;line-height:1.52!important;font-weight:500!important;overflow-wrap:anywhere}

/* Account and app settings polish. */
.cdi-app-account-page .cdi-account-grid{gap:14px!important}
.cdi-app-account-page .cdi-account-card{border-radius:22px!important;padding:18px!important;box-shadow:0 10px 28px rgba(7,31,63,.045)!important}
.cdi-app-account-page .cdi-account-row{min-height:64px!important}
.cdi-app-account-page .cdi-account-label{min-width:0!important}
.cdi-app-account-page .cdi-account-label>div{min-width:0!important}
.cdi-account-label strong{font-size:14px!important;line-height:1.25!important}
.cdi-account-label span{font-size:11px!important;line-height:1.48!important}
.cdi-account-button{min-height:44px!important;padding:0 16px!important;border-radius:13px!important;font-size:12px!important}

/* Bottom nav and assistant should never cover card content. */
.pwa-standalone .pwa-bottom-nav{min-height:74px!important;padding:5px 6px max(5px,env(safe-area-inset-bottom))!important}
.pwa-standalone .pwa-nav-item{min-height:60px!important;font-size:10px!important}
.pwa-standalone .ai-fab{right:15px!important;bottom:calc(88px + env(safe-area-inset-bottom))!important;width:46px!important;height:46px!important;border-radius:15px!important;box-shadow:0 14px 36px rgba(4,23,49,.22)!important}

@media(min-width:760px){
  .cdi-app-hero{grid-template-columns:minmax(300px,.88fr) minmax(0,1.12fr)!important;align-items:stretch}
  .cdi-app-hero-visual{min-height:100%;padding:24px}
  .cdi-app-hero-visual img{height:280px}
  .cdi-app-hero-copy{padding:35px 34px;display:flex;flex-direction:column;justify-content:center}
  .cdi-app-hero-actions{grid-template-columns:auto auto!important;justify-content:start}
  .cdi-app-primary,.cdi-app-secondary{width:auto!important}
  .cdi-app-actions-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:390px){
  .pwa-standalone body.cdi-app-page .cdi-app-shell{padding-inline:13px!important}
  .cdi-app-wordmark img{width:158px!important}
  .cdi-appbar-actions{gap:6px!important}
  .cdi-app-icon-btn{width:42px!important;height:42px!important}
  .cdi-app-actions-grid{gap:9px!important}
  .cdi-app-action{padding:15px 13px!important;min-height:164px!important}
  .cdi-app-action-copy strong{font-size:14px!important}
  .cdi-app-action-copy small{font-size:10.5px!important}
}
@media(prefers-reduced-motion:reduce){
  .cdi-splash-slide,.cdi-launch,.cdi-splash-dots span{transition:none!important;animation:none!important}
}

/* CDI PWA V10 session-safe splash and account identity polish */
.pwa-standalone .cdi-launch.is-active{display:none!important}
.pwa-standalone.cdi-fresh-app-session .cdi-launch.is-active{display:grid!important}
.cdi-account-label a{color:inherit;text-decoration:none;overflow-wrap:anywhere}
.cdi-account-label a:hover{text-decoration:underline}
.cdi-made-in-uk{background:linear-gradient(135deg,rgba(0,191,232,.08),rgba(0,168,107,.08))}
.cdi-made-in-uk .cdi-icon{color:#00a86b}
@media(max-width:520px){
  .cdi-made-in-uk .cdi-account-label strong{font-size:15px}
  .cdi-made-in-uk .cdi-account-label span{font-size:12px;line-height:1.5}
}


/* CDI Premium PWA V11 - brand bridge, slower splash pacing and working mobile search */
.cdi-splash-brand-intro{position:relative;z-index:4;width:min(88vw,390px);margin:auto;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;transform:translateY(10px) scale(.985);transition:opacity .45s ease,transform .45s ease}
.cdi-splash-brand-intro.is-active{display:flex;opacity:1;transform:none}
.cdi-splash-brand-intro.is-leaving{display:flex;opacity:0;transform:translateY(-8px) scale(.985);pointer-events:none}
.cdi-splash-intro-wordmark{display:block;width:min(76vw,315px);height:auto;margin:0 auto 24px;filter:drop-shadow(0 16px 28px rgba(0,0,0,.28))}
.cdi-splash-intro-icon-wrap{width:min(52vw,230px);aspect-ratio:1;border-radius:29%;padding:10px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 76px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.12);display:grid;place-items:center}
.cdi-splash-intro-icon{display:block;width:100%;height:100%;object-fit:contain;border-radius:25%}
.cdi-splash-brand-intro p{margin:22px 0 0;color:rgba(255,255,255,.78);font-size:14px;font-weight:600;letter-spacing:.08em}
.cdi-splash-shell{display:none}
.cdi-splash-shell.is-visible{display:flex}
.cdi-splash-slide{transition-duration:.55s}

@media(max-width:760px){
  .cdi-premium .mphero .mps{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    gap:9px!important;
    padding:11px!important;
    margin:0!important;
    border-radius:18px!important;
    background:#fff!important;
    border:1px solid #dce5ee!important;
    box-shadow:0 12px 32px rgba(7,31,63,.12)!important;
    position:relative!important;
    z-index:8!important;
    overflow:visible!important;
  }
  .cdi-premium .mphero .mps .mpd{display:none!important}
  .cdi-premium .mphero .mps input[name="q"]{
    grid-column:1/-1!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    min-height:50px!important;
    padding:12px 14px!important;
    border:1.5px solid #cfd9e4!important;
    border-radius:13px!important;
    background:#fff!important;
    color:#071426!important;
    font-size:16px!important;
    line-height:1.3!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-user-select:text!important;
    user-select:text!important;
    caret-color:#1267d6!important;
    position:relative!important;
    z-index:10!important;
  }
  .cdi-premium .mphero .mps input[name="q"]:focus{outline:3px solid rgba(18,103,214,.16)!important;border-color:#1267d6!important}
  .cdi-premium .mphero .mps select{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    padding:10px 30px 10px 11px!important;
    border:1px solid #d7e0e9!important;
    border-radius:12px!important;
    background:#f7f9fc!important;
    color:#14243b!important;
    font-size:12px!important;
    pointer-events:auto!important;
  }
  .cdi-premium .mphero .mps button[type="submit"]{
    grid-column:1/-1!important;
    width:100%!important;
    min-height:49px!important;
    border-radius:13px!important;
    font-size:14px!important;
  }
  .cdi-premium .mphero .mptrig{display:none!important}
}
@media(max-width:380px){
  .cdi-premium .mphero .mps{grid-template-columns:1fr!important}
  .cdi-premium .mphero .mps input[name="q"],.cdi-premium .mphero .mps button[type="submit"]{grid-column:1!important}
}
@media(prefers-reduced-motion:reduce){
  .cdi-splash-brand-intro{transition:none!important}
}

/* CDI Premium PWA V12 - seamless native handoff and calmer splash motion */
.cdi-launch{isolation:isolate;overflow:hidden;transition:opacity .72s ease,visibility .72s ease!important}
.cdi-launch::after{content:"";position:absolute;inset:-22%;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(0,211,190,.13),transparent 34%),radial-gradient(circle at 68% 18%,rgba(0,191,232,.11),transparent 30%);filter:blur(8px);animation:cdiV12Ambient 7s ease-in-out infinite alternate}

.cdi-splash-brand-intro{position:absolute!important;inset:0!important;z-index:5!important;width:min(92vw,430px)!important;display:flex!important;opacity:1!important;visibility:visible!important;transform:none!important;padding:26px 20px;transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1),filter .9s ease!important}
.cdi-splash-brand-intro.is-hidden{display:none!important}
.cdi-splash-brand-intro.is-leaving{opacity:0!important;transform:scale(1.025)!important;filter:blur(6px)!important}
.cdi-splash-intro-wordmark{opacity:0;transform:translateY(-12px);animation:cdiV12Wordmark .78s .5s cubic-bezier(.2,.8,.2,1) forwards}
.cdi-splash-intro-icon-wrap{position:relative;overflow:hidden;transform:scale(.94);animation:cdiV12IconSettle 1.25s .08s cubic-bezier(.16,.84,.2,1) forwards,cdiV12IconFloat 2.6s 1.25s ease-in-out infinite alternate}
.cdi-splash-intro-icon-wrap::before{content:"";position:absolute;inset:-16%;border-radius:38%;border:1px solid rgba(36,222,196,.48);opacity:0;animation:cdiV12Halo 1.45s .18s ease-out forwards}
.cdi-splash-intro-icon-wrap::after{content:"";position:absolute;inset:-55% -90%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.28) 49%,rgba(62,237,211,.34) 53%,transparent 60%);transform:translateX(-42%) rotate(10deg);animation:cdiV12Shimmer 1.25s .62s cubic-bezier(.2,.7,.2,1) forwards;mix-blend-mode:screen;pointer-events:none}
.cdi-splash-brand-intro p{opacity:0;transform:translateY(8px);animation:cdiV12Tagline .68s 1.05s ease forwards}

.cdi-splash-shell{display:flex!important;opacity:0!important;visibility:hidden!important;transform:scale(.995)!important;transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1),visibility .9s!important}
.cdi-splash-shell.is-visible{opacity:1!important;visibility:visible!important;transform:none!important}
.cdi-splash-logo-card{transition:transform .9s cubic-bezier(.2,.75,.2,1),opacity .9s ease}

.cdi-splash-slide{display:flex!important;opacity:0!important;visibility:hidden!important;transform:translateY(18px) scale(.992)!important;filter:blur(5px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1),filter .9s ease,visibility 0s linear .9s!important;will-change:opacity,transform,filter}
.cdi-splash-slide.is-entering{opacity:0!important;visibility:visible!important;transform:translateY(18px) scale(.992)!important;filter:blur(5px);transition-delay:0s!important}
.cdi-splash-slide.is-active{opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;transition-delay:0s!important;z-index:2}
.cdi-splash-slide.is-exiting{opacity:0!important;visibility:visible!important;transform:translateY(-12px) scale(1.006)!important;filter:blur(5px);z-index:1;transition-delay:0s!important}
.cdi-splash-slide.is-active .cdi-splash-visual{animation:cdiV12VisualSettle 1.05s cubic-bezier(.2,.78,.2,1) both}
.cdi-splash-slide.is-active .cdi-splash-visual img{animation:cdiV12IllustrationFloat 3.2s ease-in-out both}
.cdi-splash-slide.is-active .cdi-splash-copy h2{animation:cdiV12CopyUp .72s .12s ease both}
.cdi-splash-slide.is-active .cdi-splash-copy p{animation:cdiV12CopyUp .72s .24s ease both}

.cdi-splash-dots span{position:relative;overflow:hidden;transition:width .5s ease,background .5s ease!important}
.cdi-splash-dots span.is-active{width:34px!important;background:rgba(255,255,255,.22)!important}
.cdi-splash-dots span.is-active::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#00bfe8,#29d7b5);transform-origin:left;animation:cdiV12Progress var(--cdi-slide-progress-duration,3200ms) linear forwards}
.cdi-splash-dots span.is-complete{width:10px;background:#29d7b5!important}
.cdi-splash-skip{font-size:13px!important;padding:11px 12px!important;opacity:.86;transition:opacity .2s ease,background .2s ease;border-radius:999px!important}
.cdi-splash-skip:active{background:rgba(255,255,255,.1);opacity:1}

@keyframes cdiV12Ambient{from{transform:translate3d(-1.5%,-1%,0) scale(1)}to{transform:translate3d(2%,1.5%,0) scale(1.035)}}
@keyframes cdiV12IconSettle{0%{opacity:0;transform:scale(.82);filter:blur(10px)}55%{opacity:1;transform:scale(1.035);filter:blur(0)}100%{opacity:1;transform:scale(1)}}
@keyframes cdiV12IconFloat{from{transform:translateY(0)}to{transform:translateY(-5px)}}
@keyframes cdiV12Halo{0%{opacity:0;transform:scale(.72)}45%{opacity:.75}100%{opacity:0;transform:scale(1.14)}}
@keyframes cdiV12Shimmer{0%{transform:translateX(-45%) rotate(10deg);opacity:0}20%{opacity:.9}100%{transform:translateX(45%) rotate(10deg);opacity:0}}
@keyframes cdiV12Wordmark{to{opacity:1;transform:none}}
@keyframes cdiV12Tagline{to{opacity:1;transform:none}}
@keyframes cdiV12VisualSettle{from{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:none}}
@keyframes cdiV12IllustrationFloat{0%{transform:translateY(8px) scale(.99)}45%{transform:translateY(0) scale(1.012)}100%{transform:translateY(-3px) scale(1.006)}}
@keyframes cdiV12CopyUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cdiV12Progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media(prefers-reduced-motion:reduce){
  .cdi-launch::after,.cdi-splash-intro-wordmark,.cdi-splash-intro-icon-wrap,.cdi-splash-intro-icon-wrap::before,.cdi-splash-intro-icon-wrap::after,.cdi-splash-brand-intro p,.cdi-splash-slide.is-active .cdi-splash-visual,.cdi-splash-slide.is-active .cdi-splash-visual img,.cdi-splash-slide.is-active .cdi-splash-copy h2,.cdi-splash-slide.is-active .cdi-splash-copy p,.cdi-splash-dots span.is-active::after{animation:none!important}
  .cdi-splash-intro-wordmark,.cdi-splash-brand-intro p{opacity:1!important;transform:none!important}
  .cdi-splash-intro-icon-wrap{transform:none!important}
  .cdi-splash-slide{filter:none!important}
}

/* CDI Premium PWA V13 - wordmark-led motion and true crossfade transitions */
.cdi-splash-intro-wordmark-wrap{
  position:relative;
  width:min(78vw,330px);
  margin:0 auto 24px;
  padding:10px 12px 12px;
  overflow:hidden;
  border-radius:20px;
  isolation:isolate;
  opacity:0;
  transform:translateY(8px) scale(.985);
  animation:cdiV13WordmarkEnter 1.05s .18s cubic-bezier(.2,.8,.2,1) forwards;
}
.cdi-splash-intro-wordmark-wrap::before{
  content:"";
  position:absolute;
  left:12%;right:12%;bottom:2px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,#00bfe8 20%,#29d7b5 72%,transparent);
  transform:scaleX(0);
  transform-origin:left;
  opacity:.9;
  animation:cdiV13LogoLine 1.15s .72s cubic-bezier(.2,.75,.2,1) forwards;
}
.cdi-splash-intro-wordmark-wrap::after{
  content:"";
  position:absolute;
  inset:-70% -120%;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.32) 49%,rgba(70,235,218,.24) 53%,transparent 60%);
  transform:translateX(-36%) rotate(8deg);
  mix-blend-mode:screen;
  animation:cdiV13LogoSheen 1.35s .92s cubic-bezier(.2,.7,.2,1) forwards;
}
.cdi-splash-intro-wordmark{
  position:relative;
  z-index:1;
  width:100%!important;
  margin:0!important;
  opacity:1!important;
  transform:none!important;
  animation:cdiV13LogoBreath 2.6s 1.05s ease-in-out infinite alternate!important;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.3));
}
/* Keep the CDI app icon visually stable after the Android native icon. */
.cdi-splash-intro-icon-wrap{
  animation:cdiV13IconStatic .5s .12s ease both!important;
  transform:none!important;
}
.cdi-splash-intro-icon-wrap::before,
.cdi-splash-intro-icon-wrap::after{display:none!important}

/* Do not animate/reflow entire slide layers. Crossfade only. */
.cdi-splash-slides{contain:layout paint;transform:translateZ(0)}
.cdi-splash-slide{
  display:flex!important;
  visibility:visible!important;
  opacity:0!important;
  transform:translateZ(0)!important;
  filter:none!important;
  pointer-events:none;
  z-index:0;
  transition:opacity 1.12s cubic-bezier(.4,0,.2,1)!important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:opacity;
}
.cdi-splash-slide.is-entering{
  visibility:visible!important;
  opacity:0!important;
  transform:translateZ(0)!important;
  filter:none!important;
  z-index:2;
}
.cdi-splash-slide.is-active{
  visibility:visible!important;
  opacity:1!important;
  transform:translateZ(0)!important;
  filter:none!important;
  z-index:2;
}
.cdi-splash-slide.is-exiting{
  visibility:visible!important;
  opacity:0!important;
  transform:translateZ(0)!important;
  filter:none!important;
  z-index:3;
}
.cdi-splash-visual{
  transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.cdi-splash-slide.is-active .cdi-splash-visual,
.cdi-splash-slide.is-active .cdi-splash-copy h2,
.cdi-splash-slide.is-active .cdi-splash-copy p{animation:none!important}
.cdi-splash-slide .cdi-splash-visual img{
  transform:translateZ(0) scale(1)!important;
  animation:none!important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.cdi-splash-slide.is-active .cdi-splash-visual img{
  animation:cdiV13IllustrationDrift 3.4s ease-in-out both!important;
}
.cdi-splash-copy{
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.cdi-splash-copy h2,.cdi-splash-copy p{
  transform:translateZ(0)!important;
}
.cdi-splash-logo-card{
  position:relative;
  overflow:hidden;
}
.cdi-splash-logo-card::after{
  content:"";
  position:absolute;
  inset:-80% -130%;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 44%,rgba(255,255,255,.18) 50%,rgba(66,226,211,.15) 54%,transparent 61%);
  transform:translateX(-30%) rotate(8deg);
  animation:cdiV13TopLogoSheen 5.8s 1.1s ease-in-out infinite;
  mix-blend-mode:screen;
}

@keyframes cdiV13WordmarkEnter{
  0%{opacity:0;transform:translateY(8px) scale(.985)}
  100%{opacity:1;transform:none}
}
@keyframes cdiV13LogoLine{to{transform:scaleX(1)}}
@keyframes cdiV13LogoSheen{
  0%{transform:translateX(-38%) rotate(8deg);opacity:0}
  18%{opacity:.9}
  100%{transform:translateX(38%) rotate(8deg);opacity:0}
}
@keyframes cdiV13LogoBreath{
  from{transform:scale(1);filter:drop-shadow(0 14px 30px rgba(0,0,0,.3))}
  to{transform:scale(1.012);filter:drop-shadow(0 16px 34px rgba(0,191,232,.2))}
}
@keyframes cdiV13IconStatic{
  from{opacity:0;transform:scale(.97)}
  to{opacity:1;transform:scale(1)}
}
@keyframes cdiV13IllustrationDrift{
  0%{transform:translate3d(0,2px,0) scale(1)}
  50%{transform:translate3d(0,-1px,0) scale(1.006)}
  100%{transform:translate3d(0,-2px,0) scale(1.004)}
}
@keyframes cdiV13TopLogoSheen{
  0%,62%{transform:translateX(-34%) rotate(8deg);opacity:0}
  70%{opacity:.55}
  88%,100%{transform:translateX(34%) rotate(8deg);opacity:0}
}

@media(prefers-reduced-motion:reduce){
  .cdi-splash-intro-wordmark-wrap,
  .cdi-splash-intro-wordmark-wrap::before,
  .cdi-splash-intro-wordmark-wrap::after,
  .cdi-splash-intro-wordmark,
  .cdi-splash-intro-icon-wrap,
  .cdi-splash-logo-card::after,
  .cdi-splash-slide.is-active .cdi-splash-visual img{animation:none!important}
  .cdi-splash-intro-wordmark-wrap{opacity:1!important;transform:none!important}
  .cdi-splash-intro-wordmark-wrap::before{transform:scaleX(1)!important}
}
/* ===== END assets/css/v13-premium-app.css ===== */

/* ===== BEGIN assets/css/cdi-ux-hardening-v20.css ===== */
/* CDI V20 UX hardening - mobile-first with premium desktop spacing */
.cdi-premium *{box-sizing:border-box}
.cdi-premium .dcard,.cdi-premium .pp,.cdi-premium .svc,.cdi-premium .tc,.cdi-premium .market-card,.cdi-premium .sim-card{min-width:0;overflow-wrap:break-word}
.cdi-premium .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cdi-premium .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cdi-premium .spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:900px){.cdi-premium .grid-3{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x mandatory;padding-bottom:10px;-webkit-overflow-scrolling:touch}.cdi-premium .grid-3>*{flex:0 0 min(86vw,360px);scroll-snap-align:start}.cdi-premium .grid-2{grid-template-columns:1fr}.cdi-premium .spec-grid{grid-template-columns:1fr}}
@media(max-width:680px){.cdi-premium .sec{padding:38px 0}.cdi-premium .mphero{padding:34px 0}.cdi-premium h1{letter-spacing:-.035em}.cdi-premium .btn,.cdi-premium .btn-lg{width:100%;justify-content:center;text-align:center}.cdi-premium .dcard,.cdi-premium .pp{border-radius:20px}}

/* Locations authority hub */
.cdi-locations-premium{background:linear-gradient(180deg,#eef7ff 0,#fff 46%,#f7fbff 100%)}
.locux-hero{padding:44px 0 30px;background:radial-gradient(circle at 78% 8%,rgba(54,199,108,.18),transparent 30%),linear-gradient(135deg,#eaf7ff 0%,#f8fbff 55%,#fff 100%);border-bottom:1px solid rgba(13,39,77,.08)}
.locux-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:28px;align-items:stretch}
.locux-hero-copy h1{font-size:clamp(34px,5.4vw,64px);line-height:.98;letter-spacing:-.055em;margin:8px 0 14px;color:var(--ink)}
.locux-lede{max-width:760px;color:rgba(7,20,38,.70);font-size:16.5px;line-height:1.7;margin:0 0 18px}
.locux-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 22px}
.locux-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:760px}
.locux-stat-row div{background:rgba(255,255,255,.78);border:1px solid rgba(13,39,77,.10);box-shadow:0 12px 32px rgba(13,39,77,.07);border-radius:18px;padding:14px 13px}
.locux-stat-row strong{display:block;font-size:23px;line-height:1;color:var(--ink);font-weight:900}
.locux-stat-row span{display:block;margin-top:5px;font-size:11.5px;color:var(--slate);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.locux-hero-card,.locux-side-card,.locux-region-card{background:#fff;border:1px solid rgba(13,39,77,.10);border-radius:28px;box-shadow:0 24px 60px rgba(13,39,77,.10)}
.locux-hero-card{padding:22px;display:flex;flex-direction:column;gap:12px}
.locux-card-kicker{display:inline-flex;align-items:center;width:max-content;border:1px solid rgba(45,127,246,.18);background:#edf6ff;color:#1664b8;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.locux-hero-card h2,.locux-strip-head h2,.locux-directory-head h2{font-size:clamp(21px,3vw,30px);line-height:1.1;margin:0;color:var(--ink);letter-spacing:-.035em}
.locux-hero-card label{font-size:12px;font-weight:900;color:var(--ink);margin-top:4px}
.locux-search{width:100%;border:1.5px solid rgba(13,39,77,.14);background:#f7fbff;border-radius:16px;padding:14px 15px;font:inherit;font-weight:700;color:var(--ink);outline:none}
.locux-search:focus{border-color:#2d7ff6;box-shadow:0 0 0 4px rgba(45,127,246,.12);background:#fff}
.locux-hero-card p{color:var(--slate);line-height:1.6;font-size:13.5px;margin:0}
.locux-mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.locux-mini-actions a{border:1px solid rgba(13,39,77,.10);border-radius:14px;padding:10px;color:var(--ink);font-size:12px;font-weight:900;text-align:center;background:#fff;text-decoration:none}.locux-mini-actions a:hover{background:#eef7ff}
.locux-strip,.locux-lessons{padding:26px 0;background:#fff}.locux-strip-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.locux-text-link{font-weight:900;color:#0f5fb9;text-decoration:none;white-space:nowrap}
.locux-rail,.locux-lesson-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.locux-rail::-webkit-scrollbar,.locux-lesson-rail::-webkit-scrollbar{display:none}
.locux-route-card{flex:0 0 220px;scroll-snap-align:start;background:linear-gradient(135deg,#07152f,#123d6d);color:#fff;border-radius:22px;padding:16px;text-decoration:none;box-shadow:0 16px 40px rgba(13,39,77,.20)}.locux-route-card strong{display:block;font-size:17px;line-height:1.15}.locux-route-card span{display:block;margin-top:5px;color:rgba(255,255,255,.72);font-size:12.5px;font-weight:700}.locux-route-card em{display:inline-flex;margin-top:14px;border-radius:999px;background:rgba(255,255,255,.12);padding:7px 10px;font-size:11.5px;font-style:normal;font-weight:900}
.locux-main{padding:34px 0 56px}.locux-main-grid{display:grid;grid-template-columns:285px minmax(0,1fr);gap:24px;align-items:start}.locux-side{position:sticky;top:92px;display:grid;gap:14px}.locux-side-card{padding:18px;border-radius:24px}.locux-region-pills{display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow:auto;padding-right:4px}.locux-region-pills button{width:100%;border:1px solid rgba(13,39,77,.10);border-radius:13px;background:#f8fbff;color:var(--ink);padding:10px 12px;font-weight:900;text-align:left;cursor:pointer}.locux-region-pills button:hover{background:#eef7ff;border-color:rgba(45,127,246,.28)}.locux-guidance h3{margin:10px 0 8px;font-size:18px;color:var(--ink)}.locux-guidance p{font-size:13.5px;line-height:1.65;color:var(--slate);margin:0 0 10px}.locux-guidance a{font-weight:900;color:#0f5fb9;text-decoration:none}
.locux-directory{min-width:0}.locux-directory-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;margin-bottom:18px}.locux-directory-head p{max-width:410px;color:var(--slate);font-size:13.5px;line-height:1.55;margin:0;text-align:right}
.locux-region-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.locux-region-card{padding:0;overflow:hidden;border-radius:22px}.locux-region-card summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;background:linear-gradient(180deg,#fff,#f7fbff);border-bottom:1px solid rgba(13,39,77,.08)}.locux-region-card summary::-webkit-details-marker{display:none}.locux-region-card summary span{font-weight:950;color:var(--ink);text-transform:uppercase;letter-spacing:.075em;font-size:12px}.locux-region-card summary em{font-style:normal;font-size:11.5px;font-weight:900;color:var(--slate);background:#eef7ff;border-radius:999px;padding:6px 9px}.locux-city-grid{display:grid;grid-template-columns:1fr;gap:1px;padding:8px;background:#fff}.locux-city-card{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:11px 10px;border-radius:13px;color:var(--ink);text-decoration:none;border:1px solid transparent}.locux-city-card:hover{background:#f2f8ff;border-color:rgba(45,127,246,.18)}.locux-city-name{font-weight:850;font-size:13.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.locux-city-meta{display:flex;gap:6px;align-items:center;white-space:nowrap}.locux-city-meta b,.locux-city-meta small{font-size:10.5px;font-weight:900;color:#55708f;background:#f3f7fb;border-radius:999px;padding:5px 7px}.locux-city-meta small{background:#edf8ef;color:#21834a}.locux-city-card i{font-style:normal;color:#7d91aa;font-weight:900}.locux-lesson-rail a{flex:0 0 auto;scroll-snap-align:start;background:#fff;border:1px solid rgba(13,39,77,.12);box-shadow:0 10px 28px rgba(13,39,77,.06);border-radius:999px;padding:11px 14px;color:var(--ink);font-weight:900;text-decoration:none;font-size:13px}
@media(min-width:1300px){.locux-region-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.locux-main-grid{grid-template-columns:300px minmax(0,1fr)}}
@media(max-width:1040px){.locux-hero-grid,.locux-main-grid{grid-template-columns:1fr}.locux-side{position:relative;top:auto}.locux-region-pills{flex-direction:row;overflow-x:auto;max-height:none;padding:0 0 6px}.locux-region-pills button{width:auto;white-space:nowrap}.locux-directory-head{text-align:left}.locux-directory-head p{text-align:left}.locux-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.locux-hero{padding:26px 0 18px}.locux-hero-grid{gap:18px}.locux-hero-copy h1{font-size:clamp(30px,10vw,42px)}.locux-lede{font-size:14.5px}.locux-cta-row{display:grid;grid-template-columns:1fr;gap:10px}.locux-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.locux-stat-row div{padding:12px}.locux-hero-card{border-radius:22px}.locux-strip-head,.locux-directory-head{align-items:flex-start;flex-direction:column}.locux-route-card{flex-basis:78vw}.locux-main{padding:24px 0 42px}.locux-side-card{border-radius:20px}.locux-region-grid{grid-template-columns:1fr;gap:12px}.locux-region-card:not([open]){box-shadow:0 10px 25px rgba(13,39,77,.06)}.locux-region-card summary{padding:14px 14px}.locux-city-card{grid-template-columns:minmax(0,1fr) 18px}.locux-city-meta{grid-column:1/-1;white-space:normal}.locux-city-meta b,.locux-city-meta small{font-size:10px}.locux-mini-actions{grid-template-columns:1fr}.locux-lessons{padding-bottom:34px}}

/* Premium page safety: avoid distorted desktop/mobile blocks */
@media(min-width:1000px){.comparison-help-grid,.fi-hero-grid,.tc-compare-grid,.marketplace-grid{align-items:stretch}.ph2-qfilter,.related-searches-rail{overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none}.ph2-qfilter::-webkit-scrollbar,.related-searches-rail::-webkit-scrollbar{display:none}}
@media(max-width:760px){.comparison-help-grid{display:flex!important;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;padding-bottom:8px}.comparison-help-grid>*{flex:0 0 82vw;scroll-snap-align:start}.market-actions{display:grid!important;grid-template-columns:1fr!important}.filter-grid,.fgrid,.fg-grid{grid-template-columns:1fr!important}.mphero .cw[style*="max-width"]{max-width:calc(100% - 24px)!important}}
/* ===== END assets/css/cdi-ux-hardening-v20.css ===== */

/* ===== BEGIN assets/css/cdi-launch-hardening-v26.css ===== */
/* V26 public launch hardening */
.pbook .ic-contact-actions{margin-top:10px}.pbook .ic-phone-reveal{width:100%;justify-content:center}.pbook .ic-phone-open{margin-top:8px}.pbook [data-cdi-share]{margin-top:8px}
@media(max-width:720px){.pbook .ic-phone-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pbook .ic-phone-links>*{justify-content:center;text-align:center}}


/* CDI V28.2 premium instructor profile UX */
.prof-tabs{border-top:1px solid var(--line);box-shadow:0 3px 12px rgba(7,20,38,.04);overflow-x:auto;scrollbar-width:none}
.prof-tabs::-webkit-scrollbar{display:none}
.prof-tabs .cw{width:100%}
.prof-tabs-inner{min-width:max-content;align-items:center}
.prof-tabs .ptab{appearance:none;background:transparent;border:0;border-bottom:3px solid transparent;font:inherit;font-size:13px;font-weight:800;color:var(--slate);padding:15px 18px;cursor:pointer}
.prof-tabs .ptab.a{color:var(--skyd);border-bottom-color:var(--sky)}
.pbody{background:linear-gradient(180deg,var(--surf) 0,#fff 180px);padding:30px 0 54px}
.pbody .cw{max-width:1180px}
.pgrid{grid-template-columns:minmax(0,1fr) 350px;gap:26px}
.pgrid main{min-width:0}
.pgrid aside{min-width:0}
.pgrid .pp,.pgrid .pcard,.pgrid .enqbox{box-shadow:0 8px 26px rgba(7,20,38,.055)}
.pbook{min-width:330px;border-radius:22px;padding:24px!important;box-shadow:0 16px 42px rgba(7,20,38,.10)}
.pbook [data-cdi-share]{border-color:var(--line);background:#fff}
.pbook .ic-contact-actions{display:block;margin-top:10px}
.pbook .ic-phone-reveal{width:100%;min-height:48px;border-radius:12px;font-size:13.5px;justify-content:space-between;padding:11px 14px}
.pbook .ic-phone-mask{font-size:15px;color:var(--ink)}
.pbook .ic-phone-open{margin-top:9px;padding:14px;border-radius:13px}
.pbook .ic-phone-number{font-size:20px;margin-bottom:2px}
.pbook .ic-phone-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pbook .ic-phone-links a,.pbook .ic-phone-links button{display:flex;align-items:center;justify-content:center;min-height:40px}
.pb-note{margin-top:12px}
.stickya{top:86px}
.tab-section{display:none}
.tab-section.active{display:block}

@media(max-width:980px){
 .phero-grid{grid-template-columns:auto 1fr;gap:18px}
 .pbook{grid-column:1/-1;min-width:0;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}
 .pbook .pb-price,.pbook .pb-stats,.pbook .pb-note,.pbook .ic-contact-actions{grid-column:1/-1}
 .pbook .pb-main,.pbook .pb-msg{margin:0}
 .pgrid{grid-template-columns:minmax(0,1fr) 320px;gap:18px}
}
@media(max-width:780px){
 .phtop{padding-top:24px}
 .phero-grid{grid-template-columns:78px minmax(0,1fr);gap:14px}
 .pavatar{width:78px;height:78px;border-radius:16px}
 .pinfo h1{margin-top:2px!important}
 .pbook{grid-column:1/-1;display:block;padding:18px!important;border-radius:18px}
 .pbook>*+*{margin-top:9px}
 .pstats{grid-template-columns:repeat(2,1fr);gap:1px}
 .pstat:last-child{grid-column:1/-1}
 .prof-tabs .cw{padding:0 12px}
 .prof-tabs .ptab{padding:13px 14px;font-size:12.5px}
 .pbody{padding:20px 0 36px}
 .pbody .cw{padding-left:14px;padding-right:14px}
 .pgrid{grid-template-columns:1fr;gap:18px}
 .stickya{position:static}
 .pp,.pcard,.enqbox{padding:17px!important;border-radius:16px!important}
 .pdg{grid-template-columns:1fr 1fr}
 .pkg-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
 .phero-grid{grid-template-columns:64px minmax(0,1fr);gap:12px}
 .pavatar{width:64px;height:64px;border-radius:14px}
 .ph-highlights,.ph-calls{margin-top:10px}
 .pbook{margin-top:6px}
 .pbook .ic-phone-links{grid-template-columns:1fr}
 .pstats{grid-template-columns:1fr 1fr}
 .pstat{padding:12px 8px}
 .pstat strong{font-size:15px}
 .pdg{grid-template-columns:1fr}
 .prof-tabs .ptab{padding:12px 13px}
}
/* ===== END assets/css/cdi-launch-hardening-v26.css ===== */
