/* Shared interface polish for every Northline page. */
html{-moz-osx-font-smoothing:grayscale}
main h1{line-height:1.1}
main h2{line-height:1.16;margin-block:0 24px}
main h3{line-height:1.24}
main .intro h1{margin-block:18px 24px}
main .intro>p,.nl-intro-copy>p{margin-block:0 24px}
main>section{padding-block:clamp(36px,5vw,60px)}
main>section+section:not(.dark){border-top:1px solid #10283f12}
main p,.card p,main li{text-wrap:pretty}
main p{max-width:75ch}
main li+li{margin-top:8px}
.cards{gap:24px;align-items:stretch}
.card{display:flex;flex-direction:column;align-items:flex-start;border-radius:16px;box-shadow:0 2px 4px #10283f03,0 8px 24px #10283f05;transition:transform 160ms ease-out,border-color 160ms ease-out,box-shadow 160ms ease-out}
.card>.nl-context-photo{border-radius:15px 15px 0 0;flex-shrink:0}
.card h3,.card .nl-card-heading{margin:14px 0 10px;line-height:1.24;text-wrap:balance}
.card p{margin-block:0 24px}
.card>span:last-child{margin-top:auto;min-height:28px;display:inline-flex;align-items:center}
.card:hover{border-color:#91a4b3;box-shadow:0 3px 6px #10283f06,0 14px 32px #10283f0e}
.card:focus-visible{outline:3px solid #2277b8;outline-offset:4px;border-color:#2277b8}
.area-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.area-list a{min-height:64px;overflow-wrap:anywhere;border-radius:12px;transition:border-color 150ms ease-out,background-color 150ms ease-out,box-shadow 150ms ease-out}
.area-list a:hover{background:#fffdf4;border-color:#bda34b;box-shadow:0 3px 12px #10283f08}
.area-list small{margin-top:4px;color:#596c7b;line-height:1.5}
main details{border:1px solid #dce2e5;border-radius:12px;margin-block:12px;padding:16px 22px;transition:border-color 150ms ease-out,box-shadow 150ms ease-out}
main details[open]{border-color:#a8b8c5;box-shadow:0 4px 16px #10283f06}
main summary{min-height:44px;line-height:1.5;padding-block:9px}
main summary::marker{color:#9a7300}
main details[open] summary{margin-bottom:10px}
main details p{margin:0 0 8px;color:#465c6c}
.button,.header-phone,.nl-footer-phone,a[href^="tel:"]{font-variant-numeric:tabular-nums}
.button{justify-content:center;line-height:1.35;text-align:center;transition:transform 150ms ease-out,background-color 150ms ease-out,box-shadow 150ms ease-out}
.button>span[aria-hidden="true"]{position:relative;top:-1px}
.nl-nav-row nav a,.nl-menu-toggle{transition:background-color 150ms ease-out,border-color 150ms ease-out,color 150ms ease-out}
.nl-menu-toggle:hover{background:#10283f06;border-color:#8fa3b3}
.nl-menu-icon{line-height:1;display:inline-block}
.nl-footer a:focus-visible,.dispatch a:focus-visible,.dark a:focus-visible{outline-color:#f7c83e}
.nl-footer-bottom{line-height:1.6}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-3px)}.card:active{transform:translateY(-1px)}}
@media(max-width:799px){.area-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{gap:20px}.hero h1{font-size:clamp(38px,9vw,51px)}main h2{margin-bottom:20px}.nl-photo-intro{gap:24px}}
@media(max-width:400px){.area-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.card,.area-list a,main details,.button,.nl-nav-row nav a,.nl-menu-toggle{transition:none}.card:hover,.card:active,.button:active{transform:none}}
