/* Shared service-page interface; loaded after family-specific styles. */
.service-page { --service-ink:#172839; --service-muted:#536575; --service-line:#d9e2e9; --service-blue:#245ab1; color:var(--service-ink); }
.service-page main { background:#fff; }
.service-page main .container { width:min(1160px,calc(100% - 48px)); }
.service-page main h2 { color:var(--service-ink); font-size:clamp(30px,3vw,42px); line-height:1.15; letter-spacing:-.035em; }
.service-page main h3 { color:var(--service-ink); line-height:1.3; }
.service-page main > section[id] { scroll-margin-top:102px; }
.service-page .header-main,.service-page .primary-nav { min-height:74px; }
.service-page .brand img { width:146px; }
.service-page .breadcrumb-bar { background:#fff; }
.service-page .breadcrumb-bar .container { min-height:43px; }

/* The service, location and next step are visible without a giant hero. */
.service-page .page-hero { padding:40px 0 44px; color:var(--service-ink); background:#edf2f5; }
.service-page .page-hero__grid { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:clamp(28px,4.5vw,62px); align-items:center; }
.service-page .page-hero__grid > div:first-child { padding:0; }
.service-page .page-hero .eyebrow { margin-bottom:12px; color:var(--service-blue); font-size:12px; letter-spacing:.1em; }
.service-page .page-hero h1 { max-width:680px; margin:0 0 20px; color:#142538; font-size:clamp(37px,4.25vw,57px); line-height:1.08; letter-spacing:-.04em; }
.service-page .page-hero .lead { max-width:670px; margin:0; color:#455b6d; font-size:clamp(16px,1.35vw,18px); line-height:1.58; }
.service-page .page-hero__grid > div:first-child > p:not(.lead):not(.eyebrow) { margin:14px 0 0; color:#475d6e; font-size:15px; line-height:1.55; }
.service-page .service-facts { gap:9px; margin:22px 0 0; }
.service-page .service-facts span { min-width:0; padding:9px 12px; border:1px solid #d1dde6; border-radius:5px; color:#20364a; background:#fff; font-size:13px; line-height:1.35; }
.service-page .service-facts b { margin-bottom:3px; color:#4e6680; font-size:11px; }
.service-page .service-facts span { flex:1 1 165px; }
.service-page .page-hero .actions { margin-top:27px; }
.service-page .page-hero .btn--light,.service-page .page-hero .btn--ghost-light { color:#24529a; background:transparent; border-color:#9fb1c1; }
.service-page .page-hero .btn--light:hover,.service-page .page-hero .btn--ghost-light:hover { color:#fff; background:var(--service-blue); border-color:var(--service-blue); }
.service-page .page-hero__media { min-height:0; max-height:395px; aspect-ratio:1.45; overflow:hidden; border:0; border-radius:6px; background:#d6dfe4; box-shadow:none; }
.service-page .page-hero__media img { width:100%; height:100%; min-height:0; object-fit:cover; }
.service-page .page-hero__badge { right:12px; bottom:12px; max-width:245px; padding:12px 15px; border-radius:5px; box-shadow:none; }
.service-page .page-hero__badge b { font-size:15px; }
.service-page .page-hero__badge span { font-size:12px; line-height:1.4; }
.service-page .intake-hero { color:#fff; background:#111820; }
.service-page .intake-hero h1 { color:#fff; }
.service-page .intake-hero .lead,.service-page .intake-hero .intake-hero__branches { color:#d7dfe9; }
.service-page .intake-hero .eyebrow { color:#9dbbff; }
.service-page .intake-hero .btn--light { color:#172839; background:#fff; border-color:#fff; }
.service-page .intake-hero .btn--ghost-light { color:#fff; background:transparent; border-color:#8090a1; }
.service-page .intake-hero .btn--ghost-light:hover { color:#172839; background:#fff; border-color:#fff; }
.service-page .service-jump-nav { border-bottom:1px solid var(--service-line); background:#fff; }
.service-page .service-jump-nav__inner { display:flex; flex-wrap:wrap; min-height:52px; align-items:center; gap:clamp(18px,3vw,38px); }
.service-page .service-jump-nav a { flex:none; padding:14px 0 12px; border-bottom:2px solid transparent; color:#435467; font-size:14px; font-weight:700; }
.service-page .service-jump-nav a:hover,.service-page .service-jump-nav a:focus-visible { color:var(--service-blue); border-color:var(--service-blue); }

/* Exact tariffs and individual calculations have distinct treatments. */
.service-page .service-overview { padding-block:55px 64px; }
.service-page .service-overview > .container { display:block; }
.service-page .service-overview h2,.service-page #service-prices h2 { margin-bottom:25px; }
.service-page .price-summary,.service-page .price-summary--two { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:16px; margin:0; }
.service-page .price-summary:has(> article:only-child) { max-width:720px; }
.service-page .price-summary > article { min-width:0; min-height:0; padding:26px 28px; border:1px solid var(--service-line); border-radius:8px; color:var(--service-ink); background:#fff; box-shadow:none; }
.service-page .price-summary > article > span,.service-page .price-summary__title { color:#273d51; font-size:17px; font-weight:740; line-height:1.4; }
.service-page .price-summary > article > strong,.service-page .price-summary__amount { display:block; margin:15px 0; color:#142b42; font-size:clamp(29px,2.65vw,36px); font-weight:800; line-height:1.12; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.service-page .price-summary > article > .price-summary__amount--text,.service-page .price-summary > article.service-quote-card > strong { color:#285178; font-size:clamp(22px,2vw,27px); line-height:1.25; }
.service-page .price-summary p,.service-page .price-summary__conditions { color:var(--service-muted); font-size:15px; line-height:1.55; }
.service-page .price-summary > article > p + p { margin-top:auto; padding-top:16px; }
.service-page .price-summary a,.service-page .service-overview .section-note a { color:var(--service-blue); text-decoration:underline; text-underline-offset:3px; }
.service-page .service-overview .section-note { max-width:none; margin-top:17px; color:var(--service-muted); font-size:14px; }
.service-page .price-summary--quote { overflow:hidden; gap:0; border:1px solid var(--service-line); border-radius:8px; background:#f5f8fa; }
.service-page .price-summary--quote > article { border:0; border-radius:0; background:transparent; }
.service-page .price-summary--quote > article + article { border-left:1px solid var(--service-line); }

/* Procedure has one reading column; a relevant photograph forms the second. */
.service-page .service-work-details { padding-block:64px 72px; background:#f3f6f8; }
.service-page .service-work-details > .container > h2 { margin-bottom:26px; }
.service-page .service-work-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.85fr); gap:clamp(24px,4vw,54px); align-items:start; }
.service-page .service-work-grid { display:grid; max-width:880px; grid-template-columns:minmax(0,1fr); gap:0; counter-reset:work; }
.service-page .service-work-layout .service-work-grid { max-width:none; grid-template-columns:minmax(0,1fr); }
.service-page .service-work-grid article { position:relative; min-width:0; padding:24px 0 26px 49px; border:0; border-top:1px solid #cedae2; border-radius:0; background:transparent; counter-increment:work; }
.service-page .service-work-grid article::before { content:counter(work,decimal-leading-zero); position:absolute; top:24px; left:0; color:var(--service-blue); font-size:14px; font-weight:850; font-variant-numeric:tabular-nums; }
.service-page .service-work-grid article h3 { margin:0 0 10px; font-size:20px; }
.service-page .service-work-grid article p { margin:0; color:#46596b; font-size:16px; line-height:1.65; }
.service-page .service-work-grid article p + p { margin-top:11px; }
.service-page .service-work-media { position:static; margin:0; }
.service-page .service-work-media img { width:100%; max-height:470px; aspect-ratio:1.16; object-fit:cover; border-radius:6px; }
.service-page .service-work-media figcaption { margin-top:10px; color:#5a6c7c; font-size:13px; line-height:1.5; }
.service-page .procedure-layout { gap:clamp(25px,4vw,52px); }
.service-page .procedure-photo img { max-height:430px; object-fit:cover; border-radius:6px; }

/* Page-specific evidence and decisions use one restrained component system. */
.service-page .section { padding-block:64px; }
.service-page .section--soft { background:#f4f7f9; }
.service-page .service-decision { background:#fff; }
.service-page .section--dark { color:#fff; background:#192b3c; }
.service-page .section--dark h2,.service-page .section--dark h3 { color:#fff; }
.service-page .section--dark .section-note { color:#d4dfe9; }
.service-page .section--dark .table-shell { color:var(--service-ink); }
.service-page .section--dark .table-shell td { color:var(--service-ink); }
.service-page .section--dark .table-shell td:nth-child(2) { color:var(--service-muted); }
.service-page .section-head { margin-bottom:25px; }
.service-page .section-note { color:var(--service-muted); line-height:1.6; }
.service-page .grid.model-system-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:16px; }
.service-page .card.service-card { min-height:0; padding:25px; border:1px solid var(--service-line); border-radius:8px; box-shadow:none; }
.service-page .card.service-card h3 { font-size:19px; }
.service-page .card.service-card p { color:#4a5c6e; font-size:15px; line-height:1.6; }
.service-page .photo-card--wide:not(.photo-story .photo-card--wide) { width:100%; max-height:390px; min-height:0; margin:0 0 25px; border-radius:7px; box-shadow:none; }
.service-page .photo-card--wide:not(.photo-story .photo-card--wide) img { width:100%; max-height:390px; aspect-ratio:2.5; object-fit:cover; }
.service-page .photo-card--wide figcaption { font-size:13px; line-height:1.45; }

/* Locations, answers and related pages support the decision. */
.service-page #branches { padding-block:56px 62px; color:var(--service-ink); background:#f0f4f6; }
.service-page #branches > .container { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; }
.service-page #branches .section-head { grid-column:1/-1; margin-bottom:5px; }
.service-page #branches h2 { color:var(--service-ink); }
.service-page #branches .section-note:has(a[href^="tel:"]) { max-width:none; margin:0; padding:24px; border:1px solid var(--service-line); border-radius:8px; background:#fff; color:var(--service-ink); font-size:16px; }
.service-page #branches .section-note:has(a[href^="tel:"]):first-of-type:nth-last-of-type(2) { grid-column:1/-1; max-width:720px; }
.service-page #branches .section-note:has(a[href^="tel:"]) a:first-child { font-weight:750; }
.service-page #branches .section-note a[href^="tel:"] { display:block; width:fit-content; margin-top:9px; color:var(--service-blue); font-size:17px; font-weight:800; }
.service-page #branches .section-note:not(:has(a[href^="tel:"])) { grid-column:1/-1; margin:4px 0 0; color:#5b6b79; font-size:14px; }
.service-page #branches .section-note:not(:has(a[href^="tel:"])) a { color:var(--service-blue); text-decoration:underline; text-underline-offset:3px; }
.service-page .faq-list { max-width:980px; gap:0; }
.service-page .faq-list details { border:0; border-bottom:1px solid var(--service-line); border-radius:0; background:transparent; }
.service-page .faq-list details:first-child { border-top:1px solid var(--service-line); }
.service-page .faq-list summary { padding:21px 40px 21px 0; font-size:17px; }
.service-page .faq-list summary::after { right:3px; }
.service-page .faq-list details p { padding:0 36px 20px 0; color:var(--service-muted); font-size:15px; line-height:1.6; }
.service-page .section:has(> .container > .related-links) { padding-block:53px; }
.service-page .related-links,.service-page .related-links--dense { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 25px; }
.service-page .related-links a { min-height:0; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:14px; padding:17px 0; border:0; border-bottom:1px solid var(--service-line); border-radius:0; background:transparent; box-shadow:none; }
.service-page .related-links a:hover { border-color:var(--service-blue); color:var(--service-blue); transform:none; }
.service-page .related-links b { margin:0; font-size:16px; line-height:1.4; }
.service-page .related-links a::after { content:"↗"; flex:none; color:var(--service-blue); font-size:18px; }
.service-page .related-links a { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; padding:17px 28px 17px 0; }
.service-page .related-links a::after { position:absolute; right:2px; top:50%; transform:translateY(-50%); }
.service-page .related-links a > span { display:block; margin:0; font-size:12px; line-height:1.3; }
.service-page .related-links a > b { display:block; margin:0; }
.service-page .related-links a > small { display:block; margin:0; color:var(--service-muted); font-size:14px; font-weight:500; line-height:1.45; }
.service-page .related-links a > small[data-ui-label] { display:none; }
.service-page .timing-cost-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.service-page .timing-cost-grid article { min-width:0; padding:25px 28px; border:1px solid var(--service-line); border-radius:10px; background:#fff; }
.service-page .timing-cost-grid article span { display:block; margin-bottom:14px; color:var(--service-blue); font-size:13px; font-weight:850; }
.service-page .timing-cost-grid article h3 { margin:0 0 9px; font-size:20px; }
.service-page .timing-cost-grid article p { margin:0; color:var(--service-muted); font-size:16px; line-height:1.55; }
.service-page .timing-cost-note { margin:18px 0 0; padding:18px 22px; border-left:3px solid var(--service-blue); border-radius:6px; color:#273d51; background:#e9f1fb; font-size:15px; line-height:1.55; }
.service-page .diagnostic-tariffs { max-width:720px; margin-top:18px; border:1px solid var(--service-line); border-radius:8px; background:#fff; }
.service-page .diagnostic-tariffs summary { cursor:pointer; padding:17px 20px; color:var(--service-blue); font-size:15px; font-weight:760; }
.service-page .diagnostic-tariffs > div { padding:0 20px 18px; }
.service-page .diagnostic-tariffs p { display:flex; justify-content:space-between; gap:16px; margin:0; padding:12px 0; border-top:1px solid var(--service-line); color:var(--service-muted); font-size:15px; }
.service-page .diagnostic-tariffs strong { color:var(--service-ink); white-space:nowrap; }
@media (max-width:700px) { .service-page .timing-cost-grid { grid-template-columns:1fr; } .service-page .timing-cost-grid article { padding:21px; } }

/* Existing WhatsApp handoff stays explicit, with clear phone alternatives. */
.service-page #appointment { padding-block:62px; background:#edf2f5; }
.service-page #appointment .form-shell { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(24px,4vw,52px); padding:clamp(28px,4vw,46px); border:0; border-radius:7px; background:#192b3c; box-shadow:none; }
.service-page #appointment .form-shell::before,.service-page #appointment .form-shell::after { display:none; }
.service-page #appointment .form-shell__intro { min-height:0; padding-bottom:0; }
.service-page #appointment .form-shell__vehicle { display:none; }
.service-page #appointment .form-shell h2 { color:#fff; }
.service-page #appointment .form-shell .section-note { color:#d5e1ea; }
.service-page #appointment .form-contact-links { gap:9px; }
.service-page #appointment .form-contact-links a { display:inline-flex; min-height:44px; align-items:center; padding:9px 13px; border:1px solid #6a8298; border-radius:5px; color:#c5e1ff; font-size:14px; line-height:1.3; }
.service-page #appointment .form-contact-links a:hover { border-color:#c5e1ff; color:#fff; }
.service-page #appointment .form-grid label { color:#eef4f8; font-size:14px; }
.service-page #appointment input:not([type="checkbox"]),.service-page #appointment select,.service-page #appointment textarea { border:1px solid #aabac8; border-radius:6px; color:#182a3b; background:#fff; }
.service-page #appointment select { color-scheme:light; }
.service-page #appointment .consent { color:#d4dee7; font-weight:500; }
.service-page #appointment .form-note { color:#d4dee7; font-size:13px; line-height:1.5; }
.service-page #appointment .form-note.is-success { color:#91e1ba; }

@media (max-width:1000px) {
  .service-page .page-hero__grid { grid-template-columns:1fr; }
  .service-page .page-hero__media { max-height:380px; aspect-ratio:1.75; }
  .service-page .service-work-layout,.service-page #appointment .form-shell { grid-template-columns:1fr; }
  .service-page .grid.model-system-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .service-page .topbar { display:none; }
  .service-page main h1,.service-page main h2,.service-page main h3 { hyphens:none; }
  .service-page main .container { width:min(100% - 32px,1160px); }
  .service-page .page-hero { padding:27px 0 32px; }
  .service-page .page-hero__grid { gap:24px; }
  .service-page .page-hero h1 { margin-bottom:14px; font-size:clamp(34px,9.1vw,45px); }
  .service-page .page-hero .lead { font-size:16px; line-height:1.52; }
  .service-page .page-hero .actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:22px; }
  .service-page .page-hero .actions .btn { width:100%; min-width:0; padding-inline:8px; font-size:14px; }
  .service-page .page-hero__media { max-height:270px; aspect-ratio:1.65; }
  .service-page .service-jump-nav__inner { display:flex; gap:18px; min-height:50px; overflow-x:auto; scrollbar-width:none; }
  .service-page .service-jump-nav__inner::-webkit-scrollbar { display:none; }
  .service-page .service-jump-nav a { white-space:nowrap; padding-block:14px 11px; font-size:13px; }
  .service-page .section,.service-page .service-overview,.service-page .service-work-details,.service-page #branches,.service-page #appointment { padding-block:44px; }
  .service-page .price-summary,.service-page .price-summary--two,.service-page #branches > .container,.service-page .related-links,.service-page .related-links--dense,.service-page .grid.model-system-grid { grid-template-columns:minmax(0,1fr); }
  .service-page .price-summary > article { padding:23px; }
  .service-page .price-summary--quote > article + article { border-left:0; border-top:1px solid var(--service-line); }
  .service-page #branches .section-head,.service-page #branches .section-note:not(:has(a[href^="tel:"])),.service-page #branches .section-note:has(a[href^="tel:"]):first-of-type:nth-last-of-type(2) { grid-column:1; }
  .service-page .service-work-grid article { padding-left:42px; }
  .service-page .service-work-media img { aspect-ratio:1.5; }
  .service-page .photo-card--wide:not(.photo-story .photo-card--wide) img { aspect-ratio:1.65; }
  .service-page .form-shell .form-grid { grid-template-columns:minmax(0,1fr); }
  .service-page .form-shell .form-grid .wide { grid-column:1; }
  .service-page .form-submit { display:grid; }
  .service-page .mobile-actions { padding-bottom:env(safe-area-inset-bottom); }
  .service-page .mobile-actions:has(> a:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
