  :root{
    --asphalt: #0B1B2E;
    --asphalt-2: #122942;
    --steel: #1C3A5E;
    --amber: #F2A93B;
    --red: #D7263D;
    --green: #2E8B67;
    --paper: #F5F1E8;
    --paper-dim: #B9C2D1;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth; overflow-x:hidden; max-width:100%;}
  body{overflow-x:hidden; max-width:100%;}
  h1,h2,h3,p,a,span,li,button,input,select,textarea{overflow-wrap:break-word; word-break:break-word;}
  body{
    background:var(--asphalt);
    color:var(--paper);
    font-family:'Inter',sans-serif;
    line-height:1.5;
  }
  h1,h2,h3,.display{
    font-family:'Oswald',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.02em;
  }
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

  /* focus visibility */
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--amber);
    outline-offset:3px;
  }

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

  /* ---- ticker ---- */
  .ticker-bar{
    background:var(--asphalt-2);
    border-bottom:1px solid rgba(242,169,59,0.15);
    overflow:hidden;
    white-space:nowrap;
    padding:8px 0;
  }
  .ticker-track{
    display:inline-block;
    padding-left:100%;
    animation:scroll-left 28s linear infinite;
  }
  @keyframes scroll-left{
    0%{transform:translateX(0);}
    100%{transform:translateX(-100%);}
  }
  .ticker-track span{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.12em;
    color:var(--amber);
    margin-right:48px;
  }
  .dot{color:var(--red);}

  /* ---- header ---- */
  header{
    padding:20px 0;
    border-bottom:1px solid rgba(255,255,255,0.06);
    position:sticky;
    top:0;
    background:rgba(11,27,46,0.94);
    backdrop-filter:blur(6px);
    z-index:50;
  }
  header .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .logo{
    display:flex;
    align-items:baseline;
    gap:8px;
    font-family:'Oswald',sans-serif;
    font-weight:700;
    font-size:22px;
    text-transform:uppercase;
  }
  .logo .num{
    color:var(--asphalt);
    background:var(--amber);
    padding:2px 8px;
    border-radius:3px;
    font-size:20px;
  }
  nav{display:flex;gap:28px;font-size:14px;}
  nav a{
    color:var(--paper-dim);
    font-weight:500;
    letter-spacing:0.02em;
    transition:color .15s ease;
  }
  nav a:hover{color:var(--amber);}
  .header-actions{display:flex;gap:10px;}
  @media (max-width:820px){
    nav{display:none;}
  }

  /* ---- buttons ---- */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:12px 20px;
    border-radius:4px;
    font-weight:600;
    font-size:14px;
    letter-spacing:0.02em;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .12s ease, filter .15s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-call{
    background:var(--red);
    color:var(--paper);
  }
  .btn-call:hover{filter:brightness(1.1);}
  .btn-whatsapp{
    background:transparent;
    color:var(--paper);
    border-color:rgba(255,255,255,0.25);
  }
  .btn-whatsapp:hover{border-color:var(--amber); color:var(--amber);}
  .btn-lg{padding:16px 28px; font-size:16px;}

  /* ---- hero ---- */
  .hero{
    padding:88px 0 72px;
    position:relative;
    overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      repeating-linear-gradient(135deg, rgba(255,255,255,0.015) 0 2px, transparent 2px 14px);
    pointer-events:none;
  }
  .hero-inner{
    position:relative;
    max-width:760px;
  }
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.16em;
    color:var(--amber);
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:20px;
  }
  .eyebrow .led{
    width:8px;height:8px;border-radius:50%;
    background:var(--amber);
    box-shadow:0 0 8px var(--amber);
    animation:pulse 1.8s ease-in-out infinite;
  }
  @keyframes pulse{
    0%,100%{opacity:1;}
    50%{opacity:0.35;}
  }
  .hero h1{
    font-size:56px;
    line-height:1.02;
    font-weight:700;
    color:var(--paper);
    margin-bottom:20px;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--amber);
  }
  .hero p.lead{
    font-size:17px;
    color:var(--paper-dim);
    max-width:520px;
    margin-bottom:32px;
  }
  .hero-actions{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:36px;
  }
  .hero-phone{
    font-family:'IBM Plex Mono',monospace;
    font-size:15px;
    color:var(--paper-dim);
  }
  .hero-phone strong{color:var(--paper); letter-spacing:0.04em;}

  @media (max-width:640px){
    .hero{padding:56px 0 48px;}
    .hero h1{font-size:36px;}
  }
  @media (max-width:400px){
    .wrap{padding:0 16px;}
    .hero h1{font-size:28px;}
    .hero p.lead{font-size:15px;}
    .eyebrow{font-size:11px;}
  }

  /* ---- board / signature element ---- */
  .board{
    margin-top:48px;
    background:var(--asphalt-2);
    border:1px solid rgba(242,169,59,0.25);
    border-radius:6px;
    padding:18px 22px;
    max-width:560px;
  }
  .board-row{
    display:flex;
    align-items:center;
    gap:14px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    color:var(--amber);
    padding:6px 0;
    border-bottom:1px dashed rgba(242,169,59,0.15);
  }
  .board-row:last-child{border-bottom:none;}
  .board-row .tag{
    color:var(--asphalt);
    background:var(--amber);
    padding:1px 7px;
    border-radius:2px;
    font-weight:600;
    flex-shrink:0;
  }

  /* ---- section headings ---- */
  .section{padding-top:80px; padding-bottom:80px;}
  .section-head{
    max-width:600px;
    margin-bottom:48px;
  }
  .section-eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.14em;
    color:var(--amber);
    margin-bottom:12px;
    display:block;
  }
  .section h2{
    font-size:34px;
    font-weight:600;
    color:var(--paper);
  }
  @media (max-width:640px){
    .section h2{font-size:26px;}
  }
  @media (max-width:400px){
    .section h2{font-size:22px;}
    .section{padding-top:56px; padding-bottom:56px;}
  }
  .section p.sub{
    color:var(--paper-dim);
    margin-top:12px;
    font-size:15px;
  }

  /* ---- services ---- */
  .services{
    background:var(--asphalt-2);
    border-top:1px solid rgba(255,255,255,0.06);
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .service-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:1px;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.06);
  }
  .service-card{
    background:var(--asphalt-2);
    padding:32px 26px;
    transition:background .15s ease;
  }
  .service-card:hover{background:#1A3555;}
  .service-icon{
    width:38px;height:38px;
    margin-bottom:20px;
    color:var(--amber);
  }
  .service-card h3{
    font-size:16px;
    font-weight:600;
    color:var(--paper);
    margin-bottom:8px;
    text-transform:none;
    letter-spacing:normal;
  }
  .service-card p{
    font-size:14px;
    color:var(--paper-dim);
  }

  /* ---- how it works ---- */
  .steps{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
  }
  @media (max-width:760px){
    .steps{grid-template-columns:1fr;}
  }
  .step{
    padding-top:20px;
    border-top:2px solid var(--red);
  }
  .step .step-num{
    font-family:'IBM Plex Mono',monospace;
    color:var(--red);
    font-size:13px;
    margin-bottom:10px;
    display:block;
  }
  .step h3{
    font-size:18px;
    font-weight:600;
    color:var(--paper);
    margin-bottom:8px;
    text-transform:none;
    letter-spacing:normal;
  }
  .step p{color:var(--paper-dim); font-size:14px;}

  /* ---- coverage ---- */
  .coverage{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:56px;
    align-items:center;
  }
  @media (max-width:820px){
    .coverage{grid-template-columns:1fr;}
  }
  .coverage-badges{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:24px;
  }
  .badge{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.06em;
    color:var(--green);
    border:1px solid rgba(31,111,74,0.5);
    background:rgba(31,111,74,0.08);
    padding:7px 12px;
    border-radius:3px;
  }
  .route-map{
    background:var(--asphalt-2);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:8px;
    padding:24px;
  }

  /* ---- cta / contact ---- */
  .cta{
    background:linear-gradient(180deg, var(--asphalt-2), var(--asphalt));
    border-top:1px solid rgba(255,255,255,0.06);
    text-align:center;
    padding:96px 0;
  }
  .cta h2{
    font-size:38px;
    margin-bottom:14px;
  }
  .cta p{
    color:var(--paper-dim);
    margin-bottom:36px;
    font-size:16px;
  }
  .cta-actions{
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
  }

  /* ---- footer ---- */
  footer{
    padding:32px 0;
    border-top:1px solid rgba(255,255,255,0.06);
  }
  footer .wrap{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:14px;
    font-size:13px;
    color:var(--paper-dim);
  }
  footer a:hover{color:var(--amber);}

/* ---- inner page hero (non-home pages) ---- */
.page-hero{
  padding:56px 0 48px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  background:var(--asphalt-2);
}
.breadcrumb{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.06em;
  color:var(--paper-dim);
  margin-bottom:18px;
}
.breadcrumb a{color:var(--amber);}
.breadcrumb a:hover{text-decoration:underline;}
.page-hero h1{
  font-size:38px;
  color:var(--paper);
  margin-bottom:14px;
}
.page-hero p.lead{
  color:var(--paper-dim);
  font-size:16px;
  max-width:640px;
}
@media (max-width:640px){
  .page-hero h1{font-size:28px;}
}
@media (max-width:400px){
  .page-hero h1{font-size:24px;}
  .page-hero p.lead{font-size:14.5px;}
}

/* ---- footer nav (site-wide, expanded) ---- */
footer.site-footer{padding:48px 0 32px;}
.footer-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr 0.9fr 0.9fr;
  gap:28px;
  margin-bottom:32px;
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr; gap:28px;}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr; gap:28px;}
}
.footer-col h4{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--amber);
  margin-bottom:14px;
  text-transform:uppercase;
}
.footer-col a{
  display:block;
  color:var(--paper-dim);
  font-size:14px;
  padding:5px 0;
}
.footer-col a:hover{color:var(--amber);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.06);
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  font-size:13px;
  color:var(--paper-dim);
}

/* ---- areas we cover ---- */
.areas-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:1px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.06);
}
.area-tile{
  background:var(--asphalt-2);
  padding:16px 18px;
  font-size:14px;
  color:var(--paper-dim);
  transition:background .15s ease, color .15s ease;
}
.area-tile:hover{background:#1A3555; color:var(--paper);}
.region-block{margin-bottom:56px;}
.region-block h3{
  font-size:20px;
  color:var(--paper);
  margin-bottom:16px;
  text-transform:none;
  letter-spacing:normal;
  display:flex;
  align-items:center;
  gap:10px;
}
.region-block h3 .tag{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:var(--asphalt);
  background:var(--amber);
  padding:2px 8px;
  border-radius:2px;
  text-transform:uppercase;
}

/* ---- why choose us (trust section, replaces testimonials until real reviews exist) ---- */
.trust-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:24px;
}
.trust-card{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:6px;
  padding:26px 24px;
  background:var(--asphalt-2);
}
.trust-card .trust-icon{
  width:30px;height:30px;
  color:var(--amber);
  margin-bottom:16px;
}
.trust-card h3{
  font-size:15px;
  font-weight:600;
  color:var(--paper);
  margin-bottom:8px;
  text-transform:none;
  letter-spacing:normal;
}
.trust-card p{font-size:14px; color:var(--paper-dim);}
.review-note{
  margin-top:28px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  color:var(--paper-dim);
  border:1px dashed rgba(242,169,59,0.3);
  padding:12px 16px;
  border-radius:4px;
  display:inline-block;
}

/* ---- service detail page ---- */
.service-detail-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:56px;
  align-items:start;
}
@media (max-width:820px){
  .service-detail-grid{grid-template-columns:1fr;}
}
.detail-list{list-style:none; margin-top:8px;}
.detail-list li{
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.06);
  font-size:15px;
  color:var(--paper-dim);
  display:flex;
  gap:10px;
}
.detail-list li::before{
  content:"—";
  color:var(--amber);
  flex-shrink:0;
}
.side-card{
  background:var(--asphalt-2);
  border:1px solid rgba(242,169,59,0.2);
  border-radius:8px;
  padding:28px;
  position:sticky;
  top:90px;
}
.side-card h3{
  font-size:16px;
  color:var(--paper);
  margin-bottom:16px;
  text-transform:none;
}
.side-card .btn{width:100%; justify-content:center; margin-bottom:10px;}
.related-services{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-top:16px;
}
.related-services a{
  padding:10px 0;
  font-size:14px;
  color:var(--paper-dim);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
/* ---- nationwide coverage banner ---- */
.coverage-banner{
  background:var(--asphalt-2);
  border:1px solid rgba(242,169,59,0.3);
  border-left:4px solid var(--amber);
  border-radius:6px;
  padding:26px 30px;
  margin-bottom:48px;
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.coverage-banner .cb-icon{
  width:40px;height:40px;
  color:var(--amber);
  flex-shrink:0;
}
.coverage-banner h2{
  font-size:20px;
  color:var(--paper);
  margin-bottom:4px;
  text-transform:none;
}
.coverage-banner p{
  color:var(--paper-dim);
  font-size:14.5px;
  max-width:640px;
}

/* ---- motorway callout ---- */
.motorway-callout{
  background:var(--asphalt-2);
  border-top:1px solid rgba(255,255,255,0.06);
  border-bottom:1px solid rgba(255,255,255,0.06);
  padding:72px 0;
}
.motorway-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:48px;
  align-items:center;
}
@media (max-width:820px){
  .motorway-grid{grid-template-columns:1fr;}
}
.motorway-grid h2{
  font-size:30px;
  color:var(--paper);
  margin:12px 0 16px;
  line-height:1.15;
}
.motorway-grid p.sub{
  color:var(--paper-dim);
  font-size:15px;
  max-width:560px;
  margin-top:0;
}
.motorway-stat-card{
  background:var(--asphalt);
  border:1px solid rgba(242,169,59,0.3);
  border-radius:8px;
  padding:32px;
  text-align:center;
}
.stat-num{
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:56px;
  color:var(--amber);
  line-height:1;
}
.stat-num .stat-unit{
  font-size:22px;
  margin-left:6px;
  color:var(--paper);
}
.stat-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-top:6px;
}
.stat-divider{
  height:1px;
  background:rgba(255,255,255,0.1);
  margin:22px 0;
}
.motorway-disclaimer{
  font-size:12.5px;
  color:var(--paper-dim);
  opacity:0.8;
  margin-top:20px;
}

/* ---- inline service-page callout ---- */
.inline-callout{
  margin-top:32px;
  background:var(--asphalt);
  border:1px solid rgba(242,169,59,0.3);
  border-radius:6px;
  padding:20px 22px;
}
.inline-callout .ic-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--amber);
  margin-bottom:8px;
  display:block;
}
.inline-callout p{
  color:var(--paper-dim);
  font-size:14px;
}
.inline-callout a{
  color:var(--amber);
  font-weight:600;
}
.inline-callout a:hover{text-decoration:underline;}

/* ---- stations grid (reuses areas-grid/area-tile look with a label) ---- */
.station-tile{
  position:relative;
}
.station-tile .station-tag{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:0.08em;
  color:var(--amber);
  margin-bottom:4px;
  text-transform:uppercase;
}

/* ---- blog index ---- */
.blog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:24px;
}
.blog-card{
  background:var(--asphalt-2);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:8px;
  padding:28px;
  display:flex;
  flex-direction:column;
}
.blog-card:hover{border-color:rgba(242,169,59,0.35);}
.blog-card .blog-meta{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:12px;
}
.blog-card h3{
  font-size:19px;
  color:var(--paper);
  margin-bottom:10px;
  text-transform:none;
  line-height:1.3;
}
.blog-card h3 a{color:inherit;}
.blog-card h3 a:hover{color:var(--amber);}
.blog-card p{
  font-size:14px;
  color:var(--paper-dim);
  margin-bottom:18px;
  flex-grow:1;
}
.blog-card .read-more{
  font-size:13.5px;
  font-weight:600;
  color:var(--amber);
}

/* ---- article page ---- */
.article-header{
  padding:48px 0 32px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  background:var(--asphalt-2);
}
.article-meta-row{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.05em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:16px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.article-header h1{
  font-size:36px;
  color:var(--paper);
  max-width:760px;
  margin-bottom:14px;
}
.article-header p.lead{
  color:var(--paper-dim);
  font-size:17px;
  max-width:680px;
}
@media (max-width:640px){
  .article-header h1{font-size:26px;}
}

.article-body{
  max-width:720px;
  margin:0 auto;
  padding-top:56px;
  padding-bottom:56px;
}
.article-body h2{
  font-size:24px;
  color:var(--paper);
  margin:40px 0 16px;
  text-transform:none;
}
.article-body h2:first-child{margin-top:0;}
.article-body h3{
  font-size:18px;
  color:var(--paper);
  margin:28px 0 12px;
  text-transform:none;
  font-weight:600;
}
.article-body p{
  color:var(--paper-dim);
  font-size:16px;
  line-height:1.7;
  margin-bottom:18px;
}
.article-body ul, .article-body ol{
  color:var(--paper-dim);
  font-size:16px;
  line-height:1.7;
  margin:0 0 18px 22px;
}
.article-body li{margin-bottom:8px;}
.article-body strong{color:var(--paper);}
.article-body a{color:var(--amber); font-weight:600;}
.article-body a:hover{text-decoration:underline;}
.article-callout{
  background:var(--asphalt-2);
  border:1px solid rgba(242,169,59,0.3);
  border-left:4px solid var(--amber);
  border-radius:6px;
  padding:22px 26px;
  margin:32px 0;
}
.article-callout p{margin-bottom:0; color:var(--paper-dim); font-size:15px;}
.article-callout strong{color:var(--paper);}
.article-cta-inline{
  background:var(--asphalt);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:8px;
  padding:28px;
  margin:40px 0;
  text-align:center;
}
.article-cta-inline p{
  color:var(--paper);
  font-size:16px;
  font-weight:600;
  margin-bottom:16px;
}
.article-cta-inline .cta-actions{justify-content:center;}
.article-related{
  border-top:1px solid rgba(255,255,255,0.08);
  padding-top:28px;
  margin-top:40px;
}
.article-related h4{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.08em;
  color:var(--amber);
  text-transform:uppercase;
  margin-bottom:14px;
}
.article-related a{
  display:block;
  color:var(--paper-dim);
  font-size:14.5px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.article-related a:hover{color:var(--amber);}

.related-services a:hover{color:var(--amber);}

/* ---- header logo icon mark ---- */
.logo-icon{
  width:30px; height:30px;
  flex-shrink:0;
}
.logo-icon svg{width:100%; height:100%;}

/* ---- footer logo mark ---- */
.footer-brand-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.footer-logo-badge{
  width:34px; height:34px;
  background:var(--amber);
  color:var(--asphalt);
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:13px;
  flex-shrink:0;
  box-shadow:0 0 0 3px rgba(242,169,59,0.15);
}

/* ---- scroll reveal ---- */
.reveal-init{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal-in{opacity:1; transform:translateY(0);}

/* ---- hover lift for cards ---- */
.value-card, .trust-card, .blog-card, .faq-item, .step{
  transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.value-card:hover, .trust-card:hover{
  transform:translateY(-3px);
  border-color:rgba(242,169,59,0.3);
}
.blog-card:hover{transform:translateY(-3px);}
.area-tile{transition:transform .15s ease, background .15s ease, color .15s ease;}
.area-tile:hover{transform:translateY(-2px);}

/* ---- service-specific animated icons (boosted visibility) ---- */
@keyframes spin-slow{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
@keyframes glow-pulse{
  0%,100%{opacity:0.5; transform:scale(1);}
  50%{opacity:0.9; transform:scale(1.12);}
}
@keyframes spark-pulse{
  0%,100%{opacity:1; filter:drop-shadow(0 0 2px rgba(242,169,59,0.3));}
  50%{opacity:0.8; filter:drop-shadow(0 0 14px rgba(242,169,59,1));}
}
@keyframes spark-flicker{
  0%,100%{opacity:0;}
  45%{opacity:0;}
  50%{opacity:1;}
  55%{opacity:0;}
  75%{opacity:1;}
  80%{opacity:0;}
}
@keyframes drive-across{
  0%{left:-56px;}
  100%{left:calc(100% + 4px);}
}
@keyframes road-dash{
  to{background-position:-48px 0;}
}
@keyframes bob{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-4px);}
}

.hero-anim-icon{
  position:relative;
}
.hero-anim-icon .glow-bg{
  position:absolute;
  inset:-16px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(242,169,59,0.45) 0%, rgba(242,169,59,0) 70%);
  animation:glow-pulse 2.4s ease-in-out infinite;
  z-index:0;
}
.hero-anim-icon svg{position:relative; z-index:1;}
.hero-anim-icon .spin-el{
  animation:spin-slow 3s linear infinite;
  transform-origin:center;
}
.hero-anim-icon .spark-el{
  animation:spark-pulse 1.5s ease-in-out infinite, bob 2.4s ease-in-out infinite;
}
.hero-anim-icon .spark-particle{
  animation:spark-flicker 1.5s ease-in-out infinite;
}

.truck-strip{
  position:relative;
  height:60px;
  max-width:400px;
  margin-top:28px;
  border-radius:3px;
  overflow:hidden;
}
.truck-strip .road-line{
  position:absolute;
  left:0; right:0; bottom:14px;
  height:3px;
  background-image:repeating-linear-gradient(90deg, rgba(242,169,59,0.75) 0 16px, transparent 16px 30px);
  animation:road-dash .8s linear infinite;
}
.truck-strip .truck-icon{
  position:absolute;
  bottom:8px;
  left:-56px;
  width:56px; height:auto;
  color:var(--amber);
  filter:drop-shadow(0 0 8px rgba(242,169,59,0.5));
  animation:drive-across 3.2s linear infinite;
}

.jump-start-badge svg{
  animation:spark-pulse 1.5s ease-in-out infinite;
}
.tyre-badge-spin svg{
  animation:spin-slow 3.5s linear infinite;
  transform-origin:50% 50%;
}

/* ---- mobile nav toggle ---- */
.nav-toggle{
  display:none;
  -webkit-appearance:none;
  appearance:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:36px; height:36px;
  background-color:transparent;
  border:1px solid rgba(255,255,255,0.25);
  border-radius:5px;
  cursor:pointer;
  padding:0;
  margin:0;
  flex-shrink:0;
  font:inherit;
}
.nav-toggle span{
  display:block;
  height:2px;
  width:18px;
  background:var(--paper);
  margin:2.5px 0;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{
  display:none;
  flex-direction:column;
  background:var(--asphalt-2);
  border-top:1px solid rgba(255,255,255,0.08);
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  padding:15px 24px;
  color:var(--paper-dim);
  font-size:15px;
  font-weight:500;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.mobile-nav a:hover{color:var(--amber); background:rgba(242,169,59,0.06);}
.mobile-nav .mn-call{color:var(--amber); font-weight:600;}

@media (max-width:820px){
  .nav-toggle{display:flex;}
}
@media (min-width:821px){
  .mobile-nav{display:none !important;}
}

/* keep logo on one line on small screens */
.logo a, .logo{white-space:nowrap;}
@media (max-width:520px){
  .logo-word{display:none;}
  header .wrap{gap:10px;}
}

/* ---- availability results panel ---- */
.availability-result{
  margin-top:28px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,0.1);
}
.ar-header{
  font-family:'Oswald',sans-serif;
  font-size:20px;
  font-weight:600;
  color:var(--paper);
  margin-bottom:18px;
}
.ar-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:18px;
}
@media (max-width:640px){
  .ar-grid{grid-template-columns:1fr;}
}
.ar-details{
  background:var(--asphalt);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:6px;
  padding:18px 20px;
}
.ar-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,0.06);
  font-size:14px;
}
.ar-row:last-child{border-bottom:none;}
.ar-row span{color:var(--paper-dim); flex-shrink:0;}
.ar-row strong{color:var(--paper); text-align:right; word-break:break-word;}
.ar-service-card{
  background:var(--asphalt);
  border:1px solid rgba(242,169,59,0.35);
  border-radius:6px;
  padding:18px 20px;
  text-align:center;
}
.ar-service-card.ar-emergency{border-color:rgba(215,38,61,0.4);}
.ar-service-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:8px;
}
.ar-service-time{
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:32px;
  color:var(--amber);
  line-height:1;
  margin-bottom:10px;
}
.ar-emergency .ar-service-time{color:var(--red);}
.ar-service-time span{font-size:14px; color:var(--paper); margin-left:4px;}
.ar-service-card p{
  font-size:13px;
  color:var(--paper-dim);
  margin:0;
}
.ar-note{
  font-size:13.5px;
  color:var(--paper-dim);
  margin-bottom:16px;
}

/* ---- UK coverage map ---- */
.uk-map-wrap{
  display:flex;
  justify-content:center;
  padding:20px 0;
}
.uk-map-wrap svg{width:100%; max-width:260px; height:auto;}
.map-legend{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px 16px;
  margin-top:20px;
}
@media (max-width:480px){
  .map-legend{grid-template-columns:1fr;}
}
.map-legend-item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:var(--paper-dim);
}
.map-legend-dot{
  width:10px;height:10px;
  border-radius:50%;
  flex-shrink:0;
  background:var(--red);
}
.map-legend-dot.hub{background:var(--amber);}

/* ---- pricing section ---- */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media (max-width:900px){
  .pricing-grid{grid-template-columns:1fr; max-width:480px; margin:0 auto;}
}
.pricing-card{
  background:var(--asphalt-2);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:10px;
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.pricing-card:hover{
  transform:translateY(-4px);
  border-color:rgba(242,169,59,0.4);
  box-shadow:0 12px 28px rgba(0,0,0,0.28);
}
.pricing-card h3{
  font-size:19px;
  color:var(--paper);
  margin:4px 0 8px;
  text-transform:none;
}
.pricing-desc{
  font-size:14px;
  color:var(--paper-dim);
  margin-bottom:22px;
}
.pricing-price-wrap{
  border-top:1px solid rgba(255,255,255,0.08);
  border-bottom:1px solid rgba(255,255,255,0.08);
  padding:18px 0;
  margin-bottom:22px;
}
.pricing-from{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:6px;
}
.pricing-price{
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:42px;
  color:var(--amber);
  line-height:1;
}
.pricing-price span{
  font-size:15px;
  font-weight:500;
  color:var(--paper-dim);
  margin-left:6px;
}
.pricing-features{
  list-style:none;
  margin-bottom:26px;
  flex-grow:1;
}
.pricing-features li{
  font-size:14px;
  color:var(--paper-dim);
  padding:7px 0;
  padding-left:20px;
  position:relative;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.pricing-features li:last-child{border-bottom:none;}
.pricing-features li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--amber);
  font-weight:700;
}
.pricing-cta{width:100%; justify-content:center;}
.pricing-disclaimer{
  max-width:760px;
  margin:32px auto 0;
  background:var(--asphalt-2);
  border:1px solid rgba(242,169,59,0.25);
  border-left:4px solid var(--amber);
  border-radius:6px;
  padding:16px 20px;
  font-size:13.5px;
  color:var(--paper-dim);
  text-align:left;
}

/* ---- footer legal links ---- */
.footer-legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.06);
}
.footer-legal-links a{
  font-size:12.5px;
  color:var(--paper-dim);
  opacity:0.8;
}
.footer-legal-links a:hover{color:var(--amber); opacity:1;}

/* ---- legal page placeholder callout ---- */
.legal-placeholder{
  background:rgba(242,169,59,0.1);
  border:1px dashed rgba(242,169,59,0.5);
  border-radius:4px;
  padding:2px 8px;
  color:var(--amber);
  font-weight:600;
  font-size:0.95em;
}

/* ---- service badge (icon treatment) ---- */
.service-badge{
  width:56px;height:56px;
  background:var(--amber);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
  flex-shrink:0;
}
.service-badge svg{width:28px;height:28px;color:var(--asphalt);}
.service-badge.sm{width:44px;height:44px;border-radius:8px;}
.service-badge.sm svg{width:22px;height:22px;}

/* ---- featured tag on homepage cards ---- */
.featured-tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  letter-spacing:0.08em;
  color:var(--asphalt);
  background:var(--amber);
  padding:3px 9px;
  border-radius:3px;
  margin-bottom:14px;
  text-transform:uppercase;
}

/* ---- quote / lead capture form ---- */
.quote-form-section{
  background:var(--asphalt-2);
  border:1px solid rgba(242,169,59,0.3);
  border-radius:8px;
  padding:32px;
  margin-top:36px;
}
.quote-form-section h2{
  font-size:22px;
  color:var(--paper);
  margin-bottom:6px;
  text-transform:none;
}
.quote-form-section .qf-sub{
  color:var(--paper-dim);
  font-size:14px;
  margin-bottom:22px;
}
.quote-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.quote-form .field-full{grid-column:1 / -1;}
@media (max-width:640px){
  .quote-form{grid-template-columns:1fr;}
}
.quote-form label{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  letter-spacing:0.05em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:7px;
}
.quote-form input,
.quote-form select,
.quote-form textarea{
  width:100%;
  background:var(--asphalt);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:4px;
  padding:11px 13px;
  color:var(--paper);
  font-family:'Inter',sans-serif;
  font-size:14.5px;
}
.quote-form input::placeholder,
.quote-form textarea::placeholder{color:rgba(201,195,180,0.45);}
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{
  outline:none;
  border-color:var(--amber);
}
.quote-form textarea{resize:vertical; min-height:80px;}
.quote-form .qf-submit{margin-top:6px;}
.quote-form .qf-submit .btn{width:100%; justify-content:center;}
.quote-form .qf-note{
  font-size:12px;
  color:var(--paper-dim);
  opacity:0.75;
  margin-top:10px;
  grid-column:1 / -1;
}

/* ---- recent jobs / photo gallery ---- */
.job-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px;
}
.job-photo{
  aspect-ratio:4/3;
  border:1.5px dashed rgba(242,169,59,0.35);
  border-radius:6px;
  background:var(--asphalt-2);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--paper-dim);
}
.job-photo svg{width:26px;height:26px; color:rgba(242,169,59,0.5);}
.job-photo span{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.job-photo.filled{
  border-style:solid;
  border-color:rgba(255,255,255,0.08);
  padding:0;
  overflow:hidden;
}
.job-photo.filled img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ---- repair or replace diagram ---- */
.repair-replace-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
@media (max-width:720px){
  .repair-replace-grid{grid-template-columns:1fr;}
}
.rr-diagram{
  display:flex;
  justify-content:center;
}
.rr-diagram svg{width:100%; max-width:300px; height:auto;}
.rr-col{
  border-radius:6px;
  padding:20px 24px;
  border:1px solid rgba(255,255,255,0.08);
  background:var(--asphalt-2);
}
.rr-repair{border-left:4px solid var(--amber);}
.rr-replace{border-left:4px solid var(--red); margin-top:16px;}
.rr-col h3{
  font-size:18px;
  margin-bottom:3px;
  text-transform:none;
}
.rr-repair h3{color:var(--amber);}
.rr-replace h3{color:var(--red);}
.rr-sub{
  font-size:11.5px;
  color:var(--paper-dim);
  margin-bottom:14px;
  font-family:'IBM Plex Mono',monospace;
  text-transform:uppercase;
  letter-spacing:0.05em;
}
.rr-col ul{list-style:none;}
.rr-col li{
  font-size:14px;
  color:var(--paper-dim);
  padding:6px 0;
  padding-left:18px;
  position:relative;
}
.rr-col li::before{content:"—"; position:absolute; left:0;}
.rr-repair li::before{color:var(--amber);}
.rr-replace li::before{color:var(--red);}
.rr-note{
  margin-top:24px;
  color:var(--paper-dim);
  font-size:13.5px;
  max-width:640px;
}

/* ---- FAQ accordion ---- */
.faq-list{
  border-top:1px solid rgba(255,255,255,0.08);
}
.faq-item{
  border-bottom:1px solid rgba(255,255,255,0.08);
  padding:6px 0;
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:16px 4px;
  font-size:15.5px;
  font-weight:600;
  color:var(--paper);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  color:var(--amber);
  font-size:20px;
  flex-shrink:0;
  transition:transform .15s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{
  color:var(--paper-dim);
  font-size:14.5px;
  padding:0 4px 18px;
  max-width:680px;
}

/* ---- value grid (why mobile tyre fitting) ---- */
.value-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
}
.value-card{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:6px;
  padding:22px 20px;
  background:var(--asphalt-2);
}
.value-card h3{
  font-size:15px;
  font-weight:600;
  color:var(--paper);
  margin-bottom:8px;
  text-transform:none;
}
.value-card p{font-size:13.5px; color:var(--paper-dim);}

/* ---- quick search bar (UK plate style reg input) ---- */
.quick-search-bar{
  background:var(--asphalt);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:6px;
  padding:20px;
  display:grid;
  grid-template-columns:1fr 1.3fr 1fr;
  gap:16px;
  margin-bottom:22px;
}
@media (max-width:720px){
  .quick-search-bar{grid-template-columns:1fr;}
}
.quick-search-bar label{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  letter-spacing:0.05em;
  color:var(--paper-dim);
  text-transform:uppercase;
  margin-bottom:7px;
}
.quick-search-bar select,
.quick-search-bar .qsb-postcode{
  width:100%;
  background:var(--asphalt-2);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:4px;
  padding:11px 13px;
  color:var(--paper);
  font-family:'Inter',sans-serif;
  font-size:14.5px;
  height:46px;
}
.quick-search-bar select:focus,
.quick-search-bar .qsb-postcode:focus{outline:none; border-color:var(--amber);}
.uk-plate{
  display:flex;
  align-items:stretch;
  border-radius:4px;
  overflow:hidden;
  border:2px solid #16140F;
  height:46px;
}
.uk-plate-badge{
  background:#003399;
  color:#fff;
  font-weight:700;
  font-size:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  font-family:'Inter',sans-serif;
  letter-spacing:0.01em;
  flex-shrink:0;
}
.uk-plate-input{
  background:#F7C600;
  color:#111;
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:19px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-align:center;
  border:none;
  padding:0 12px;
  flex:1;
  min-width:0;
}
.uk-plate-input::placeholder{color:rgba(17,17,17,0.4);}
.uk-plate-input:focus{outline:2px solid var(--amber); outline-offset:-2px;}
.qsb-helper{
  grid-column:1 / -1;
  font-size:12.5px;
  color:var(--paper-dim);
  opacity:0.85;
  margin-top:-4px;
}

