:root{
  --navy:        #0B2038;
  --navy-deep:   #061426;
  --navy-mid:    #16345A;
  --slate:       #4A5568;
  --slate-light: #6B7688;
  --white:       #FFFFFF;
  --bg:          #F5F7FA;
  --gold:        #D4A72C;
  --gold-dark:   #A8811C;
  --gold-tint:   #FBF3DE;
  --line:        rgba(11,32,56,0.10);
  --shadow:      0 24px 48px -24px rgba(6,20,38,0.35);

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --fs-h1: clamp(2rem, 1.5rem + 2.4vw, 3.4rem);
  --fs-h2: clamp(1.6rem, 1.35rem + 1.2vw, 2.25rem);
  --fs-h3: clamp(1.15rem, 1.05rem + 0.4vw, 1.35rem);
  --fs-lead: clamp(1.02rem, 0.96rem + 0.3vw, 1.15rem);

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;

  --radius-s: 10px;
  --radius-m: 16px;
  --radius-l: 26px;
  --container: 1140px;
}

*,*::before,*::after{ box-sizing:border-box; min-width:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html,body{ overflow-x:hidden; max-width:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.65;
  color:var(--slate);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.14;
  margin:0 0 var(--space-2);
  color:var(--navy);
  letter-spacing:-0.01em;
}
h1{ font-size:var(--fs-h1); color:var(--white); }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); }
p{ margin:0 0 var(--space-2); }
ul{ margin:0; padding:0; list-style:none; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--space-3); }
section{ padding-block:var(--space-5); }
.section-alt{ background:var(--white); }

.eyebrow{
  display:inline-flex; align-items:center; gap:0.6em;
  font-size:0.78rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-dark); margin-bottom:var(--space-2);
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--gold); display:inline-block; }
.lead{ font-size:var(--fs-lead); max-width:62ch; }
.section-head{ max-width:68ch; margin-bottom:var(--space-4); }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--gold); outline-offset:3px; border-radius:4px;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--navy); color:var(--white);
  padding:0.75em 1.25em; border-radius:0 0 8px 0; z-index:999;
}
.skip-link:focus{ left:0; top:0; }

/* Signature device: a dashed "road line" rule used as the section divider,
   nodding to the road markings students learn to read. Kept quiet: one
   thin strip, not repeated as decoration. */
.roadline{
  height:6px;
  background:var(--navy-deep);
  background-image:repeating-linear-gradient(90deg, var(--gold) 0 34px, transparent 34px 58px);
  background-position:center;
}

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:0.55em;
  font-family:var(--font-body); font-weight:700; font-size:0.95rem;
  padding:0.95em 1.7em; border-radius:100px; text-decoration:none;
  border:2px solid transparent; cursor:pointer;
  transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--gold); color:var(--navy-deep); }
.btn-primary:hover{ background:var(--gold-dark); box-shadow:0 14px 28px -12px rgba(168,129,28,0.55); color:var(--white); }
.btn-ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,0.55); }
.btn-ghost:hover{ background:rgba(255,255,255,0.12); border-color:var(--white); }
.btn-outline{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-outline:hover{ background:var(--navy); color:var(--white); }

/* header */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(11,32,56,0.96);
  backdrop-filter:blur(10px);
}
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; padding-block:0.9rem; gap:1rem; }
.brand{ display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.brand-mark{
  width:38px; height:38px; border-radius:9px; background:var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; color:var(--navy-deep); font-size:1.1rem;
  flex-shrink:0;
}
.brand-name{ font-family:var(--font-display); font-weight:600; color:var(--white); font-size:1.05rem; line-height:1.2; }
.brand-name span{ display:block; font-family:var(--font-body); font-weight:500; font-size:0.72rem; color:rgba(255,255,255,0.65); letter-spacing:0.04em; }

nav.primary-nav{ display:none; }
nav.primary-nav ul{ display:flex; gap:1.5rem; align-items:center; }
nav.primary-nav a{
  text-decoration:none; font-weight:600; font-size:0.9rem; color:rgba(255,255,255,0.85);
  padding:0.4em 0.1em; border-bottom:2px solid transparent;
  transition:color 0.15s ease, border-color 0.15s ease;
  white-space:nowrap;
}
nav.primary-nav a:hover{ color:var(--gold); border-color:var(--gold); }

.nav-actions{ display:flex; align-items:center; gap:0.75rem; }
.hamburger{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:10px; border:2px solid rgba(255,255,255,0.35);
  background:transparent; color:var(--white); cursor:pointer;
}
@media (min-width:960px){
  nav.primary-nav{ display:block; }
  .hamburger{ display:none; }
}

/* hero */
#hero{
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
  padding-block:4.5rem 3.5rem;
  position:relative;
}
.hero-inner{ max-width:44rem; }
.hero-sub{ color:rgba(255,255,255,0.82); font-size:var(--fs-lead); max-width:56ch; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:var(--space-3); }
.hero-trust{
  margin-top:var(--space-4); display:flex; flex-wrap:wrap; gap:1.5rem;
  color:rgba(255,255,255,0.7); font-size:0.85rem; font-weight:600;
}
.hero-trust li{ display:flex; align-items:center; gap:0.5em; }
.hero-trust li::before{ content:"✓"; color:var(--gold); font-weight:800; }

/* cards grid */
.card-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
@media (min-width:700px){ .card-grid{ grid-template-columns:1fr 1fr; } }
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:var(--space-3); box-shadow:var(--shadow);
}
.card h3{ margin-bottom:0.4em; }
.card p{ margin:0; color:var(--slate); }

/* about */
.about-grid{ display:grid; gap:var(--space-4); }
@media (min-width:860px){ .about-grid{ grid-template-columns:1.1fr 0.9fr; align-items:start; } }
.about-panel{
  background:var(--navy); color:rgba(255,255,255,0.85);
  border-radius:var(--radius-l); padding:var(--space-4);
}
.about-panel h3{ color:var(--white); }
.about-panel p{ color:rgba(255,255,255,0.78); }

/* the car */
.feature-list{ display:grid; grid-template-columns:1fr; gap:var(--space-2); }
@media (min-width:700px){ .feature-list{ grid-template-columns:1fr 1fr; } }
.feature-item{
  display:flex; gap:0.9rem; align-items:flex-start;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-s);
  padding:1.1rem 1.2rem;
}
.feature-icon{
  width:34px; height:34px; border-radius:8px; background:var(--gold-tint);
  color:var(--gold-dark); flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-weight:800;
}
.feature-item strong{ display:block; color:var(--navy); margin-bottom:0.2em; }

/* syllabus */
.syllabus-phase{
  border-left:3px solid var(--gold); padding-left:1.2rem; margin-bottom:var(--space-4);
}
.syllabus-phase:last-child{ margin-bottom:0; }
.syllabus-phase ul{ display:grid; gap:0.8rem; margin-top:0.8rem; }
.syllabus-phase li{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-s);
  padding:0.9rem 1.1rem;
}
.syllabus-phase li strong{ display:block; color:var(--navy); margin-bottom:0.2em; }

/* pricing */
.price-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
@media (min-width:820px){ .price-grid{ grid-template-columns:repeat(3,1fr); } }
.price-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:var(--space-3); text-align:center; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:0.4rem;
}
.price-card.is-featured{
  border-color:var(--gold); background:var(--gold-tint); transform:scale(1.02);
}
.price-tag{ font-size:0.78rem; font-weight:800; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold-dark); }
.price-amount{ font-family:var(--font-display); font-size:2.2rem; color:var(--navy); font-weight:700; }
.price-desc{ color:var(--slate); font-size:0.92rem; margin:0; }

.faq{ margin-top:var(--space-4); display:grid; gap:1rem; }
.faq-item{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-s);
  padding:1.2rem 1.4rem;
}
.faq-item p{ margin:0; }
.faq-item strong{ color:var(--navy); }

/* testimonials */
.testi-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-3); }
@media (min-width:700px){ .testi-grid{ grid-template-columns:1fr 1fr; } }
.testi-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:var(--space-3); box-shadow:var(--shadow);
}
.testi-stars{ color:var(--gold); letter-spacing:0.15em; margin-bottom:0.6rem; }
.testi-quote{ color:var(--slate); margin-bottom:1rem; }
.testi-person{ display:flex; align-items:center; gap:0.7rem; }
.testi-avatar{
  width:36px; height:36px; border-radius:50%; background:var(--navy); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0;
}
.testi-name{ font-weight:700; color:var(--navy); }
.testi-role{ font-size:0.82rem; color:var(--slate-light); }
.testi-cta{ text-align:center; margin-top:var(--space-4); }

/* location / map */
.location-container{ display:grid; grid-template-columns:1fr; gap:var(--space-4); align-items:start; }
@media (min-width:860px){ .location-container{ grid-template-columns:1fr 1fr; align-items:center; } }
.location-block{ margin-bottom:var(--space-3); }
.location-block h3{ font-size:0.95rem; margin-bottom:0.75rem; }
.postcode-list, .area-list{
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:0.6rem;
}
.postcode-list li, .area-list li{
  background:var(--bg); border:1px solid var(--line); border-radius:100px;
  padding:0.5em 1.1em; font-size:0.9rem; font-weight:600; color:var(--navy);
}
.location-map{ border-radius:8px; overflow:hidden; box-shadow:var(--shadow); }
.map-frame{ width:100%; height:450px; border:0; border-radius:8px; display:block; }
@media (max-width:480px){ .map-frame{ height:320px; } }

/* contact */
#contact{ background:var(--navy); color:rgba(255,255,255,0.85); }
#contact .eyebrow{ color:var(--gold); }
#contact h2{ color:var(--white); }
#contact .lead{ color:rgba(255,255,255,0.78); }
.contact-form{
  background:var(--white); border-radius:var(--radius-l); padding:var(--space-4);
  margin-top:var(--space-3); display:grid; gap:1.1rem; max-width:42rem; box-shadow:var(--shadow);
}
@media (min-width:640px){ .contact-form{ grid-template-columns:1fr 1fr; } }
.field{ display:flex; flex-direction:column; gap:0.4rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-weight:700; font-size:0.85rem; color:var(--navy); }
.field input, .field select, .field textarea{
  border:1.5px solid var(--line); border-radius:var(--radius-s); padding:0.8em 1em;
  font-family:var(--font-body); font-size:0.95rem; color:var(--slate); background:var(--bg);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); outline:none; }
.field textarea{ min-height:110px; resize:vertical; }
.contact-form .btn{ grid-column:1 / -1; width:100%; }

/* footer */
footer.site-footer{ background:var(--navy-deep); color:rgba(255,255,255,0.72); padding-block:var(--space-4); }
footer.site-footer h3{ color:var(--white); margin-bottom:1rem; }
footer.site-footer p{ font-size:0.9rem; color:rgba(255,255,255,0.68); max-width:70ch; }
footer.site-footer strong{ color:rgba(255,255,255,0.9); }
footer.site-footer a{ color:var(--gold); text-decoration:none; }
footer.site-footer a:hover{ text-decoration:underline; }

/* mobile call bar */
.mobile-callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:200;
  display:flex; background:var(--navy-deep); border-top:1px solid rgba(255,255,255,0.1);
}
.mobile-callbar a{
  flex:1; text-align:center; padding:0.9rem 0.5rem; text-decoration:none; font-weight:700; font-size:0.9rem;
  color:var(--white);
}
.mobile-callbar .call{ background:var(--gold); color:var(--navy-deep); }
body{ padding-bottom:56px; }
@media (min-width:960px){
  .mobile-callbar{ display:none; }
  body{ padding-bottom:0; }
}

/* mobile nav drawer */
#primary-nav.is-open{
  display:block; position:absolute; top:100%; left:0; right:0;
  background:var(--navy); border-top:1px solid rgba(255,255,255,0.12);
  box-shadow:0 20px 30px -20px rgba(0,0,0,0.5);
}
#primary-nav.is-open ul{ flex-direction:column; align-items:flex-start; padding:1rem var(--space-3) 1.5rem; gap:0.2rem; }
#primary-nav.is-open li{ width:100%; }
#primary-nav.is-open a{ display:block; padding:0.7rem 0; border-bottom:1px solid rgba(255,255,255,0.08); }
