/* ==========================================================================
   A2 DRIVING SCHOOL — design system
   Concept: the glow of a car's instrument cluster at night. Deep navy dash,
   amber-lit gauges. The PRND gear selector is the recurring signature motif.

   ---- EDIT YOUR COLOURS / BACKGROUND HERE ----
   ========================================================================== */
:root{
  --navy-950:#060a1c;   /* deepest background */
  --navy-900:#0a1230;   /* main page background */
  --navy-800:#101a3d;   /* card background */
  --navy-700:#182450;   /* raised surface */
  --line:#233163;       /* borders / dividers */
  --gold-500:#cf9d2c;   /* primary gold */
  --gold-400:#e6b73f;   /* bright gold / hover */
  --gold-300:#f2cf78;   /* pale gold text */
  --gold-glow:rgba(230,183,63,.35);
  --cream:#f4efe2;      /* main text colour */
  --muted:#93a0c4;      /* secondary text */
  --muted-dim:#5f6c94;  /* tertiary text */
  --radius:14px;
  --max:1180px;
  --ff-display:'Sora',sans-serif;
  --ff-body:'Inter',sans-serif;
  --ff-mono:'Space Mono',monospace;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--navy-900);
  color:var(--cream);
  font-family:var(--ff-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body{
  background-image:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(230,183,63,.10), transparent 60%),
    radial-gradient(ellipse 700px 500px at -10% 20%, rgba(230,183,63,.05), transparent 60%);
  background-attachment:fixed;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;cursor:pointer;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--ff-display);margin:0 0 .5em;font-weight:700;letter-spacing:-.01em;}
p{margin:0 0 1em;color:var(--muted);}
.container{max-width:var(--max);margin:0 auto;padding:0 24px;}
.mono{font-family:var(--ff-mono);}
:focus-visible{outline:2px solid var(--gold-400);outline-offset:3px;border-radius:4px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* page switching (SPA-style, no reload) */
.page{display:none;}
.page.active{display:block;}

/* eyebrow / section titles */
.eyebrow{
  font-family:var(--ff-mono);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;
  color:var(--gold-400);display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--gold-400);}
.section-title{font-size:clamp(1.6rem,3.4vw,2.4rem);color:var(--cream);}
.section-head{max-width:640px;margin-bottom:44px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head.center .eyebrow::before{display:none;}
section.block{padding:88px 0;}
.section-alt{background:linear-gradient(180deg,var(--navy-950),var(--navy-900));border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* buttons */
.btn{
  -webkit-appearance:none;appearance:none;margin:0;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--ff-display);font-weight:600;font-size:.95rem;
  padding:14px 28px;border-radius:999px;cursor:pointer;border:1px solid transparent;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:linear-gradient(180deg,var(--gold-400),var(--gold-500));color:var(--navy-950);}
.btn-primary:hover{box-shadow:0 6px 26px var(--gold-glow);transform:translateY(-1px);}
.btn-ghost{border-color:var(--line);color:var(--cream);background:rgba(244,239,226,.02);}
.btn-ghost:hover{border-color:var(--gold-400);color:var(--gold-300);}
.btn-block{width:100%;}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(6,10,28,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--ff-display);font-weight:700;font-size:1.15rem;color:var(--cream);background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;}
/* buttons standing in for internal-page links (see JS) get their native chrome stripped */
button{font:inherit;}
.logo .mark{
  width:36px;height:36px;border-radius:9px;background:linear-gradient(160deg,var(--navy-800),var(--navy-700));
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  color:var(--gold-400);font-family:var(--ff-mono);font-weight:700;font-size:.95rem;
  box-shadow:inset 0 0 10px rgba(230,183,63,.15);
}
.logo .sub{display:block;font-family:var(--ff-body);font-weight:400;font-size:.68rem;color:var(--muted-dim);letter-spacing:.14em;text-transform:uppercase;}

/* ---- brand logo image (injected via JS from a single base64 source
       so the file stays ONE file — see bottom of <script> to change it) ---- */
.brand-logo{display:block;height:auto;object-fit:contain;}
.brand-logo.size-header{height:46px;width:auto;}
.brand-logo.size-footer{height:38px;width:auto;}
.brand-logo.size-letterhead{height:84px;width:auto;margin:0 auto 18px;}
.brand-logo.size-terms{height:58px;width:auto;}
.letterhead{text-align:center;margin-bottom:30px;}
.terms-letterhead{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;
  background:var(--navy-800);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 26px;margin-bottom:34px;
}
.terms-letterhead .company-details{text-align:right;font-family:var(--ff-mono);font-size:.8rem;color:var(--muted);line-height:1.9;}
.terms-letterhead .company-details strong{color:var(--gold-300);}
@media (max-width:600px){.terms-letterhead{justify-content:center;text-align:center;} .terms-letterhead .company-details{text-align:center;}}
nav.main-nav ul{display:flex;gap:36px;}
nav.main-nav a,nav.main-nav button{font-family:var(--ff-display);font-weight:600;font-size:.92rem;color:var(--muted);position:relative;padding:4px 0;transition:color .2s;background:none;border:none;cursor:pointer;}
nav.main-nav a:hover,nav.main-nav a.active,nav.main-nav button:hover,nav.main-nav button.active{color:var(--gold-300);}
nav.main-nav a.active::after,nav.main-nav button.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--gold-400);border-radius:2px;}
.header-actions{display:flex;align-items:center;gap:14px;}
.hamburger{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--cream);cursor:pointer;}
.social-strip{border-bottom:1px solid var(--line);background:var(--navy-950);}
.social-strip .container{display:flex;justify-content:flex-end;gap:16px;padding:9px 24px;}
.social-strip a{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);border:1px solid var(--line);transition:all .2s;}
.social-strip a:hover{color:var(--navy-950);background:var(--gold-400);border-color:var(--gold-400);}
.social-strip svg{width:15px;height:15px;fill:currentColor;}
.mobile-nav{display:none;flex-direction:column;gap:2px;background:var(--navy-950);border-bottom:1px solid var(--line);}
.mobile-nav a,.mobile-nav button{padding:14px 24px;font-family:var(--ff-display);font-weight:600;color:var(--cream);border-top:1px solid var(--line);border-left:none;border-right:none;border-bottom:none;display:block;width:100%;text-align:left;background:none;cursor:pointer;font-size:1rem;}
.mobile-nav.open{display:flex;}
@media (max-width:860px){nav.main-nav{display:none;} .hamburger{display:flex;}}

/* hero */
.hero{padding:76px 0 90px;overflow:hidden;position:relative;}
.hero .container{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
.hero.simple .container{display:block;}
.hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.08;color:var(--cream);}
.hero h1 em{font-style:normal;color:var(--gold-400);}
.tagline-pills{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 30px;}
.pill{font-family:var(--ff-mono);font-size:.76rem;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--gold-300);background:rgba(230,183,63,.06);}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}

/* gear selector — signature element */
.gear-panel{
  background:radial-gradient(ellipse at 50% 0%, var(--navy-800), var(--navy-950));
  border:1px solid var(--line);border-radius:22px;padding:34px 28px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6), inset 0 0 40px rgba(0,0,0,.35);
}
.gear-panel .gp-label{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.18em;color:var(--muted-dim);text-transform:uppercase;text-align:center;margin-bottom:18px;}
.gear-track{display:flex;flex-direction:column;gap:10px;}
.gear-step{display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:10px;border:1px solid var(--line);color:var(--muted-dim);font-family:var(--ff-mono);font-weight:700;transition:all .3s ease;}
.gear-step .letter{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);font-size:.85rem;}
.gear-step .label{font-family:var(--ff-body);font-weight:400;font-size:.82rem;}
.gear-step.active{color:var(--gold-300);border-color:var(--gold-400);background:linear-gradient(90deg,rgba(230,183,63,.14),transparent);box-shadow:0 0 22px rgba(230,183,63,.18);}
.gear-step.active .letter{background:var(--gold-400);color:var(--navy-950);border-color:var(--gold-400);}
.gear-note{margin-top:18px;text-align:center;font-family:var(--ff-mono);font-size:.7rem;color:var(--muted-dim);letter-spacing:.05em;}
@media (max-width:900px){.hero .container{grid-template-columns:1fr;} .gear-panel{max-width:340px;margin:0 auto;}}

/* stats */
.stat-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--navy-950);}
.stat-strip .container{display:grid;grid-template-columns:repeat(3,1fr);}
.stat{padding:34px 20px;text-align:center;border-left:1px solid var(--line);}
.stat:first-child{border-left:none;}
.stat .num{font-family:var(--ff-mono);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--gold-400);font-weight:700;}
.stat .lbl{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;}
@media (max-width:700px){.stat-strip .container{grid-template-columns:1fr;} .stat{border-left:none;border-top:1px solid var(--line);} .stat:first-child{border-top:none;}}

/* grid / cards */
.grid{display:grid;gap:26px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}
.card{background:linear-gradient(180deg,var(--navy-800),var(--navy-900));border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:border-color .2s, transform .2s;display:flex;flex-direction:column;}
.card:hover{border-color:var(--gold-500);transform:translateY(-3px);}
.pkg-card{position:relative;}
.pkg-card.featured{border-color:var(--gold-500);box-shadow:0 0 0 1px var(--gold-500), 0 20px 40px -24px var(--gold-glow);}
.pkg-card.featured .badge{position:absolute;top:-13px;left:24px;background:var(--gold-400);color:var(--navy-950);font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px;font-weight:700;}
.pkg-card h3{font-size:1.15rem;color:var(--cream);}
.pkg-card .price{font-family:var(--ff-mono);font-size:2.1rem;color:var(--gold-400);font-weight:700;margin:6px 0 2px;}
.pkg-card .price span{font-size:.9rem;color:var(--muted);font-family:var(--ff-body);}
.pkg-card p.desc{font-size:.9rem;margin-bottom:16px;}
.pkg-card ul{margin:0 0 22px;display:flex;flex-direction:column;gap:9px;flex-grow:1;}
.pkg-card ul li{display:flex;gap:10px;font-size:.87rem;color:var(--cream);align-items:flex-start;}
.pkg-card ul li svg{flex-shrink:0;width:16px;height:16px;fill:var(--gold-400);margin-top:2px;}

/* testimonials */
.reviews-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-bottom:36px;}
.google-badge{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 16px;background:var(--navy-800);}
.google-badge .stars{color:var(--gold-400);letter-spacing:2px;font-size:.9rem;}
.google-badge .g-text{font-size:.78rem;color:var(--muted);}
.review-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;}
.review-track::-webkit-scrollbar{height:6px;}
.review-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;}
.review-card{scroll-snap-align:start;min-width:300px;max-width:340px;flex:0 0 auto;background:var(--navy-800);border:1px solid var(--line);border-radius:var(--radius);padding:24px;}
.review-card .stars{color:var(--gold-400);letter-spacing:2px;margin-bottom:10px;font-size:.85rem;}
.review-card p{color:var(--cream);font-size:.92rem;margin-bottom:14px;}
.review-card .who{font-family:var(--ff-mono);font-size:.76rem;color:var(--muted);}

/* map */
.map-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;}
.map-wrap iframe{width:100%;height:380px;border:0;filter:grayscale(.3) invert(.92) contrast(.85);}
.map-info{position:absolute;bottom:16px;left:16px;background:rgba(6,10,28,.92);border:1px solid var(--line);border-radius:10px;padding:14px 18px;font-family:var(--ff-mono);font-size:.8rem;color:var(--gold-300);max-width:260px;}

/* forms */
.form-card{background:var(--navy-800);border:1px solid var(--line);border-radius:var(--radius);padding:34px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:640px){.form-row{grid-template-columns:1fr;}}
.field{margin-bottom:18px;}
.field label{display:block;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.field label .req{color:var(--gold-400);}
.field input,.field select,.field textarea{width:100%;background:var(--navy-950);border:1px solid var(--line);border-radius:9px;padding:13px 14px;color:var(--cream);font-family:var(--ff-body);font-size:.94rem;transition:border-color .2s;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-400);outline:none;}
.field textarea{resize:vertical;min-height:110px;}
.form-note{font-size:.8rem;color:var(--muted-dim);margin-top:14px;}
.form-success{display:none;background:rgba(230,183,63,.1);border:1px solid var(--gold-500);color:var(--gold-300);padding:16px 18px;border-radius:10px;font-size:.9rem;margin-bottom:18px;}
.form-success.show{display:block;}

/* steps */
.steps{counter-reset:step;}
.step{display:flex;gap:18px;padding:22px 0;border-top:1px solid var(--line);}
.step:first-child{border-top:none;}
.step .num{font-family:var(--ff-mono);color:var(--gold-400);font-size:1.1rem;flex-shrink:0;width:34px;}
.step h4{color:var(--cream);margin-bottom:4px;}
.step p{margin:0;font-size:.9rem;}

/* terms */
.terms-block{border-bottom:1px solid var(--line);padding:30px 0;}
.terms-block:last-child{border-bottom:none;}
.terms-block h3{color:var(--gold-300);font-size:1.05rem;display:flex;align-items:center;gap:10px;}
.terms-block h3 .tag{font-family:var(--ff-mono);font-size:.68rem;color:var(--navy-950);background:var(--gold-400);border-radius:6px;padding:3px 8px;}
.terms-block ul{margin:12px 0 0;display:flex;flex-direction:column;gap:8px;}
.terms-block ul li{position:relative;padding-left:18px;font-size:.92rem;color:var(--muted);}
.terms-block ul li::before{content:"–";position:absolute;left:0;color:var(--gold-500);}
.terms-toc{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;}
.terms-toc a,.terms-toc button{font-family:var(--ff-mono);font-size:.74rem;border:1px solid var(--line);padding:7px 12px;border-radius:999px;color:var(--muted);background:none;cursor:pointer;}
.terms-toc a:hover,.terms-toc button:hover{color:var(--gold-300);border-color:var(--gold-400);}

/* about */
.about-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
@media (max-width:900px){.about-hero{grid-template-columns:1fr;}}
.instructor-plate{background:linear-gradient(160deg,var(--navy-800),var(--navy-950));border:1px solid var(--line);border-radius:18px;padding:38px;text-align:center;}
.instructor-plate .avatar{width:88px;height:88px;border-radius:50%;margin:0 auto 16px;background:linear-gradient(160deg,var(--gold-400),var(--gold-500));display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-weight:700;font-size:1.6rem;color:var(--navy-950);}
.value-list li{display:flex;gap:14px;align-items:flex-start;}
.value-list .ico{width:38px;height:38px;flex-shrink:0;border-radius:9px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--gold-400);}
.value-list h4{margin:0 0 4px;font-size:.98rem;color:var(--cream);}
.value-list p{margin:0;font-size:.87rem;}

/* CTA banner */
.cta-banner{background:linear-gradient(120deg,var(--navy-800),var(--navy-950) 70%);border:1px solid var(--gold-500);border-radius:20px;padding:52px 44px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;box-shadow:0 30px 60px -34px var(--gold-glow);}
.cta-banner h2{margin:0;font-size:clamp(1.4rem,3vw,1.9rem);}
.cta-banner p{margin:6px 0 0;}

/* footer */
footer{background:var(--navy-950);border-top:1px solid var(--line);padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:var(--gold-300);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;}
.footer-grid ul{display:flex;flex-direction:column;gap:10px;}
.footer-grid a,.footer-grid button,.footer-grid p{color:var(--muted);font-size:.88rem;}
.footer-grid button{background:none;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;display:block;}
.footer-grid a:hover,.footer-grid button:hover{color:var(--gold-300);}
.footer-social{display:flex;gap:10px;margin-top:16px;}
.footer-social a{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);}
.footer-social a:hover{color:var(--navy-950);background:var(--gold-400);border-color:var(--gold-400);}
.footer-social svg{width:15px;height:15px;fill:currentColor;}
.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--muted-dim);}
.footer-bottom a,.footer-bottom button{color:var(--muted-dim);background:none;border:none;padding:0;font:inherit;font-size:.78rem;cursor:pointer;}
.footer-bottom a:hover,.footer-bottom button:hover{color:var(--gold-300);}