:root {
  --bg: #f6f8fb;
  --surface: #ffffff;
  --text: #0f172a;
  --muted: #64748b;
  --line: rgba(15, 23, 42, 0.08);
  --blue: #2563eb;
  --navy: #0f172a;
  --gold: #c79a3d;
  --shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
  --max: 1180px;
}
* { box-sizing: border-box; }
body { margin:0; background: radial-gradient(circle at top right, rgba(37,99,235,.08), transparent 20%), linear-gradient(180deg, #fbfcfe 0%, #f3f6fb 100%); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
a { color: inherit; }
.container { width: min(var(--max), calc(100% - 2rem)); margin: 0 auto; }
.site-nav { padding:0; position: sticky; top:0; z-index: 40; background: rgba(255,255,255,.9); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(15,23,42,.06); }
.nav-inner { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.25rem 0; }
.brand { display:flex; align-items:center; text-decoration:none; color:inherit; }
.logo-wrap { display:block; }

.logo-wrap svg, .footer-brand svg, .brand-panel-inner svg, .logo-card svg,
.logo-wrap img, .footer-brand img, .brand-panel-inner img, .logo-card img { display:block; width:100%; height:auto; }
.site-nav .logo-wrap img { height:64px; width:auto; }
.nav-links { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.nav-links a { text-decoration:none; color: var(--text); font-weight:600; padding:.7rem .85rem; border-radius:999px; }
.nav-links a.cta { background:#0f172a; color:#fff; }
.hero { margin:1.4rem 0 0; border-radius:30px; overflow:hidden; background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,250,252,.98)); border:1px solid var(--line); box-shadow:var(--shadow); }
.hero-grid { display:grid; grid-template-columns:1.05fr .95fr; }
.hero-copy { padding: clamp(2rem, 4vw, 4.4rem); }
.kicker { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .78rem; border-radius:999px; background:rgba(37,99,235,.06); border:1px solid rgba(37,99,235,.12); color:var(--blue); font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
h1, .page-title { font-size: clamp(2.6rem, 5vw, 5rem); line-height:.96; margin:1rem 0; letter-spacing:-.04em; }
.lead { font-size:1.08rem; line-height:1.7; color:var(--muted); max-width:58ch; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin:1.5rem 0 1.4rem; }
.btn-dark, .btn-light { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:.95rem 1.2rem; text-decoration:none; font-weight:700; }
.btn-dark { background:#0f172a; color:#fff; }
.btn-light { background:#fff; color:var(--text); border:1px solid rgba(15,23,42,.12); }
.form-button { width: 100%; }
.metric-row, .grid-2, .grid-3, .page-hero, .quote-grid, .map-grid { display:grid; gap:1.2rem; }
.metric-row { grid-template-columns:repeat(3,1fr); }
.metric { background:#fff; border:1px solid var(--line); border-radius:18px; padding:1rem; }
.metric strong { display:block; margin-bottom:.35rem; }
.metric span, .section p, .section h3 { color:var(--muted); }
.hero-visual { position:relative; min-height:100%; padding:1.2rem; display:flex; align-items:stretch; background:linear-gradient(180deg, rgba(17,24,39,.55), rgba(17,24,39,.88)), url('https://images.unsplash.com/photo-1553413077-190dd305871c?auto=format&fit=crop&w=1400&q=80') center/cover; }
.visual-card, .logo-card { margin-top:auto; width:100%; border-radius:24px; background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.16); padding:1.4rem; }
.brand-panel { display:flex; align-items:center; justify-content:center; }
.brand-panel-inner { width:min(520px, 100%); }
.section { margin-top:1.3rem; padding:clamp(1.5rem, 3vw, 2.5rem); background:rgba(255,255,255,.98); border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow); }
.section.compact { padding:1.2rem 1.4rem; }
.section h2 { font-size:clamp(2rem, 3vw, 2.8rem); line-height:1; letter-spacing:-.03em; margin-bottom:.35rem; }
.grid-2 { grid-template-columns:1.12fr .88fr; align-items:start; }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.page-hero { grid-template-columns:1fr .9fr; align-items:center; }
.card, .stat-card, .form-shell, .map-shell { border-radius:22px; border:1px solid var(--line); background:linear-gradient(180deg, #fff, #f8fafc); padding:1.15rem; }
.stat-card + .stat-card, .card + .card { margin-top:1rem; }
.service-kicker { color:var(--blue); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.65rem; }
.transit-section { margin-top:1.3rem; border-radius:26px; overflow:hidden; aspect-ratio:1408/768; min-height:360px; position:relative; background:url('box_truck_hero.png') center/cover no-repeat; box-shadow:0 24px 60px rgba(15,23,42,.18); }
@media (max-width:700px){ .transit-section{ aspect-ratio:auto; } .transit-overlay{ position:static; } }
.transit-overlay { position:absolute; inset:0; background:linear-gradient(110deg, rgba(15,23,42,.92) 0%, rgba(15,23,42,.72) 55%, rgba(15,23,42,.35) 100%); display:flex; align-items:center; padding:clamp(2rem,5vw,4.5rem); }
.transit-content { max-width:600px; color:#fff; }
.transit-kicker { display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .85rem; border-radius:999px; background:rgba(37,99,235,.3); border:1px solid rgba(37,99,235,.5); color:#93c5fd; font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; margin-bottom:1.1rem; }
.transit-headline { font-size:clamp(2.2rem,4.5vw,3.6rem); font-weight:900; line-height:1.04; letter-spacing:-.03em; margin:0 0 1.1rem; text-shadow:0 2px 24px rgba(0,0,0,.5); }
.transit-sub { font-size:1.08rem; line-height:1.75; color:rgba(255,255,255,.9); margin:0; text-shadow:0 1px 10px rgba(0,0,0,.4); font-weight:500; }
.policy-body { max-width:780px; }
.policy-body h2 { font-size:1.15rem; font-weight:700; margin-top:2rem; margin-bottom:.4rem; color:var(--navy); }
.policy-body p, .policy-body ul, .policy-body address { line-height:1.8; color:var(--muted); }
.policy-body ul { padding-left:1.25rem; }
.policy-body address { font-style:normal; line-height:2; }
.band { margin-top:1.3rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem 1.5rem; border-radius:26px; background:linear-gradient(135deg, #0f172a 0%, #1d4ed8 100%); color:#fff; box-shadow:0 24px 60px rgba(15,23,42,.16); }
.band p { margin:0; color:rgba(255,255,255,.82); }
.corrected-map { grid-template-columns:1.15fr .85fr; align-items:start; margin-top:1.3rem; }
.map-shell svg { width:100%; height:auto; display:block; }
.map-layout { display:grid; grid-template-columns:1fr 280px; gap:1.6rem; align-items:start; margin-top:1.4rem; }
.map-shell { border-radius:18px; overflow:hidden; background:#f0f4fa; }
.map-legend { display:flex; flex-direction:column; gap:1rem; }
.legend-item { background:#fff; border:1px solid var(--line); border-radius:18px; padding:1rem 1.1rem; display:flex; flex-direction:column; gap:.3rem; }
.legend-item strong { font-size:.95rem; }
.legend-item p { margin:0; font-size:.85rem; color:var(--muted); line-height:1.5; }
.legend-dot { display:inline-block; width:14px; height:14px; border-radius:50%; margin-bottom:.2rem; }
.legend-northeast .legend-dot { background:#0f172a; }
.legend-midwest .legend-dot   { background:#2563eb; }
.legend-south .legend-dot     { background:#c79a3d; }
.legend-texas .legend-dot     { background:#e05c1a; }
@media (max-width:980px){ .map-layout { grid-template-columns:1fr; } }
.contact-strip { background: #fff; }
.contact-items { display:flex; flex-wrap:wrap; gap:2rem; align-items:center; }
.contact-items .label { display:block; font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:.25rem; }
.contact-items a { text-decoration:none; font-weight:700; }
.quote-grid { grid-template-columns:repeat(2,1fr); }
.full { grid-column:1 / -1; }
input, textarea, select { width:100%; border-radius:16px; border:1px solid rgba(15,23,42,.12); padding:.95rem 1rem; background:#fff; }
textarea { min-height:130px; resize:vertical; }
button { border:none; cursor:pointer; }
.status { display:none; margin-top:.95rem; padding:.85rem 1rem; border-radius:14px; font-weight:600; }
.status.success { display:block; background:#ecfdf3; color:#166534; border:1px solid #bbf7d0; }
.status.error { display:block; background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }
.status:not(:empty) { display:block; background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe; }
.status.success:not(:empty) { background:#ecfdf3; color:#166534; border-color:#bbf7d0; }
.status.error:not(:empty) { background:#fef2f2; color:#991b1b; border-color:#fecaca; }
.footer { padding:2rem 0 2.5rem; color:var(--muted); border-top:1px solid var(--line); margin-top:2rem; }
.footer-inner { display:flex; justify-content:space-between; align-items:flex-start; gap:2rem; flex-wrap:wrap; }
.footer-brand { width:180px; margin-bottom:.6rem; }
.footer-left { display:flex; flex-direction:column; }
.footer-address { font-style:normal; font-size:.85rem; line-height:1.9; color:var(--muted); }
.footer-address a { color:var(--muted); text-decoration:none; font-weight:600; }
.footer-right { display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; text-align:right; }
.footer-nav { display:flex; gap:1rem; flex-wrap:wrap; justify-content:flex-end; }
.footer-nav a { color:var(--muted); text-decoration:none; font-size:.85rem; font-weight:600; }
.footer-nav a:hover { color:var(--blue); }
.footer-tagline { font-size:.82rem; font-weight:700; color:var(--blue); letter-spacing:.04em; text-transform:uppercase; margin:0 0 .25rem; }
.footer-copy { font-size:.78rem; color:var(--muted); opacity:.7; }
.page-top { margin-top:1.4rem; }
@media (max-width:980px){ .hero-grid,.metric-row,.grid-2,.grid-3,.page-hero,.quote-grid,.map-grid,.corrected-map{grid-template-columns:1fr;} .nav-inner,.band,.contact-items{display:flex;flex-direction:column;align-items:flex-start;} .site-nav .logo-wrap img{height:52px;} }
.fleet-grid { align-items:stretch; }
.fleet-photo { margin:0; border-radius:22px; overflow:hidden; border:1px solid var(--line); }
.fleet-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.fleet-grid .stat-card + .stat-card { margin-top:1.2rem; }
.badge-pending { display:inline-block; vertical-align:middle; margin-left:.45rem; padding:.2rem .6rem; border-radius:999px; background:rgba(199,154,61,.12); border:1px solid rgba(199,154,61,.35); color:#a07a25; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }

/* AI chat helper */
#ll-chat { position:fixed; bottom:22px; right:22px; z-index:1000; font-family:inherit; }
#ll-chat-toggle { width:58px; height:58px; border-radius:50%; border:none; cursor:pointer; background:#0f172a; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 24px rgba(15,23,42,.3); transition:transform .15s ease; }
#ll-chat-toggle:hover { transform:scale(1.06); background:#0f172a; }
#ll-chat-panel { position:absolute; bottom:72px; right:0; width:340px; max-width:calc(100vw - 32px); height:460px; max-height:70vh; background:#fff; border:1px solid rgba(15,23,42,.1); border-radius:18px; box-shadow:0 16px 48px rgba(15,23,42,.22); display:flex; flex-direction:column; overflow:hidden; }
.ll-chat-header { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1rem; background:#0f172a; color:#fff; }
.ll-chat-header strong { display:block; font-size:.95rem; }
.ll-chat-header span { font-size:.72rem; opacity:.75; }
#ll-chat-close { background:none; border:none; color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; padding:0 .2rem; width:auto; }
#ll-chat-messages { flex:1; overflow-y:auto; padding:.9rem; display:flex; flex-direction:column; gap:.55rem; background:#f7f9fc; }
.ll-msg { max-width:85%; padding:.55rem .8rem; border-radius:14px; font-size:.85rem; line-height:1.45; white-space:pre-wrap; word-wrap:break-word; }
.ll-bot { background:#fff; border:1px solid rgba(15,23,42,.08); color:#1a1a1a; align-self:flex-start; border-bottom-left-radius:4px; }
.ll-user { background:#2563eb; color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
.ll-typing { opacity:.6; }
#ll-chat-form { display:flex; gap:.5rem; padding:.7rem; border-top:1px solid rgba(15,23,42,.08); background:#fff; }
#ll-chat-form input { flex:1; margin:0; padding:.5rem .75rem; font-size:.85rem; border:1px solid rgba(15,23,42,.15); border-radius:10px; height:auto; }
#ll-chat-form button[type=submit] { width:42px; height:42px; flex:0 0 42px; border:none; border-radius:10px; background:#2563eb; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; margin:0; }
@media (max-width:600px){ #ll-chat { bottom:14px; right:14px; } #ll-chat-panel { height:60vh; } }
