<style>
  html { scroll-behavior: smooth; }
  html, body { overflow-x: clip; }
  body { font-family:'Hind Siliguri',sans-serif; background:#F8FDFF; color:#081D3A; overflow-x:hidden; }

  /* ---------- Unified premium shadow system ---------- */
  :root{
    --shadow-sm: 0 10px 28px -14px rgba(8,29,58,.22);
    --shadow-md: 0 20px 45px -16px rgba(8,29,58,.28);
    --shadow-lg: 0 30px 65px -20px rgba(8,29,58,.32);
    --shadow-glow: 0 16px 40px -12px rgba(12,192,223,.45);
  }
  .shadow-premium-sm{ box-shadow: var(--shadow-sm); }
  .shadow-premium-md{ box-shadow: var(--shadow-md); }
  .shadow-premium-lg{ box-shadow: var(--shadow-lg); }
  .shadow-premium-glow{ box-shadow: var(--shadow-glow); }

  /* ---------- Reveal on scroll ---------- */
  .reveal { opacity:0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.16,.8,.28,1), transform .8s cubic-bezier(.16,.8,.28,1); }
  .reveal.show { opacity:1; transform:none; }
  .reveal-delay-1{transition-delay:.12s;} .reveal-delay-2{transition-delay:.24s;} .reveal-delay-3{transition-delay:.36s;} .reveal-delay-4{transition-delay:.48s;}

  /* ---------- Background world map watermark ---------- */
  .world-map-bg{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='400' viewBox='0 0 800 400'%3E%3Cg fill='none' stroke='%230CC0DF' stroke-width='1' opacity='0.15'%3E%3Ccircle cx='100' cy='100' r='2'/%3E%3Ccircle cx='150' cy='120' r='2'/%3E%3Ccircle cx='200' cy='90' r='2'/%3E%3C/g%3E%3C/svg%3E");
  }

  /* ---------- Gradient blobs ---------- */
  .blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.35; pointer-events:none; }
  @keyframes floatSlow { 0%,100%{ transform:translate(0,0) scale(1);} 50%{ transform:translate(20px,-30px) scale(1.06);} }
  .blob-anim{ animation: floatSlow 12s ease-in-out infinite; }

  /* ---------- Floating cards ---------- */
  @keyframes floaty { 0%,100%{ transform: translateY(0px) rotate(var(--rot,0deg)); } 50%{ transform: translateY(-16px) rotate(var(--rot,0deg)); } }
  .float-card{ animation: floaty 5.5s ease-in-out infinite; }

  /* ---------- Dotted flight path ---------- */
  .flight-path { stroke-dasharray: 6 8; animation: dash 3.2s linear infinite; }
  @keyframes dash { to { stroke-dashoffset: -140; } }
  @keyframes planeMove { 0%{ offset-distance:0%; } 100%{ offset-distance:100%; } }

  /* ---------- Glow pulse ---------- */
  @keyframes softPulse { 0%,100%{ box-shadow:0 0 0 0 rgba(12,192,223,.35);} 50%{ box-shadow:0 0 0 14px rgba(12,192,223,0);} }
  .pulse-ring{ animation: softPulse 2.4s ease-in-out infinite; }

  /* ---------- Glass ---------- */
  .glass{ background: rgba(255,255,255,0.65); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border:1px solid rgba(255,255,255,0.6); }
  .glass-dark{ background: rgba(11,30,61,0.55); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border:1px solid rgba(255,255,255,0.08); }

  /* ---------- Stamp badge (signature element) ---------- */
  .stamp{
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    border:2.5px dashed rgba(12,192,223,.55); border-radius:50%;
    transform: rotate(-8deg);
  }
  .stamp::before{
    content:''; position:absolute; inset:6px; border:1px solid rgba(12,192,223,.35); border-radius:50%;
  }

  /* ---------- Ticket / boarding-pass card notch ---------- */
  .ticket-card{ position:relative; }
  .ticket-card::before, .ticket-card::after{
    content:''; position:absolute; width:22px; height:22px; background:#F8FDFF; border-radius:50%;
    top:50%; transform:translateY(-50%); z-index:2;
  }
  .ticket-card::before{ left:-11px; }
  .ticket-card::after{ right:-11px; }
  .ticket-perf{ border-left:2px dashed rgba(11,30,61,.15); border-right:2px dashed rgba(11,30,61,.15); }
  .ticket-card{ border-top:3px solid transparent; transition: border-color .4s ease, box-shadow .4s ease; box-shadow: var(--shadow-sm); }
  .ticket-card:hover{ border-top-color:#0CC0DF; box-shadow: var(--shadow-md); }

  /* ---------- Card hover lift ---------- */
  .lift{ transition: transform .45s cubic-bezier(.16,.8,.28,1), box-shadow .45s cubic-bezier(.16,.8,.28,1); }
  .lift:hover{ transform: translateY(-10px); box-shadow: 0 30px 60px -20px rgba(11,30,61,.28); }

  /* ---------- Image zoom on hover ---------- */
  .img-zoom{ overflow:hidden; }
  .img-zoom img, .img-zoom video{ transition: transform .8s cubic-bezier(.16,.8,.28,1); }
  .img-zoom:hover img, .img-zoom:hover video{ transform: scale(1.08); }

  /* ---------- Gradient border animation ---------- */
  .grad-border{ position:relative; }
  .grad-border::before{
    content:''; position:absolute; inset:-1.5px; border-radius:inherit; padding:1.5px;
    background: linear-gradient(120deg,#0CC0DF,#7FE3F0,#0CC0DF,#087A94);
    background-size:300% 300%; animation: borderMove 4s linear infinite;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude; opacity:0; transition:opacity .4s;
  }
  .grad-border:hover::before{ opacity:1; }
  @keyframes borderMove{ 0%{background-position:0% 50%;} 100%{background-position:300% 50%;} }

  /* ---------- Ripple button ---------- */
  .ripple{ position:relative; overflow:hidden; }
  .ripple span.circle{ position:absolute; border-radius:50%; background:rgba(255,255,255,.5); transform:scale(0); animation:ripple .6s linear; pointer-events:none; }
  @keyframes ripple{ to{ transform:scale(3); opacity:0; } }

  /* ---------- Cloud drift ---------- */
  @keyframes drift{ 0%{ transform:translateX(0);} 100%{ transform:translateX(60px);} }
  .drift{ animation: drift 18s ease-in-out infinite alternate; }

  /* ---------- Particles ---------- */
  @keyframes particleUp{ 0%{ transform:translateY(0); opacity:0;} 15%{opacity:1;} 100%{ transform:translateY(-140px); opacity:0;} }
  .particle{ animation: particleUp 6s ease-in infinite; }

  /* underline animation for nav-style text links */
  .underline-anim{ position:relative; }
  .underline-anim::after{ content:''; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:#0CC0DF; transition:width .35s ease; }
  .underline-anim:hover::after{ width:100%; }

  /* counter */
  .counter{ font-variant-numeric: tabular-nums; }

  /* accordion */
  .acc-content{ max-height:0; overflow:hidden; opacity:0; transition:max-height .5s cubic-bezier(.16,.8,.28,1), opacity .5s ease .1s, padding .4s ease; }
  .acc-item.open .acc-content{ max-height:300px; opacity:1; }
  .acc-item .chev{ transition: transform .45s cubic-bezier(.34,1.56,.64,1); }
  .acc-item.open .chev{ transform: rotate(135deg); color:#39D8F5; }
  .acc-toggle .chev{ color:#94A9C2; transition: color .35s ease, transform .45s cubic-bezier(.34,1.56,.64,1); }
  .acc-toggle{ transition: background-color .35s ease; border-radius: inherit; }
  .acc-toggle:hover{ background: rgba(12,192,223,.05); }
  .acc-toggle:hover .chev{ color:#0CC0DF; }
  .acc-item.open .acc-toggle:hover .chev{ color:#39D8F5; }
  .acc-item{ transition: box-shadow .4s ease, border-color .4s ease, border-left-color .4s ease; border-left:3px solid transparent; }
  .acc-item.open{ box-shadow: 0 15px 40px -15px rgba(12,192,223,.3); border-color: rgba(12,192,223,.4); border-left-color:#0CC0DF; }

  /* marquee-ish testimonial track (manual carousel using scroll snap) */
  .snap-row{ scroll-snap-type:x mandatory; }
  .snap-row > *{ scroll-snap-align:start; }

  ::-webkit-scrollbar{ width:10px; }
  ::-webkit-scrollbar-thumb{ background:#0CC0DF55; border-radius:10px; }

  @media (prefers-reduced-motion: reduce){
    *{ animation:none !important; transition:none !important; }
  }

  /* ---------- Mesh gradient backdrop ---------- */
  .mesh-gradient{
    background:
      radial-gradient(at 15% 20%, rgba(12,192,223,.35) 0px, transparent 45%),
      radial-gradient(at 85% 15%, rgba(127,227,240,.28) 0px, transparent 50%),
      radial-gradient(at 50% 85%, rgba(8,122,148,.35) 0px, transparent 55%),
      radial-gradient(at 90% 90%, rgba(12,192,223,.2) 0px, transparent 45%);
  }

  /* ---------- Light dot pattern ---------- */
  .dot-pattern{
    background-image: radial-gradient(rgba(12,192,223,.35) 1px, transparent 1px);
    background-size: 22px 22px;
  }

  /* ---------- Airplane flight across glowing route ---------- */
  .plane-route{ stroke-dasharray: 4 10; animation: dashFast 2.6s linear infinite; }
  @keyframes dashFast{ to{ stroke-dashoffset:-140; } }
  .plane-glow{ filter: drop-shadow(0 0 6px rgba(12,192,223,.9)) drop-shadow(0 0 14px rgba(12,192,223,.5)); }

  /* ---------- Floating micro icons (passport, stamp, ticket, folder, id card) ---------- */
  @keyframes microFloat{ 0%,100%{ transform:translate(0,0) rotate(var(--rot,0deg)); } 50%{ transform:translate(6px,-14px) rotate(calc(var(--rot,0deg) + 4deg)); } }
  .micro-float{ animation: microFloat 7s ease-in-out infinite; }

  /* ---------- Mouse parallax layers ---------- */
  .parallax-layer{ transition: transform .25s ease-out; will-change: transform; }

  /* ---------- Shine sweep on hover (service cards) ---------- */
  .shine{ position:relative; overflow:hidden; }
  .shine::after{
    content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
    background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.55) 50%, transparent 100%);
    transform: skewX(-20deg); transition: left .75s ease;
    pointer-events:none;
  }
  .shine:hover::after{ left:130%; }

  /* ---------- Icon rotate on card hover ---------- */
  .icon-rotate{ transition: transform .5s cubic-bezier(.34,1.56,.64,1); }
  .group:hover .icon-rotate{ transform: rotate(-14deg) scale(1.12); }

  /* ---------- Arrow slide ---------- */
  .arrow-slide{ transition: transform .4s cubic-bezier(.16,.8,.28,1); }
  .group:hover .arrow-slide{ transform: translateX(4px); }

  /* ---------- Glow border pulse for cyan cards ---------- */
  .glow-hover{ transition: box-shadow .45s ease, border-color .45s ease; }
  .glow-hover:hover{ box-shadow: 0 0 0 1px rgba(12,192,223,.4), 0 20px 55px -18px rgba(12,192,223,.55); }

  /* ---------- Wave / curved section dividers ---------- */
  .divider{ display:block; width:100%; height:auto; position:relative; z-index:1; line-height:0; }
  .divider svg{ display:block; width:100%; height:70px; }

  /* ---------- Process timeline active state ---------- */
  .step-node{ transition: transform .5s cubic-bezier(.34,1.56,.64,1), box-shadow .5s ease, background .5s ease, color .5s ease; }
  .step-item.active .step-node{ transform: scale(1.12); background:#0CC0DF; color:#0B1E3D; box-shadow:0 0 0 10px rgba(12,192,223,.18), 0 15px 35px -10px rgba(12,192,223,.6); }
  .step-item .step-node{ position:relative; z-index:10; }
  #process-progress{ transition: width 1s cubic-bezier(.16,.8,.28,1); }

  /* ---------- Statistic number glow ---------- */
  .num-glow{ text-shadow: 0 0 24px rgba(12,192,223,.65), 0 0 60px rgba(12,192,223,.25); }
  @keyframes lightSweep{ 0%{ transform:translateX(-30%);} 100%{ transform:translateX(130%);} }
  .light-sweep{ position:absolute; top:0; bottom:0; width:35%; background:linear-gradient(90deg, transparent, rgba(12,192,223,.18), transparent); animation: lightSweep 6s linear infinite; }

  /* ---------- Testimonial 3D tilt ---------- */
  .tilt{ transform-style: preserve-3d; transition: transform .25s ease-out, box-shadow .25s ease-out; }

  /* ---------- Star pop-in ---------- */
  @keyframes starPop{ 0%{ transform:scale(0) rotate(-30deg); opacity:0;} 100%{ transform:scale(1) rotate(0); opacity:1;} }
  .star-pop{ animation: starPop .45s cubic-bezier(.34,1.56,.64,1) both; }

  /* ---------- Pulse for WhatsApp button ---------- */
  @keyframes waPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(34,197,94,.55);} 50%{ box-shadow:0 0 0 16px rgba(34,197,94,0);} }
  .wa-pulse{ animation: waPulse 2.2s ease-in-out infinite; }

  /* ---------- Reveal direction variants (layered on top of base .reveal) ---------- */
  .reveal[data-reveal="left"]:not(.show){ opacity:0; transform: translateX(-50px); }
  .reveal[data-reveal="right"]:not(.show){ opacity:0; transform: translateX(50px); }
  .reveal[data-reveal="scale"]:not(.show){ opacity:0; transform: scale(.82); }
  .reveal[data-reveal="rotate"]:not(.show){ opacity:0; transform: rotate(-5deg) translateY(30px); }
  .reveal[data-reveal="mask"]{ transition: clip-path .95s cubic-bezier(.16,.8,.28,1), opacity .5s ease; clip-path: inset(0 0 0 0); }
  .reveal[data-reveal="mask"]:not(.show){ opacity:1; clip-path: inset(0 102% -20% 0); }
  .reveal[data-reveal="mask"].show{ clip-path: inset(0 0 -20% 0); }

  /* ---------- Diagonal section separator ---------- */
  .divider-diagonal{ display:block; width:100%; overflow:hidden; position:relative; z-index:1; line-height:0; }
  .divider-diagonal svg{ display:block; width:100%; height:60px; }

  /* ---------- Passport stamp watermark texture ---------- */
  .stamp-watermark{
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='none' stroke='%230CC0DF' stroke-width='2'%3E%3Ccircle cx='130' cy='130' r='95' stroke-dasharray='6 7'/%3E%3Ccircle cx='130' cy='130' r='75'/%3E%3Ctext x='130' y='100' font-family='Arial' font-size='15' fill='%230CC0DF' text-anchor='middle' transform='rotate(-14 130 100)'%3EAPPROVED%3C/text%3E%3Ctext x='130' y='170' font-family='Arial' font-size='12' fill='%230CC0DF' text-anchor='middle' transform='rotate(-14 130 170)'%3EVISA %E2%80%A2 BD%3C/text%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat; background-size: 320px 320px;
  }

  /* ---------- Testimonial quote icon ---------- */
  .quote-icon{ color:rgba(12,192,223,.35); font-size:2.6rem; transition: transform .4s ease, color .4s ease; }
  .tilt:hover .quote-icon{ transform: scale(1.15) rotate(-6deg); color:rgba(12,192,223,.6); }

  /* ---------- Testimonial progress dots ---------- */
  .t-dot{ width:8px; height:8px; border-radius:999px; background:rgba(11,30,61,.18); transition: all .4s ease; cursor:pointer; }
  .t-dot:hover{ background: rgba(12,192,223,.55); }
  .t-dot.active{ width:26px; background:#39D8F5; }

  /* ---------- Hero staggered load-in animation ---------- */
  @keyframes heroReveal{ 0%{ opacity:0; transform:translateY(26px);} 100%{ opacity:1; transform:translateY(0);} }
  .hero-anim{ animation: heroReveal .9s cubic-bezier(.16,.8,.28,1) both; }

  /* ---------- Full-bleed hero video ---------- */
  #hero-video-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

  /* ---------- Driving course highlight items ---------- */
  .highlight-item{ transition: transform .35s ease; }
  .highlight-item:hover{ transform: translateX(4px); }
  .highlight-item:hover span:first-child{ background: rgba(12,192,223,.28); }

  /* ---------- Driving course gallery: subtle featured-image zoom ---------- */
  .img-zoom-subtle{ overflow:hidden; }
  .img-zoom-subtle img{ transition: transform .8s cubic-bezier(.16,.8,.28,1); }
  .img-zoom-subtle:hover img{ transform: scale(1.035); }

  /* ---------- Driving course gallery: thumbnails ---------- */
  .dc-thumb{
    position:relative; border-radius:0.9rem; overflow:hidden; cursor:pointer;
    border:2px solid rgba(11,30,61,.08);
    box-shadow: 0 6px 16px -8px rgba(11,30,61,.18);
    transition: transform .35s cubic-bezier(.16,.8,.28,1), box-shadow .35s ease, border-color .35s ease;
  }
  .dc-thumb img{ transition: transform .6s cubic-bezier(.16,.8,.28,1); }
  .dc-thumb:hover{ transform: translateY(-4px); box-shadow: 0 16px 30px -12px rgba(12,192,223,.4); border-color: rgba(12,192,223,.4); }
  .dc-thumb:hover img{ transform: scale(1.08); }
  .dc-thumb.active{ border-color:#39D8F5; transform: scale(1.05); box-shadow: 0 18px 34px -12px rgba(57,216,245,.55); }

  /* =========================================================
     HEADER  —  premium transparent → glass navy on scroll
  ========================================================= */
  .site-header{
    position:fixed; top:0; left:0; right:0; z-index:60;
    background: transparent;
    border-bottom:1px solid transparent;
    transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  }
  /* soft scrim keeps white nav legible over the hero video */
  .site-header::before{
    content:''; position:absolute; inset:0; pointer-events:none;
    background: linear-gradient(to bottom, rgba(8,29,58,.55) 0%, rgba(8,29,58,.18) 55%, transparent 100%);
    opacity:1; transition: opacity .3s ease;
  }
  .site-header.is-stuck::before{ opacity:0; }
  .site-header.is-stuck{
    background: rgba(8,29,58,.82);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    border-bottom-color: rgba(12,192,223,.16);
    box-shadow: 0 16px 44px -20px rgba(3,12,26,.85);
  }
  .header-inner{ height:85px; transition: height .3s cubic-bezier(.16,.8,.28,1); }
  .site-header.is-stuck .header-inner{ height:72px; }
  @media (max-width:1023px){
    .header-inner{ height:74px; }
    .site-header.is-stuck .header-inner{ height:66px; }
  }

  /* in-page anchors clear the fixed header */
  section[id]{ scroll-margin-top: 92px; }

  /* ---------- Non-homepage pages: header is permanently solid (no hero
     video behind it) at its "is-stuck" (compact) height, so push page
     content below the fixed header by that same amount ---------- */
  body:not(.home){ padding-top: 72px; }
  @media (max-width:1023px){
    body:not(.home){ padding-top: 66px; }
  }

  /* ---------- Logo ---------- */
  .logo-mark{
    --brand-logo: url("data:image/png;base64,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");
    background: linear-gradient(135deg,#7FE3F0 0%,#0CC0DF 52%,#087A94 100%);
    box-shadow: 0 12px 28px -12px rgba(12,192,223,.8);
    transition: transform .5s cubic-bezier(.34,1.56,.64,1), box-shadow .45s ease;
    display: inline-block;
    overflow: hidden;
  }
  /* brand logo artwork sitting on the badge */
  .logo-mark::before{
    content:''; position:absolute; inset:0;
    background-image: var(--brand-logo);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 88% auto;
    z-index: 1;
    transition: transform .5s cubic-bezier(.34,1.56,.64,1);
  }
  .logo-mark::after{
    content:''; position:absolute; inset:0; border-radius:inherit;
    border:1px solid rgba(255,255,255,.4);
    z-index: 2; pointer-events:none;
  }
  .logo-link:hover .logo-mark{
    transform: scale(1.08) rotate(-6deg);
    box-shadow: 0 16px 36px -10px rgba(12,192,223,1);
  }
  .logo-link:hover .logo-mark::before{ transform: scale(1.04); }
  .logo-link:focus-visible{ outline:2px solid rgba(57,216,245,.8); outline-offset:6px; border-radius:.9rem; }

  /* ---------- Desktop nav ---------- */
  .nav-link{
    position:relative; display:inline-flex; align-items:center; gap:.4rem;
    padding:.55rem .85rem; border-radius:.7rem; white-space:nowrap;
    color:rgba(255,255,255,.85); font-weight:600; font-size:.94rem; line-height:1;
    background:transparent; border:0; cursor:pointer;
    transition: color .3s ease, background-color .3s ease;
  }
  .nav-link:hover, .nav-link:focus-visible{ color:#fff; background:rgba(255,255,255,.07); outline:none; }
  .nav-link:focus-visible{ box-shadow:0 0 0 2px rgba(57,216,245,.65); }
  .nav-link::after{
    content:''; position:absolute; left:50%; bottom:.3rem; width:0; height:2px; border-radius:2px;
    background: linear-gradient(90deg,#7FE3F0,#0CC0DF);
    transform: translateX(-50%);
    transition: width .38s cubic-bezier(.16,.8,.28,1), box-shadow .38s ease;
  }
  .nav-link:hover::after, .nav-link:focus-visible::after{ width:calc(100% - 1.7rem); }
  .nav-link.is-active{ color:#fff; }
  .nav-link.is-active::after{ width:calc(100% - 1.7rem); box-shadow:0 0 12px rgba(12,192,223,.9); }

  /* ---------- Services dropdown ---------- */
  .nav-dd{ position:relative; }
  .nav-dd::after{ content:''; position:absolute; left:0; right:0; top:100%; height:18px; }  /* hover bridge */
  .dd-chev{ transition: transform .35s cubic-bezier(.34,1.56,.64,1), color .3s ease; }
  .nav-dd:hover .dd-chev, .nav-dd:focus-within .dd-chev, .nav-dd.is-open .dd-chev{ transform: rotate(180deg); color:#39D8F5; }

  .nav-dd-panel{
    position:absolute; top:calc(100% + 16px); left:50%;
    width:min(30rem,86vw); padding:.8rem; border-radius:1.25rem;
    background: rgba(8,29,58,.9);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    border:1px solid rgba(12,192,223,.2);
    box-shadow: 0 34px 70px -22px rgba(3,12,26,.9), inset 0 1px 0 rgba(255,255,255,.06);
    opacity:0; visibility:hidden; pointer-events:none;
    transform: translateX(-50%) translateY(-14px);
    transition: opacity .3s ease, transform .3s cubic-bezier(.16,.8,.28,1), visibility .3s ease;
  }
  .nav-dd-panel::before{
    content:''; position:absolute; top:-6px; left:50%; width:12px; height:12px;
    transform:translateX(-50%) rotate(45deg);
    background: rgba(8,29,58,.9);
    border-left:1px solid rgba(12,192,223,.2); border-top:1px solid rgba(12,192,223,.2);
  }
  .nav-dd:hover > .nav-dd-panel,
  .nav-dd.is-open > .nav-dd-panel{
    opacity:1; visibility:visible; pointer-events:auto;
    transform: translateX(-50%) translateY(0);
  }
  .dd-item{
    display:flex; align-items:center; gap:.7rem;
    padding:.6rem .7rem; border-radius:.85rem;
    color:rgba(255,255,255,.78); font-size:.9rem; font-weight:500;
    transition: background-color .3s ease, color .3s ease, transform .3s cubic-bezier(.16,.8,.28,1);
  }
  .dd-item .dd-ico{
    width:2.1rem; height:2.1rem; flex:none; border-radius:.65rem;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(12,192,223,.12); color:#7FE3F0; font-size:.8rem;
    transition: background-color .3s ease, color .3s ease, transform .4s cubic-bezier(.34,1.56,.64,1);
  }
  .dd-item:hover, .dd-item:focus-visible{
    background: rgba(12,192,223,.13); color:#fff; transform: translateX(3px); outline:none;
  }
  .dd-item:focus-visible{ box-shadow:0 0 0 2px rgba(57,216,245,.6); }
  .dd-item:hover .dd-ico, .dd-item:focus-visible .dd-ico{
    background:#0CC0DF; color:#081D3A; transform: rotate(-8deg) scale(1.08);
  }

  /* ---------- Header buttons ---------- */
  .hdr-btn{
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.68rem 1.25rem; border-radius:.8rem;
    font-weight:700; font-size:.88rem; line-height:1; white-space:nowrap;
    transition: transform .35s cubic-bezier(.16,.8,.28,1), background-color .3s ease, box-shadow .35s ease, border-color .3s ease, color .3s ease;
  }
  .hdr-btn:focus-visible{ outline:none; box-shadow:0 0 0 2px rgba(57,216,245,.75); }
  .btn-wa{ background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#fff; }
  .btn-wa:hover{
    background:#22C55E; border-color:#22C55E; color:#fff;
    transform: translateY(-3px); box-shadow:0 16px 34px -12px rgba(34,197,94,.8);
  }
  .btn-apply{ background:#0CC0DF; color:#081D3A; box-shadow:0 12px 32px -12px rgba(12,192,223,.75); }
  .btn-apply:hover{
    background:#39D8F5; transform: translateY(-3px);
    box-shadow:0 20px 44px -12px rgba(12,192,223,1), 0 0 0 1px rgba(127,227,240,.45);
  }
  .hdr-phone{ display:inline-flex; align-items:center; gap:.6rem; }
  .hdr-phone-ico{
    width:2.45rem; height:2.45rem; border-radius:.75rem; flex:none;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(12,192,223,.14); border:1px solid rgba(12,192,223,.25); color:#39D8F5;
    transition: background-color .35s ease, color .35s ease, transform .45s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
  }
  .hdr-phone:hover .hdr-phone-ico{
    background:#0CC0DF; color:#081D3A; transform: rotate(-10deg) scale(1.08);
    box-shadow:0 12px 26px -10px rgba(12,192,223,.9);
  }
  .hdr-phone:hover .hdr-phone-num{ color:#7FE3F0; }
  .hdr-phone-num{ transition: color .3s ease; }

  /* ---------- Hamburger ---------- */
  .burger{
    width:46px; height:46px; border-radius:.8rem; flex:none;
    display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
    background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
    transition: background-color .3s ease, border-color .3s ease;
  }
  .burger:hover{ background: rgba(12,192,223,.18); border-color: rgba(12,192,223,.4); }
  .burger:focus-visible{ outline:none; box-shadow:0 0 0 2px rgba(57,216,245,.75); }
  .burger span{
    display:block; height:2px; border-radius:2px; background:#fff;
    transition: transform .4s cubic-bezier(.16,.8,.28,1), opacity .25s ease, width .4s ease;
  }
  .burger span:nth-child(1){ width:22px; }
  .burger span:nth-child(2){ width:15px; }
  .burger span:nth-child(3){ width:22px; }
  .burger.is-open span:nth-child(1){ width:22px; transform: translateY(7px) rotate(45deg); }
  .burger.is-open span:nth-child(2){ opacity:0; transform: translateX(10px); }
  .burger.is-open span:nth-child(3){ width:22px; transform: translateY(-7px) rotate(-45deg); }

  /* ---------- Mobile drawer ---------- */
  .drawer-overlay{
    position:fixed; inset:0; z-index:65;
    background: rgba(4,12,25,.6);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
    opacity:0; visibility:hidden;
    transition: opacity .4s ease, visibility .4s ease;
  }
  .drawer-overlay.is-open{ opacity:1; visibility:visible; }
  .mobile-drawer{
    position:fixed; top:0; right:0; z-index:75;
    height:100vh; height:100dvh; width:min(88vw,370px);
    display:flex; flex-direction:column;
    background: linear-gradient(165deg,#0A1930 0%,#081D3A 55%,#0F2648 100%);
    border-left:1px solid rgba(12,192,223,.18);
    box-shadow: -36px 0 70px -30px rgba(0,0,0,.9);
    transform: translateX(102%); visibility:hidden;
    transition: transform .48s cubic-bezier(.16,.8,.28,1), visibility .48s ease;
    contain: layout paint;
  }
  .mobile-drawer.is-open{ transform: translateX(0); visibility:visible; }
  body.drawer-open{ overflow:hidden; }
  .mnav-stagger{
    opacity:0; transform: translateX(22px);
    transition: opacity .5s ease, transform .5s cubic-bezier(.16,.8,.28,1);
  }
  .mobile-drawer.is-open .mnav-stagger{ opacity:1; transform:none; }
  .mnav-link{
    display:flex; align-items:center; justify-content:space-between; gap:.75rem;
    width:100%; min-height:54px; padding:.9rem 1.05rem; border-radius:.9rem;
    color:rgba(255,255,255,.86); font-weight:600; font-size:1rem; text-align:left;
    transition: background-color .3s ease, color .3s ease, padding-left .3s ease;
  }
  .mnav-link:hover, .mnav-link:focus-visible{ background: rgba(12,192,223,.13); color:#fff; padding-left:1.35rem; outline:none; }
  .mnav-link.is-active{ background: rgba(12,192,223,.16); color:#fff; box-shadow: inset 3px 0 0 #0CC0DF; }
  .mnav-sub{ max-height:0; overflow:hidden; transition: max-height .5s cubic-bezier(.16,.8,.28,1), opacity .4s ease; opacity:0; }
  .mnav-acc.is-open .mnav-sub{ max-height:540px; opacity:1; }
  .mnav-acc.is-open .mnav-chev{ transform: rotate(180deg); color:#39D8F5; }
  .mnav-chev{ transition: transform .4s cubic-bezier(.34,1.56,.64,1), color .3s ease; }
  .mnav-sub-link{
    display:flex; align-items:center; gap:.65rem; min-height:46px;
    padding:.6rem .9rem .6rem 1.1rem; border-radius:.75rem;
    color:rgba(255,255,255,.62); font-size:.92rem; font-weight:500;
    transition: background-color .3s ease, color .3s ease, transform .3s ease;
  }
  .mnav-sub-link:hover, .mnav-sub-link:focus-visible{ background: rgba(12,192,223,.1); color:#fff; transform: translateX(4px); outline:none; }

  /* compact the bar on smaller desktops so nothing wraps */
  @media (min-width:1280px) and (max-width:1439px){
    .nav-link{ padding:.55rem .6rem; font-size:.89rem; }
    .hdr-btn{ padding:.62rem 1rem; font-size:.83rem; }
    .header-inner{ gap:.75rem; }
  }

  /* =========================================================
     FOOTER  —  premium dark corporate
  ========================================================= */
  .site-footer{ position:relative; background:#081D3A; overflow:hidden; isolation:isolate; }
  .f-glow{ position:absolute; border-radius:50%; filter: blur(90px); pointer-events:none; z-index:0; }
  .f-heading{ position:relative; color:#fff; font-weight:700; font-size:1.02rem; letter-spacing:.01em; }
  .f-heading::after{
    content:''; display:block; width:34px; height:2px; margin-top:.65rem; border-radius:2px;
    background: linear-gradient(90deg,#0CC0DF,rgba(12,192,223,0));
  }
  .f-link{
    position:relative; display:inline-flex; align-items:center; gap:.55rem;
    color:rgba(255,255,255,.6); font-size:.925rem; line-height:1.5;
    transition: color .3s ease, transform .35s cubic-bezier(.16,.8,.28,1);
  }
  .f-link::after{
    content:''; position:absolute; left:0; bottom:-2px; width:0; height:1.5px; border-radius:2px;
    background: linear-gradient(90deg,#7FE3F0,#0CC0DF);
    transition: width .38s cubic-bezier(.16,.8,.28,1);
  }
  .f-link:hover, .f-link:focus-visible{ color:#fff; transform: translateX(4px); outline:none; }
  .f-link:hover::after, .f-link:focus-visible::after{ width:100%; }
  .f-link .f-dot{
    width:5px; height:5px; border-radius:50%; flex:none;
    background: rgba(12,192,223,.5); transition: background-color .3s ease, box-shadow .3s ease, transform .3s ease;
  }
  .f-link:hover .f-dot{ background:#39D8F5; box-shadow:0 0 10px rgba(57,216,245,.9); transform: scale(1.3); }

  .f-social{
    width:42px; height:42px; border-radius:.85rem; flex:none;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.72); font-size:.95rem;
    transition: transform .45s cubic-bezier(.34,1.56,.64,1), background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
  }
  .f-social:hover, .f-social:focus-visible{
    transform: translateY(-5px) scale(1.1); color:#081D3A;
    background:#0CC0DF; border-color:#0CC0DF;
    box-shadow:0 16px 32px -10px rgba(12,192,223,.9); outline:none;
  }

  .f-contact{ display:flex; align-items:flex-start; gap:.85rem; }
  .f-contact-ico{
    width:2.4rem; height:2.4rem; flex:none; border-radius:.7rem;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(12,192,223,.1); border:1px solid rgba(12,192,223,.2); color:#7FE3F0; font-size:.85rem;
    transition: background-color .35s ease, color .35s ease, box-shadow .35s ease, transform .45s cubic-bezier(.34,1.56,.64,1);
  }
  .f-contact:hover .f-contact-ico{
    background:#0CC0DF; color:#081D3A; transform: rotate(-8deg) scale(1.06);
    box-shadow:0 0 22px rgba(12,192,223,.6);
  }

  .f-cta-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
    padding:.95rem 1.9rem; border-radius:.85rem; font-weight:700; font-size:.95rem;
    transition: transform .35s cubic-bezier(.16,.8,.28,1), background-color .3s ease, box-shadow .35s ease, border-color .3s ease;
  }
  .f-cta-btn:focus-visible{ outline:none; box-shadow:0 0 0 2px rgba(57,216,245,.75); }
  .f-cta-primary{ background:#0CC0DF; color:#081D3A; box-shadow:0 14px 40px -12px rgba(12,192,223,.75); }
  .f-cta-primary:hover{ background:#39D8F5; transform: translateY(-4px); box-shadow:0 22px 50px -12px rgba(12,192,223,1); }
  .f-cta-wa{ background:#22C55E; color:#fff; box-shadow:0 14px 36px -14px rgba(34,197,94,.8); }
  .f-cta-wa:hover{ background:#34D471; transform: translateY(-4px); box-shadow:0 22px 46px -14px rgba(34,197,94,.95); }
  .f-cta-ghost{ background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); color:#fff; }
  .f-cta-ghost:hover{ border-color: rgba(57,216,245,.65); background: rgba(12,192,223,.14); transform: translateY(-4px); box-shadow:0 18px 40px -14px rgba(12,192,223,.6); }

  .f-bottom-link{ position:relative; color:rgba(255,255,255,.55); font-size:.85rem; transition: color .3s ease; }
  .f-bottom-link::after{
    content:''; position:absolute; left:0; bottom:-3px; width:0; height:1.5px;
    background:#0CC0DF; transition: width .35s ease;
  }
  .f-bottom-link:hover{ color:#fff; }
  .f-bottom-link:hover::after{ width:100%; }

  .to-top{
    width:44px; height:44px; border-radius:.8rem; flex:none;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(12,192,223,.12); border:1px solid rgba(12,192,223,.28); color:#7FE3F0;
    transition: transform .4s cubic-bezier(.16,.8,.28,1), background-color .3s ease, color .3s ease, box-shadow .35s ease;
  }
  .to-top:hover{ background:#0CC0DF; color:#081D3A; transform: translateY(-4px); box-shadow:0 16px 32px -12px rgba(12,192,223,.9); }
  .to-top:focus-visible{ outline:none; box-shadow:0 0 0 2px rgba(57,216,245,.75); }

  /* =========================================================
     RESPONSIVE & POLISH IMPROVEMENTS
  ========================================================= */

  /* ---- Global mobile overflow guard ---- */
  *, *::before, *::after { box-sizing: border-box; }
  img, video, svg { max-width: 100%; }

  /* ---- Hero: slightly lighter overlay for better video visibility ---- */
  /* The from-navy-100/61 gradient is replaced inline; we soften via CSS */
  #hero-section > .absolute:first-of-type { opacity: .88 !important; }

  /* ---- Service section: softer cyan radial background ---- */
  #services {
    background: radial-gradient(ellipse at 20% 30%, rgba(12,192,223,.07) 0%, transparent 55%),
                radial-gradient(ellipse at 80% 70%, rgba(127,227,240,.05) 0%, transparent 50%),
                linear-gradient(to bottom, #ffffff, rgba(236,252,255,.55), #ffffff) !important;
  }

  /* ---- CTA: fixed height around 400px ---- */
  #apply { min-height: clamp(380px, 45vh, 420px); display:flex; flex-direction:column; justify-content:center; }
  #apply .divider.absolute { display:none; }   /* remove wave – footer connects directly */

  /* ---- Footer top CTA band – remove heavy border ---- */
  .site-footer > .relative.z-10.border-b { border-bottom: 1px solid rgba(12,192,223,.15) !important; }
  .site-footer .relative.z-10.border-t   { border-top:    1px solid rgba(255,255,255,.08) !important; }

  /* ---- Footer column spacing tightened on tablet ---- */
  @media (max-width:1023px){
    .site-footer .grid.gap-12 { gap: 2.25rem; }
    .site-footer .py-16.md\:py-20 { padding-top: 2.75rem; padding-bottom: 2.75rem; }
  }

  /* ---- Footer main grid responsive ---- */
  @media (max-width:767px){
    .site-footer .grid.md\:grid-cols-2.lg\:grid-cols-12 { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .site-footer .lg\:col-span-4 { grid-column: 1 / -1; }
    .site-footer .lg\:col-span-2 { grid-column: span 1; }
    .site-footer .lg\:col-span-3 { grid-column: span 1; }
  }
  @media (max-width:479px){
    .site-footer .grid.md\:grid-cols-2.lg\:grid-cols-12 { grid-template-columns: 1fr; }
  }

  /* ---- Touch target enforcement ---- */
  a, button { min-height: 44px; min-width: 44px; }
  .f-link, .f-bottom-link { min-height: 36px; min-width: auto; }
  .f-social { min-height: 42px; min-width: 42px; }
  .dd-item { min-height: 44px; }
  .t-dot { min-width: 16px; min-height: 16px; }
  .mnav-link, .mnav-sub-link { min-height: 52px; }

  /* ---- Hero mobile ---- */
  @media (max-width:639px){
    #hero-inner { padding-top: 6rem !important; padding-bottom: 3.5rem; }
    #hero-inner h1 { font-size: clamp(1.85rem, 7.5vw, 2.4rem); line-height: 1.06; }
    #hero-inner p { font-size: .95rem; }
    #hero-inner .flex.flex-wrap.gap-4 a { padding: .85rem 1.4rem; font-size:.9rem; width:auto; flex:0 1 auto; min-width:0; justify-content:flex-start; }
    #hero-inner .flex.flex-wrap.items-center.gap-8 { gap: 1.25rem; }
    /* remove hairline gap between hero wave and Services section caused by sub-pixel rounding */
    #hero-section > .divider.absolute.bottom-0 { bottom: -1px; }
  }
  @media (max-width:374px){
    #hero-inner h1 { font-size: 1.7rem; }
  }

  /* ---- Service cards: uniform gap, clean stacking ---- */
  @media (max-width:639px){
    #services-grid { grid-template-columns: 1fr !important; gap: 1.25rem; }
    #services { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  }
  @media (min-width:640px) and (max-width:1023px){
    #services-grid { grid-template-columns: repeat(2,1fr); }
  }

  /* ---- Why choose us: stacked on mobile ---- */
  @media (max-width:1023px){
    .max-w-7xl .grid.lg\:grid-cols-2 { grid-template-columns: 1fr !important; }
  }
  @media (max-width:767px){
    section.relative.py-28.bg-navy .relative.h-\[480px\] { height: 260px !important; }
    section.relative.py-28.bg-navy .relative.h-\[480px\] .absolute { display:none; }
    section.relative.py-28.bg-navy .relative.h-\[480px\] .img-zoom:first-of-type {
      position: relative; width: 100%; height: 220px; border-radius: 1.25rem;
    }
    section.relative.py-28.bg-navy .grid.sm\:grid-cols-2 { grid-template-columns: 1fr 1fr; gap:1rem; }
  }
  @media (max-width:479px){
    section.relative.py-28.bg-navy .grid.sm\:grid-cols-2.gap-6 { grid-template-columns: 1fr; }
  }

  /* ---- Driving course section: tighten on mobile ---- */
  @media (max-width:1023px){
    .relative.py-28.bg-\[\#F8FDFF\]:not(.relative.py-28.bg-white) .grid.lg\:grid-cols-2 { gap:2rem; }
  }
  @media (max-width:639px){
    .relative.h-\[340px\].md\:h-\[400px\] { height: 260px !important; }
    #dc-thumbs { grid-template-columns: repeat(3,1fr); gap: .5rem; }
    #dc-thumbs .dc-thumb { height: 72px !important; }
    #driving-feature-grid { grid-template-columns: 1fr !important; }
    #driving-highlights { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width:374px){
    #driving-highlights { grid-template-columns: 1fr; }
  }

  /* ---- Process section: 2x2 grid on mobile, no horizontal scroll ---- */
  @media (max-width:767px){
    #process-track {
      grid-template-columns: repeat(2, 1fr) !important;
      overflow-x: visible; overflow-y: visible;
      scroll-snap-type: none;
      -webkit-overflow-scrolling: auto;
      padding-bottom: 0;
      gap: 2.5rem 1.25rem !important;
    }
    #process-track > .step-item { scroll-snap-align: none; }
    #process-track > svg { display:none; }
  }
  @media (max-width:639px){
    #process-track { grid-template-columns: repeat(2, 1fr) !important; gap: 2rem 1rem !important; }
    .step-item .step-node { width: 3.5rem; height: 3.5rem; }
    .step-item .step-node span { font-size: 1rem; }
    .step-item .rounded-2xl.h-36 { height: 7rem; }
  }

  /* ---- Counter section: 2 cols on mobile ---- */
  @media (max-width:639px){
    .relative.py-28.overflow-hidden .grid.sm\:grid-cols-2.lg\:grid-cols-4 {
      grid-template-columns: repeat(2,1fr); gap:1.5rem;
    }
    .num-glow { font-size: 2.75rem !important; }
  }

  /* ---- Testimonials: full-width cards on mobile ---- */
  @media (max-width:639px){
    #testimonial-marquee-viewport { margin-left: -1.5rem; margin-right: -1.5rem; padding-left: 1.5rem; }
    .ticket-card.min-w-\[320px\] { min-width: calc(100vw - 3rem) !important; }
    .ticket-card.md\:min-w-\[380px\] { min-width: calc(100vw - 3rem) !important; }
  }
  @media (max-width:374px){
    .ticket-card { min-width: calc(100vw - 2rem) !important; }
  }
  /* Pause/hover on touch devices: handled via JS already */

  /* ---- FAQ: generous touch targets ---- */
  .acc-toggle { min-height: 60px; padding: 1rem 1.25rem; }
  @media (max-width:639px){
    .acc-toggle { min-height:56px; padding:.85rem 1rem; }
    .acc-toggle span { font-size:.9rem; }
  }

  /* ---- Final CTA: mobile stacking ---- */
  @media (max-width:639px){
    #apply { padding-top: 3rem; padding-bottom: 3rem; }
    #apply h2 { font-size: clamp(1.5rem,6vw,2rem); }
    #apply .flex.flex-wrap.justify-center.gap-4 { flex-direction:column; align-items:center; }
    #apply .flex.flex-wrap.justify-center.gap-4 a { width: min(100%, 280px); justify-content:center; }
    /* remove hairline gap between FAQ section and the FAQ→CTA wave transition */
    #apply { background:#ffffff; }
    #apply > .absolute.top-0.left-0.w-full.z-10.pointer-events-none { top: -1px; }
  }

  /* ---- Header: very small screens ---- */
  @media (max-width:374px){
    .header-inner { padding-left: 1rem; padding-right: 1rem; }
    .logo-link > span > span:first-child { font-size: .88rem; }
    .logo-mark { width: 2.25rem !important; height: 2.25rem !important; }
  }

  /* ---- Mobile drawer scrollbar ---- */
  .mobile-drawer nav::-webkit-scrollbar { width: 4px; }
  .mobile-drawer nav::-webkit-scrollbar-thumb { background:rgba(12,192,223,.3); border-radius:4px; }

  /* ---- Section padding responsiveness ---- */
  @media (max-width:767px){
    section.py-28 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  }
  @media (max-width:479px){
    section.py-28 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  }

  /* ---- CTA buttons: touch-friendly wrapping ---- */
  @media (max-width:479px){
    .flex.flex-wrap.gap-4 > a, .flex.flex-wrap.gap-4 > button { flex: 1 1 auto; min-width: 140px; }
  }

  /* ---- Driving Course CTA buttons: centered, stacked, fit-content width on mobile, no stretch ---- */
  @media (max-width:639px){
    #dc-cta { flex-direction:column; align-items:center; }
    #dc-cta > a { width:auto; flex:0 1 auto; min-width:0; justify-content:flex-start; }
  }

  /* ---- Testimonial heading: renders normally (no longer scroll-gated), consistent with other section headers ---- */

  /* ---- CTA section: remove top wave divider that pushes into footer ---- */
  #apply > .divider.absolute.top-0 { display: none !important; }

  /* ---- Footer top CTA: tighten padding  ---- */
  footer .py-16.md\:py-20:first-of-type { padding-top: 3.5rem; padding-bottom: 3.5rem; }

  /* ---- Reduced motion handled globally ---- */
  /* ---- Image aspect ratios on mobile ---- */
  @media (max-width:639px) {
    .rounded-\[1\.75rem\].overflow-hidden, .rounded-\[2rem\].overflow-hidden { border-radius: 1rem; }
  }


  /* ---- CTA section: clear float and wave divider ---- */
  #apply > .divider { display:none !important; }

  /* ---- Ticket cards on mobile: full-width ---- */
  @media (max-width:639px){
    #testimonial-track { gap: 1rem !important; }
    #testimonial-track .ticket-card { min-width: calc(min(92vw, 340px)) !important; }
    #testimonial-track .ticket-card.md\:min-w-\[380px\] { min-width: calc(min(92vw, 340px)) !important; }
  }

  /* ---- Why choose us: visual column on desktop only ---- */
  @media (max-width:767px){
    #why-choose-visual { display: none; }
  }
  @media (min-width:768px) and (max-width:1023px){
    section.bg-navy .grid.lg\:grid-cols-2 { grid-template-columns:1fr; gap:2rem; }
    #why-choose-visual { display:block; height:320px !important; }
    #why-choose-visual .absolute.top-0.left-0 { width:55%; height:240px !important; }
    #why-choose-visual .absolute.bottom-0.right-0 { width:50%; height:200px !important; }
  }

  /* ---- Sticky header always on top of drawer overlay ---- */
  .site-header { z-index: 70; }
  .drawer-overlay { z-index: 65; }
  .mobile-drawer { z-index: 75; }

  /* ---- FAQ wave overflow fix ---- */
  #faq { padding-bottom: calc(3.5rem + 55px) !important; }
  @media (max-width:767px){ #faq { padding-bottom: calc(2.5rem + 40px) !important; } }

  /* ---- Testimonials: responsive padding (reduced base, scaled down further on smaller screens) ---- */
  @media (max-width:767px){ #testimonials { padding-top: 2.3rem; padding-bottom: 2.3rem; } }
  @media (max-width:479px){ #testimonials { padding-top: 1.6rem; padding-bottom: 1.6rem; } }

  /* ---- driving course buttons: stack on mobile ---- */
  @media (max-width:479px){
    .reveal-delay-4.flex.flex-wrap.gap-4 > a { flex:1 1 100%; justify-content:center; }
  }

  /* ---- service section inner max-width padding ---- */
  @media (max-width:374px){
    .max-w-7xl { padding-left: 1rem !important; padding-right: 1rem !important; }
  }

  /* ---- Counter sep: uniform divider between count items ---- */
  @media (max-width:639px){
    .relative.py-28.overflow-hidden .relative.max-w-6xl .grid > div {
      padding: .75rem;
      border-radius: .75rem;
    }
  }

  /* ---- Process section heading ---- */
  @media (max-width:639px){
    #process-track { -ms-overflow-style: none; scrollbar-width: none; }
    #process-track::-webkit-scrollbar { display: none; }
  }

  /* ---- Particle animation on CTA ---- */
  @keyframes ctaParticle {
    0%  { transform: translateY(0)  scale(1);   opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: .7; }
    100%{ transform: translateY(-110px) scale(.6); opacity: 0; }
  }
  #apply .particle { animation: ctaParticle 7s ease-in infinite; }

  /* ---- Ensure no overflow from big absolute blobs ---- */
  .site-footer { overflow: hidden; }
  #hero-section, #apply { overflow: hidden; }

  /* ---- FAQ section bottom wave ---- */
  #faq .absolute.bottom-0 svg { display: block; }

</style>
