/* Brand / city pages. Scoped to avoid changing existing campaigns and case studies. */
.brand-landing { --brand-gap:24px; }
.brand-landing em,.brand-directory-intro em { color:var(--blue); font-style:normal; }
.brand-landing h1 { font-size:clamp(2.6rem,4.5vw,4.8rem); line-height:1.04; letter-spacing:-.055em; text-wrap:balance; }
.brand-landing h2,.brand-directory-intro h1 { font-size:clamp(2.2rem,3.8vw,4rem); line-height:1.06; letter-spacing:-.05em; text-wrap:balance; }
.brand-landing h3 { font-size:clamp(1.2rem,1.8vw,1.65rem); line-height:1.2; letter-spacing:-.035em; }
.brand-landing p { color:var(--muted); }
.brand-landing .kicker { color:var(--blue); }
.brand-hero { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:clamp(30px,5vw,80px); padding-block:26px 45px; align-items:center; }
.brand-hero-copy { min-width:0; }
.brand-hero h1 { margin-bottom:22px; }
.brand-lead { max-width:50ch; font-size:1.06rem; line-height:1.7; }
.brand-scope-note { padding-left:16px; border-left:3px solid var(--blue); font-weight:650; }
.brand-actions { display:flex; align-items:stretch; gap:12px; flex-wrap:wrap; margin-top:26px; }
.brand-actions .button { min-height:60px; padding:14px 22px; gap:13px; font-size:.95rem; line-height:1.3; text-align:left; border-radius:8px; }
.brand-actions .button svg,.brand-mobile-contact svg { width:24px; height:24px; flex:0 0 24px; }
.brand-actions small { display:block; font-size:.83em; font-weight:500; margin-top:4px; }
.brand-evidence-link { display:inline-flex; gap:20px; font-size:.9rem; font-weight:700; margin-top:24px; }
.brand-hours { display:flex; gap:26px; padding-top:24px; margin-top:26px; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted); }
.brand-hours strong { margin-left:9px; font-weight:600; color:var(--ink); white-space:nowrap; }
.brand-hero-visual { position:relative; margin:0; max-width:520px; width:100%; justify-self:end; border-radius:12px; overflow:hidden; isolation:isolate; }
.brand-hero-visual>img { width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; }
.brand-hero-visual figcaption { position:absolute; inset:auto 0 0; background:linear-gradient(transparent,rgba(12,23,36,.97)); color:white; padding:70px 28px 24px; font-size:clamp(1.3rem,2.2vw,2rem); font-weight:650; line-height:1.2; }
.brand-hero-visual figcaption>a { display:flex; align-items:center; gap:14px; color:white; text-decoration:none; border-top:1px solid #ffffff60; margin-top:22px; padding-top:18px; font-size:.95rem; }
.brand-hero-visual small { display:block; font-size:.8rem; opacity:.85; margin-top:6px; font-weight:500; }
.brand-play { display:flex; flex-shrink:0; align-items:center; justify-content:center; border:1px solid #ffffffa0; border-radius:50%; width:48px; height:48px; background:#ffffff24; color:white; padding-left:3px; font-size:1rem; }
.brand-location-nav { display:flex; align-items:baseline; gap:18px; border-block:1px solid var(--line); padding-block:25px; margin-block:24px 42px; font-size:.82rem; }
.brand-location-nav>span { white-space:nowrap; font-weight:750; }
.brand-location-nav nav { display:flex; flex-wrap:wrap; gap:8px; }
.brand-location-nav a { display:block; padding:8px 12px; border:1px solid var(--line); border-radius:5px; text-decoration:none; }
.brand-location-nav a:hover,.brand-location-nav a[aria-current] { border-color:var(--blue); background:var(--blue-soft); color:var(--blue-dark); }
.brand-proof,.brand-work-scope,.brand-city-choice,.brand-faq { padding-block:76px; }
.brand-section-heading { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:end; gap:60px; margin-bottom:32px; }
.brand-section-heading h2 { margin-bottom:0; }
.brand-section-heading>p,.brand-section-heading>div>p { font-size:.97rem; max-width:58ch; }
.brand-proof-count { font-size:.82rem!important; font-weight:700; color:var(--ink)!important; margin-top:18px; }
.brand-carousel-controls { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:.82rem; color:var(--muted); }
.brand-carousel-controls>div { display:flex; gap:8px; }
.brand-carousel-controls button { width:46px; height:44px; border:1px solid var(--line); border-radius:6px; background:white; font-size:1.5rem; cursor:pointer; }
.brand-carousel-controls button:hover:not(:disabled) { border-color:var(--blue); color:var(--blue); }
.brand-carousel-controls button:disabled { opacity:.35; cursor:default; }
.brand-case-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--brand-gap))/3); gap:var(--brand-gap); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#a6b9d1 transparent; padding:4px 0 20px; overscroll-behavior-inline:contain; }
.brand-case-card { min-width:0; scroll-snap-align:start; }
.brand-case-image { position:relative; display:block; overflow:hidden; border-radius:10px; margin-bottom:18px; }
.brand-case-image img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.brand-case-image>span { position:absolute; bottom:12px; left:12px; background:rgba(12,23,36,.88); color:white; padding:6px 10px; border-radius:5px; font-size:.75rem; font-weight:600; }
.brand-case-card h3 { font-size:1.3rem; line-height:1.25; margin-bottom:9px; }
.brand-case-card h3 a { text-decoration:none; }
.brand-case-card>p { font-size:.9rem; margin-bottom:18px; }
.brand-case-card>.text-link { font-size:.8rem; gap:10px; }
.brand-all-cases { margin-top:22px; }
.brand-film-section { background:var(--ink); color:white; padding-block:68px; }
.brand-film-section p,.brand-film-section .kicker { color:#c5d3e5; }
.brand-film-section em { color:#aecbff; }
.brand-videos { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr)); gap:24px; }
.brand-video { text-decoration:none; }
.brand-video>div { position:relative; border-radius:10px; overflow:hidden; }
.brand-video img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.brand-video .brand-play { position:absolute; bottom:16px; left:16px; background:#0c1724aa; }
.brand-video h3 { font-size:1rem; margin-top:18px; line-height:1.5; letter-spacing:0; }
.brand-video>span { color:#c5d3e5; font-size:.8rem; }
.brand-service-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); gap:18px; }
.brand-service-grid>a { padding:26px; background:var(--mist); border-radius:8px; text-decoration:none; border:1px solid transparent; }
.brand-service-grid>a:hover { border-color:var(--blue); }
.brand-service-grid>a>span { color:var(--blue); font-size:.8rem; font-weight:750; display:block; margin-bottom:16px; }
.brand-service-grid h3 { font-size:1.3rem; margin-bottom:14px; }
.brand-service-grid p { font-size:.86rem; }
.brand-service-grid strong { display:flex; justify-content:space-between; font-size:.8rem; margin-top:24px; }
.brand-models { display:grid; grid-template-columns:1fr 2fr; gap:25px; border-top:1px solid var(--line); padding-top:28px; margin-top:32px; }
.brand-models h3 { font-size:1rem; }
.brand-models>div { display:flex; flex-wrap:wrap; gap:8px; }
.brand-models span { font-size:.7rem; border:1px solid var(--line); border-radius:4px; padding:6px 9px; }
.brand-local-section { background:var(--blue-soft); padding-block:68px; }
.brand-local-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:100px; }
.brand-local-layout>div>p { max-width:62ch; margin-block:24px; }
.brand-local-layout aside { border-left:1px solid #c2d1e7; padding-left:35px; }
.brand-local-layout aside p { font-size:.85rem; margin-bottom:26px; }
.brand-local-layout aside h3 { font-size:1.25rem; margin-top:8px; }
.brand-step { color:var(--blue); font-size:.74rem; font-weight:800; }
.brand-directions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:70px; padding-block:76px; align-items:center; }
.brand-directions figure { margin:0; }
.brand-directions figure>img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:10px; }
.brand-directions figcaption { font-size:.76rem; color:var(--muted); margin-top:12px; }
.brand-directions>div>p { margin-block:24px; }
.brand-directions h3 { font-size:1.15rem; margin-top:30px; }
.brand-map-note { font-size:.8rem; }
.brand-districts { display:flex; flex-wrap:wrap; gap:10px 18px; margin-block:20px 30px; }
.brand-districts a { font-size:.8rem; }
.brand-aso { padding-block:45px; border-block:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.brand-aso h2 { font-size:clamp(1.8rem,2.8vw,2.8rem); }
.brand-faq { display:grid; grid-template-columns:1fr 1.3fr; gap:70px; }
.brand-faq h2 { font-size:clamp(2rem,3vw,3.2rem); }
.brand-faq summary { line-height:1.5; }
.brand-final-cta { padding-block:64px; background:var(--mist); }
.brand-final-cta .text-link { margin-top:24px; }
.brand-mobile-contact { display:none; }
.brand-directory-intro { padding-block:25px 40px; }
.brand-directory-intro>p:not(.kicker) { max-width:68ch; color:var(--muted); margin-top:25px; }
.brand-directory { padding-block:25px 60px; }
.brand-directory-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; padding-block:20px; border-top:1px solid var(--line); }
.brand-directory-tools h2 { font-size:2rem; margin:0; }
.brand-directory-tools label { display:flex; gap:12px; align-items:center; font-size:.8rem; }
.brand-directory-tools input { width:min(260px,100%); font:inherit; font-size:1rem; border:1px solid var(--line); padding:11px 14px; border-radius:5px; }
.brand-search-count { font-size:.8rem; color:var(--muted); }
.brand-directory-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.brand-directory-card { position:relative; padding:24px; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.brand-directory-card:hover { border-color:var(--blue); background:var(--blue-soft); }
.brand-directory-card strong { display:block; font-size:1.2rem; padding-right:20px; }
.brand-directory-card>span:not(.brand-directory-arrow) { font-size:.75rem; color:var(--muted); }
.brand-directory-arrow { position:absolute; top:26px; right:20px; color:var(--blue); }
.brand-directory-note { display:grid; grid-template-columns:1.4fr 1fr; gap:70px; padding-block:20px 76px; align-items:center; }
.brand-directory-note h2 { font-size:clamp(2rem,4vw,4rem); line-height:1.05; }
.brand-directory-note p { max-width:58ch; color:var(--muted); }
.brand-directory-note img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:10px; }
.brand-city-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.brand-city-grid>a { border:1px solid var(--line); border-radius:8px; padding:28px; text-decoration:none; }
.brand-city-grid>a:hover { border-color:var(--blue); }
.brand-city-grid h3 { display:flex; justify-content:space-between; }
.brand-city-grid p { font-size:.9rem; }
.brand-city-grid>a>span { font-size:.76rem; color:var(--blue); }
.brand-city-directory { display:flex; flex-wrap:wrap; gap:10px; }
.brand-city-directory a { display:block; border:1px solid var(--line); border-radius:5px; padding:9px 14px; font-size:.86rem; text-decoration:none; }
.brand-city-directory a:hover { border-color:var(--blue); color:var(--blue); }
@media(max-width:1099px) {
 .brand-case-track { grid-auto-columns:calc((100% - var(--brand-gap))/2); }
 .brand-hero { gap:30px; grid-template-columns:1.2fr 1fr; }
 .brand-hero h1 { font-size:clamp(2.4rem,4.6vw,3.6rem); }
 .brand-actions .button { padding:13px 16px; font-size:.85rem; }
 .brand-local-layout,.brand-directions,.brand-faq,.brand-aso,.brand-section-heading { gap:35px; }
 .brand-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .brand-directory-tools label { flex-wrap:wrap; }
 .brand-city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:759px) {
 .brand-landing { --brand-gap:16px; }
 .brand-hero { grid-template-columns:1fr; padding-top:16px; gap:30px; }
 .brand-hero h1 { font-size:clamp(2.3rem,8.4vw,3.7rem); }
 .brand-lead { font-size:.95rem; }
 .brand-actions { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:10px; }
 .brand-actions .button { min-width:0; font-size:.83rem; padding:13px 12px; gap:10px; }
 .brand-actions .button svg { width:20px; height:20px; flex-basis:20px; }
 .brand-hero-visual { max-width:none; }
 .brand-hero-visual>img { aspect-ratio:4/3; max-height:320px; object-position:50% 62%; }
 .brand-hero-visual figcaption { padding:60px 22px 20px; }
 .brand-hero-visual figcaption>span { font-size:1.4rem; }
 .brand-hero-visual figcaption>a { margin-top:16px; padding-top:14px; }
 .brand-hours { justify-content:space-between; gap:12px; font-size:.73rem; }
 .brand-hours strong { margin-left:6px; }
 .brand-location-nav { display:block; }
 .brand-location-nav>span { display:block; margin-bottom:12px; }
 .brand-location-nav a { font-size:.73rem; padding:8px 10px; }
 .brand-section-heading { grid-template-columns:1fr; gap:22px; }
 .brand-proof,.brand-work-scope,.brand-faq,.brand-city-choice { padding-block:48px; }
 .brand-case-track { grid-auto-columns:86%; margin-right:-20px; padding-right:20px; scroll-padding-right:20px; }
 .brand-case-card h3 { font-size:1.18rem; }
 .brand-videos { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:18px; }
 .brand-video { flex:0 0 77%; scroll-snap-align:start; }
 .brand-film-section { padding-block:46px; }
 .brand-service-grid { grid-template-columns:1fr; }
 .brand-service-grid>a { padding:23px; }
 .brand-models { grid-template-columns:1fr; gap:12px; }
 .brand-models span { font-size:.68rem; }
 .brand-local-layout,.brand-directions,.brand-faq,.brand-aso { grid-template-columns:1fr; gap:30px; }
 .brand-local-section { padding-block:44px; }
 .brand-local-layout aside { padding-left:20px; }
 .brand-directions { padding-block:48px; }
 .brand-directions figure>img { aspect-ratio:4/3; object-position:50% 40%; }
 .brand-directions figure { order:2; }
 .brand-aso { padding-block:35px; }
 .brand-final-cta { padding-block:46px; }
 .brand-mobile-contact { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:12px; position:fixed; bottom:0; left:0; right:0; background:#fffffffa; border-top:1px solid var(--line); padding:10px 16px max(10px,env(safe-area-inset-bottom)); z-index:90; box-shadow:0 -4px 20px #0c17240a; }
 .brand-mobile-contact a { display:flex; align-items:center; justify-content:center; gap:12px; padding:12px; text-decoration:none; font-size:.88rem; font-weight:750; border-radius:7px; min-height:48px; }
 .brand-mobile-contact a:first-child { background:var(--blue); color:white; }
 .brand-mobile-contact a:last-child { color:var(--ink); border:1px solid var(--line); }
 body:has(.brand-landing) .site-footer { padding-bottom:90px; }
 .brand-directory-intro { padding-top:20px; }
 .brand-directory-intro .brand-actions { display:flex; }
 .brand-directory-tools { align-items:flex-start; }
 .brand-directory-tools label { flex-basis:100%; }
 .brand-directory-tools input { width:100%; }
 .brand-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .brand-directory-card { padding:17px 14px; }
 .brand-directory-card strong { font-size:1rem; }
 .brand-directory-card>span:not(.brand-directory-arrow) { font-size:.66rem; }
 .brand-directory-arrow { top:18px; right:12px; }
 .brand-directory-note { grid-template-columns:1fr; gap:28px; padding-block:0 50px; }
 .brand-directory-note img { max-height:350px; object-position:50% 62%; }
 .brand-city-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .brand-case-track { scroll-behavior:auto; } }

/* Customer priorities: offer and convenience first, evidence and local navigation later. */
.brand-hero-address { display:inline-flex; align-items:center; gap:9px; margin-top:8px; font-size:.83rem; text-decoration:none; color:var(--ink); }
.brand-hero-address>svg { width:20px; height:20px; color:var(--blue); flex:0 0 20px; }
.brand-hero-address>span>span { color:var(--muted); }
.brand-hero-trust { margin-top:25px; border-top:1px solid var(--line); padding-top:21px; }
.brand-hero-trust .brand-hours { border:0; padding:0; margin:16px 0 0; }
.brand-hero-trust .brand-hours:first-child { margin-top:0; }
.brand-hero-review { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:.78rem; text-decoration:none; }
.brand-hero-review>strong { font-size:1.3rem; line-height:1; color:var(--ink); white-space:nowrap; }
.brand-hero-review strong small { font-size:.72rem; font-weight:500; margin-left:3px; }
.brand-hero-review>.review-stars { gap:2px; }
.brand-hero-review .review-stars svg { width:17px; height:17px; }
.brand-hero-review>span:last-child { color:var(--muted); text-decoration:underline; }
.brand-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding-block:32px; border-block:1px solid var(--line); }
.brand-benefits article { display:grid; grid-template-columns:28px minmax(0,1fr); gap:15px; align-content:start; }
.brand-benefits article>svg { color:var(--blue); width:26px; height:26px; margin-top:3px; }
.brand-benefits h3 { font-size:1.17rem; line-height:1.25; margin-bottom:10px; }
.brand-benefits p { font-size:.85rem; line-height:1.6; margin-bottom:0; }
.brand-benefits a { text-decoration-thickness:1px; }
.brand-work-scope { padding-block:60px 40px; }
.brand-work-scope h2 { font-size:clamp(2rem,3.3vw,3.25rem); }
.brand-proof { padding-top:45px; }
.brand-proof .brand-section-heading h2 { font-size:clamp(2rem,3.3vw,3.25rem); }
.brand-proof .brand-section-heading>div>p { font-size:.9rem; }
.brand-proof .brand-models { margin-top:30px; }
@media(max-width:759px) {
 .brand-landing .brand-actions,.brand-desktop-contact { display:none; }
 body:has(.brand-landing) .site-header .header-call,
 body:has(.brand-landing) .site-footer .footer-action { display:none; }
 body:has(.brand-landing) .breadcrumbs { margin-bottom:6px; }
 body:has(.brand-landing) .breadcrumbs li:not(:first-child):not(:last-child) { display:none; }
 .brand-hero { padding-block:14px 26px; gap:26px; }
 .brand-hero h1 { font-size:clamp(2rem,8.4vw,2.75rem); line-height:1.08; margin-bottom:20px; }
 .brand-hero-copy>.kicker { font-size:.65rem; line-height:1.5; margin-bottom:16px; letter-spacing:.07em; }
 .brand-lead { font-size:.92rem; line-height:1.65; margin-bottom:13px; }
 .brand-hero-address { font-size:.76rem; gap:7px; margin-top:3px; }
 .brand-hero-address>svg { width:18px; height:18px; flex-basis:18px; }
 .brand-hero-trust { margin-top:20px; padding-top:17px; }
 .brand-hero-review { gap:8px; font-size:.7rem; }
 .brand-hero-review .review-stars svg { width:15px; height:15px; }
 .brand-hero-review>strong { font-size:1.15rem; }
 .brand-hero-trust .brand-hours { margin-top:14px; }
 .brand-benefits { grid-template-columns:1fr; gap:0; padding-block:8px; }
 .brand-benefits article { padding-block:20px; gap:13px; }
 .brand-benefits article+article { border-top:1px solid var(--line); }
 .brand-benefits h3 { font-size:1.06rem; margin-bottom:6px; }
 .brand-benefits p { font-size:.83rem; line-height:1.6; }
 .brand-work-scope { padding-block:38px 16px; }
 .brand-work-scope .brand-section-heading { gap:14px; margin-bottom:20px; }
 .brand-work-scope .brand-section-heading>p { font-size:.87rem; }
 .brand-service-grid { gap:10px; }
 .brand-service-grid>a { display:grid; grid-template-columns:minmax(0,1fr) 24px; align-items:center; gap:12px; min-height:68px; padding:19px 20px; }
 .brand-service-grid>a>span,.brand-service-grid>a>p { display:none; }
 .brand-service-grid h3 { font-size:1.08rem; line-height:1.25; margin:0; }
 .brand-service-grid strong { font-size:0; margin:0; }
 .brand-service-grid strong>span { font-size:21px; line-height:1; }
 .brand-proof { padding-top:36px; }
 .brand-proof .brand-section-heading { gap:16px; margin-bottom:24px; }
 .brand-proof .brand-section-heading h2 { font-size:clamp(1.85rem,7.2vw,2.5rem); }
 .brand-proof .brand-section-heading>div>p { font-size:.87rem; }
 .brand-proof .brand-proof-count { font-size:.76rem!important; margin-top:12px; }
 .brand-location-nav { margin-block:0 28px; padding-block:22px; }
 .brand-location-nav>span { font-size:.8rem; }
 .brand-mobile-contact { background:#fff; }
}
