:root{
  --paper:#FAF7F2;
  --ink:#232A33;
  --sky:#2E6FA3;
  --sky-dark:#26608F;
  --pale:#D8E7F2;
  --cloud:#EDF3F8;
  --line:#D8E7F2;
  --field:#C9DCEC;
  --white:#FFFFFF;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background-color:#FAF7F2;
  color:#232A33;
  font-family:"Segoe UI", Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size:16px;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }

a{ color:#2E6FA3; }

.container{ max-width:1180px; margin:0 auto; padding:0 24px; }

.fade-up{ opacity:0; transform:translateY(18px); transition:opacity 0.6s ease, transform 0.6s ease; }
.fade-up.visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .fade-up{ opacity:1; transform:none; transition:none; }
}

/* ============ KEY GLYPH ============ */
.key-glyph{
  position:relative;
  display:inline-block;
  width:16px;
  height:24px;
  flex:none;
  vertical-align:middle;
}
.key-glyph i{
  position:absolute;
  display:block;
  font-style:normal;
}
.key-glyph .kg-head{
  top:0; left:2px;
  width:10px; height:10px;
  border-radius:50%;
  border:2px solid #2E6FA3;
  box-sizing:border-box;
  background:transparent;
}
.key-glyph .kg-sh{
  top:9px; left:5px;
  width:4px; height:13px;
  border-left:2px solid #2E6FA3;
  border-right:2px solid #2E6FA3;
  border-bottom:2px solid #2E6FA3;
  box-sizing:border-box;
}
.key-glyph .kg-t{
  top:12px; left:10px;
  width:6px; height:2px;
  background:#2E6FA3;
  box-shadow:0 4px 0 #2E6FA3;
}
.key-glyph.is-solid .kg-head{ background:#2E6FA3; }
.key-glyph.is-solid .kg-sh{ background:#2E6FA3; }
.key-glyph.is-solid .kg-t{ background:#2E6FA3; box-shadow:0 4px 0 #2E6FA3; }

/* ============ KEY NAV ============ */
.key-nav{
  position:sticky;
  top:0;
  z-index:120;
  background:#FAF7F2;
  border-bottom:2px solid #2E6FA3;
}
.key-nav.is-scrolled{ box-shadow:0 6px 18px rgba(35,42,51,0.08); }
.nav-inner{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}
.brand-mark{
  width:16px;
  height:16px;
  background:#2E6FA3;
  flex:none;
}
.brand-text{ display:block; }
.brand-name{
  display:block;
  font-size:18px;
  font-weight:800;
  letter-spacing:3px;
  color:#232A33;
  line-height:1.1;
}
.brand-cap{
  display:block;
  font-size:10px;
  letter-spacing:2px;
  color:#2E6FA3;
  text-transform:uppercase;
  font-weight:700;
  margin-top:3px;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:20px;
}
.nav-link{
  display:flex;
  align-items:center;
  gap:7px;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:2px;
  font-weight:700;
  color:#232A33;
  text-decoration:none;
  padding:6px 0;
}
.nav-link:hover{ color:#2E6FA3; }
.nav-link.is-active{ color:#2E6FA3; }
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:42px;
  height:42px;
  padding:11px;
  background:#2E6FA3;
  border:none;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  height:2px;
  background:#FFFFFF;
  width:100%;
  transition:transform 0.2s ease, opacity 0.2s ease;
}
.nav-toggle.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2){ opacity:0; }
.nav-toggle.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============ BUTTONS ============ */
.btn{
  display:inline-block;
  padding:14px 28px;
  font-weight:800;
  text-decoration:none;
  font-size:15px;
  letter-spacing:1px;
  text-transform:uppercase;
  border:2px solid transparent;
  cursor:pointer;
}
.btn-primary{ background:#2E6FA3; color:#FFFFFF; }
.btn-primary:hover{ background:#26608F; }
.btn-outline{ border-color:#2E6FA3; color:#2E6FA3; }
.btn-outline:hover{ background:#2E6FA3; color:#FFFFFF; }
.btn-white{ background:#FFFFFF; color:#2E6FA3; }
.btn-white:hover{ background:#EDF3F8; }

/* ============ HERO ============ */
.fleet-hero{
  background:#FAF7F2;
  padding:72px 0 30px;
}
.hero-content{ max-width:880px; }
.eyebrow-chip{
  display:inline-block;
  background:#2E6FA3;
  color:#FFFFFF;
  padding:8px 16px;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:800;
}
.hero-content h1{
  font-size:56px;
  line-height:1.06;
  font-weight:900;
  color:#232A33;
  margin:26px 0 22px;
}
.hero-sub{
  font-size:18px;
  line-height:1.75;
  color:#232A33;
  max-width:760px;
  margin-bottom:32px;
}
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; }

/* ============ FLEET GRAPHIC ============ */
.fleet-graphic{ margin-top:64px; }
.fleet-track{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-bottom:2px solid #2E6FA3;
  padding-bottom:0;
}
.fleet-item{ display:flex; flex-direction:column; align-items:center; }
.fleet-truck{ position:relative; width:120px; height:52px; }
.truck-body{
  position:absolute;
  left:0;
  bottom:8px;
  width:120px;
  height:24px;
  border:2px solid #2E6FA3;
  background:#D8E7F2;
  box-sizing:border-box;
}
.truck-cab{
  position:absolute;
  right:2px;
  bottom:8px;
  width:32px;
  height:34px;
  border:2px solid #2E6FA3;
  background:#D8E7F2;
  box-sizing:border-box;
}
.truck-wheel{
  position:absolute;
  bottom:0;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#232A33;
}
.fleet-truck .wheel-left{ left:22px; }
.fleet-truck .wheel-right{ right:22px; }
.fleet-truck.is-solid .truck-body,
.fleet-truck.is-solid .truck-cab{ background:#2E6FA3; }
.fleet-cap{
  margin-top:14px;
  font-size:12px;
  letter-spacing:3px;
  text-transform:uppercase;
  font-weight:800;
  color:#2E6FA3;
}

/* ============ SECTION HEADS ============ */
.section-head{ margin-bottom:34px; }
.section-head h2{
  font-size:34px;
  font-weight:900;
  color:#232A33;
  margin-bottom:12px;
}
.section-head p{
  max-width:800px;
  color:#232A33;
}

/* ============ FLEET ROWS ============ */
.fleet-rows{ background:#FAF7F2; padding:84px 0 40px; }
.fleet-row{
  display:flex;
  align-items:center;
  gap:22px;
  padding:28px 0;
  border-top:1px solid #D8E7F2;
}
.fleet-row:last-of-type{ border-bottom:1px solid #D8E7F2; }
.fleet-row-text{ flex:1; }
.fleet-row-text h3{
  font-size:22px;
  color:#232A33;
  margin-bottom:6px;
}
.fleet-row-text p{ color:#232A33; line-height:1.75; }
.row-chip{
  flex:none;
  background:#2E6FA3;
  color:#FFFFFF;
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  font-weight:800;
  padding:8px 14px;
}
.fleet-note{
  margin-top:30px;
  color:#232A33;
  max-width:820px;
}

/* ============ RATE STRIP ============ */
.rate-strip{ background:#EDF3F8; padding:84px 0; }
.rate-cards{ display:flex; gap:22px; }
.rate-card{
  flex:1;
  border:1px solid #2E6FA3;
  background:#FAF7F2;
  padding:24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.rate-card-text h3{
  font-size:20px;
  font-weight:900;
  color:#232A33;
  margin-bottom:4px;
}
.rate-card-text p{
  margin:0;
  font-size:14px;
  color:#232A33;
}
.rate-chip{
  flex:none;
  background:#2E6FA3;
  color:#FFFFFF;
  font-weight:800;
  padding:9px 14px;
  font-size:14px;
}
.rate-note{
  margin-top:28px;
  color:#232A33;
  max-width:820px;
}

/* ============ CARE ROWS ============ */
.care-rows{ background:#FAF7F2; padding:84px 0 40px; }
.care-plus{ position:relative; flex:none; width:20px; height:20px; }
.care-plus::before,
.care-plus::after{ content:""; position:absolute; background:#2E6FA3; }
.care-plus::before{ left:3px; top:9px; width:14px; height:2px; }
.care-plus::after{ top:3px; left:9px; width:2px; height:14px; }
.care-row{
  display:flex;
  align-items:center;
  gap:22px;
  padding:24px 0;
  border-top:1px solid #D8E7F2;
}
.care-row:last-of-type{ border-bottom:1px solid #D8E7F2; }
.care-row-text{ flex:1; }
.care-row-text h3{
  font-size:20px;
  color:#232A33;
  margin-bottom:6px;
}
.care-row-text p{ color:#232A33; }
.care-note{
  margin-top:30px;
  color:#232A33;
  max-width:820px;
}

/* ============ CTA BAND ============ */
.cta-band{
  background:#2E6FA3;
  padding:70px 0;
  text-align:center;
}
.cta-band h2{
  color:#FFFFFF;
  font-size:34px;
  font-weight:900;
  margin-bottom:12px;
}
.cta-band p{
  color:#FFFFFF;
  max-width:680px;
  margin:0 auto 28px;
}
.cta-band .btn{ margin-top:4px; }

/* ============ LOT FOOTER ============ */
.lot-footer{
  background:#FAF7F2;
  border-top:2px solid #2E6FA3;
  padding:44px 0 30px;
}
.footer-row-1{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  flex-wrap:wrap;
}
.footer-brand{ display:flex; align-items:center; gap:12px; }
.footer-links{ display:flex; gap:22px; }
.footer-links a{
  color:#232A33;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
}
.footer-links a:hover{ color:#2E6FA3; text-decoration:underline; }
.footer-contact{ font-size:14px; color:#232A33; font-weight:600; }
.footer-row-2{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px;
  border-top:1px solid #D8E7F2;
  margin-top:30px;
  padding-top:20px;
}
.footer-row-2 .legal-key{ justify-self:start; }
.footer-row-2 p{
  justify-self:center;
  text-align:center;
  margin:0;
  font-size:13px;
  color:#232A33;
  line-height:1.6;
}
.footer-row-2 p a{ color:#232A33; text-decoration:underline; }
.footer-row-2 p a:hover{ color:#2E6FA3; }

/* ============ SECONDARY PAGE HEAD ============ */
.page-head{
  background:#FAF7F2;
  padding:60px 0 46px;
  border-bottom:1px solid #D8E7F2;
}
.page-head h1{
  font-size:42px;
  font-weight:900;
  color:#232A33;
  margin-top:20px;
  line-height:1.12;
}
.page-head .page-intro{
  max-width:780px;
  color:#232A33;
  font-size:18px;
  margin-top:16px;
}

/* ============ SERVICES PAGE ============ */
.services-section{ background:#FAF7F2; padding:84px 0 40px; }
.service-row{
  display:flex;
  align-items:flex-start;
  gap:22px;
  padding:30px 0;
  border-top:1px solid #D8E7F2;
}
.service-row:last-of-type{ border-bottom:1px solid #D8E7F2; }
.service-row .key-glyph{ margin-top:6px; }
.service-text{ flex:1; }
.service-text h2{
  font-size:24px;
  color:#232A33;
  margin-bottom:8px;
}
.service-text p{
  color:#232A33;
  line-height:1.75;
  margin-bottom:10px;
}
.process-band{ background:#EDF3F8; padding:84px 0; }
.process-band h2{
  font-size:34px;
  font-weight:900;
  color:#232A33;
  margin-bottom:10px;
}
.process-band > .container > p{ max-width:800px; color:#232A33; margin-bottom:30px; }
.process-list{ border-top:1px solid #D8E7F2; }
.process-step{
  display:flex;
  gap:22px;
  align-items:baseline;
  padding:22px 0;
  border-bottom:1px solid #D8E7F2;
}
.step-num{
  font-weight:900;
  color:#2E6FA3;
  font-size:22px;
  width:56px;
  flex:none;
}
.process-step h3{ font-size:20px; color:#232A33; margin-bottom:4px; }
.process-step p{ color:#232A33; }
.counters{ background:#FAF7F2; padding:56px 0; }
.counters-grid{ display:flex; gap:24px; }
.counter{
  flex:1;
  border-top:3px solid #2E6FA3;
  padding-top:16px;
}
.counter-num{ font-size:42px; font-weight:900; color:#2E6FA3; line-height:1.1; }
.counter-label{
  color:#232A33;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:700;
  margin-top:6px;
}

/* ============ CONTACT PAGE ============ */
.contact-layout{
  display:flex;
  gap:40px;
  align-items:flex-start;
  padding:56px 0 48px;
}
.contact-form-wrap{ flex:1.3; }
.contact-form-wrap h2{
  font-size:26px;
  font-weight:900;
  color:#232A33;
  margin-bottom:8px;
}
.contact-form-wrap > p{ color:#232A33; margin-bottom:22px; max-width:620px; }
.form-field{ margin-bottom:18px; }
.form-field label{
  display:block;
  font-weight:800;
  margin-bottom:6px;
  color:#232A33;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:1px;
}
.form-field input,
.form-field textarea{
  width:100%;
  border:2px solid #C9DCEC;
  background:#FFFFFF;
  color:#232A33;
  padding:12px 14px;
  font-size:16px;
  font-family:inherit;
  border-radius:0;
}
.form-field input:focus,
.form-field textarea:focus{ outline:none; border-color:#2E6FA3; }
.form-field textarea{ min-height:150px; resize:vertical; }
.form-submit{
  background:#2E6FA3;
  color:#FFFFFF;
  border:none;
  padding:14px 30px;
  font-size:15px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1px;
  cursor:pointer;
}
.form-submit:hover{ background:#26608F; }
.form-status{
  display:none;
  margin-top:16px;
  padding:14px 18px;
  background:#D8E7F2;
  color:#232A33;
  border-left:4px solid #2E6FA3;
}
.contact-panel{
  flex:1;
  background:#D8E7F2;
  padding:30px;
}
.contact-panel h2{
  font-size:22px;
  font-weight:900;
  color:#232A33;
  margin-bottom:18px;
}
.cp-row{ margin-bottom:18px; }
.cp-label{
  display:block;
  font-weight:800;
  color:#2E6FA3;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:3px;
}
.cp-row p{ color:#232A33; }
.cp-row a{ color:#232A33; text-decoration:underline; }
.cp-row a:hover{ color:#26608F; }
.faq-block{ background:#EDF3F8; padding:64px 0 72px; }
.faq-block h2{
  font-size:30px;
  font-weight:900;
  color:#232A33;
  margin-bottom:22px;
}
.faq-item{
  border:1px solid #D8E7F2;
  margin-bottom:10px;
  background:#FAF7F2;
}
.faq-q{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:none;
  border:none;
  padding:18px 20px;
  text-align:left;
  font-weight:800;
  font-size:16px;
  color:#232A33;
  cursor:pointer;
}
.faq-q:hover{ color:#2E6FA3; }
.faq-arrow{
  color:#2E6FA3;
  font-weight:900;
  font-size:20px;
  transition:transform 0.2s ease;
}
.faq-item.is-open .faq-arrow{ transform:rotate(45deg); }
.faq-a{ display:none; padding:0 20px 18px; color:#232A33; }
.faq-item.is-open .faq-a{ display:block; }

/* ============ RESPONSIVE ============ */
@media (max-width: 960px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#FAF7F2;
    border-bottom:2px solid #2E6FA3;
    flex-direction:column;
    align-items:flex-start;
    padding:18px 24px 24px;
    gap:14px;
    display:none;
  }
  .nav-links.is-open{ display:flex; }
  .nav-link{ padding:8px 0; }
  .hero-content h1{ font-size:44px; }
  .rate-cards{ flex-direction:column; }
  .contact-layout{ flex-direction:column; }
  .counters-grid{ flex-direction:column; }
  .footer-row-2{ grid-template-columns:1fr; }
  .footer-row-2 .legal-key{ display:none; }
  .footer-row-2 p{ justify-self:center; }
}

@media (max-width: 640px){
  .hero-content h1{ font-size:36px; }
  .fleet-track{ gap:12px; }
  .fleet-truck{ width:84px; }
  .truck-body{ width:84px; }
  .truck-cab{ width:26px; height:30px; }
  .fleet-row{ flex-direction:column; align-items:flex-start; gap:12px; }
  .care-row{ flex-direction:column; align-items:flex-start; gap:12px; }
  .service-row{ flex-direction:column; align-items:flex-start; gap:12px; }
  .section-head h2{ font-size:28px; }
  .cta-band h2{ font-size:28px; }
  .page-head h1{ font-size:34px; }
  .brand-cap{ letter-spacing:1px; font-size:9px; }
  .brand-name{ font-size:16px; letter-spacing:2px; }
}
