
.ticon{vertical-align:-4px;display:inline-block}
.em .ticon,.card-top .ticon{width:22px;height:22px}
/* Enlace al formulario de dueños: es la única acción del sitio que nos trae
   datos de vuelta, así que se distingue del resto de la navegación. */
.nav-owner{color:var(--coral)!important;font-weight:800}
.nav-owner::before{content:"🍺 "}

/* ── Muro de contenido premium (espeja el paywall de la app) ── */
.gate{max-width:820px;margin:0 auto 28px;padding:26px 24px;text-align:center;
  background:linear-gradient(160deg,rgba(255,107,92,.14),rgba(245,166,35,.08));
  border:1px solid rgba(255,107,92,.30);border-radius:18px}
.gate-lock{font-size:2rem;margin-bottom:6px}
.gate h2{font-size:1.25rem;margin-bottom:8px;color:var(--cream)}
.gate p{color:var(--muted);max-width:56ch;margin:0 auto 14px}
.gate-cta{display:inline-block;padding:12px 26px;border-radius:999px;font-weight:800;
  color:#fff;background:linear-gradient(90deg,var(--coral),var(--coral2));
  box-shadow:0 6px 20px rgba(255,79,87,.32);margin-bottom:10px}
.gate-cta:hover{filter:brightness(1.07)}
.locked{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;
  color:var(--amber);background:rgba(245,166,35,.12);border:1px dashed rgba(245,166,35,.42);
  padding:5px 11px;border-radius:999px;margin:6px 0}
:root{
/* Todos los tokens vienen de /assets/brand/brand.css, que ya trae claro Y
   oscuro. Aquí solo se les da el alias corto que usa el resto de este CSS.
   NUNCA escribas un hex suelto abajo: rompe el tema y la marca. */
--bg:var(--hopeo-bg); --surface:var(--hopeo-card); --surface2:var(--hopeo-card2);
--line:var(--hopeo-hairline); --text:var(--hopeo-fg); --muted:var(--hopeo-fg-muted);
--amber:var(--hopeo-amber); --amber2:var(--hopeo-peach); --coral:var(--hopeo-coral);
--coral2:var(--hopeo-coral-deep); --green:var(--hopeo-teal); --sea:var(--hopeo-blue);
--cream:var(--hopeo-cream)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--hopeo-font);line-height:1.55}
a{color:inherit;text-decoration:none}
.dot{color:var(--amber)}
.muted{color:var(--muted)} .small{font-size:.85rem}
.nav{position:sticky;top:0;z-index:1000;display:flex;justify-content:space-between;align-items:center;
padding:.8rem 1.2rem;background:rgba(14,17,22,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.navlinks{display:flex;gap:1.1rem;font-size:.95rem}
.navlinks a{color:var(--muted)} .navlinks a:hover{color:var(--amber2)}
.hero{padding:2.6rem 1.2rem 1.4rem;max-width:1080px;margin:0 auto}
.hero.small{padding:2rem 1.2rem 1rem}
.hero h1{font-size:clamp(1.7rem,4.5vw,2.7rem);font-weight:800;letter-spacing:-.03em}
.tag{color:var(--muted);margin-top:.4rem;max-width:56ch}
.tag a{color:var(--amber2)}
.controls{max-width:1080px;margin:0 auto;padding:0 1.2rem 1rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
#q{flex:1 1 240px;padding:.65rem .9rem;border-radius:12px;border:1px solid var(--line);
background:var(--surface);color:var(--text);font-size:1rem;outline:none}
#q:focus{border-color:var(--amber)}
.chips{display:flex;gap:.45rem;flex-wrap:wrap}
.chip{padding:.5rem .85rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);
color:var(--muted);font-size:.88rem;cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--amber)}
.chip.on{background:var(--amber);border-color:var(--amber);color:#161206;font-weight:700}
.map{height:52vh;min-height:320px;margin:0 auto 1.2rem;max-width:1080px;border-radius:16px;border:1px solid var(--line)}
.map.small{height:38vh} .map.mini{height:240px;margin:.8rem 0;border-radius:12px}
.leaflet-container{background:#0b0e12;border-radius:16px}
.grid{max-width:1080px;margin:0 auto;padding:0 1.2rem 3rem;display:grid;gap:.9rem;
grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;
display:flex;flex-direction:column;gap:.55rem;transition:.15s}
.card:hover{border-color:var(--amber);transform:translateY(-2px)}
.card-top{display:flex;gap:.7rem;align-items:center}
.em{font-size:1.6rem}
.card-name{font-weight:700}
.card-sub{color:var(--muted);font-size:.85rem}
.card-badges{display:flex;gap:.4rem;flex-wrap:wrap}
.badge{font-size:.72rem;font-weight:700;padding:.18rem .55rem;border-radius:999px;letter-spacing:.01em}
.badge.v{background:rgba(240,168,50,.15);color:var(--amber2);border:1px solid rgba(240,168,50,.4)}
.badge.hh{background:rgba(74,222,128,.12);color:var(--green);border:1px solid rgba(74,222,128,.35)}
.badge.sea{background:rgba(94,198,216,.12);color:var(--sea);border:1px solid rgba(94,198,216,.35)}
.badge.open{background:rgba(74,222,128,.15);color:var(--green)}
.hhline{font-size:.85rem;color:var(--amber2)}
.pueblos{max-width:1080px;margin:0 auto;padding:0 1.2rem 3rem;display:flex;flex-wrap:wrap;gap:.55rem}
.pueblo-pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;
padding:.55rem 1rem;font-size:.92rem;transition:.15s}
.pueblo-pill:hover{border-color:var(--amber);color:var(--amber2)}
.detail{max-width:1080px;margin:0 auto;padding:0 1.2rem 3rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}
@media(max-width:760px){.detail{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.2rem}
.panel h2{font-size:1.05rem;margin-bottom:.6rem}
.hhpanel{border-color:rgba(240,168,50,.5);margin-bottom:1rem}
.big{font-size:1.15rem;font-weight:700;color:var(--amber2)}
.hours{width:100%;border-collapse:collapse;font-size:.92rem}
.hours td{padding:.3rem 0;border-bottom:1px solid var(--line)}
.hours td:first-child{color:var(--muted);width:4.5rem}
.btnrow{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
.btn{background:var(--amber);color:#161206;font-weight:700;padding:.55rem 1rem;border-radius:12px;font-size:.9rem}
.btn:hover{background:var(--amber2)}
.btn.ghost{background:transparent;color:var(--amber2);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--amber)}
.footer{border-top:1px solid var(--line);padding:1.6rem 1.2rem 2.4rem;max-width:1080px;margin:0 auto;
display:flex;flex-direction:column;gap:.5rem}
.footer a{color:var(--amber2)}
.pin{background:var(--amber);border:2px solid #0e1116;border-radius:50%;box-shadow:0 0 0 2px rgba(240,168,50,.35)}
.pin.hhnow{background:var(--green);box-shadow:0 0 0 3px rgba(74,222,128,.4)}
.leaflet-popup-content-wrapper{background:var(--surface2);color:var(--text);border-radius:12px}
.leaflet-popup-tip{background:var(--surface2)}
.leaflet-popup-content a{color:var(--amber2);font-weight:700}
.stopnum{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;
border-radius:50%;background:var(--amber);color:#161206;font-weight:800;font-size:1rem;font-style:normal}
.routenum{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
background:var(--amber);color:#161206;font-weight:800;font-size:.8rem;border:2px solid #0e1116}
.formgrid{display:grid;gap:.8rem}
.formgrid label{display:flex;flex-direction:column;gap:.3rem;font-size:.88rem;color:var(--muted)}
.formgrid input{padding:.6rem .8rem;border-radius:10px;border:1px solid var(--line);
background:var(--bg);color:var(--text);font-size:1rem;outline:none}
.formgrid input:focus{border-color:var(--amber)}
button.btn{border:none;cursor:pointer;font-family:inherit}
