.TownDirectoryMap-module__WcdVDa__section{box-sizing:border-box;background:#f3f4e9;border:1px solid #becfb5;border-radius:18px;min-width:0;max-width:1200px;margin:28px auto 32px;padding:18px;box-shadow:0 5px 18px #25432e10}.TownDirectoryMap-module__WcdVDa__heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.TownDirectoryMap-module__WcdVDa__heading p{color:#79603d;letter-spacing:.06em;text-transform:uppercase;margin:0 0 5px;font-size:.75rem}.TownDirectoryMap-module__WcdVDa__heading h2{color:#19483f;margin:0;font-size:clamp(1.2rem,3vw,1.65rem)}.TownDirectoryMap-module__WcdVDa__heading button{box-sizing:border-box;color:#513f24;cursor:pointer;background:#eee2c9;border:1px solid #bba87c;border-radius:10px;max-width:100%;min-height:44px;padding:9px 14px;font-weight:600}.TownDirectoryMap-module__WcdVDa__heading button:disabled{opacity:.55;cursor:default}.TownDirectoryMap-module__WcdVDa__heading button:focus-visible{outline-offset:3px;outline:3px solid #2b796b}.TownDirectoryMap-module__WcdVDa__frame{background:#e7ede2;border:1px solid #c5d3c0;border-radius:12px;position:relative;overflow:hidden}.TownDirectoryMap-module__WcdVDa__canvas{width:100%;height:clamp(360px,48vw,560px)}.TownDirectoryMap-module__WcdVDa__message{text-align:center;color:#274b3e;z-index:1;background:#f3f4e9;justify-content:center;align-items:center;margin:0;padding:24px;display:flex;position:absolute;inset:0}.TownDirectoryMap-module__WcdVDa__note{color:#405b48;margin:12px 0 0;font-size:.85rem;line-height:1.5}.TownDirectoryMap-module__WcdVDa__pin{object-fit:contain;filter:drop-shadow(0 2px 3px #0005);width:46px;height:46px;display:block}.TownDirectoryMap-module__WcdVDa__popup{box-sizing:border-box;color:#1e433b;overflow-wrap:anywhere;width:220px;max-width:100%;padding:2px;font-family:Arial,sans-serif}.TownDirectoryMap-module__WcdVDa__popup img{object-fit:cover;border-radius:7px;width:100%;height:115px;margin-bottom:10px;display:block}.TownDirectoryMap-module__WcdVDa__popup strong{font-size:1rem}.TownDirectoryMap-module__WcdVDa__popup p{margin:6px 0;font-size:.85rem}.TownDirectoryMap-module__WcdVDa__popup a{box-sizing:border-box;color:#244d3d;background:#e6eddd;border:1px solid #a8bda5;border-radius:8px;justify-content:center;align-items:center;min-height:44px;margin-top:6px;padding:8px 12px;font-weight:600;text-decoration:none;display:inline-flex}.TownDirectoryMap-module__WcdVDa__popup a:focus-visible{outline-offset:2px;outline:3px solid #b48132}@media (max-width:620px){.TownDirectoryMap-module__WcdVDa__section{border-radius:13px;margin:20px 0;padding:10px}.TownDirectoryMap-module__WcdVDa__heading{padding:4px}.TownDirectoryMap-module__WcdVDa__heading button{width:100%}.TownDirectoryMap-module__WcdVDa__canvas{height:380px}.TownDirectoryMap-module__WcdVDa__popup{width:195px}.TownDirectoryMap-module__WcdVDa__popup img{height:100px}}
.TownDirectory-module__HrVdGa__shell{color:#183e3a;overflow-wrap:anywhere;background:#faf9f5;max-width:1280px;min-height:100vh;margin:auto;padding:clamp(18px,4vw,56px)}.TownDirectory-module__HrVdGa__shell a:focus-visible{outline-offset:3px;outline:3px solid #b48132}.TownDirectory-module__HrVdGa__heading{padding:28px 0 16px;scroll-margin-top:20px}.TownDirectory-module__HrVdGa__heading h1{letter-spacing:-.04em;margin:10px 0;font:500 clamp(2.3rem,5vw,4rem)/1.1 Georgia,serif}.TownDirectory-module__HrVdGa__heading>p:last-child{color:#596b5c;max-width:650px;margin:0;line-height:1.65}.TownDirectory-module__HrVdGa__eyebrow{color:#7a5b30;letter-spacing:.13em;text-transform:uppercase;margin:0;font:700 .73rem/1.4 Arial,sans-serif}.TownDirectory-module__HrVdGa__zoneMenu{border-bottom:1px solid #d6e0d2;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 0 20px;display:flex}.TownDirectory-module__HrVdGa__zoneMenu span{text-transform:uppercase;letter-spacing:.08em;margin-right:6px;font-size:.8rem;font-weight:700}.TownDirectory-module__HrVdGa__zoneMenu a{color:#244737;background:#eff4ea;border:1px solid #b7c9b2;border-radius:999px;align-items:center;min-height:36px;padding:6px 12px;font-size:.85rem;text-decoration:none;display:inline-flex}.TownDirectory-module__HrVdGa__zoneMenu a:hover{background:#dce9d7}.TownDirectory-module__HrVdGa__zone{border-bottom:1px solid #d6e0d2;padding:36px 0 46px;scroll-margin-top:18px}.TownDirectory-module__HrVdGa__zoneHeading{justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;display:flex}.TownDirectory-module__HrVdGa__zoneHeading h2{letter-spacing:-.035em;margin:8px 0 0;font:500 clamp(1.9rem,3vw,2.7rem)/1.14 Georgia,serif}.TownDirectory-module__HrVdGa__backTop{white-space:nowrap;color:#496854;text-underline-offset:4px;font-size:.83rem;text-decoration:underline}.TownDirectory-module__HrVdGa__mapBox{background:#f3f4e9;border:1px solid #bed0b6;border-radius:15px;width:min(100%,620px);margin:0 auto 28px;padding:8px 8px 0;box-shadow:0 5px 18px #25432e13}.TownDirectory-module__HrVdGa__map{aspect-ratio:3/2;background:#e6eee6 url(/maps/madrid-ign-base.png) 50%/100% 100% no-repeat;border-radius:9px;width:100%;position:relative;overflow:hidden}.TownDirectory-module__HrVdGa__marker{z-index:1;background:#fffffff2;border:1px solid #426947;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;transform:translate(-50%,-75%);box-shadow:0 2px 8px #163c2e66}.TownDirectory-module__HrVdGa__marker:hover,.TownDirectory-module__HrVdGa__marker:focus-visible{z-index:3;transform:translate(-50%,-75%)scale(1.17)}.TownDirectory-module__HrVdGa__marker img{object-fit:contain;max-width:27px;max-height:27px;display:block}.TownDirectory-module__HrVdGa__mapCredit{color:#526254;margin:7px 5px 8px;font-size:.72rem;line-height:1.45}.TownDirectory-module__HrVdGa__mapCredit a{text-underline-offset:2px;text-decoration:underline}.TownDirectory-module__HrVdGa__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));align-items:stretch;gap:18px;display:grid}.TownDirectory-module__HrVdGa__card{background:#eef3e8;border:2px solid #416a47;border-radius:17px;min-width:0;transition:transform .2s,box-shadow .2s;box-shadow:0 7px #cfddc5,0 12px 22px #24452e12}.TownDirectory-module__HrVdGa__card:hover{transform:translateY(-3px);box-shadow:0 10px #cfddc5,0 16px 24px #24452e20}.TownDirectory-module__HrVdGa__cardMain{height:100%;color:inherit;flex-direction:column;padding:10px;text-decoration:none;display:flex}.TownDirectory-module__HrVdGa__photoFrame{background:#dbe8d7;border:1px solid #c1cfb6;border-radius:10px;width:100%;height:170px;display:block;position:relative;overflow:hidden}.TownDirectory-module__HrVdGa__photoFrame img{object-fit:cover;width:100%;height:100%;display:block}.TownDirectory-module__HrVdGa__photoFallback{box-sizing:border-box;color:#4e6b51;text-align:center;background:radial-gradient(circle at 72% 25%,#eacb9159 0 18%,#0000 19%),linear-gradient(160deg,#dce8d4 45%,#9ab59b 46% 55%,#729277 56%);justify-content:center;align-items:end;width:100%;height:100%;padding:16px;font:italic 1.1rem Georgia,serif;display:flex}.TownDirectory-module__HrVdGa__cardBody{text-align:center;flex-direction:column;flex:1;align-items:center;gap:7px;padding:14px 6px 12px;display:flex}.TownDirectory-module__HrVdGa__cardBody strong{color:#204638;font:500 1.34rem/1.23 Georgia,serif}.TownDirectory-module__HrVdGa__cardBody>span{color:#536253;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.88rem;line-height:1.5;display:-webkit-box;overflow:hidden}@media (max-width:620px){.TownDirectory-module__HrVdGa__zone{padding:28px 0 34px}.TownDirectory-module__HrVdGa__zoneHeading{align-items:start}.TownDirectory-module__HrVdGa__mapBox{margin-bottom:24px}.TownDirectory-module__HrVdGa__marker{width:34px;height:34px}.TownDirectory-module__HrVdGa__marker img{max-width:23px;max-height:23px}.TownDirectory-module__HrVdGa__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.TownDirectory-module__HrVdGa__cardMain{padding:7px}.TownDirectory-module__HrVdGa__photoFrame{height:140px}.TownDirectory-module__HrVdGa__cardBody{padding:11px 3px}.TownDirectory-module__HrVdGa__cardBody strong{font-size:1.1rem}.TownDirectory-module__HrVdGa__cardBody>span{font-size:.8rem}}@media (max-width:390px){.TownDirectory-module__HrVdGa__grid{grid-template-columns:1fr 1fr}.TownDirectory-module__HrVdGa__photoFrame{height:115px}.TownDirectory-module__HrVdGa__backTop{font-size:.72rem}}@media (prefers-reduced-motion:reduce){.TownDirectory-module__HrVdGa__card{transition:none}}.TownDirectory-module__HrVdGa__mapFooter{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;display:flex}.TownDirectory-module__HrVdGa__mapFooter .TownDirectory-module__HrVdGa__mapCredit{flex:1;min-width:220px}.TownDirectory-module__HrVdGa__expandMap,.TownDirectory-module__HrVdGa__dialogHeader button,.TownDirectory-module__HrVdGa__zoomControls button{color:#204638;cursor:pointer;background:#e5efe0;border:1px solid #416a47;border-radius:8px;min-height:40px;padding:8px 12px;font:600 .85rem Arial,sans-serif}.TownDirectory-module__HrVdGa__expandMap:hover,.TownDirectory-module__HrVdGa__dialogHeader button:hover,.TownDirectory-module__HrVdGa__zoomControls button:hover:not(:disabled){background:#d4e5cd}.TownDirectory-module__HrVdGa__expandMap:focus-visible,.TownDirectory-module__HrVdGa__dialogHeader button:focus-visible,.TownDirectory-module__HrVdGa__zoomControls button:focus-visible{outline-offset:2px;outline:3px solid #b48132}.TownDirectory-module__HrVdGa__mapDialog{box-sizing:border-box;color:#183e3a;background:#faf9f5;border:1px solid #9fb99b;border-radius:16px;width:min(96vw,1060px);max-width:1060px;max-height:94dvh;margin:auto;padding:clamp(12px,2vw,22px);box-shadow:0 24px 80px #071d18a0}.TownDirectory-module__HrVdGa__mapDialog::backdrop{background:#071d18bf}.TownDirectory-module__HrVdGa__dialogHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.TownDirectory-module__HrVdGa__dialogHeader h3{margin:0;font:500 clamp(1.25rem,2.5vw,1.8rem)/1.2 Georgia,serif}.TownDirectory-module__HrVdGa__zoomControls{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:10px;display:flex}.TownDirectory-module__HrVdGa__zoomControls button{width:42px;padding:6px;font-size:1.2rem}.TownDirectory-module__HrVdGa__zoomControls button:disabled{opacity:.45;cursor:default}.TownDirectory-module__HrVdGa__zoomControls span{text-align:center;font-variant-numeric:tabular-nums;min-width:54px;font-size:.85rem}.TownDirectory-module__HrVdGa__mapViewport{overscroll-behavior:contain;touch-action:pan-x pan-y;background:#e6eee6;border-radius:9px;width:100%;max-height:65dvh;overflow:auto}.TownDirectory-module__HrVdGa__largeMap{border-radius:0;min-width:100%}.TownDirectory-module__HrVdGa__dialogHelp{color:#536253;margin:9px 0 0;font-size:.85rem;line-height:1.4}@media (max-width:620px){.TownDirectory-module__HrVdGa__mapDialog{width:98vw;max-height:96dvh;padding:10px}.TownDirectory-module__HrVdGa__mapViewport{max-height:70dvh}.TownDirectory-module__HrVdGa__mapFooter .TownDirectory-module__HrVdGa__mapCredit{min-width:180px}.TownDirectory-module__HrVdGa__expandMap{width:100%}.TownDirectory-module__HrVdGa__dialogHeader button{flex:none}}.TownDirectory-module__HrVdGa__cardMain{height:auto}.TownDirectory-module__HrVdGa__card{flex-direction:column;scroll-margin-top:24px;display:flex}.TownDirectory-module__HrVdGa__cardFooter{box-sizing:border-box;margin-top:auto;padding:0 10px 10px}.TownDirectory-module__HrVdGa__cardFooter>div:last-child{justify-content:center;gap:8px;margin:0;padding:8px 0 0}.TownDirectory-module__HrVdGa__favorite{z-index:3;position:absolute;top:17px;right:17px}.TownDirectory-module__HrVdGa__card .TownDirectory-module__HrVdGa__favoriteButton{box-sizing:border-box;color:#89620b;cursor:pointer;background:#fffdf4;border:1px solid #cfb776;place-items:center;width:44px;min-width:44px;height:44px;display:grid;box-shadow:0 2px 8px #173a2926;border-radius:50%!important;padding:0!important}.TownDirectory-module__HrVdGa__favoriteButton[aria-pressed=true]{color:#89620b;background:#fff0bd}.TownDirectory-module__HrVdGa__favoriteButton:disabled{opacity:.65;cursor:wait}.TownDirectory-module__HrVdGa__favoriteMessage{color:#244737;background:#fffdf4;border:1px solid #c4cebd;border-radius:9px;width:min(210px,65vw);padding:8px;font-size:.78rem;line-height:1.4;position:absolute;top:48px;right:0;box-shadow:0 3px 10px #173a2926}.TownDirectory-module__HrVdGa__ratingArea{place-items:center;min-width:0;min-height:58px;display:grid}.TownDirectory-module__HrVdGa__card .TownDirectory-module__HrVdGa__ratingButton{color:#77560e;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:4px;width:100%;display:flex;min-height:58px!important}.TownDirectory-module__HrVdGa__ratingButton:hover:not(:disabled){background:#fff9e6;border-color:#d6c17f}.TownDirectory-module__HrVdGa__ratingButton:disabled{cursor:wait;opacity:.65}.TownDirectory-module__HrVdGa__ratingStars{white-space:nowrap;letter-spacing:1px;color:#c9c8b9;font:23px/1.1 Arial,sans-serif;display:inline-block;position:relative}.TownDirectory-module__HrVdGa__ratingFill{color:#926609;white-space:nowrap;position:absolute;top:0;left:0;overflow:hidden}.TownDirectory-module__HrVdGa__ratingLabel{text-align:center;color:#536253;font-size:.75rem;line-height:1.4;display:block}.TownDirectory-module__HrVdGa__favoriteButton:focus-visible,.TownDirectory-module__HrVdGa__ratingButton:focus-visible{outline-offset:2px;outline:3px solid #b48132}.TownDirectory-module__HrVdGa__ratingDialog{box-sizing:border-box;color:#183e3a;overscroll-behavior:contain;background:#faf9f5;border:1px solid #b8c9ae;border-radius:18px;width:min(560px,100vw - 24px);max-height:88dvh;padding:18px;overflow:auto}.TownDirectory-module__HrVdGa__ratingDialog::backdrop{background:#152d2880}.TownDirectory-module__HrVdGa__ratingDialog>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.TownDirectory-module__HrVdGa__ratingDialog h2{margin:0;font:500 1.5rem/1.2 Georgia,serif}.TownDirectory-module__HrVdGa__ratingDialog>header>button{color:#674e30;cursor:pointer;background:#ede7da;border:1px solid #cdbd9d;border-radius:9px;min-width:44px;min-height:44px;font-size:1.5rem}@media (max-width:620px){.TownDirectory-module__HrVdGa__favorite{top:12px;right:12px}.TownDirectory-module__HrVdGa__cardFooter{padding:0 7px 8px}.TownDirectory-module__HrVdGa__ratingStars{font-size:21px}.TownDirectory-module__HrVdGa__ratingDialog{padding:14px}}
