
:root{
  --navy:#071a33;
  --navy-2:#0d2a50;
  --blue:#3f9fe8;
  --sky:#dff3ff;
  --off:#f7f6f2;
  --white:#fff;
  --text:#0b1f38;
  --muted:#66788f;
  --line:rgba(7,26,51,.14);
  --shadow:0 18px 55px rgba(5,26,48,.12);
  --radius:24px;
  --fs-scale:1;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:calc(16px * var(--fs-scale))}
body{
  margin:0;
  font-family:"Assistant",Arial,sans-serif;
  color:var(--text);
  background:var(--off);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.high-contrast{--off:#fff;--text:#000;--navy:#000;--navy-2:#000;--blue:#005fcc;--muted:#222;--line:#000}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
a{color:inherit}
button,input,select{font:inherit}
.shell{width:min(1160px,calc(100% - 36px));margin-inline:auto}
.skip-link{position:fixed;right:16px;top:-80px;background:#fff;color:#000;padding:12px 18px;z-index:9999;border-radius:0 0 12px 12px}
.skip-link:focus{top:0}
:focus-visible{outline:3px solid #f6c445;outline-offset:3px}

.accessibility-toolbar{
  position:fixed;left:14px;bottom:14px;z-index:1000;
  display:flex;gap:6px;flex-wrap:wrap;max-width:330px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:var(--shadow)
}
.accessibility-toolbar button{border:0;background:#eef4f8;color:var(--navy);border-radius:10px;padding:8px 10px;cursor:pointer;font-weight:700;font-size:.82rem}
.accessibility-toolbar button:hover{background:#dcecf7}

.site-header{position:sticky;top:0;z-index:900;background:rgba(247,246,242,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(7,26,51,.08)}
.nav-wrap{height:82px;display:flex;align-items:center;gap:28px}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px;margin-left:auto}
.learner-sign{display:grid;place-items:center;width:44px;height:44px;background:#fff;border:4px solid #1976d2;color:#1976d2;font-weight:800;font-size:1.35rem;transform:rotate(-4deg)}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:1rem;letter-spacing:.08em;direction:ltr}
.brand-copy small{margin-top:5px;color:var(--muted)}
.main-nav{display:flex;gap:22px}
.main-nav a{text-decoration:none;font-weight:800;font-size:.9rem;letter-spacing:.06em}
.main-nav a:hover{color:var(--blue)}
.nav-cta{margin-right:auto;text-decoration:none;background:var(--navy);color:#fff;border-radius:999px;padding:11px 18px;font-weight:800}

.hero{position:relative;overflow:hidden;padding:84px 0 72px;background:linear-gradient(135deg,#faf9f5 0%,#f4fbff 56%,#dff3ff 100%)}
.hero-bg{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 30%,rgba(63,159,232,.18),transparent 27%),radial-gradient(circle at 80% 70%,rgba(7,26,51,.09),transparent 28%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:72px}
.eyebrow{font-weight:800;color:var(--blue);letter-spacing:.05em;margin:0 0 12px}
.hero h1{font-size:clamp(3rem,7vw,6.7rem);line-height:.84;letter-spacing:-.055em;margin:0;direction:ltr;text-align:right}
.hero h1 span{font-weight:500;color:var(--navy)}
.hero h1 strong{display:block;color:var(--blue);font-weight:800}
.hero h2{font-size:clamp(1.9rem,3.2vw,3.25rem);margin:26px 0 8px;line-height:1}
.hero-lead{font-size:1.28rem;font-weight:700;margin:0 0 8px}
.hero-body{max-width:650px;color:var(--muted);font-size:1.08rem;margin:0}
.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:999px;padding:14px 24px;font-weight:800;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s background}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--navy);color:#fff;box-shadow:0 12px 28px rgba(7,26,51,.18)}
.btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.micro{font-size:.9rem;color:var(--muted);margin-top:18px}

.hero-visual{display:grid;gap:18px;justify-items:center}
.traffic-wrap{display:grid;grid-template-columns:auto auto;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);padding:24px 30px;border-radius:var(--radius);box-shadow:var(--shadow);min-width:min(100%,420px)}
.traffic-label{grid-column:1/-1;direction:ltr;text-align:center;font-weight:800;letter-spacing:.12em;color:var(--navy)}
.traffic-light{width:92px;background:#061a2e;border-radius:30px;padding:14px;display:grid;gap:10px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.07)}
.bulb{display:block;aspect-ratio:1;border-radius:50%;opacity:.22;transition:opacity .35s,filter .35s,transform .35s}
.bulb.red{background:#ff4c54}.bulb.amber{background:#ffc743}.bulb.green{background:#50d97a}
.bulb.active{opacity:1;filter:drop-shadow(0 0 16px currentColor);transform:scale(1.05)}
.traffic-words{direction:ltr;display:grid;gap:10px;font-weight:800;letter-spacing:.11em;font-size:1.2rem}
.traffic-words span:nth-child(1){color:#e73e47}.traffic-words span:nth-child(2){color:#e6a819}.traffic-words span:nth-child(3){color:#17a553}
.image-placeholder{width:100%;min-height:210px;border:1.5px dashed rgba(7,26,51,.25);border-radius:var(--radius);display:grid;place-content:center;text-align:center;padding:28px;color:var(--muted);background:rgba(255,255,255,.55)}
.image-placeholder span{font-weight:800;color:var(--navy)}
.image-placeholder small{display:block;margin-top:6px}

.process-strip{background:var(--navy);color:#fff}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.process-grid a{padding:22px;text-decoration:none;border-left:1px solid rgba(255,255,255,.12);display:flex;justify-content:center;gap:10px;align-items:baseline}
.process-grid a:last-child{border-left:0}
.process-grid b{direction:ltr;letter-spacing:.1em}
.process-grid span{color:rgba(255,255,255,.7)}

.set-section,.faq-section,.drive-section{padding:92px 0}
.section-heading{max-width:760px;margin-bottom:34px}
.section-heading h2{font-size:clamp(2.3rem,4vw,4rem);line-height:1;margin:0 0 16px;letter-spacing:-.035em}
.section-heading>p:last-child{color:var(--muted);font-size:1.12rem}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;min-height:250px;box-shadow:0 12px 34px rgba(5,26,48,.06)}
.feature-num{font-weight:800;color:var(--blue);direction:ltr}
.feature-card h3{font-size:1.3rem;margin:22px 0 8px}
.feature-card p{color:var(--muted);margin:0}
.service-area{margin-top:26px;background:var(--sky);border-radius:22px;padding:22px 26px;display:flex;gap:18px;align-items:flex-start}
.service-area span{font-weight:800;white-space:nowrap}
.service-area p{margin:0;color:#34516e}

.faq-section{background:#fff}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:60px;align-items:start}
.section-heading.compact{position:sticky;top:118px}
.accordion details{border-bottom:1px solid var(--line);padding:0}
.accordion summary{list-style:none;cursor:pointer;padding:22px 0;font-weight:800;font-size:1.1rem;display:flex;justify-content:space-between;gap:20px}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"+";font-size:1.5rem;color:var(--blue)}
.accordion details[open] summary::after{content:"–"}
.accordion p{color:var(--muted);margin:0 0 22px;max-width:720px}

.drive-section{background:linear-gradient(135deg,var(--navy) 0%,#0a2c55 100%);color:#fff}
.drive-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.drive-copy h2{font-size:clamp(2.4rem,4vw,4.3rem);line-height:.95;margin:0 0 18px}
.drive-copy>p:not(.eyebrow){color:rgba(255,255,255,.72);font-size:1.1rem}
.contact-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
.contact-card{text-decoration:none;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);padding:18px;border-radius:18px;display:flex;flex-direction:column}
.contact-card b{font-size:1.1rem}.contact-card span{color:rgba(255,255,255,.67)}
.lead-form{background:#fff;color:var(--text);border-radius:28px;padding:30px;box-shadow:var(--shadow)}
.field{display:grid;gap:8px;margin-bottom:16px}
.field label{font-weight:800}
.field input,.field select{width:100%;border:1px solid var(--line);background:#f9fbfc;border-radius:14px;padding:14px 15px;color:var(--text)}
.submit-btn{width:100%;margin-top:4px}
.form-note{font-size:.82rem;color:var(--muted);margin:12px 3px 0}

.site-footer{background:#041427;color:#fff;padding:30px 0 88px}
.footer-grid{display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center}
.footer-grid>div{display:flex;flex-direction:column}
.footer-grid>div strong{direction:ltr;text-align:right;letter-spacing:.08em}
.footer-grid>div span,.footer-grid small{color:rgba(255,255,255,.57)}
.footer-grid nav{display:flex;gap:18px}
.footer-grid nav a{color:rgba(255,255,255,.72);text-decoration:none}
.footer-grid nav a:hover{text-decoration:underline}

.legal-page{min-height:100vh;background:var(--off)}
.legal-wrap{width:min(860px,calc(100% - 36px));margin:auto;padding:70px 0 120px}
.legal-wrap h1{font-size:clamp(2.4rem,5vw,4rem);margin:0 0 30px}
.legal-wrap h2{margin-top:34px}
.legal-wrap p,.legal-wrap li{color:#425970}
.back-home{display:inline-block;margin-bottom:26px;font-weight:800}

@media (max-width:900px){
  .main-nav{display:none}
  .nav-cta{display:none}
  .nav-wrap{height:72px}
  .hero{padding:58px 0 48px}
  .hero-grid,.drive-grid,.faq-grid{grid-template-columns:1fr;gap:38px}
  .hero h1{text-align:right}
  .hero-visual{order:2}
  .feature-grid{grid-template-columns:1fr 1fr}
  .section-heading.compact{position:static}
  .process-grid a{flex-direction:column;gap:0;align-items:center;text-align:center}
  .process-grid span{font-size:.78rem}
  .footer-grid{grid-template-columns:1fr;align-items:start}
}
@media (max-width:560px){
  .shell{width:min(100% - 24px,1160px)}
  .brand-copy small{font-size:.72rem}
  .hero h1{font-size:3.25rem}
  .hero h2{font-size:2rem}
  .traffic-wrap{min-width:0;width:100%;padding:20px}
  .feature-grid,.contact-choices{grid-template-columns:1fr}
  .feature-card{min-height:0}
  .set-section,.faq-section,.drive-section{padding:68px 0}
  .service-area{display:block}
  .service-area p{margin-top:6px}
  .accessibility-toolbar{left:8px;right:8px;bottom:8px;max-width:none;justify-content:center}
  .accessibility-toolbar button{font-size:.74rem;padding:7px 8px}
  .site-footer{padding-bottom:120px}
}
