@font-face{font-family:"Archivo Black";src:url(fonts/archivo-black-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Playfair";src:url(fonts/playfair-display-latin-500-italic.woff2) format("woff2");font-style:italic;font-weight:500;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/public-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url(fonts/public-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{--red:#d7262e;--redd:#a91c22;--asphalt:#16181c;--tar:#22252b;--white:#fbfaf8;--fog:#eceae6;--ink:#1c1e22;--muted:#626670;--line:#f2c230;
--d:"Archivo Black",Impact,sans-serif;--it:"Playfair",Georgia,serif;--b:"Public Sans",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--white);color:var(--ink);font:400 17px/1.6 var(--b);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--d);font-weight:400;line-height:.98;text-transform:uppercase;letter-spacing:-.01em}
h2{font-size:clamp(2.1rem,6vw,4.2rem);margin-bottom:1.2rem}
em{font-family:var(--it);font-style:italic;font-weight:500;text-transform:none;color:var(--red);letter-spacing:0}
.eyebrow{font:700 .76rem var(--b);letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:.9rem}
section{padding:clamp(4.5rem,10vw,8rem) clamp(1.2rem,5vw,4rem)}

.bar{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1.2rem,5vw,4rem);color:var(--white);transition:background .3s,padding .3s}
.bar.solid{background:var(--asphalt);padding-block:.65rem}
.logo{font-family:var(--d);font-size:1.4rem;text-transform:uppercase;text-decoration:none;display:flex;align-items:baseline;gap:.4rem}
.logo span{font-family:var(--it);font-style:italic;text-transform:none;font-size:1.05rem;color:var(--red)}
nav{display:flex;gap:1.5rem;align-items:center}
nav a{text-decoration:none;font-weight:700;font-size:.92rem}
nav a:hover{color:var(--red)}
.nav-cta{background:var(--red);padding:.55rem 1.1rem;border-radius:6px}
.nav-cta:hover{background:var(--redd);color:var(--white)!important}
@media(max-width:720px){nav a:not(.nav-cta){display:none}}

/* hero */
.hero{position:relative;min-height:100svh;background:var(--asphalt);color:var(--white);display:grid;align-content:center;gap:2rem;overflow:hidden;padding-top:7rem;padding-bottom:7rem}
@media(min-width:960px){.hero{grid-template-columns:1fr 1.15fr;align-items:center}}
.kicker{font:700 .78rem var(--b);letter-spacing:.18em;text-transform:uppercase;color:#b9bcc4;margin-bottom:1rem}
.hero h1{font-size:clamp(2.5rem,7.4vw,5.6rem)}
.hero h1 .red{color:var(--red)}
.hero h1 em{display:block;color:var(--white);font-size:.72em;margin-top:.2em}
.lead{max-width:40ch;margin:1.2rem 0 2rem;color:#c9ccd2}
.btns{display:flex;flex-wrap:wrap;gap:.8rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.5rem;border-radius:6px;font-weight:700;text-decoration:none;border:0;cursor:pointer;font-size:1rem;font-family:var(--b);transition:background .25s,color .25s,transform .2s}
.btn.red{background:var(--red);color:#fff}
.btn.red:hover{background:var(--redd)}
.btn.line{border:2px solid rgba(251,250,248,.4);color:var(--white)}
.btn.line:hover{background:var(--white);color:var(--asphalt)}
.btn:active{transform:scale(.97)}
.btn.full{width:100%}
.hero-truck{position:relative;z-index:1}
.hero-truck img{width:100%;border-radius:10px;box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.js .hero-truck{animation:driveIn 1.4s cubic-bezier(.2,.75,.15,1) both}
@keyframes driveIn{from{transform:translateX(70%);opacity:0}to{transform:none;opacity:1}}
.js .hero-text>*{opacity:0;transform:translateY(24px);animation:up .8s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-text>*:nth-child(2){animation-delay:.1s}.js .hero-text>*:nth-child(3){animation-delay:.22s}.js .hero-text>*:nth-child(4){animation-delay:.34s}
@keyframes up{to{opacity:1;transform:none}}
.road{position:absolute;left:0;right:0;bottom:2.2rem;height:6px;overflow:hidden}
.road i{position:absolute;inset:0;width:200%;background:repeating-linear-gradient(90deg,var(--line) 0 60px,transparent 60px 110px);animation:road 1.6s linear infinite}
@keyframes road{to{transform:translateX(-110px)}}

/* ticker */
.ticker{background:var(--red);color:#fff;padding:.9rem 0;overflow:hidden}
.tick-in{display:flex;width:max-content;animation:tick 26s linear infinite}
.tick-in span{font-family:var(--d);text-transform:uppercase;font-size:1.05rem;padding:0 1.4rem;white-space:nowrap}
.tick-in span::after{content:"→";margin-left:2.8rem;opacity:.6}
@keyframes tick{to{transform:translateX(-50%)}}

/* services */
.s-head,.s-grid{max-width:1200px;margin-inline:auto}
.s-head{margin-bottom:2.4rem}
.s-grid{display:grid;gap:1px;background:#d9d6d0;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));border:1px solid #d9d6d0}
.s-card{background:var(--white);padding:2rem 1.6rem;transition:background .3s,color .3s}
.s-card:hover{background:var(--asphalt);color:var(--white)}
.s-card:hover p{color:#c9ccd2}
.s-num{display:block;font-family:var(--it);font-style:italic;color:var(--red);font-size:1.4rem;margin-bottom:1.2rem}
.s-card h3{font-size:1.35rem;margin-bottom:.6rem}
.s-card p{color:var(--muted);transition:color .3s}

/* routes */
.routes{background:var(--fog);display:grid;gap:2.5rem;align-items:center}
@media(min-width:900px){.routes{grid-template-columns:1fr 1fr;padding-inline:max(4rem,calc((100vw - 1200px)/2))}}
.lit{font-family:var(--it);font-style:italic;font-size:clamp(1.3rem,2.8vw,1.8rem);line-height:1.35;margin-bottom:1.6rem}
.lit .w{opacity:.2;transition:opacity .35s}.lit .w.on{opacity:1}
.r-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.r-tabs button{font:700 .92rem var(--b);border:2px solid var(--asphalt);background:transparent;color:var(--asphalt);padding:.65rem 1rem;border-radius:6px;cursor:pointer;transition:background .25s,color .25s}
.r-tabs button[aria-selected=true]{background:var(--asphalt);color:#fff}
.r-note{min-height:3.2em;color:var(--muted)}
.r-map{background:var(--asphalt);border-radius:14px;padding:1.5rem}
.r-map svg{width:100%;height:auto;max-height:420px;display:block}
.r-line{fill:none;stroke:#3a3e46;stroke-width:5;stroke-linecap:round;stroke-dasharray:8 10}
.r-line.on{stroke:var(--red);stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.2s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.hub{fill:var(--red);stroke:#fff;stroke-width:3}
.pt{fill:#3a3e46;transition:fill .3s}.pt.on{fill:var(--line)}
.lbl{font:700 15px var(--b);fill:#7d828c;transition:fill .3s}.lbl.on,.lbl.strong{fill:#fff}

/* fleet */
.f-head,.specs{max-width:1200px;margin-inline:auto}
.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem;margin:2rem auto 3rem}
@media(min-width:860px){.specs{grid-template-columns:repeat(4,1fr)}}
.spec b{display:block;font-family:var(--d);font-weight:400;font-size:clamp(1.8rem,4.6vw,3rem);line-height:1;color:var(--red);padding-bottom:.6rem;border-bottom:3px solid var(--asphalt);margin-bottom:.6rem}
.spec span{color:var(--muted);font-size:.92rem}
.f-strip{display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr);max-width:1200px;margin:0 auto}
@media(min-width:860px){.f-strip{grid-template-columns:repeat(4,1fr)}}
.f-strip figure{overflow:hidden;border-radius:8px;aspect-ratio:4/3;background:var(--fog)}
.f-strip img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.f-strip figure:hover img{transform:scale(1.06) translateX(-2%)}

/* order */
.order{background:var(--asphalt);color:var(--white);display:grid;gap:2.5rem}
@media(min-width:900px){.order{grid-template-columns:1fr 1fr;padding-inline:max(4rem,calc((100vw - 1200px)/2))}}
.order h2{color:var(--white)}
.o-text>p{color:#c9ccd2}
.o-phone{display:block;font-family:var(--d);font-size:clamp(2.2rem,7vw,3.4rem);color:var(--red);text-decoration:none;margin-top:1.4rem}
.o-mail{font-weight:700}
.o-form{background:var(--tar);border-radius:12px;padding:clamp(1.3rem,4vw,2rem);display:grid;gap:1rem}
.o-form label{display:grid;gap:.35rem;font-weight:700;font-size:.9rem;color:#dfe1e5}
.o-form input,.o-form textarea{font:400 1rem var(--b);padding:.8rem .9rem;border-radius:6px;border:2px solid #3a3e46;background:var(--asphalt);color:var(--white);transition:border-color .2s}
.o-form input:focus,.o-form textarea:focus{outline:0;border-color:var(--red)}

/* contact */
.contact{padding-block:3rem;background:var(--fog)}
.c-row{max-width:1200px;margin:0 auto;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.c-label{font:700 .74rem var(--b);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:.3rem}
footer{background:var(--asphalt);color:#8c919b;text-align:center;font-size:.85rem;padding:2rem 1.2rem 6.5rem}

.dock{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:30;display:flex;gap:.3rem;padding:.3rem;background:var(--asphalt);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.4);transform:translate(-50%,170%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.dock.show{transform:translate(-50%,0)}
.dock a{min-height:48px;display:flex;align-items:center;padding:0 1.3rem;border-radius:7px;font-weight:700;text-decoration:none;color:#fff;white-space:nowrap}
.dock a:first-child{background:var(--red)}

.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal,.js .hero-text>*,.js .hero-truck{opacity:1;transform:none}.r-line.on{stroke-dashoffset:0}html{scroll-behavior:auto}}
