:root{
  --black:#101417;
  --carbon:#151b1f;
  --panel:#20282d;
  --slate:#303a40;
  --road:#465159;
  --steel:#69747a;
  --aluminium:#aab1b2;
  --silver:#d2d7d5;
  --white:#f3f5f3;
  --teal:#4fa7a2;
  --mint:#7ac8b8;
  --amber:#d1a85b;
  --copper:#b9795e;
  --ice:#dce8e7;
  --max:1240px;
}

*{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  background:var(--black);
  color:var(--white);
  font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}

a{
  color:var(--ice);
  text-decoration:none;
}

a:hover{color:var(--mint)}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--amber);
  outline-offset:3px;
}

h1,h2,h3,p{margin-top:0}

h1,h2,h3{
  line-height:1.1;
  overflow-wrap:anywhere;
}

h1{
  max-width:920px;
  margin-bottom:24px;
  font-size:clamp(2.7rem,6vw,5.8rem);
  letter-spacing:-.055em;
}

h2{
  font-size:clamp(1.8rem,3vw,3rem);
  letter-spacing:-.025em;
}

h3{
  font-size:1.7rem;
  letter-spacing:-.025em;
}

.shell{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding-right:24px;
  padding-left:24px;
}

.site-header{
  position:relative;
  z-index:10;
  display:flex;
  align-items:center;
  gap:28px;
  min-height:64px;
  padding:12px max(24px,calc((100% - var(--max))/2));
  border-bottom:1px solid #ffffff15;
  background:var(--carbon);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:var(--white);
  font-weight:800;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}

.brand svg{
  flex:none;
  width:32px;
  height:24px;
  fill:var(--teal);
}

.brand circle{fill:var(--black)}

.main-nav{
  display:flex;
  flex:1 1 auto;
  justify-content:flex-end;
  gap:clamp(12px,2vw,24px);
  min-width:0;
}

.main-nav a{
  color:var(--silver);
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

.button{
  display:inline-block;
  border:1px solid var(--teal);
  background:var(--teal);
  color:var(--black);
  padding:12px 18px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.button:hover{
  border-color:var(--mint);
  background:var(--mint);
  color:var(--black);
}

.button-small{
  flex:none;
  padding:8px 12px;
  white-space:nowrap;
}

.menu-toggle{
  display:none;
  border:1px solid var(--steel);
  background:none;
  color:var(--white);
  padding:8px 12px;
  font:inherit;
}

.hero{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  align-items:center;
  gap:clamp(32px,5vw,72px);
  padding-top:clamp(56px,8vw,96px);
  padding-bottom:clamp(64px,9vw,112px);
}

.hero-copy{min-width:0}

.lead{
  max-width:680px;
  color:var(--silver);
  font-size:clamp(1.05rem,1.8vw,1.18rem);
}

.actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
  margin-top:32px;
}

.text-link{
  color:var(--mint);
  font-weight:800;
}

.hero-media,
.page-hero>img{
  display:block;
  width:100%;
  aspect-ratio:3/2;
  margin:0;
  border:1px solid #ffffff20;
  object-fit:cover;
}

.section{
  padding-top:clamp(56px,7vw,88px);
  padding-bottom:clamp(64px,8vw,96px);
}

.section-dark{
  width:100%;
  max-width:none;
  padding-right:max(24px,calc((100% - 1192px)/2));
  padding-left:max(24px,calc((100% - 1192px)/2));
  background:var(--carbon);
}

.section-heading{
  max-width:780px;
  margin-bottom:40px;
}

.fleet-list{
  display:grid;
  gap:24px;
}

.fleet-card{
  display:grid;
  grid-template-columns:minmax(280px,45%) minmax(0,55%);
  min-width:0;
  overflow:hidden;
  border:1px solid #ffffff1c;
  background:linear-gradient(110deg,#20282d,#1b2327);
  box-shadow:0 14px 35px #0004;
}

.fleet-card img{
  display:block;
  width:100%;
  height:100%;
  min-height:280px;
  object-fit:cover;
}

.card-content{
  min-width:0;
  padding:clamp(24px,4vw,36px);
}

.card-content p:not(.service-number){
  max-width:640px;
  color:var(--silver);
}

.tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:24px 0;
}

.tags span{
  border:1px solid #ffffff28;
  color:var(--aluminium);
  padding:4px 8px;
  font-size:.68rem;
  letter-spacing:.08em;
}

.routine-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:24px;
}

.routine-grid div{
  min-width:0;
  padding-top:16px;
  border-top:2px solid var(--teal);
}

.routine-grid b{
  color:var(--mint);
  font-size:.78rem;
}

.routine-grid p{color:var(--silver)}

.indicator-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px 24px;
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid #ffffff18;
  color:var(--aluminium);
  font-size:.72rem;
  letter-spacing:.08em;
}

.indicator-row strong{
  margin-left:8px;
  color:var(--amber);
}

.page-hero{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  align-items:center;
  gap:clamp(32px,5vw,64px);
  padding-top:clamp(48px,7vw,80px);
  padding-bottom:clamp(48px,7vw,80px);
}

.page-hero>div{min-width:0}

.content-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  align-items:start;
  gap:clamp(32px,6vw,72px);
  padding-bottom:clamp(72px,9vw,112px);
}

.prose{
  max-width:780px;
  min-width:0;
}

.prose h2{
  margin-top:40px;
  font-size:1.7rem;
}

.prose p,
.prose li{color:var(--silver)}

.prose ul{padding-left:22px}

.side-panel,
.location-card{
  align-self:start;
  padding:24px;
  border:1px solid #ffffff20;
  background:var(--panel);
}

.status-list{
  display:grid;
  gap:12px;
  margin-top:24px;
}

.status-list span{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top:10px;
  border-top:1px solid #ffffff1d;
  color:var(--silver);
  font-size:.82rem;
}

.status-list b{
  flex:none;
  color:var(--mint);
  font-size:.68rem;
}

.legal-page{
  max-width:900px;
  padding-top:clamp(48px,7vw,80px);
  padding-bottom:clamp(72px,9vw,112px);
}

.legal-page h2{
  margin-top:40px;
  font-size:1.65rem;
}

.legal-page p{color:var(--silver)}

.legal-meta{color:var(--amber)!important}

.table-wrap{overflow-x:auto}

.legal-page table{
  width:100%;
  min-width:560px;
  border-collapse:collapse;
}

.legal-page th,
.legal-page td{
  padding:12px;
  border:1px solid #ffffff25;
  text-align:left;
}

.legal-page th{color:var(--mint)}

.contact-head{
  padding-top:clamp(48px,7vw,80px);
  padding-bottom:40px;
}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:clamp(32px,6vw,72px);
  padding-bottom:clamp(72px,9vw,112px);
}

.contact-form{
  padding:clamp(24px,4vw,36px);
  border:1px solid #ffffff20;
  background:var(--panel);
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}

label{
  display:grid;
  gap:8px;
  color:var(--silver);
  font-weight:700;
}

input,
select,
textarea{
  width:100%;
  border:1px solid var(--steel);
  background:var(--carbon);
  color:var(--white);
  padding:12px;
  font:inherit;
}

textarea{resize:vertical}

.contact-form>label{margin-top:24px}

.contact-form small{
  min-height:1.3em;
  color:var(--copper);
}

.is-invalid{border-color:var(--copper)}

.form-state{
  margin:20px 0 0;
  color:var(--mint)!important;
}

.error-state{color:var(--copper)!important}

.map-block{
  position:relative;
  height:210px;
  margin:24px 0;
  padding:16px;
  border:1px solid #ffffff20;
  background:var(--slate);
  color:var(--aluminium);
  font-size:.72rem;
}

.map-block i{
  position:absolute;
  top:48%;
  left:53%;
  width:34px;
  height:34px;
  border:5px solid var(--amber);
  border-radius:50%;
  box-shadow:0 0 0 12px #d1a85b33;
}

.site-footer{
  padding:48px max(24px,calc((100% - 1192px)/2)) 24px;
  border-top:1px solid #ffffff18;
  background:#0c1012;
  color:var(--silver);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1.3fr 1fr 1fr;
  gap:40px;
}

.footer-grid a:not(.brand){
  display:block;
  margin:5px 0;
  color:var(--silver);
  font-size:.9rem;
}

.footer-brand{margin-bottom:16px}

.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:24px;
  margin-top:40px;
  padding-top:18px;
  border-top:1px solid #ffffff18;
  color:var(--steel);
  font-size:.78rem;
}

.cookie-banner{
  position:fixed;
  right:16px;
  bottom:16px;
  left:16px;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px 20px;
  border:1px solid #ffffff30;
  background:var(--panel);
  box-shadow:0 10px 40px #0008;
}

.cookie-banner p{
  margin:4px 0 0;
  color:var(--silver);
  font-size:.85rem;
}

.cookie-actions{
  display:flex;
  flex:none;
  flex-wrap:wrap;
  gap:8px;
}

.cookie-actions button{
  border:1px solid var(--steel);
  background:var(--slate);
  color:var(--white);
  padding:9px 12px;
  font-weight:700;
}

.cookie-actions button:first-child{
  background:var(--teal);
  color:var(--black);
}

[hidden]{display:none!important}

@media(max-width:1000px){
  .site-header{
    flex-wrap:wrap;
    gap:12px;
  }

  .menu-toggle{
    display:block;
    margin-left:auto;
  }

  .site-header>.button-small{display:none}

  .main-nav{
    display:none;
    order:5;
    width:100%;
    flex-direction:column;
    justify-content:flex-start;
    gap:0;
    padding:16px 0;
  }

  .main-nav.is-open{display:flex}

  .main-nav a{
    padding:9px 0;
    border-top:1px solid #ffffff12;
  }

  .main-nav a:last-child{border-bottom:1px solid #ffffff12}

  .routine-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:800px){
  .hero,
  .page-hero{
    grid-template-columns:1fr;
  }

  .hero-media,
  .page-hero>img{
    max-width:720px;
  }

  .content-layout,
  .contact-grid{
    grid-template-columns:1fr;
  }

  .prose{max-width:none}

  .side-panel,
  .location-card{
    width:100%;
    max-width:720px;
  }

  .fleet-card{
    grid-template-columns:minmax(220px,42%) minmax(0,58%);
  }
}

@media(max-width:620px){
  .shell{
    padding-right:20px;
    padding-left:20px;
  }

  .hero{
    gap:32px;
    padding-top:48px;
  }

  .page-hero{gap:32px}

  .fleet-card{grid-template-columns:1fr}

  .fleet-card img{
    height:auto;
    aspect-ratio:3/2;
    min-height:0;
  }

  .card-content{padding:24px}

  .routine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

  .form-grid{grid-template-columns:1fr}

  .cookie-banner{
    display:block;
    right:12px;
    bottom:12px;
    left:12px;
  }

  .cookie-actions{margin-top:12px}
}

@media(max-width:430px){
  h1{font-size:2.45rem}

  .actions{
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
  }

  .routine-grid{grid-template-columns:1fr}

  .footer-grid{grid-template-columns:1fr}

  .footer-bottom{display:block}

  .footer-bottom span{
    display:block;
    margin-top:8px;
  }

  .cookie-banner{
    right:8px;
    bottom:8px;
    left:8px;
    padding:14px;
  }

  .cookie-actions button{
    padding:8px;
    font-size:.72rem;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}