/* Locations only: map-first layout, with a single selected-store detail. */
.rios-locator { padding: 52px 0 36px; background: #fff; color: var(--green); scroll-margin-top: 105px; }
.rios-locator [hidden] { display:none !important; }
.rios-locator__heading { text-align:center; margin-bottom:28px; }
.rios-locator__eyebrow { margin:0 0 14px; color:#6a8072; font-size:12px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; }
.rios-locator__eyebrow span { padding:0 10px; opacity:.6; }
.rios-locator__heading h2 { margin:0; color:var(--green); font-size:clamp(34px,4.4vw,56px); letter-spacing:-.045em; line-height:1.05; }
.rios-locator__intro { margin:14px 0 0; color:#6a8072; font-size:15px; }
.rios-locator__shell { position:relative; }
.rios-locator__map-wrap { position:relative; height:640px; isolation:isolate; overflow:hidden; border:1px solid #e1e7dd; border-radius:24px; background:#eef2ec; }
.rios-locator__map { width:100%; height:100%; z-index:0; background:#eef2ec; }
.rios-locator .leaflet-container { font-family:inherit; touch-action:none; }
.rios-locator .maplibregl-canvas { outline:none; }
.rios-locator svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.rios-locator .leaflet-control-attribution { padding:3px 7px; background:#fffffff0; color:#42604f; font-size:10px; }
.rios-locator .leaflet-control-attribution a { color:#315642; }
.rios-locator .leaflet-control-zoom { border:1px solid #d6e0d3; border-radius:12px; overflow:hidden; margin:0 0 24px 16px; box-shadow:0 3px 12px #16392812; }
.rios-locator .leaflet-control-zoom a { width:38px; height:38px; line-height:38px; border-color:#e1e7dd; background:#fff; color:var(--green); font-size:23px; }
.rios-locator__reset { position:absolute; top:16px; left:16px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #d6e0d3; border-radius:12px; background:#fff; color:var(--green); z-index:2; cursor:pointer; box-shadow:0 3px 12px #16392812; }
.rios-locator__reset:hover,.rios-locator .leaflet-control-zoom a:hover { background:var(--mint); }
.rios-locator__map-error { position:absolute; bottom:20px; left:70px; right:20px; padding:16px; margin:0; background:#fff; border-radius:12px; color:var(--green); font-size:14px; z-index:3; }
.rios-map-pin { background: none; border: none; }
.rios-map-pin__body { position: absolute; left: 50%; bottom: 19px; transform: translateX(-50%); min-height: 40px; display: flex; align-items: center; gap: 9px; padding: 9px 14px; border: 1px solid #d6e0d3; border-radius: 11px; background: #fff; color: var(--green); box-shadow: 0 3px 12px #24453513; white-space: nowrap; font-size: 14px; font-weight: 750; }
.rios-map-pin__body::after { content: ""; position: absolute; bottom: -8px; left: 50%; height: 7px; width: 1px; background: #a0b59e; }
.rios-map-pin__dot { position: absolute; left: calc(50% - 7px); bottom: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--green); border: 3px solid white; box-shadow: 0 0 0 10px #386b5410, 0 0 0 21px #386b5406; }
.rios-map-pin__body b { display: grid; place-items: center; min-width: 21px; height: 21px; border-radius: 50%; background: #edf2e9; color: var(--green); font-size: 11px; }
.rios-map-pin.is-selected .rios-map-pin__body { background: var(--green); color: #fff; border-color: var(--green); }
.rios-map-pin.is-selected .rios-map-pin__body b { background: var(--yellow); color: var(--ink); }
.rios-map-pin.is-selected .rios-map-pin__dot { background: var(--yellow); box-shadow: 0 0 0 12px #fcc44d24, 0 0 0 24px #fcc44d0d; }
.rios-map-pin:hover .rios-map-pin__body { border-color: var(--green); box-shadow: 0 4px 16px #24453526; }
.rios-map-pin:focus-visible { outline: none; }
.rios-map-pin:focus-visible .rios-map-pin__body { outline: 3px solid var(--green); outline-offset: 4px; }
.rios-map-region { color: #839983; font-family: inherit; font-weight: 650; font-size: 18px; letter-spacing: .32em; white-space: nowrap; opacity: .7; pointer-events: none; }
.rios-map-region--sea { color: #8aa7a5; font-size: 11px; letter-spacing: .14em; font-style: italic; font-weight: 500; }

.rios-locator__results { position:absolute; top:24px; right:24px; width:330px; max-height:calc(100% - 48px); overflow-y:auto; z-index:4; border:1px solid #e1e7dd; border-radius:20px; background:#fff; box-shadow:0 12px 36px #16392818; }
.rios-locator__close { position:absolute; top:12px; right:12px; z-index:1; width:36px; height:36px; border:1px solid #d6e0d3; border-radius:50%; background:#fff; color:var(--green); font:inherit; font-size:26px; line-height:1; cursor:pointer; }
.rios-store__photo { width:100%; height:170px; display:block; object-fit:cover; }
.rios-store__title { padding:24px 24px 0; }
.rios-store__content { padding:0 24px 24px; }
.rios-store__city { margin:0 0 6px; color:#718376; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.09em; }
.rios-store__title h3 { margin:0 0 22px; padding-right:12px; color:var(--green); font-size:25px; line-height:1.15; letter-spacing:-.035em; }
.rios-store__info { display:grid; gap:16px; margin:0; font-size:14px; line-height:1.4; }
.rios-store__info > div { display:grid; grid-template-columns:20px minmax(0,1fr); gap:12px; }
.rios-store__info dt { margin:0; color:#718376; padding-top:1px; }
.rios-store__info dd { margin:0; color:#42604f; }
.rios-store__info address { font-style:normal; }
.rios-store__info a { color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.rios-store__info-label { display:block; font-size:11px; color:#718376; margin-bottom:2px; }
.rios-store__actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:20px; margin-top:20px; border-top:1px solid #e1e7dd; }
.rios-store__actions a { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; color:var(--green); font-size:13px; font-weight:700; text-decoration:none; }
.rios-store__actions a:last-child { padding:10px 18px; border-radius:10px; background:var(--yellow); color:var(--ink); }
.rios-store__actions a:hover { text-decoration:underline; }
.rios-locator__directory { margin-top:20px; font-size:13px; color:#6a8072; }
.rios-locator__directory summary { cursor:pointer; width:fit-content; padding:10px 0; }
.rios-locator__directory [data-map-directory-list] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-top:18px; }
.rios-locator__directory article { border-top:1px solid #e1e7dd; padding-top:18px; }
.rios-locator__directory h3 { margin:0 0 12px; font-size:17px; }
.rios-locator__directory p { margin:8px 0; }
.rios-locator__directory button { border:0; padding:0; background:none; color:var(--green); font:inherit; font-weight:700; cursor:pointer; text-align:left; }
.rios-locator__directory a { color:var(--green); text-underline-offset:3px; }
.rios-locator button:focus-visible,.rios-locator a:focus-visible,.rios-locator summary:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
@media(max-width:700px) {
  .rios-locator { padding:38px 0 24px; scroll-margin-top:90px; }
  .rios-locator > .container { width:calc(100% - 24px); }
  .rios-locator__heading { margin-bottom:24px; }
  .rios-locator__heading h2 { font-size:clamp(31px,8vw,44px); }
  .rios-locator__intro { font-size:13px; margin-top:12px; }
  .rios-locator__eyebrow { font-size:11px; margin-bottom:12px; }
  .rios-locator__map-wrap { height:clamp(400px,58svh,520px); border-radius:20px; }
  .rios-locator__shell { scroll-margin-top:calc(var(--header-height) + 12px); }
  .rios-locator.has-selection .rios-locator__map-wrap { height:min(680px,calc(100svh - var(--header-height) - 24px)); min-height:360px; }
  .rios-locator__results { position:absolute; top:auto; bottom:28px; left:10px; right:10px; width:auto; margin:0; max-height:65%; overflow-y:auto; overscroll-behavior:contain; border-radius:18px; box-shadow:0 8px 32px #16392830; }
  .rios-locator__close { top:8px; right:8px; width:44px; height:44px; }
  .rios-store__heading { display:flex; align-items:center; gap:12px; padding:14px 54px 12px 14px; min-height:80px; }
  .rios-store__photo { width:56px; height:56px; flex-shrink:0; border-radius:10px; }
  .rios-store__title { min-width:0; padding:0; }
  .rios-store__city { margin-bottom:4px; font-size:10px; }
  .rios-store__title h3 { margin:0; padding:0; font-size:21px; line-height:1.12; }
  .rios-store__content { padding:0 14px 14px; }
  .rios-store__info { gap:5px; font-size:13px; }
  .rios-store__info > div { grid-template-columns:18px minmax(0,1fr); gap:9px; align-items:center; }
  .rios-store__info svg { width:17px; height:17px; }
  .rios-store__info a { display:inline-flex; min-height:44px; align-items:center; }
  .rios-store__info-label { display:inline; margin:0 6px 0 0; font-size:inherit; }
  .rios-store__actions { margin-top:10px; padding-top:10px; }
  .rios-locator.has-selection .leaflet-bottom.leaflet-left { top:16px; bottom:auto; left:auto; right:16px; }
  .rios-locator.has-selection .leaflet-control-zoom { margin:0; }
  .rios-locator__directory [data-map-directory-list] { grid-template-columns:1fr; }
  .rios-map-pin__body { font-size:11px; padding:10px; gap:6px; }
  .rios-map-pin.is-city-lucca .rios-map-pin__body { transform:translateX(calc(-50% + 30px)); }
  .rios-map-pin.is-city-lucca .rios-map-pin__body::after { left:calc(50% - 30px); }
  .rios-map-pin.is-city-pistoia .rios-map-pin__body { bottom:41px; }
  .rios-map-pin.is-city-pistoia .rios-map-pin__body::after { bottom:-30px; height:29px; }
}
