/* Services and Location are white intervals; the footer stays black. */
.services, .location {
  position: relative;
  isolation: isolate;
  background: #fff;
  color: #111;
}
.services::before, .location::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: #fff;
  pointer-events: none;
}

.services .service-heading h3 { color: #111; }
.services .results-link { color: #4d4d4d; }
.services .results-link:hover { color: #111; }
.services .section-rule { background: #d2d2d2; }

/* Three quiet choices, with one clear booking action on each. */
.services, .showcase + .services { min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding-block:clamp(112px,10vh,160px); }
.services-scroll.has-exit > .services { background:transparent; }
.services-scroll.has-exit > .services::before { clip-path:inset(0 0 var(--services-exit-lift,0px) 0); }
.services-scroll.has-exit .section-rule { opacity:calc(1 - var(--services-exit-progress,0)); }
.services-header, .services .service-grid, .services .service-price-note { width:min(100%,1480px); margin-inline:auto; }
.services-header { justify-content:center; text-align:center; margin-bottom:clamp(46px,5vw,76px); }
.services-header h2 { font-size:clamp(46px,5.2vw,76px); font-weight:600; line-height:1.04; letter-spacing:-.05em; text-wrap:balance; }
.services .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,2.4vw,42px); align-items:stretch; }
.services .service-card, .services .service-card:last-child { display:flex; flex-direction:column; align-items:stretch; grid-column:auto; justify-self:stretch; width:auto; min-height:0; padding:0; border:0; border-radius:0; background:transparent; transform-origin:center bottom; }
.services .service-card:hover, .services .service-card:focus-within { background:transparent; }
.services .service-image-wrap { width:100%; height:auto; aspect-ratio:1.42; border-radius:0; transition:border-radius .35s cubic-bezier(.16,1,.3,1); }
.services .service-image, .services .service-card:hover .service-image, .services .service-card:focus-within .service-image { border-radius:0; transform:none; transition:border-radius .35s cubic-bezier(.16,1,.3,1); }
.services .service-image > img { transition:transform .55s cubic-bezier(.16,1,.3,1); }
.services .service-card:is(:hover,:focus-within) .service-image-wrap,
.services .service-card:is(:hover,:focus-within) .service-image { border-radius:15px; }
.services .service-card:is(:hover,:focus-within) .service-image > img { transform:scale(1.065); }
.services .service-heading { display:block; min-width:0; flex:1; margin:20px 0 0; padding:0; font-family:inherit; }
.services .service-heading-top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.services .service-heading h3 { font-size:clamp(20px,2vw,25px); font-weight:600; line-height:1.2; letter-spacing:-.035em; text-transform:none; transform:none; transition:none; }
.services .service-card:is(:hover,:focus-within) .service-heading h3 { transform:none; }
.services .service-heading p { margin:8px 0 0; color:#555; font-size:14px; line-height:1.5; }
.services .service-price { flex:none; color:#111; font-size:22px; font-weight:500; line-height:1.2; letter-spacing:-.025em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.services .service-price-prefix { color:#555; font-size:13px; font-weight:400; letter-spacing:0; }
.services .service-actions { display:flex; align-items:stretch; gap:8px; width:100%; margin-top:24px; padding:0; }
.services .service-actions .service-quote-button { flex:1; min-width:0; min-height:52px; padding:14px 18px; background:#111; color:#fff; font-size:14px; transform:none; }
.services .service-card:has(.service-image:hover, .service-heading:hover, .service-quote-button:hover) .service-actions .service-quote-button { background:#008cff; color:#000; transform:none; }
.services .service-card .service-actions .service-quote-button:is(:hover,:focus-visible) { background:#008cff; color:#000; transform:none; }
.services .service-quote-arrow { width:18px; height:18px; transform:none; }
.services .service-info-button { position:static; display:flex; align-items:center; justify-content:center; flex:none; width:auto; height:auto; min-height:52px; padding:0 18px; border:1px solid #ddd; border-radius:8px; background:#fff; color:#111; font-size:13px; font-weight:500; backdrop-filter:none; opacity:1; pointer-events:auto; transform:none; transition:background .15s ease; }
.services .service-info-button:is(:hover,:focus-visible) { background:#f3f3f3; color:#111; }
.services .service-actions button:focus-visible { outline:2px solid #111; outline-offset:3px; }
.services .service-card .service-actions button:active { transform:scale(.98); }
.services .service-price-note { margin-top:24px; margin-bottom:0; color:#666; font-size:12px; line-height:1.5; }
.services .section-rule { position:absolute; bottom:40px; left:50%; width:min(100%,1480px); margin:0; transform:translateX(-50%); background:#e8e8e8; }
@media(max-width:1000px) and (min-width:781px) {
  .services .service-grid { gap:20px; }
  .services .service-heading-top { flex-wrap:wrap; gap:6px; }
  .services .service-heading h3 { flex-basis:100%; }
  .services .service-actions .service-quote-button { padding-inline:12px; }
  .services .service-info-button { padding-inline:12px; }
}
@media(max-width:780px) {
  .services, .showcase + .services { width:calc(100% - 36px); padding-block:88px; }
  .services-header { align-items:center; margin-bottom:34px; }
  .services-header h2 { font-size:clamp(40px,9vw,58px); }
  .services .service-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
  .services .service-image-wrap { aspect-ratio:1.55; }
  .services .service-heading { margin-top:16px; }
  .services .service-heading h3 { font-size:23px; }
  .services .service-price { font-size:21px; }
  .services .service-heading p { font-size:13px; }
  .services .service-actions { margin-top:18px; }
  .services .service-price-note { margin-top:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .services .service-image-wrap, .services .service-image, .services .service-image > img { transition:none; }
  .services .service-card:is(:hover,:focus-within) .service-image > img { transform:none; }
}

.location .footer-area-copy,
.location .travel-checker label,
.location .travel-address-status,
.location .travel-undo,
.location .travel-result p,
.location .travel-result .travel-calculation,
.location .travel-result .travel-matched-address { color: #555; }
.location .travel-result strong { color: #111; }
.location .travel-result.is-free strong { color: #005fae; }
.location .footer-map-key,
.location .footer-map-credit { color: #444; }
.location .footer-map-credit a:hover { color: #111; }
.location .cart-map-panel { border: 1px solid #d2d2d2; }

.footer { display: flow-root; position:relative; isolation:isolate; background:#000; color:#fff; }
.footer::before { content:''; position:absolute; z-index:-1; inset:0; left:50%; width:100vw; transform:translateX(-50%); background:#000; pointer-events:none; }

.site-header { --header-surface:#000; width:100%; background:transparent; color:#fff; transition:transform .28s cubic-bezier(.16,1,.3,1); }
.site-header.is-light { --header-surface:#fff; color:#111; }
.site-header.is-solid { background:var(--header-surface); }
.site-header .cart-button img { transition:transform .45s cubic-bezier(.2,.8,.2,1); }
@media(min-width:1100px) {
  .site-header { padding-inline:max(calc(var(--site-unit) * 7),calc((100vw - 1800px) / 2 + var(--site-unit) * 7)); }
}
.site-header.is-light .cart-button img { filter: invert(1); }
.site-header.is-light .main-nav a:hover,
.site-header.is-light .main-nav button:hover { color: #555; }

/* Navigation uses the same compact, square controls as the detail flow. */
.site-header { --nav-hover:#ffffff12; --nav-border:#ffffff35; --nav-button:#fff; --nav-button-text:#111; display:block; padding:30px 28px 12px; }
.site-header.is-light { --nav-hover:#00000008; --nav-border:#00000024; --nav-button:#111; --nav-button-text:#fff; }
.site-header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:clamp(32px,4vw,64px); width:min(100%,calc(var(--site-unit) * 77.78)); margin-inline:auto; }
.site-header .brand { display:flex; align-items:center; min-height:44px; font-size:25px; font-weight:600; letter-spacing:-.06em; line-height:1; }
.site-header .main-nav { grid-column:1; grid-row:1; justify-content:space-between; gap:4px; width:min(100%,820px); padding:0; }
.site-header .main-nav a,
.site-header .main-nav button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 14px; border-radius:8px; color:inherit; font-size:18px; font-weight:500; line-height:1.2; letter-spacing:-.02em; text-transform:none; cursor:pointer; transition:background .15s ease; }
.site-header .main-nav a:hover,
.site-header .main-nav button:hover { background:var(--nav-hover); color:inherit; }
.site-header .main-nav button { margin-left:8px; border:1px solid var(--nav-border); }
.site-header .cart-button { grid-column:2; grid-row:1; display:flex; align-items:center; justify-content:center; gap:9px; width:auto; min-height:48px; padding:0 16px; border-radius:8px; background:var(--nav-button); color:var(--nav-button-text); font-size:18px; cursor:pointer; transition:background .18s ease,color .18s ease; }
.site-header .cart-button img,
.site-header .cart-button:hover img { width:20px; height:20px; transform:none; filter:invert(1); transition:none; }
.site-header.is-light .cart-button img,
.site-header.is-light .cart-button:hover img { filter:none; }
.site-header .cart-button:hover { background:#008cff; color:#000; }
.site-header.is-light .cart-button:hover img { filter:invert(1); }
.cart-button-label { font-size:15px; font-weight:600; white-space:nowrap; letter-spacing:-.02em; }
.site-header :is(a,button):focus-visible { outline:2px solid currentColor; outline-offset:3px; }
/* A quiet two-control mobile bar, with full-size links in a disclosure. */
.mobile-menu { display:none; }
@media(max-width:850px), (pointer:coarse) and (max-height:600px) {
  .site-header { padding:16px 18px 6px; }
  .site-header-inner { position:relative; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"menu spacer connect"; gap:16px; width:100%; }
  .mobile-menu { display:inline-flex; grid-area:menu; align-items:center; justify-content:flex-start; justify-self:start; min-width:44px; min-height:44px; padding:0; border:0; background:transparent; color:inherit; font-family:inherit; font-size:15px; font-weight:500; line-height:1.2; cursor:pointer; }
  .site-header .cart-button { grid-area:connect; justify-self:end; height:38px; min-height:38px; padding:0 14px; border-radius:7px; }
  .cart-button-label { font-size:12px; }
  .site-header .main-nav { display:none; position:absolute; top:calc(100% + 6px); inset-inline:-18px; width:auto; padding:10px 18px 18px; border-bottom:1px solid var(--nav-border); background:var(--header-surface); color:inherit; grid-template-columns:1fr 1fr; gap:4px; white-space:normal; }
  .site-header.is-menu-open { background:var(--header-surface); }
  .site-header.is-menu-open .main-nav { display:grid; }
  .site-header .main-nav a { min-height:48px; justify-content:flex-start; padding:0 12px; font-size:16px; }
  .header-space { height:82px; }
}
@media(max-width:760px) {
  .services-header h2,.footer-location-title { font-size:clamp(52px,13vw,86px); }
  .services .service-heading h3 { font-size:25px; }
  .services .service-heading > strong { font-size:18px; }
  .services .service-actions .service-quote-button { min-height:50px; padding:13px 18px; font-size:15px; }
  .about p { font-size:clamp(25px,6vw,38px); }
  .location { scroll-margin-top:0; }
  .location .footer-cta { display:flex; flex-direction:column; align-items:stretch; gap:28px; }
  .location .footer-map-panel { order:0; grid-template-columns:1fr; gap:14px; margin:0; }
  .location .footer-map-panel .cart-map-panel { grid-column:1; grid-row:1; height:300px; }
  .location .footer-map-key { grid-column:1; grid-row:2; flex-direction:row; justify-content:center; gap:24px; font-size:12px; }
}
@media(max-width:760px) {
  .location .footer-service-area { display:contents; }
  .location .footer-service-area h3 { order:0; margin:0; }
  .location .footer-area-copy { order:0; margin:-16px 0 -10px; }
  .location .travel-checker { order:0; margin:0; }
  .location .location-access-choice, .location .travel-address-choices { order:2; margin:0; }
}

@media(min-width:851px) { .header-space { height:96px; } .site-header .main-nav { min-width:0; } }
.hero-region { transform:translateY(-6px); }
