.restaurant-explorer{border-top:1px solid #ffffff2e;margin:46px 0 58px;padding-top:34px;scroll-margin-top:96px}
.restaurant-explorer:not(.is-enhanced) :is(.restaurant-map-controls,.restaurant-map-statusbar,.restaurant-map-layout){display:none}
.restaurant-explorer-heading{grid-template-columns:minmax(260px,.9fr) minmax(280px,.75fr);align-items:end;gap:30px;margin-bottom:26px;display:grid}
.restaurant-explorer-heading .label{color:var(--lime);margin-bottom:12px}
.restaurant-explorer-heading h2{letter-spacing:-.055em;margin:0;font-family:Arial,Helvetica Neue,sans-serif;font-size:clamp(42px,5.3vw,76px);font-weight:800;line-height:.88}
.restaurant-explorer-heading h2 em{text-transform:none;color:#dfb876;font-family:Georgia,Times New Roman,serif;font-size:.82em;font-weight:400}
.restaurant-explorer-heading>p{color:#ffffffc7;max-width:52ch;margin:0;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.55}
.restaurant-map-controls{background:#ffffff0a;border:1px solid #ffffff2e;grid-template-columns:minmax(220px,1.45fr) minmax(155px,.7fr) minmax(175px,.8fr) auto;align-items:end;gap:12px;padding:16px;display:grid}
.restaurant-map-controls label{min-width:0;display:grid;gap:7px}
.restaurant-map-controls label>span,.restaurant-map-controls button{letter-spacing:.12em;text-transform:uppercase;font-size:8.5px;font-weight:800}
.restaurant-map-controls :is(input,select){color:var(--cream);background:#06162f;border:1px solid #ffffff42;width:100%;min-height:44px;padding:0 12px;font-size:13px}
.restaurant-map-controls input::placeholder{color:#ffffff7d}
.restaurant-map-controls select{appearance:auto}
.restaurant-map-controls button{color:var(--ink);background:var(--lime);border:1px solid var(--lime);min-height:44px;padding:0 18px;cursor:pointer;transition:background .16s,color .16s}
.restaurant-map-controls button:hover{background:var(--cream)}
.restaurant-map-controls :is(input,select,button):focus-visible,.restaurant-directory-action:focus-visible,.restaurant-map-result button:focus-visible,.restaurant-map-result a:focus-visible{outline:2px solid #dfb876;outline-offset:3px}
.restaurant-map-statusbar{color:#ffffffa8;justify-content:space-between;gap:18px;padding:10px 2px 9px;font-size:10px;line-height:1.45;display:flex}
.restaurant-map-statusbar p{margin:0}
.restaurant-map-statusbar [data-map-count]{color:var(--lime);letter-spacing:.08em;text-transform:uppercase;font-weight:800}
.restaurant-map-layout{border:1px solid #ffffff38;grid-template-columns:minmax(0,2fr) minmax(260px,.78fr);min-height:510px;display:grid}
.restaurant-map-canvas{background:#dfe6e1;color:var(--ink);width:100%;height:510px;min-height:360px;z-index:1;position:relative}
.restaurant-map-canvas:focus-visible{outline:3px solid #dfb876;outline-offset:-3px}
.restaurant-map-canvas.is-map-error::after{content:"Basemap unavailable — use the map results or full directory.";color:var(--cream);background:#071b38e8;border:1px solid #ffffff42;max-width:280px;padding:14px 16px;font-size:12px;line-height:1.5;position:absolute;z-index:500;right:14px;bottom:14px}
html[lang^="es"] .restaurant-map-canvas.is-map-error::after{content:"El mapa base no está disponible. Usa los resultados del mapa o el directorio completo."}
.restaurant-map-results{background:#06162f;border-left:1px solid #ffffff38;min-width:0;height:510px;grid-template-rows:auto minmax(0,1fr) auto;display:grid}
.restaurant-results-heading{border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}
.restaurant-results-heading h3,.restaurant-map-legend h3{letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:9px;font-weight:800}
.restaurant-results-heading span{color:var(--ink);background:var(--lime);border-radius:999px;min-width:27px;padding:4px 8px;text-align:center;font-size:10px;font-weight:800}
.restaurant-map-results ol{overscroll-behavior:contain;margin:0;padding:0;list-style:none;overflow-y:auto}
.restaurant-map-result{border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:12px 16px;display:grid}
.restaurant-map-result button{color:var(--cream);text-align:left;cursor:pointer;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.25}
.restaurant-map-result button:hover{color:var(--lime)}
.restaurant-map-result a{color:#ffffff91;text-decoration:underline;text-underline-offset:3px;align-self:start;font-size:10px}
.restaurant-map-result small{color:#ffffff94;grid-column:1/-1;font-size:9.5px;line-height:1.4}
.restaurant-map-empty{color:#ffffffa8;padding:22px 18px;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.5}
.restaurant-map-legend{background:#ffffff08;border-top:1px solid #ffffff2e;padding:15px 18px}
.restaurant-map-legend h3{margin-bottom:9px}
.restaurant-map-legend ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.restaurant-map-legend li,.restaurant-map-legend p{color:#ffffff91;margin:0;font-size:9.5px;line-height:1.45}
.restaurant-map-legend p{border-top:1px solid #ffffff1f;margin-top:10px;padding-top:9px}
.restaurant-map-legend li>span{border:2px solid var(--ink);border-radius:50%;width:10px;height:10px;margin:1px 7px 0 0;vertical-align:top;display:inline-block}
.restaurant-map-legend [data-pin-kind="venue"]{background:var(--lime)}
.restaurant-map-legend [data-pin-kind="area"]{background:var(--coral)}
.restaurant-map-legend [data-pin-kind="featured"]{background:#dfb876}
.restaurant-map-noscript{color:var(--cream);background:#ffffff0a;border:1px solid #ffffff2e;margin:12px 0 0;padding:14px 16px;font-size:13px;line-height:1.55}
.restaurant-directory-action{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid currentColor;margin-top:10px;padding:0 0 4px;cursor:pointer;font-size:8.5px;font-weight:800}
.restaurant-directory-action:hover{color:var(--cream)}
.dir-list li.is-map-target{background:#3ce0b50d;box-shadow:inset 3px 0 var(--lime);padding-left:14px;padding-right:14px}
.restaurant-pin{background:transparent;border:0}
.restaurant-pin-dot{color:var(--ink);background:var(--lime);border:2px solid var(--ink);border-radius:999px;box-shadow:0 3px 12px #071b3866;min-width:30px;height:30px;padding:0 7px;place-items:center;font-family:Arial,Helvetica Neue,sans-serif;font-size:10px;font-weight:800;display:grid;transform:translate(-1px,-1px)}
.restaurant-pin-dot--area{color:#fff;background:var(--coral-paper)}
.restaurant-pin-dot--featured{background:#dfb876}
.restaurant-map-canvas .leaflet-popup-content-wrapper{color:var(--ink);background:var(--paper);border-radius:0;box-shadow:0 5px 28px #071b3866}
.restaurant-map-canvas .leaflet-popup-tip{background:var(--paper)}
.restaurant-map-canvas .leaflet-popup-content{min-width:210px;margin:15px 17px}
.restaurant-popup-title{letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #071b3826;margin:0 0 7px;padding-bottom:7px;font-size:9px;font-weight:800}
.restaurant-popup-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.restaurant-popup-list a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.25}
.restaurant-popup-list small{color:#071b3899;margin-top:2px;font-family:Arial,Helvetica Neue,sans-serif;font-size:9px;line-height:1.35;display:block}
.restaurant-map-canvas .leaflet-control-zoom a{color:var(--ink);background:var(--paper)}
.restaurant-map-canvas .leaflet-control-attribution{color:#071b38b8;background:#fbfaf6e6;font-size:8px}
.restaurant-map-canvas .leaflet-control-attribution a{color:var(--ink);text-decoration:underline}
.restaurant-map-load{color:var(--cream);background:linear-gradient(145deg,#0a2c52,#071b38);border:1px solid #ffffff38;cursor:pointer;width:min(360px,calc(100% - 36px));min-height:118px;padding:22px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;gap:7px;text-align:center;z-index:2}
.restaurant-map-load:before{content:"地图";color:#3ce0b52e;font:400 64px/1 Georgia,"Times New Roman",serif;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:-1}
.restaurant-map-load strong{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;font-size:11px}
.restaurant-map-load span{color:#ffffffa8;max-width:250px;font-size:11px;line-height:1.45}
.restaurant-map-load:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.restaurant-map-load:hover :is(strong,span){color:var(--ink)}
.restaurant-map-canvas.is-loading .restaurant-map-load{opacity:.65;pointer-events:none}
@media (max-width:1000px){.restaurant-map-controls{grid-template-columns:1.3fr 1fr 1fr}.restaurant-map-controls button{grid-column:1/-1}.restaurant-map-layout{grid-template-columns:minmax(0,1.55fr) minmax(250px,.85fr)}}
@media (max-width:760px){.restaurant-explorer{margin-top:34px;padding-top:28px}.restaurant-explorer-heading{grid-template-columns:1fr;gap:14px}.restaurant-explorer-heading h2{font-size:clamp(38px,13vw,60px)}.restaurant-map-controls{grid-template-columns:1fr 1fr}.restaurant-map-controls label:first-child{grid-column:1/-1}.restaurant-map-controls button{grid-column:1/-1}.restaurant-map-statusbar{align-items:flex-start;flex-direction:column;gap:4px}.restaurant-map-layout{grid-template-columns:1fr}.restaurant-map-canvas{height:390px;min-height:390px}.restaurant-map-results{border-top:1px solid #ffffff38;border-left:0;height:430px}.dir-list li.is-map-target{padding-left:8px;padding-right:8px}}
@media (max-width:480px){.restaurant-map-controls{grid-template-columns:1fr}.restaurant-map-controls label:first-child,.restaurant-map-controls button{grid-column:auto}.restaurant-map-canvas{height:350px;min-height:350px}.restaurant-map-results{height:410px}}
@media (prefers-reduced-motion:reduce){.restaurant-map-controls button{transition:none}.dir-list li.is-map-target{scroll-behavior:auto}}
@media print{.restaurant-explorer,.restaurant-directory-action{display:none!important}}
