/* ============================================================
   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}
}
