/*
Theme Name: NorthLine Roadside
Version: 1.0.0
Description: Native WordPress, mobile-first roadside assistance theme.
*/
:root{--navy:#10283f;--lime:#d9f45a;--paper:#f5f7f7;--ink:#15283a}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,sans-serif;padding-bottom:90px}a{color:inherit}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 5%;background:white;border-bottom:1px solid #dce2e5;position:relative;z-index:2}.brand{text-decoration:none;font-weight:900;font-size:25px;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:3px}nav{display:flex;gap:24px}nav a{text-decoration:none;font-size:14px;font-weight:600}.header-phone{font-weight:800;text-decoration:none}.button{display:inline-flex;gap:24px;align-items:center;background:var(--lime);color:var(--navy);padding:16px 25px;border-radius:8px;font-weight:800;text-decoration:none;min-height:54px}.button:hover{background:#c8e34b}.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #5285aa;outline-offset:4px}main{max-width:1280px;margin:auto;padding:0 5%}h1,h2,h3{line-height:1.05;letter-spacing:-.045em}h1{font-size:clamp(42px,6.5vw,88px);margin:20px 0 28px}h1 em{font-style:normal;color:#50713c}h2{font-size:clamp(28px,4vw,48px);max-width:760px}h3{font-size:25px}.eyebrow,small{font-size:11px;letter-spacing:2px;font-weight:700}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding:65px 0}.hero p,.intro p{max-width:610px;color:#506171}.dispatch{background:var(--navy);color:white;padding:36px;border-radius:16px;align-self:center}.dispatch h2{font-size:36px}.dispatch p{color:#c5d0d9}.dispatch ol{padding-left:20px}.dispatch li{padding:10px 0;border-bottom:1px solid #3b5062}.dispatch a{color:var(--lime)}.trust{display:flex;flex-wrap:wrap;gap:20px;margin-top:28px;font-size:12px;font-weight:650}.trust span:before{content:'• ';color:#50713c}section{padding:40px 0 55px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}.card{display:block;background:white;border:1px solid #dce2e5;padding:28px;border-radius:12px;text-decoration:none}.card h3{margin:14px 0}.card p{font-size:15px;color:#536474}.card span{font-size:13px;font-weight:800}.card:hover{border-color:#58764a}.dark{background:var(--navy);color:white;margin:25px -5.6%;padding:45px 5.6%;border-radius:16px}.dark .card{color:var(--ink)}.intro{padding:60px 0 25px;max-width:900px}section>p{max-width:850px}.area-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.area-list a{background:white;padding:18px;text-decoration:none;border:1px solid #dce2e5;border-radius:8px;font-weight:700}.area-list small{display:block;font-weight:400}details{background:white;padding:22px;border-bottom:1px solid #dce2e5}summary{cursor:pointer;font-weight:750}footer{margin-top:50px;padding:45px 5%;background:var(--navy);color:white}footer a{margin-right:20px}.callbar{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--navy);padding:12px 20px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;color:white}.callbar span{font-size:13px}.safety{font-size:13px;background:#e9eef0;padding:16px 22px;border-radius:8px;margin:30px 0}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;z-index:99;padding:12px}@media(min-width:800px){.callbar{display:none}body{padding-bottom:0}}@media(max-width:799px){header{padding:16px 5%;flex-wrap:wrap}.brand{font-size:22px}.header-phone{font-size:14px}nav{width:100%;gap:24px}.hero{display:block;padding:30px 0}.hero h1{font-size:51px;margin:18px 0}.hero p{font-size:16px}.dispatch{margin-top:35px;padding:26px}.cards{grid-template-columns:1fr}.area-list{grid-template-columns:1fr 1fr}.intro{padding-top:35px}.callbar .button{padding:12px 18px;font-size:15px}.trust{gap:13px;font-size:11px}}
/* Shared navigation and footer */
:root{--lime:#f7c83e}
html{-webkit-font-smoothing:antialiased;scroll-padding-top:140px}
h1,h2,h3{text-wrap:balance}
.nl-header{display:block;padding:0;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 3px 20px #10283f0a}
.nl-status{display:flex;justify-content:space-between;gap:16px;padding:7px max(5%,calc((100% - 1152px)/2));background:var(--navy);color:#e4ebf0;font-size:11px;letter-spacing:.06em}
.nl-status>span:first-child{display:flex;align-items:center;gap:8px;font-weight:750}
.nl-status i{width:6px;height:6px;border-radius:50%;background:var(--lime)}
.nl-nav-row{max-width:1280px;margin:auto;padding:17px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:11px;font-size:23px;line-height:1.2;letter-spacing:-.8px;flex-shrink:0}
.brand img{object-fit:contain;width:52px;height:52px}
.brand small{margin-top:5px;font-size:8px;letter-spacing:2.1px}
.nl-nav-row nav{gap:4px;align-items:center}
.nl-nav-row nav a{padding:12px 10px;border-radius:8px;font-size:13px;white-space:nowrap}
.nl-nav-row nav a:hover,.nl-nav-row nav a[aria-current=page]{background:#10283f08;color:#10283f}
.nl-nav-row .header-phone{font-size:13px;min-height:46px;padding:12px 16px;gap:8px;white-space:nowrap;border:1px solid #d4a830}
.button{transition:background-color 150ms ease,transform 150ms ease,box-shadow 150ms ease}
.button:hover{background:#ffdb6c;box-shadow:0 3px 12px #10283f14}
.button:active{transform:scale(.98)}
a:focus-visible,button:focus-visible{outline:3px solid #2277b8;outline-offset:4px}
.nl-menu-toggle{display:none}
.nl-footer{margin-top:60px;padding:0 max(5%,calc((100% - 1152px)/2));background:#0c2134}
.nl-footer a{margin:0;text-decoration:none}
.nl-footer-cta{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:48px 0;border-bottom:1px solid #ffffff24}
.nl-footer-cta .eyebrow{color:var(--lime)}
.nl-footer-cta h2{font-size:clamp(30px,4vw,46px);margin:14px 0}
.nl-footer p{color:#bac8d3;font-size:14px;text-wrap:pretty;max-width:520px}
.nl-footer-cta .button{flex-shrink:0}
.nl-footer-grid{display:grid;grid-template-columns:1.5fr 1.1fr 1fr 1fr;gap:38px;padding:46px 0}
.nl-footer-grid nav{display:flex;flex-direction:column;gap:0}
.nl-footer-grid h3{font-size:14px;letter-spacing:0;margin:0 0 16px;color:white;line-height:1.5}
.nl-footer-grid nav a{font-size:13px;font-weight:400;color:#bac8d3;display:flex;align-items:center;min-height:44px}
.nl-footer-grid nav a:hover{color:var(--lime);text-decoration:underline;text-underline-offset:4px}
.nl-footer-brand .brand{color:white}
.nl-footer-phone{display:inline-flex;min-height:44px;align-items:center;font-weight:750;color:var(--lime);font-variant-numeric:tabular-nums}
.nl-footer-bottom{border-top:1px solid #ffffff24;padding:22px 0;display:flex;justify-content:space-between;gap:16px;color:#aebdca;font-size:11px}
@media(max-width:1100px){
.nl-nav-row{flex-wrap:wrap;gap:14px}
.nl-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 14px;background:transparent;border:1px solid #ccd5dc;border-radius:8px;font:600 14px system-ui;color:var(--navy);margin-left:auto;cursor:pointer}
.nl-menu-icon{font-size:18px}
.nl-nav-row nav{display:none;order:4;flex-basis:100%;width:100%;padding-top:12px;border-top:1px solid #dce2e5}
.nl-nav-row nav.is-open{display:flex;flex-wrap:wrap}
.nl-nav-row nav a{min-height:44px}
.nl-footer-grid{grid-template-columns:1.4fr 1fr;gap:30px}
}
@media(max-width:599px){
.nl-status{justify-content:center;font-size:9px}.nl-status>span:last-child{display:none}
.nl-nav-row{padding:12px 5%;gap:10px}.nl-nav-row .header-phone{display:none}
.brand{font-size:21px}.brand img{width:44px;height:44px}.brand small{font-size:7px}
.nl-nav-row nav.is-open{flex-direction:column;align-items:stretch;gap:2px}
.nl-nav-row nav a{font-size:15px}
.nl-footer-cta{align-items:flex-start;flex-direction:column;gap:15px;padding:36px 0}
.nl-footer-grid{grid-template-columns:1fr 1fr;gap:26px 20px;padding:32px 0}
.nl-footer-brand{grid-column:1/-1}
.nl-footer-bottom{flex-direction:column;gap:6px}
.callbar{box-shadow:0 -2px 16px #0002}.callbar .button{background:var(--lime)}
}
@media(prefers-reduced-motion:reduce){.button{transition:none}.button:active{transform:none}}
.nl-footer-bottom{align-items:center}
.nl-footer .nl-powered-by{display:inline-flex;align-items:center;gap:10px;min-height:48px;color:#cbd6df;font-size:12px}
.nl-powered-by img{display:block;width:48px;height:48px;object-fit:contain;background:white;border-radius:10px}
.nl-powered-by strong{color:white;text-decoration:underline;text-underline-offset:3px}
.nl-powered-by:hover strong{color:var(--lime)}
@media(max-width:599px){.nl-footer-bottom{align-items:flex-start;gap:16px}}
.nl-service-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;margin:32px 0}.nl-service-photos figure{margin:0;background:white;border:1px solid #dce2e5;border-radius:16px;overflow:hidden}.nl-service-photos img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;outline:1px solid #0001;outline-offset:-1px}.nl-service-photos figcaption{padding:16px 20px;font-size:14px;font-weight:650}
/* Photos are tied to the service they illustrate, with reserved layout space. */
.card .nl-card-heading{font-size:25px;margin:14px 0;max-width:none}
.nl-photo-intro{max-width:none;display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;padding-bottom:40px}
.nl-photo-intro h1{font-size:clamp(40px,5.4vw,68px)}
.nl-intro-photo{margin:0;border-radius:16px;overflow:hidden;background:#e3e9ec;box-shadow:0 12px 32px #10283f10}
.nl-context-photo{display:block;width:100%;height:auto;outline:1px solid #00000012;outline-offset:-1px}
.nl-intro-photo .nl-context-photo{aspect-ratio:4/3;object-fit:cover}
.card>.nl-context-photo{width:calc(100% + 56px);max-width:none;margin:-28px -28px 24px;aspect-ratio:16/9;object-fit:cover;border-radius:11px 11px 0 0}
.nl-dispatch-photo{margin:-36px -36px 28px;overflow:hidden;border-radius:16px 16px 0 0}
.nl-dispatch-photo img{aspect-ratio:16/9;object-fit:cover}
.hero .dispatch{overflow:hidden;border:1px solid #ffffff18;box-shadow:0 16px 40px #10283f12}
.hero .dispatch h2{font-size:30px}
h1{overflow-wrap:anywhere}
@media(max-width:799px){.nl-photo-intro{grid-template-columns:1fr;gap:26px;padding-bottom:20px}.nl-photo-intro h1{font-size:clamp(38px,8vw,51px)}.nl-intro-photo .nl-context-photo{aspect-ratio:16/10}.nl-dispatch-photo{margin:-26px -26px 24px}.intro h1{font-size:clamp(38px,8vw,51px)}}
summary{min-height:44px;padding-block:8px}
