/* Spark location finder: readable cards first, with a progressively enhanced map. */
.location-finder{background:#fff;scroll-margin-top:95px}
.finder-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px}
.finder-heading .eyebrow{margin-bottom:12px}
.finder-heading h2{font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.9rem,3.4vw,2.5rem);font-weight:750;letter-spacing:-.035em;line-height:1.15;text-transform:none}
.finder-heading>p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.6;margin:0;max-width:380px}
.finder-controls,.finder-status,.finder-map-panel{display:none}
.location-finder.finder-ready .finder-controls,.location-finder.js-ready .finder-controls{display:flex}
.finder-controls{gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.finder-controls button{min-height:46px;border:1px solid #9aaab3;border-radius:7px;background:#fff;color:var(--ink);font-size:15px;font-weight:700;line-height:1.3;padding:10px 16px}
.finder-controls button:hover{background:#f0f4f5}
.finder-view-toggle{display:inline-flex;gap:3px;padding:3px;background:#f0f4f5;border:1px solid var(--line);border-radius:10px}
.finder-view-toggle button{border-color:transparent;min-width:85px;min-height:44px;background:transparent}
.finder-view-toggle button[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:0 1px 3px #102b3f20}
.finder-controls .finder-locate{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.finder-locate svg,.finder-card-actions svg{width:18px;height:18px;flex:none}
.finder-controls .finder-reset{border-color:transparent;text-decoration:underline;text-underline-offset:4px;font-weight:400}
.location-finder.finder-ready .finder-status,.location-finder.js-ready .finder-status{display:block}
.finder-status{font-size:14px;color:var(--muted);line-height:1.5;min-height:23px;margin:0 0 15px}
.finder-layout,.finder-list,.finder-map-panel,.finder-card,.finder-card-title{min-width:0}
.finder-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.finder-card{position:relative;padding:18px;background:#fff;border:1px solid #bdcbd1;border-radius:12px;transition:border-color .15s,background-color .15s;scroll-margin-top:110px}
.finder-card.is-selected{border-color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink);background:#f4f8fa}
.finder-card-top{display:flex;align-items:center;gap:13px}
.finder-photo,.finder-photo picture{display:block;width:80px;flex:0 0 80px}
.finder-photo{border-radius:8px;overflow:hidden;background:var(--pale)}
.finder-photo img{display:block;width:80px;height:72px;object-fit:cover}
.finder-card-title>p{font-size:12px;font-weight:700;line-height:1.45;color:var(--orange-dark);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px}
.finder-card-title h3{font-family:Arial,Helvetica,sans-serif;font-size:19px;font-weight:750;line-height:1.3;letter-spacing:-.02em;text-transform:none;margin:0}
.finder-card-title button{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;padding:3px 0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit}
.finder-card-title button:hover [data-location-name]{text-decoration:underline;text-underline-offset:4px}
.finder-number{display:inline-grid;place-items:center;flex:none;min-width:27px;height:27px;border:1px solid #9aadb7;border-radius:50%;font-size:12px;font-weight:750;line-height:1;background:#fff}
.finder-card.is-selected .finder-number{border-color:var(--ink);background:var(--ink);color:#fff}
.finder-card.is-selected [data-location-name]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.finder-card address{font-size:16px;font-style:normal;line-height:1.5;color:var(--ink);margin-top:12px;overflow-wrap:break-word}
.finder-card-facts{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:7px;color:var(--muted);font-size:14px;line-height:1.5}
.finder-card-facts p{margin:0}
.finder-card-facts>span,.finder-card-facts>p{display:inline-flex;align-items:center;gap:5px}
.finder-card-facts svg{width:16px;height:16px;flex:none}
.finder-card [data-location-distance]{margin-top:7px;font-size:14px;font-weight:700;color:var(--ink)}
.finder-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;margin-top:13px}
.finder-card-actions>a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid #9aaab3;border-radius:6px;padding:9px 12px;background:#fff;color:var(--ink);font-size:14px;font-weight:700;line-height:1.35;text-decoration:none}
.finder-card-actions>a:first-child{background:var(--ink);color:#fff;border-color:var(--ink)}
.finder-card-actions>a:hover{background:#e8eff3}
.finder-card-actions>a:first-child:hover{background:#214861}
.finder-card .finder-details{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;text-underline-offset:4px}
.finder-card-actions>.finder-details{border-color:transparent;background:transparent;padding-inline:3px;text-decoration:underline;font-weight:400}
.finder-card-actions>.finder-details:hover{background:transparent;color:var(--orange-dark)}
.location-finder.finder-ready[data-view=map] .finder-layout,.location-finder.js-ready[data-view=map] .finder-layout{display:grid;grid-template-columns:minmax(340px,410px) minmax(0,1fr);gap:22px;align-items:stretch}
.location-finder.finder-ready[data-view=map] .finder-list,.location-finder.js-ready[data-view=map] .finder-list{grid-template-columns:1fr;gap:12px}
.location-finder.finder-ready[data-view=map] .finder-map-panel,.location-finder.js-ready[data-view=map] .finder-map-panel{display:flex;flex-direction:column}
.finder-map-panel{position:relative;isolation:isolate;z-index:0;border:1px solid #bdcbd1;border-radius:12px;overflow:hidden;background:#f1f4f2}
.finder-map{width:100%;min-height:640px;flex:1;background:#edf1ec;font-family:Arial,Helvetica,sans-serif}
.finder-map-note{flex:none;font-size:13px;line-height:1.5;color:var(--muted);background:#fff;padding:12px 15px;border-top:1px solid var(--line);margin:0}
.finder-map-panel [data-map-error]{font-size:16px;color:var(--ink);line-height:1.6;background:#fff5eb;padding:20px;margin:0}
.finder-footnote{font-size:14px;line-height:1.55;color:var(--muted);margin-top:17px;max-width:850px}
.finder-footnote small{font-size:inherit}
.finder-footnote a{font-weight:700}
.finder-membership-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:20px 22px;background:#f4f6f5;border:1px solid var(--line);border-radius:10px}
.finder-membership-row p{font-size:16px;line-height:1.5;max-width:730px}
.finder-membership-row a{flex:none;display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:700;gap:9px}
.location-finder [hidden]{display:none!important}
.location-finder .leaflet-container{font-family:Arial,Helvetica,sans-serif;color:var(--ink);touch-action:pan-x pan-y}
.location-finder .leaflet-control-zoom{border:1px solid #8396a1;border-radius:8px;overflow:hidden;box-shadow:0 3px 10px #102b3f18}
.location-finder .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;color:var(--ink);font-size:24px}
.location-finder .leaflet-control-attribution{max-width:100%;padding:3px 6px;font-size:12px;line-height:1.4;color:#304853;background:#fffffff2;white-space:normal}
.location-finder .leaflet-control-attribution a{color:#165782}
.location-finder .leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 4px 24px #102b3f30}
.location-finder .leaflet-popup-content{font-size:16px;line-height:1.5;margin:22px 20px 15px;max-width:calc(100vw - 100px)}
.location-finder .leaflet-popup-content p{margin:0 0 8px}
.location-finder .leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;line-height:44px;font-size:25px;color:var(--ink)}
.finder-popup-name,.spark-map-popup h3{font-family:Arial,Helvetica,sans-serif;font-size:18px;font-weight:750;line-height:1.3;color:var(--ink);display:block}
.finder-popup-address{font-size:16px;color:var(--muted);line-height:1.5}
.finder-popup-facts{font-size:14px;color:var(--muted);line-height:1.5}
.finder-popup-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-top:9px}
.finder-popup-actions a,.spark-map-popup a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:700;color:#165782}
.finder-popup-actions .btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.finder-popup-actions .btn-secondary{color:var(--ink);border-color:#9aaab3}
.location-finder:not(.finder-ready) [data-location-select]{cursor:default;pointer-events:none}
.finder-marker{background:transparent;border:0}
.finder-marker .spark-map-pin,.spark-map-pin .spark-pin-number{display:grid;place-items:center;width:42px;height:42px;border:3px solid #fff;border-radius:50%;background:var(--ink);color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:800;line-height:1;box-shadow:0 2px 9px #102b3f55}
.finder-marker.is-selected .spark-map-pin,.spark-map-pin.is-selected .spark-pin-number{background:var(--orange);color:var(--ink);outline:3px solid var(--ink);outline-offset:2px;transform:scale(1.08)}
.finder-marker:focus-visible{outline:3px solid #0075c4;outline-offset:6px;border-radius:50%}
.how-to-visit h2{font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.9rem,3.4vw,2.5rem);font-weight:750;line-height:1.15;letter-spacing:-.035em;text-transform:none}
.how-to-visit .step h3{font-size:20px;line-height:1.35}
.how-to-visit .step p{font-size:16px;line-height:1.6}
@media(max-width:1050px){
  .location-finder.finder-ready[data-view=map] .finder-layout,.location-finder.js-ready[data-view=map] .finder-layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr);gap:16px}
  .finder-list{gap:12px}
  .finder-card{padding:16px}
  .finder-card-title h3{font-size:18px}
  .finder-list .finder-photo,.finder-list .finder-photo picture{width:70px;flex-basis:70px}
  .finder-list .finder-photo img{width:70px;height:66px}
}
@media(max-width:800px){
  .location-finder.has-location-popup .leaflet-control-zoom{visibility:hidden}
  .finder-heading{display:block}
  .finder-heading>p:not(.eyebrow){margin-top:13px}
  .location-finder{scroll-margin-top:85px}
  .location-finder.finder-ready[data-view=map] .finder-layout,.location-finder.js-ready[data-view=map] .finder-layout{grid-template-columns:1fr;gap:16px}
  .location-finder.finder-ready[data-view=map] .finder-map-panel,.location-finder.js-ready[data-view=map] .finder-map-panel{grid-row:1}
  .finder-map{height:360px;min-height:360px;flex:none}
  .finder-list{grid-template-columns:1fr}
  .finder-list .finder-photo,.finder-list .finder-photo picture{width:80px;flex-basis:80px}
  .finder-list .finder-photo img{width:80px;height:72px}
  .finder-card-title h3{font-size:20px}
  .finder-card{padding:18px}
  .finder-card address{margin-top:10px}
  .finder-card-facts{gap:4px 18px}
  .finder-card-actions>a{font-size:15px;padding-inline:15px}
  .finder-card .finder-details{font-size:15px}
  .finder-membership-row{display:block;padding:19px}
  .finder-membership-row a{margin-top:9px}
}
@media(max-width:500px){
  .finder-heading{margin-bottom:22px}
  .finder-heading h2{font-size:30px}
  .finder-heading>p:not(.eyebrow){font-size:16px;margin-top:12px}
  .finder-controls{gap:10px}
  .finder-controls .finder-locate{margin-left:0;flex:1;font-size:14px;padding-inline:10px}
  .finder-view-toggle button{min-width:66px;padding-inline:11px;font-size:14px}
  .finder-controls .finder-reset{padding-left:0;min-height:44px;font-size:14px}
  .finder-status{margin-bottom:13px}
  .finder-card{padding:15px}
  .finder-card-title h3{font-size:18px}
  .finder-card-top{gap:11px}
  .finder-card-title button{gap:7px}
  .finder-number{min-width:25px;height:25px;font-size:11px}
  .finder-card-facts{column-gap:12px}
  .finder-card-actions{gap:5px 8px}
  .finder-card-actions>a{padding-inline:12px;font-size:14px}
  .finder-card .finder-details{font-size:14px}
  .finder-map-note{font-size:13px;padding:11px 12px}
  .finder-footnote{font-size:14px}
}
@media(max-width:360px){
  .finder-controls .finder-locate{flex-basis:100%;justify-content:flex-start;padding-inline:12px}
  .finder-view-toggle{width:100%}
  .finder-view-toggle button{flex:1}
  .finder-card-top{gap:9px}
  .finder-list .finder-photo,.finder-list .finder-photo picture{width:63px;flex-basis:63px}
  .finder-list .finder-photo img{width:63px;height:64px}
  .finder-card-title h3{font-size:17px}
  .finder-card-title>p{font-size:11px}
  .finder-card-actions>a{padding-inline:11px}
}
@media(prefers-reduced-motion:reduce){.finder-card,.finder-marker .spark-map-pin{transition:none}}
