:root { --bg:#17171c; --bg2:#1f1f26; --panel:#26262f; --line:#34343f; --orange:#ff6b35; --orange2:#e85a26; --text:#f2f2f5; --muted:#a6a6b2; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:'Work Sans',system-ui,sans-serif; background:var(--bg); color:var(--text); line-height:1.6; }
.wrap { max-width:1120px; margin:0 auto; padding:0 24px; }
h1,h2,h3,.brand { font-family:'Bebas Neue',sans-serif; font-weight:400; letter-spacing:0.04em; }
a { color:var(--orange); text-decoration:none; }
.fine { font-size:0.8rem; color:var(--muted); }

/* Topbar */
.topbar { background:var(--bg); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
.bar { display:flex; align-items:center; justify-content:space-between; height:64px; gap:16px; }
.brand { font-size:1.7rem; color:var(--orange); }
.topbar nav { display:flex; gap:20px; }
.topbar nav a { color:var(--muted); font-size:0.9rem; font-weight:600; }
.topbar nav a:hover { color:#fff; }
.call { background:var(--orange); color:#fff; padding:9px 16px; border-radius:6px; font-weight:700; font-size:0.9rem; }

/* Hero */
.hero { padding:72px 0 60px; background:radial-gradient(900px 400px at 80% -10%, rgba(255,107,53,0.18), transparent 60%), var(--bg); }
.hero h1 { font-size:4rem; line-height:1; text-transform:uppercase; }
.lead { color:var(--muted); font-size:1.08rem; margin:18px 0 28px; max-width:760px; }
.cta { max-width:460px; }
.cta-card { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:24px; display:flex; flex-direction:column; gap:16px; }
.call-big { text-align:center; font-size:1.15rem; padding:16px; }
.divider { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.85rem; }
.divider::before,.divider::after { content:""; flex:1; height:1px; background:var(--line); }
.quote-form { display:flex; flex-direction:column; gap:10px; }
.quote-form input,.quote-form select { background:var(--bg2); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:11px 12px; font:inherit; }
.hp { position:absolute; left:-9999px; opacity:0; height:0; width:0; }

/* Buttons */
.btn { display:inline-block; background:var(--orange); color:#fff; border:none; padding:12px 20px; border-radius:6px; font-weight:700; font:inherit; cursor:pointer; }
.btn:hover { background:var(--orange2); }
.btn-outline { background:transparent; border:2px solid var(--orange); color:var(--orange); }

/* Sections */
.section { padding:64px 0; }
.section.tint { background:var(--bg2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
h2 { font-size:2.6rem; text-transform:uppercase; margin-bottom:8px; }
.sub { color:var(--muted); margin-bottom:32px; }

/* Fleet */
.fleet-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.veh { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:22px; display:flex; flex-direction:column; gap:14px; }
.veh-head { border-bottom:2px solid var(--orange); padding-bottom:10px; }
.veh h3 { font-size:1.6rem; text-transform:uppercase; }
.specs { list-style:none; display:flex; flex-direction:column; gap:8px; }
.specs li { display:flex; justify-content:space-between; color:var(--muted); font-size:0.92rem; }
.specs li span { color:var(--text); font-weight:600; }
.veh .btn { margin-top:auto; }

/* Events */
.events { display:flex; flex-direction:column; gap:12px; }
.ev { background:var(--panel); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.ev summary { list-style:none; cursor:pointer; padding:16px 20px; font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.04em; }
.ev summary::-webkit-details-marker { display:none; }
.ev summary::after { content:"+"; float:right; color:var(--orange); font-size:1.6rem; line-height:1; }
.ev[open] summary::after { content:"\2212"; }
.ev p { padding:0 20px 18px; color:var(--muted); }

/* Reviews */
.reviews { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.review { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:22px; }
.stars { color:#f5b942; letter-spacing:2px; margin-bottom:10px; }
.review p { font-style:italic; margin-bottom:10px; }
.who { color:var(--muted); font-weight:600; font-size:0.9rem; }

/* Counties */
.counties { display:flex; flex-direction:column; gap:12px; }
.county { background:var(--panel); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.county summary { list-style:none; cursor:pointer; padding:16px 20px; font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.04em; }
.county summary::-webkit-details-marker { display:none; }
.county summary::after { content:"+"; float:right; color:var(--orange); }
.county[open] summary::after { content:"\2212"; }
.towns { list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0 20px 18px; }
.towns li { color:var(--muted); font-size:0.9rem; }
.towns em { color:var(--orange); font-style:normal; }

/* Footer */
.footer { background:var(--bg); border-top:1px solid var(--line); padding:44px 0; text-align:center; }
.footer .brand { font-size:1.8rem; margin-bottom:8px; }
.footer p { color:var(--muted); }

/* Modal */
.modal { position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:20px; }
.modal.open { display:flex; }
.backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.6); }
.dialog { position:relative; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:28px; width:100%; max-width:440px; display:flex; flex-direction:column; gap:12px; }
.dialog h2 { font-size:2rem; }
.dialog form { display:flex; flex-direction:column; gap:10px; }
.dialog input { background:var(--bg2); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:11px 12px; font:inherit; }
.x { position:absolute; top:10px; right:16px; background:none; border:none; color:var(--muted); font-size:1.8rem; cursor:pointer; }

@media (max-width:900px){ .hero h1{font-size:3rem;} .fleet-grid,.reviews{grid-template-columns:1fr 1fr;} .cta-row{grid-template-columns:1fr;} }
@media (max-width:600px){ .topbar nav{display:none;} .hero h1{font-size:2.4rem;} .fleet-grid,.reviews{grid-template-columns:1fr;} }
