/* ============================================================
   RUTA TURISTICA RIO NEGRO — hoja de estilos
   Titulo con logo + lista lateral con filtros + mapa.
   Mobile-first: en celular el mapa va arriba y la lista debajo.
   ============================================================ */

/* ---- HERO: logo + titulo ---- */
.rn-hero{
  padding: 28px 24px 20px;
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.rn-hero-logo{
  display: block;
  height: 56px;
  width: auto;
  margin: 0 auto 10px;
}
.rn-hero h1{
  font-family: var(--font-display);
  font-size: clamp(26px, 5vw, 42px);
  font-weight: 700;
  color: var(--negro-suave);
  line-height:1.2;
  margin: 0;
}
.rn-hero h1 em{ color: var(--dorado); font-style: italic; }

/* En escritorio el navbar es mas alto, el titulo necesita mas espacio arriba */
@media (min-width: 900px){
  .rn-hero{ padding-top: 130px; }
}

/* ---- LAYOUT: panel + mapa ---- */
.rn-layout{
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 0 48px;
}
.rn-grid{
  display: flex;
  flex-direction: column;
}

/* Mapa (en celular va primero) */
.rn-map-wrap{
  position: relative;
  width: 100%;
  height: 62vh;
  min-height: 420px;
  order: -1;
  scroll-margin-top: 72px;
}
#rn-map{
  position: absolute;
  inset: 0;
  background: var(--arena);
}

/* ---- Panel lateral ---- */
.rn-panel{
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #fff;
  padding: 16px 16px 8px;
}
.rn-filtros{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rn-filtro{
  border: 1px solid rgba(0,0,0,0.12);
  background: #fff;
  color: var(--negro-suave);
  font-family: var(--font-body, inherit);
  font-size: 12px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 99px;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.rn-filtro:hover{ border-color: var(--verde-selva); }
.rn-filtro.active{
  background: var(--verde-selva);
  border-color: var(--verde-selva);
  color: #fff;
}
.rn-filtro:focus-visible,
.rn-item:focus-visible,
.rn-lock:focus-visible{ outline: 3px solid var(--dorado); outline-offset: 2px; }

.rn-count{
  margin: 12px 2px 8px;
  font-size: 12px;
  color: var(--gris-medio);
}
.rn-lista{
  list-style: none;
  margin: 0;
  padding: 0 0 8px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.rn-item{
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 12px;
  background: #faf9f7;
  transition: background .2s, border-color .2s;
}
.rn-item:hover{ background: #fff; border-color: rgba(0,0,0,0.22); }
.rn-item[aria-pressed="true"]{
  background: #fbf5e9;
  border-color: var(--dorado);
}
.rn-item-num{
  flex: none;
  width: 28px; height: 28px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 12px; font-weight: 700;
  color: #fff;
  background: #8a8275;
}
.rn-item-num[data-cat="nat"]{  background: #2e7d4f; }
.rn-item-num[data-cat="cult"]{ background: #7b4f2e; }
.rn-item-num[data-cat="serv"]{ background: #c59d5f; color: #2b2e2c; }
.rn-item-txt strong{
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--negro-suave);
  line-height: 1.25;
}
.rn-item-txt small{
  font-size: 11px;
  color: var(--gris-medio);
}

/* ---- Escritorio: panel a la izquierda, mapa a la derecha ---- */
@media (min-width: 900px){
  .rn-layout{ padding: 0 24px 56px; }
  .rn-grid{
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 20px;
    align-items: stretch;
  }
  .rn-map-wrap{
    order: 0;
    height: 78vh;
    min-height: 560px;
    max-height: 820px;
    border-radius: 16px;
    overflow: hidden;
  }
  .rn-panel{
    height: 78vh;
    min-height: 560px;
    max-height: 820px;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 16px;
  }
}

/* ---- Pin con logo (cuando un punto tiene campo "logo") ---- */
.rn-pin-logo{
  width: 100%; height: 100%;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
  overflow: hidden;
  transition: transform .15s;
}
.rn-pin-logo img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.rn-pin-logo.activo{ border-color: var(--dorado); box-shadow: 0 4px 14px rgba(197,157,95,0.6); }

/* ---- Boton "Liberar desplazamiento" (solo celular) ---- */
.rn-lock{
  display: none;
  position: absolute;
  z-index: 500;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%);
  border: none;
  background: var(--verde-selva);
  color: #fff;
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 700;
  padding: 13px 20px;
  border-radius: 99px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.3);
  white-space: nowrap;
}
.rn-bloqueado .rn-lock{ display: inline-flex; align-items: center; }

/* En celular alejado, los nombres de los pines se ocultan hasta acercar */
.rn-zoom-lejos .rn-marker-label{ display: none; }

@media (prefers-reduced-motion: reduce){
  .rn-filtro, .rn-item, .rn-pin-logo{ transition: none; }
}

/* ---- Controles Mapa/Satelite ---- */
.rn-map-ctrl{
  position:absolute;
  top:14px; left:14px;
  display:flex; gap:6px;
  z-index:500;
}
.rn-ctrl-btn{
  background: rgba(255,255,255,0.95);
  border: none;
  border-radius: 8px;
  padding: 8px 12px;
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  color: var(--gris-medio);
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transition: all .2s;
}
.rn-ctrl-btn.active{
  background: var(--verde-selva);
  color: #fff;
}
.rn-ctrl-btn:hover{ opacity:0.9; }

/* ---- Popup: forma cuadrada y compacta, igual en PC y movil ---- */
.leaflet-popup.rn-popup-wrap .leaflet-popup-content-wrapper{
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
}
.leaflet-popup.rn-popup-wrap .leaflet-popup-content{
  margin: 0;
  width: 220px !important;
}
.rn-popup-photo{
  width: 100%;
  height: 90px;
  background-color: var(--gris-suave);
  background-size: cover;
  background-position: center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px;
  color: var(--gris-medio);
}
.rn-popup-photo i{ font-size:16px; opacity:0.5; }
.rn-popup-photo span{ font-size:9px; letter-spacing:0.5px; text-transform:uppercase; opacity:0.6; }
.rn-popup-inner{ padding: 10px 12px 2px; }
.rn-popup-cat{
  font-size:9px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase;
  margin-bottom:3px;
}
.rn-popup-name{
  font-family: var(--font-display);
  font-size:14px; font-weight:700;
  color: var(--negro-suave);
  margin-bottom:4px;
  line-height:1.2;
}
.rn-popup-desc{
  font-size:11px; line-height:1.45;
  color: var(--gris-medio);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rn-popup-footer{
  display:flex; align-items:center; gap:5px;
  padding: 8px 12px 10px;
  font-size:10px; font-weight:700; letter-spacing:0.4px;
  text-decoration:none;
}
.rn-popup-footer:hover{ text-decoration:underline; }

/* ---- Nombre visible al costado de cada pin ---- */
.rn-marker-label{
  background: rgba(255,255,255,0.92);
  border: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  border-radius: 6px;
  padding: 3px 8px;
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  color: var(--gris-texto, #2b2e2c);
  white-space: nowrap;
}
.rn-marker-label::before{
  display: none;
}
