/* Shared contact layout for the main site and city subdomains. */
.topbar .header-phones{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;gap:3px;line-height:1.15}
.topbar .header-phones b{font-size:26px;font-weight:700;letter-spacing:-.3px;white-space:nowrap}
.topbar .header-phones a{display:inline-block;padding:2px 0;color:inherit;text-decoration:none}
.topbar .header-phones a:hover{color:#0665ff}
.topbar .header-phone-hours{display:block;color:#435774;font-size:18px;font-weight:500;line-height:1.4;white-space:nowrap}
@media(min-width:761px) and (max-width:1100px){.topbar .header-phones b{font-size:26px}}
@media(max-width:760px){.topbar .header-phones{order:2;flex-basis:100%;margin-top:12px}.topbar .header-phones b{font-size:26px}.topbar .city-trigger{order:3}}

@media(min-width:761px) and (max-width:850px){.topbar{flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:12px}.topbar .brand{order:0}.topbar .header-phones{order:1;margin-left:auto}.topbar .desktop{order:2}.topbar .city-trigger{order:3;flex-basis:100%}}

/* Distribute the main navigation across the full header width. */
.header .nav{justify-content:space-between;gap:12px 18px;min-height:56px;font-size:16px;line-height:1.35}
.header .nav-search{margin-left:0}
.header .nav>a,.header .nav>button,.header .nav>.repair-dropdown>summary{padding:17px 0;white-space:nowrap}
.header .nav>a[aria-current=page]:after{bottom:0}
@media(max-width:1100px){.header .nav{gap:8px 16px}.header .nav>a,.header .nav>button,.header .nav>.repair-dropdown>summary{padding:10px 0}}

.header .nav>.nav-search{display:flex;align-items:center;justify-content:center;align-self:stretch;padding:0}

/* Larger, readable footer typography shared by every city. */
footer{padding-top:42px}
footer .footer-grid{grid-template-columns:minmax(235px,1.4fr) minmax(170px,1.1fr) minmax(0,.8fr) minmax(0,1.2fr) minmax(190px,1.1fr) minmax(0,1fr);gap:26px;font-size:15px;line-height:1.6}
footer .footer-grid>div{min-width:0;overflow-wrap:anywhere}
footer .footer-grid h3{font-size:18px;line-height:1.35;margin-bottom:14px}
footer .footer-grid a:not(.brand),footer .footer-grid button,footer .footer-grid>div>span{font-size:15px;line-height:1.6;margin:8px 0}
footer .footer-grid a[href^="tel:"]{font-size:20px;font-weight:700;white-space:nowrap}
footer .footer-grid p{font-size:14px;line-height:1.65;margin-top:18px}
footer .footer-grid small{font-size:12px;line-height:1.5;margin-top:9px}
footer .footer-grid .brand.brand-service{gap:12px}
footer .footer-grid .brand-service .brand-service-mark{width:48px;height:48px}
footer .footer-grid .brand-service-name>span:first-child{font-size:22px;letter-spacing:-.5px}
footer .footer-grid .brand-service-name>span:nth-child(2){font-size:20px;letter-spacing:1px}
footer .footer-grid .brand-service-name .brand-service-tagline{font-size:11px;line-height:1.4;max-width:175px;margin-top:4px}
footer .social{gap:10px;margin-top:14px}
footer .footer-grid .social button{width:36px;height:36px;font-size:17px;line-height:36px;padding:0;margin:0;border-radius:7px}
footer .payments{gap:6px;flex-wrap:wrap}
footer .payments b{font-size:14px;padding:5px 6px}
footer .footer-bottom{font-size:13px;line-height:1.6;padding-top:22px;padding-bottom:22px;margin-top:32px;gap:24px}
footer .footer-bottom a{font-size:14px}
@media(max-width:1199px){footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 26px}}
@media(max-width:900px){footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}footer .footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:480px){footer{padding-top:32px}footer .footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}footer .footer-grid>div:first-child{grid-column:auto}footer .footer-grid h3{margin-bottom:10px}footer .footer-bottom{flex-direction:column;gap:12px}}

/* Larger device illustrations in service, brand and model hero sections. */
.page-hero-grid:has(.page-hero-image){grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px}
.page-hero .page-hero-image{height:420px;object-fit:contain}
@media(min-width:761px) and (max-width:1000px){.page-hero-grid:has(.page-hero-image){gap:24px}.page-hero .page-hero-image{height:360px}}
@media(max-width:760px){.page-hero-grid:has(.page-hero-image){grid-template-columns:1fr;gap:24px}.page-hero .page-hero-image{height:300px}}
