/* Service areas: illustrated regional journey. Colors, type and components follow docs/REGLAS-DISENO-LUXEN.md and the tokens in styles.css. */
.service-map-page{
  --map-ink:var(--forest-deep);
  --map-line:rgba(200,162,74,.34);
  --map-glow:rgba(226,201,130,.55);
  background:var(--forest-deep);
  color:var(--surface);
}

/* Intro — same editorial pattern as the gallery and simulator: eyebrow, serif headline, italic gold second line. */
.map-intro{padding:132px 0 40px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:48px;align-items:end}
.map-intro .eyebrow{color:var(--gold)}
.map-intro .eyebrow span{margin:0 6px;color:rgba(226,201,130,.5)}
.map-intro h1{margin:0;font:500 clamp(48px,5.5vw,78px)/.96 var(--font-display);text-wrap:balance}
.map-intro h1 em{color:var(--gold-pale)}
.map-intro-aside{padding-bottom:8px}
.map-intro-aside p{max-width:440px;margin:0;color:rgba(244,241,233,.78);font-size:16px;line-height:1.65}
.map-intro-count{display:block;margin-top:24px;padding-top:18px;border-top:1px solid rgba(244,241,233,.14);color:rgba(244,241,233,.72);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.map-intro-count span{display:block;margin-top:6px;color:var(--gold);font-weight:600}

/* Map shell */
.service-map-shell{display:grid;grid-template-columns:255px minmax(0,1fr);border:1px solid var(--map-line);border-radius:22px;overflow:hidden;background:var(--forest-deep);box-shadow:var(--shadow-lg);scroll-margin-top:98px}

.city-panel{display:flex;flex-direction:column;padding:40px 20px 25px;background:linear-gradient(160deg,var(--forest-deep),var(--forest-black));border-right:1px solid var(--map-line);z-index:5}
.city-panel-heading{padding:0 9px}
.city-panel-heading>.eyebrow{margin-bottom:10px;color:var(--gold)}
.city-panel-heading>p:last-child{display:none}
.city-panel h2{margin:0;font:500 34px/1 var(--font-display);white-space:nowrap}
.city-list{display:grid;gap:8px;margin-top:28px}
.city-button{min-height:52px;display:flex;gap:13px;align-items:center;padding:8px 12px;border:1px solid transparent;border-radius:10px;color:var(--surface);font:600 15px/1.3 var(--font-body);letter-spacing:.01em;transition:background .2s ease,border-color .2s ease,color .2s ease}
.city-dot{width:14px;height:14px;border:1px solid rgba(244,241,233,.55);border-radius:50%;flex:0 0 auto}
.city-arrow{margin-left:auto;color:var(--gold-pale);font:16px var(--font-body);opacity:0;transition:opacity .2s ease}
.city-button:hover{background:rgba(217,199,163,.07);border-color:var(--map-line)}
.city-button.active{background:rgba(200,162,74,.14);border-color:rgba(200,162,74,.3);color:var(--gold-pale)}
.city-button.active .city-dot{background:var(--gold-pale);border-color:var(--gold-pale);box-shadow:inset 0 0 0 3px var(--forest-deep)}
.city-button:is(.active,:hover,:focus-visible) .city-arrow{opacity:1}
.city-panel-footer{margin-top:auto;padding-top:35px;text-align:center}
.city-panel-footer>span{display:block;color:var(--gold);font-size:24px}
.city-panel-footer p{margin:9px 0 0;color:rgba(244,241,233,.82);font:500 21px/1.25 var(--font-display)}
.city-panel-footer em{color:var(--gold-pale)}

/* Map canvas and camera */
.map-panel{position:relative;min-width:0}
.map-canvas{position:relative;height:clamp(580px,46vw,730px);isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at center,var(--forest),var(--forest-deep) 80%);touch-action:pan-y}
.map-world{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:0 0;transition:transform 1350ms cubic-bezier(.22,.72,.16,1);will-change:transform}
.regional-art{display:block;width:100%;height:100%;object-fit:fill}
.map-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(rgba(13,47,32,.14),transparent 24%,transparent 74%,rgba(7,23,15,.24))}

.city-art-plane{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:0;pointer-events:none;transition:opacity 750ms ease}
.city-art-plane.is-visible{opacity:1}
.city-art-plane>img{width:100%;height:100%;object-fit:cover;transform:scale(calc(var(--scene-zoom,1) * 1.045));transition:transform 1800ms cubic-bezier(.22,.7,.15,1);will-change:transform}
.city-art-plane.is-visible>img{transform:scale(var(--scene-zoom,1))}
.map-marker-layer{position:absolute;inset:0;z-index:3;pointer-events:none;transition:opacity 500ms}
.showing-city .map-marker-layer{opacity:0;visibility:hidden}

/* Markers — quiet gold beacons */
.map-marker{position:absolute;min-width:44px;min-height:44px;padding:8px;border:0;background:transparent;color:var(--surface);white-space:nowrap;cursor:pointer;pointer-events:auto;transform:translate(-50%,-100%) scale(var(--pin-scale,1));transform-origin:50% 100%;transition:transform 1350ms cubic-bezier(.22,.72,.16,1)}
.marker-label,.arrival-label{position:relative;z-index:2;display:block;padding:7px 12px;border:1px solid rgba(226,201,130,.5);border-radius:8px;background:rgba(13,47,32,.94);font:500 20px/1 var(--font-display);box-shadow:0 6px 18px rgba(3,14,9,.3);transition:color .2s ease,background .2s ease}
.marker-stem{position:relative;display:block;width:3px;height:60px;margin:auto;background:linear-gradient(transparent,var(--gold-pale));box-shadow:0 7px 10px var(--map-glow)}
.marker-stem::before{content:"";position:absolute;left:-6px;top:0;width:15px;height:100%;background:linear-gradient(transparent,rgba(226,201,130,.25));filter:blur(3px)}
.marker-point{position:absolute;bottom:3px;left:calc(50% - 8px);width:16px;height:7px;border-radius:50%;background:#f1d894;box-shadow:0 0 14px var(--map-glow)}
.map-marker::after{content:"";position:absolute;bottom:-2px;left:calc(50% - 18px);width:36px;height:14px;border:1px solid var(--gold-pale);border-radius:50%;box-shadow:0 0 6px var(--map-glow);animation:beacon-breathe 3.6s ease-in-out infinite}
.map-marker:nth-child(2n)::after{animation-delay:-1.8s}
.map-marker:hover .marker-label,.map-marker.active .marker-label{background:var(--gold-pale);color:var(--forest-deep)}
.map-marker.active{z-index:5}

.arrival-marker{position:absolute;left:48%;top:61%;display:flex;flex-direction:column;align-items:center;color:var(--surface);transform:translate(-50%,-100%)}
.arrival-beam{position:relative;width:4px;height:125px;background:linear-gradient(transparent,var(--gold-pale));box-shadow:0 0 16px var(--map-glow)}
.arrival-beam::before{content:"";position:absolute;inset:0 -12px;background:linear-gradient(transparent,rgba(226,201,130,.3));filter:blur(5px)}
.arrival-ring{width:65px;height:21px;border:2px solid var(--gold-pale);border-radius:50%;box-shadow:0 0 0 5px rgba(200,162,74,.2),0 0 20px var(--map-glow);animation:beacon-breathe 3.6s ease-in-out infinite}
.arrival-label{margin-bottom:6px;font-size:24px}
.journey-trail{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.journey-trail path{fill:none;stroke:var(--gold-pale);stroke-width:2;stroke-dasharray:5 7;animation:route-flow 2s linear infinite}
.showing-city .journey-trail{opacity:0}

/* Map controls — ivory surfaces, forest text, Manrope like the rest of the interface */
.map-toolbar{position:absolute;z-index:6;inset:20px 20px auto;display:flex;align-items:center;justify-content:space-between;gap:15px;pointer-events:none}
.map-breadcrumb{color:var(--surface);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 2px 6px rgba(7,23,15,.8)}
.map-toolbar button{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--sand);border-radius:8px;background:var(--surface);color:var(--forest-deep);font-size:13px;font-weight:700;cursor:pointer;pointer-events:auto;box-shadow:0 6px 20px rgba(3,14,9,.18);transition:transform .2s ease}
.map-toolbar button:hover{transform:translateY(-2px)}
.map-zoom{position:absolute;right:20px;top:80px;z-index:6;display:grid;overflow:hidden;border-radius:8px;box-shadow:0 6px 20px rgba(3,14,9,.18)}
.map-zoom[hidden]{display:none}
.map-zoom button{min-width:44px;min-height:44px;border:0;background:var(--surface);color:var(--forest-deep);font-size:22px;cursor:pointer}
.map-zoom button+button{border-top:1px solid var(--sand)}
.map-zoom button:disabled{color:var(--muted);cursor:default}

.map-compass{position:absolute;left:20px;bottom:20px;z-index:3;display:grid;gap:2px;color:var(--gold-pale);font-size:12px;font-weight:700;text-align:center;text-shadow:0 1px 5px rgba(7,23,15,.9)}
.map-compass span+span{font-size:22px}
.map-help{position:absolute;z-index:3;bottom:22px;left:23%;margin:0;padding:10px 18px;border:1px solid var(--map-line);border-radius:999px;background:rgba(244,241,233,.94);color:var(--forest-deep);font-size:14px;font-weight:600;white-space:nowrap;pointer-events:none;transform:translateX(-50%)}
.map-mode{display:none}

/* Callout card */
.map-callout{position:absolute;right:20px;bottom:20px;z-index:7;display:grid;grid-template-columns:88px 1fr;column-gap:16px;row-gap:10px;width:380px;min-height:132px;padding:16px;border:1px solid rgba(217,199,163,.7);border-radius:14px;background:var(--surface);color:var(--charcoal);box-shadow:0 18px 44px rgba(3,14,9,.28)}
.callout-image{grid-row:1 / 3;align-self:center;width:88px;height:104px;border-radius:10px;object-fit:cover}
.callout-copy .eyebrow{display:none}
.callout-copy h2{margin:1px 0 0;color:var(--forest-deep);font:500 28px/1.06 var(--font-display)}
.callout-copy>p:last-child{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.map-quote{grid-column:2;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 16px;border-radius:8px;background:var(--forest);color:#fff;font-size:13px;font-weight:700;box-shadow:0 10px 28px rgba(3,32,19,.22);transition:background .2s ease,transform .2s ease}
.map-quote:hover{background:#28633d;transform:translateY(-2px)}
.map-attribution-note{margin-top:16px;margin-bottom:56px;color:rgba(244,241,233,.6);font-size:12px;line-height:1.6;text-align:right}
.map-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.service-map-shell :is(a,button):focus-visible{outline:3px solid var(--gold-pale);outline-offset:3px}
.map-noscript{padding:24px 0;font-size:16px}
.map-noscript a{text-decoration:underline}

/* Closing band — light ivory for the site's light/dark rhythm */
.map-detail{padding:96px 0 112px;background:var(--surface);color:var(--charcoal)}
.map-detail-inner{display:grid;grid-template-columns:1fr 1fr auto;gap:48px;align-items:center}
.map-detail h2{margin:0;color:var(--forest-deep);font:500 clamp(38px,4vw,58px)/1 var(--font-display)}
.map-detail h2 em{color:var(--forest)}
.map-detail-inner>p{max-width:460px;margin:0;color:var(--muted);font-size:16px;line-height:1.7}
.map-detail-actions{display:grid;justify-items:start;gap:4px}
.map-detail .button{white-space:nowrap}
.map-detail .text-link{margin-top:14px;font-size:14px}

@keyframes beacon-breathe{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes route-flow{to{stroke-dashoffset:-48}}

.is-paused *,.is-paused *::after{animation-play-state:paused!important}
.service-map-shell:not(.map-ready) .map-toolbar,.service-map-shell:not(.map-ready) .map-help{display:none}

@media(max-width:1150px){
  .service-map-shell{grid-template-columns:220px minmax(0,1fr)}
  .city-panel{padding-inline:12px}
  .city-panel h2{font-size:32px}
  .city-button{font-size:15px}
  .map-breadcrumb{display:none}
  .map-toolbar{justify-content:flex-end}
  .map-callout{width:335px;grid-template-columns:70px 1fr;gap:10px}
  .callout-image{width:70px}
  .callout-copy h2{font-size:26px}
  .map-help{left:20%;bottom:24px;font-size:13px}
  .map-detail-inner{grid-template-columns:1fr 1fr}
  .map-detail-actions{grid-column:1 / -1}
}

@media(max-width:900px){
  .map-intro{grid-template-columns:1fr;gap:24px}
}

@media(max-width:900px) and (min-width:761px){
  .map-callout{width:calc(100% - 40px);max-width:335px}
  .map-help{bottom:178px;left:50%}
  .map-canvas{height:650px}
  .marker-label{font-size:17px}
}

@media(max-width:760px){
  .map-intro{padding-top:112px;padding-bottom:28px}
  .map-intro h1{font-size:clamp(44px,11vw,56px)}
  .map-intro-aside p{font-size:15px}
  .map-intro-count{margin-top:18px;padding-top:14px}
  .service-map-shell{grid-template-columns:minmax(0,1fr);border-radius:16px}
  .city-panel{padding:20px 16px 14px;border-right:0;border-bottom:1px solid var(--map-line)}
  .city-panel-heading{padding:0}
  .city-panel h2{font-size:29px}
  .city-panel-footer{display:none}
  .city-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:14px}
  .city-button{min-height:44px;justify-content:center;gap:7px;padding:8px 4px;border-color:rgba(200,162,74,.18);font:600 13px/1.2 var(--font-body)}
  .city-dot{width:8px;height:8px}
  .city-arrow{display:none}
  .map-canvas{height:385px}
  .map-toolbar{inset:12px 12px auto}
  .map-toolbar button{padding:8px 12px;font-size:12px}
  .map-zoom{top:auto;bottom:14px;right:12px}
  .marker-label{padding:6px 8px;font-size:15px}
  .marker-stem{height:37px}
  .map-compass{left:13px;bottom:15px}
  .map-help{left:45%;bottom:17px;max-width:calc(100% - 120px);padding:8px 12px;font-size:13px;text-align:center;white-space:normal}
  .map-callout{position:relative;inset:auto;width:100%;max-width:none;grid-template-columns:80px 1fr;padding:18px;border:0;border-top:1px solid var(--map-line);border-radius:0}
  .callout-image{width:80px;height:110px}
  .callout-copy h2{font-size:28px}
  .callout-copy>p:last-child{font-size:13px}
  .arrival-beam{height:80px}
  .arrival-label{font-size:21px}
  .arrival-marker{top:59%}
  .map-attribution-note{margin-bottom:40px;text-align:left}
  .map-detail{padding:64px 0 88px}
  .map-detail-inner{grid-template-columns:1fr;gap:24px}
  .service-map-page .service-bar .service-areas{display:none}
  .service-map-page .service-bar>div:last-child{width:100%;justify-content:space-between}
  .service-map-page .service-bar{padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .service-map-page .service-bar>div:last-child>span{display:block}
}

@media(prefers-reduced-motion:reduce){
  .service-map-shell *,.service-map-shell *::before,.service-map-shell *::after{transition:none!important;animation:none!important}
  .map-world,.city-art-plane>img{will-change:auto}
  .map-toolbar button:hover,.map-quote:hover{transform:none}
}

/* Gallery visual language: editorial frame, paper surfaces and quiet borders. */
.service-map-page {
  /* Gallery is the visual source of truth for this page. */
  --forest: #0d2f20;
  --deep: #07170f;
  --gold: #e2c982;
  --paper: #f4f1e9;
  --ink: #183c2a;
  --muted: #62675e;
  --ease: cubic-bezier(.22,.8,.24,1);
  /* Keep the service-area component API compatible with the shared site CSS. */
  --forest-deep: var(--forest);
  --forest-black: var(--deep);
  --gold-pale: var(--gold);
  --surface: var(--paper);
  --charcoal: var(--ink);
  background-color: #0d2f20;
  background-image: radial-gradient(ellipse at 20% 25%, rgba(36,75,52,.34), transparent 65%);
  font-size: 15px;
  line-height: 1.6;
}
.service-map-page main {
  max-width: 1480px;
  margin-inline: auto;
  padding-inline: 5vw;
}
.service-map-page .map-intro {
  padding-top: 132px;
  padding-bottom: 34px;
}
.service-map-page .map-intro h1 {
  font-size: clamp(44px, 5vw, 72px);
  line-height: .98;
  letter-spacing: -.025em;
  margin: 16px 0;
}
.service-map-page .eyebrow {
  color: #e2c982;
  font-size: 10px;
  line-height: 1.6;
  font-weight: 600;
}
.service-map-page .map-intro-aside p {
  color: #d2d9cf;
  font-size: 13px;
  line-height: 1.6;
}
.service-map-page .map-intro-count {
  border-top-color: rgba(255,255,255,.12);
  color: #c2ccc0;
  font-size: 10px;
}
.service-map-page .service-map-shell {
  border-radius: 2px;
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 35px 70px rgba(0,0,0,.4);
}
.service-map-page .gallery-header .brand {
  width: auto;
  display: grid;
  justify-items: center;
  flex: 0 0 auto;
  font: inherit;
  letter-spacing: normal;
  text-align: center;
}
.service-map-page .gallery-header .brand-main {
  font: 500 30px/1 var(--font-display);
  letter-spacing: .08em;
}
.service-map-page .gallery-header .brand-sub {
  display: block;
  margin-top: 5px;
  font: 700 9px/1 var(--font-body);
  letter-spacing: .42em;
  text-transform: uppercase;
}
.service-map-page .gallery-header .desktop-nav {
  gap: clamp(18px, 2vw, 34px);
}
.service-map-page .gallery-header .desktop-nav a {
  font-size: 14px;
}
.service-map-page .city-panel {
  background: linear-gradient(160deg, #19392a, #07170f);
}
.service-map-page .service-map-shell{grid-template-columns:300px minmax(0,1fr)}
.service-map-page .city-panel{padding:28px 14px 20px}
.service-map-page .city-panel-heading{padding:0 8px}
.service-map-page .city-panel-heading>p:last-child{display:block;margin:9px 0 0;color:rgba(244,241,233,.64);font-size:11px;line-height:1.4}
.service-map-page .city-panel h2{font-size:30px;white-space:normal}
.service-map-page .city-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:18px}
.service-map-page .city-button{min-height:36px;gap:7px;padding:5px 7px;border-radius:6px;font-size:11px;line-height:1.2}
.service-map-page .city-dot{width:10px;height:10px}
.service-map-page .city-arrow{display:none}
.service-map-page .city-panel-footer{padding-top:16px}
.service-map-page .city-panel-footer>span{font-size:18px}
.service-map-page .city-panel-footer p{margin-top:4px;font-size:18px}
.service-map-page .map-canvas {
  background: #19392a;
}
.service-map-page .map-callout {
  border-radius: 2px;
  box-shadow: 0 18px 44px rgba(0,0,0,.35);
}
.service-map-page .map-detail {
  margin-inline: calc(50% - 50vw);
  padding-inline: 5vw;
  border-top: 1px solid rgba(24,60,42,.12);
}
.service-map-page .map-detail-inner {
  max-width: 1380px;
  margin-inline: auto;
}
.service-map-page .map-attribution-note {
  font-size: 10px;
  letter-spacing: .02em;
}
.service-map-page > .site-footer {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding: 78px 0 32px;
  font-size: 15px;
  line-height: 1.6;
}
@media(max-width:760px){
  .service-map-page main { padding-inline: 24px; }
  .service-map-page .map-intro { padding-top: 112px; }
  .service-map-page .map-detail { padding-inline: 24px; }
}

/* Keep the reusable header behavior and scale identical to Gallery. */
@media(max-width:900px){
  .service-map-page .gallery-header{padding:12px 24px}
  .service-map-page .gallery-header .desktop-nav{display:none}
  .service-map-page .gallery-header .header-actions{margin-left:auto}
  .service-map-page .gallery-header .menu-toggle{display:grid}
  .service-map-page .gallery-header .mobile-nav{position:absolute;top:100%;right:24px;width:min(340px,calc(100vw - 48px));padding:12px;background:rgba(8,35,23,.98);border:1px solid rgba(255,255,255,.14);border-radius:12px;box-shadow:0 30px 90px rgba(3,14,9,.32)}
  .service-map-page .gallery-header .mobile-nav.open{display:grid}
  .service-map-page .gallery-header .mobile-nav a{min-height:44px;padding:10px 12px;border-radius:7px}
  .service-map-page .gallery-header .mobile-nav a:hover{background:rgba(255,255,255,.08)}
}
@media(max-width:680px){
  .service-map-page .gallery-header{min-height:70px;padding:9px 14px}
  .service-map-page .gallery-header .brand{width:100px}
  .service-map-page .gallery-header .brand-main{font-size:30px}
  .service-map-page .gallery-header .header-actions{gap:10px}
  .service-map-page .gallery-header .phone-link span,
  .service-map-page .gallery-header .header-quote{display:none}
  .service-map-page .gallery-header .phone-link{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:8px}
  .service-map-page .gallery-header .phone-link svg{width:22px}
  .service-map-page .gallery-header .mobile-nav{right:14px;width:min(340px,calc(100vw - 28px))}
}

/* Geographic boundary map — a quiet, local-first counterpart to the editorial gallery language. */
.service-map-page .map-canvas{background:radial-gradient(circle at 43% 36%,#315f43 0,#1b4931 42%,#0c2d1e 100%)}
.service-map-page .map-world{inset:0;width:100%;height:100%;transform-origin:0 0;transition-property:transform;overflow:visible}
.service-map-page .boundary-map{display:block;width:100%;height:100%;overflow:visible}
.service-map-page .county-boundary{fill:url(#county-light);stroke:rgba(226,201,130,.74);stroke-width:2.6;vector-effect:non-scaling-stroke}
.service-map-page .map-terrain-lines{fill:url(#terrain-lines);opacity:.8;pointer-events:none}
.service-map-page .city-shape{cursor:pointer;outline:none;touch-action:manipulation}
.service-map-page .city-shape path{fill:rgba(244,241,233,.12);stroke:rgba(244,241,233,.5);stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill .24s ease,stroke .24s ease,filter .24s ease}
.service-map-page .city-shape:hover path,.service-map-page .city-shape:focus path{fill:rgba(226,201,130,.38);stroke:#f4f1e9;filter:drop-shadow(0 0 7px rgba(226,201,130,.7))}
.service-map-page .city-shape.active path{fill:rgba(226,201,130,.72);stroke:#fff7dd;stroke-width:3;filter:drop-shadow(0 0 11px rgba(226,201,130,.88))}
.service-map-page .map-city-label{fill:#f4f1e9;font:700 15px/1 var(--font-body);letter-spacing:.03em;paint-order:stroke;stroke:#0d2f20;stroke-width:4px;stroke-linejoin:round;pointer-events:none;transition:fill .24s ease}
.service-map-page .map-label-leader{stroke:rgba(244,241,233,.75);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}
.service-map-page .map-city-label{font-size:11px}
.service-map-page .city-shape.active .map-city-label{fill:#102f20;stroke:#f4f1e9;stroke-width:2px}
.service-map-page .map-vignette{z-index:3;background:linear-gradient(90deg,rgba(7,23,15,.22),transparent 19%,transparent 82%,rgba(7,23,15,.18)),linear-gradient(0deg,rgba(7,23,15,.32),transparent 22%)}
.service-map-page .map-toolbar,.service-map-page .map-zoom,.service-map-page .map-compass,.service-map-page .map-help{z-index:5}
.service-map-page .map-help{left:50%;bottom:20px;transform:translateX(-50%);max-width:calc(100% - 184px);text-align:center}
.service-map-page .map-selection-footer{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(220px,1.15fr) max-content minmax(170px,.7fr);gap:22px;align-items:center;padding:18px 22px;border-top:1px solid rgba(226,201,130,.32);background:linear-gradient(100deg,#0d2f20,#153b28);color:var(--surface)}
.service-map-page .map-selection-heading .eyebrow{margin:0 0 5px;color:var(--gold-pale);font-size:9px}
.service-map-page .map-selection-heading h2{margin:0;color:var(--surface);font:500 clamp(25px,2vw,31px)/1.02 var(--font-display)}
.service-map-page .map-selection-note{margin:0;color:rgba(244,241,233,.78);font-size:13px;line-height:1.5}
.service-map-page .map-hours{display:grid;gap:3px;margin:0;white-space:nowrap;color:#f4f1e9;font:600 12px/1.35 var(--font-body)}
.service-map-page .map-hours span{color:var(--gold-pale);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.service-map-page .map-selection-footer .map-quote{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 15px;border-radius:6px}
.service-map-page .map-selection-footer .map-quote{grid-column:auto}
.service-map-page .map-data-error{margin:auto;padding:32px;color:var(--surface);font-size:16px}
.service-map-page .map-attribution-note{max-width:1380px;color:rgba(244,241,233,.7)}
.service-map-page .coverage-directory{padding-top:44px;padding-bottom:0}
.service-map-page .coverage-directory .eyebrow{margin:0 0 8px}
.service-map-page .coverage-directory h2{margin:0 0 18px;color:var(--surface);font:500 clamp(30px,3vw,44px)/1 var(--font-display)}
.service-map-page .coverage-city-list{display:flex;flex-wrap:wrap;gap:9px 10px}
.service-map-page .coverage-city-list a{min-height:36px;display:inline-flex;align-items:center;padding:7px 12px;border:1px solid rgba(244,241,233,.2);border-radius:999px;color:rgba(244,241,233,.86);font-size:12px;transition:background .2s ease,color .2s ease,border-color .2s ease}
.service-map-page .coverage-city-list a:hover,.service-map-page .coverage-city-list a:focus-visible,.service-map-page .coverage-city-list a.active{border-color:var(--gold);background:rgba(226,201,130,.13);color:var(--gold-pale)}
.service-map-page .map-canvas[data-renderer='boundary-map'] .map-zoom{display:grid!important}

@media(max-width:760px){
  .service-map-page .map-canvas{height:420px}
  .service-map-page .service-map-shell{grid-template-columns:1fr}
  .service-map-page .city-panel{padding:22px 14px 18px;border-right:0;border-bottom:1px solid var(--map-line)}
  .service-map-page .city-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:14px}
  .service-map-page .city-button{min-height:44px}
  .service-map-page .city-panel-footer{display:none}
  .service-map-page .map-world{transition-duration:0ms!important}
  .service-map-page .map-city-label{font-size:10px;stroke-width:4px}
  .service-map-page .city-shape path{stroke-width:2.25}
  .service-map-page .map-help{bottom:18px;max-width:calc(100% - 116px);font-size:12px;line-height:1.35}
  .service-map-page .map-selection-footer{grid-template-columns:1fr;gap:14px;padding:20px 18px}
  .service-map-page .map-selection-note{font-size:13px}
  .service-map-page .map-hours{white-space:normal}
  .service-map-page .map-selection-footer .map-quote{width:100%}
  .service-map-page .coverage-directory{padding-top:32px}
  .service-map-page .coverage-city-list{gap:8px}
  .service-map-page .coverage-city-list a{min-height:34px;padding:6px 10px;font-size:11px}
}

@media(prefers-reduced-motion:reduce){
  .service-map-page .city-shape path,.service-map-page .map-city-label{transition:none}
}
