/* CABASETUR — estilos del sitio. Mobile first. */

:root {
  --arena: #FBF4EA;
  --papel: #FFFAF4;
  --blanco: #FFFFFF;
  --junco: #F8E7D4;
  --borde: #EADCCB;
  --borde-fuerte: #DCC6AE;
  --tinta: #2A2420;
  --tinta-2: #5E5249;
  --monte: #2F5B2C;
  --monte-oscuro: #1F3F1D;
  --monte-claro: #E5EFDF;
  --barro: #C04E10;
  --sol: #E8641B;
  --durazno: #FCD9B4;
  --atardecer: linear-gradient(180deg, #FCD9B4 0%, #F7934A 60%, #EE5A16 100%);
  --barro-oscuro: #9C3F0C;
  --wa: #1E6B45;
  --wa-oscuro: #175536;
  --f-rio: #5E7E86;
  --f-monte: #6F8A7E;
  --f-tierra: #B89B72;
  --f-madera: #8A6F5A;
  --f-junco: #7C8B6A;
  --serif: Fraunces, Georgia, 'Times New Roman', serif;
  --sans: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radio: 18px;
  --radio-chico: 12px;
  --ancho: 1280px;
  --gutter: 16px;
}
@media (min-width: 720px) { :root { --gutter: 32px; } }
@media (min-width: 1080px) { :root { --gutter: 80px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--arena); color: var(--tinta); font-family: var(--sans); font-size: 17px; line-height: 1.55; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: var(--monte); }
a:hover { color: var(--monte-oscuro); }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.1; margin: 0; letter-spacing: -0.01em; }
h1 { font-size: clamp(34px, 5vw, 56px); }
h2 { font-size: clamp(26px, 3.2vw, 40px); }
h3 { font-size: 21px; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--barro); outline-offset: 3px; border-radius: 4px; }
.oculto, .trampa { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--tinta); color: #fff; padding: 12px 16px; border-radius: 8px; }
.saltar:focus { top: 12px; color: #fff; }
.ico { flex-shrink: 0; }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 1.5px solid transparent; font: inherit; font-weight: 600; font-size: 16px; line-height: 1.1; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.btn--chico { min-height: 44px; padding: 0 16px; font-size: 15px; }
.btn--grande { min-height: 56px; padding: 0 28px; font-size: 17px; }
.btn--bloque { display: flex; width: 100%; }
.btn--barro { background: var(--barro); color: #fff; }
.btn--barro:hover { background: var(--barro-oscuro); color: #fff; }
.btn--monte { background: var(--monte); color: #fff; }
.btn--monte:hover { background: var(--monte-oscuro); color: #fff; }
.btn--wa { background: var(--wa); color: #fff; }
.btn--wa:hover { background: var(--wa-oscuro); color: #fff; }
.btn--linea { background: transparent; border-color: var(--monte); color: var(--monte); }
.btn--linea:hover { background: var(--monte-claro); }
.btn--claro { background: var(--arena); color: var(--tinta); }
.btn--claro:hover { background: #fff; color: var(--tinta); }
.btn--junco { background: var(--junco); color: var(--tinta); border-radius: var(--radio-chico); font-weight: 500; flex: 1; }
.btn--junco:hover { background: var(--borde-fuerte); color: var(--tinta); }
.btn-icono { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; flex-shrink: 0; border-radius: 999px; border: 1.5px solid var(--monte); color: var(--monte); }
.botones { display: flex; flex-wrap: wrap; gap: 12px; }
.enlace-flecha { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-decoration: none; }
.enlace-flecha:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Etiquetas y chips ---------- */
.eyebrow { display: block; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--barro); }
.eyebrow--monte { color: var(--monte); letter-spacing: .08em; }
.sello { display: inline-flex; align-self: flex-start; align-items: center; gap: 5px; padding: 4px 11px 4px 7px; border-radius: 999px; background: var(--monte-claro); color: var(--monte-oscuro); font-size: 13px; font-weight: 600; width: fit-content; }
.sello svg { color: var(--monte); }
.sello--borrador { background: var(--junco); color: var(--tinta-2); padding-left: 11px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--borde-fuerte); background: var(--papel); color: var(--tinta); font: inherit; font-size: 15px; font-weight: 500; text-decoration: none; cursor: pointer; }
.chip:hover { border-color: var(--monte); color: var(--tinta); }
.chip--activa, .chip[aria-pressed="true"] { background: var(--monte); border-color: var(--monte); color: #fff; }
.chip--activa:hover { color: #fff; }
.chip--estatico { background: var(--junco); border-color: transparent; cursor: default; min-height: 36px; font-size: 14px; }
.chips--filtro { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--gutter) * -1); padding: 2px var(--gutter); }
.chips--filtro::-webkit-scrollbar { display: none; }
.chips--filtro .chip { flex-shrink: 0; }
@media (min-width: 720px) { .chips--filtro { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; } }

/* ---------- Fotos y marcadores ---------- */
.foto { width: 100%; height: 100%; object-fit: cover; background: var(--f-rio); position: relative; }
.foto--rio { background: var(--f-rio); }
.foto--monte { background: var(--f-monte); }
.foto--tierra { background: var(--f-tierra); }
.foto--madera { background: var(--f-madera); }
.foto--junco { background: var(--f-junco); }
.foto__marca { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); background: var(--papel); color: var(--tinta); font-size: 12px; font-weight: 500; padding: 6px 10px; border-radius: 999px; line-height: 1.3; }

/* ---------- Cabecera ---------- */
.cabecera { position: sticky; top: 0; z-index: 50; background: var(--arena); border-bottom: 1px solid var(--borde); }
.cabecera__in { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.logo { display: inline-flex; align-items: center; gap: 9px; color: var(--tinta); text-decoration: none; font-family: var(--serif); font-weight: 600; font-size: 20px; letter-spacing: .04em; }
.logo svg { color: var(--monte); }
.logo:hover { color: var(--tinta); }
.menu-btn { width: 44px; height: 44px; border: 0; background: transparent; color: var(--tinta); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 10px; }
.nav { display: none; }
.nav a:not(.btn) { color: var(--tinta); text-decoration: none; font-weight: 500; }
.nav a:not(.btn)[aria-current="page"] { color: var(--monte); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.nav-abierta .nav { display: flex; position: fixed; inset: 64px 0 0; flex-direction: column; gap: 4px; padding: 16px var(--gutter) 32px; background: var(--arena); overflow-y: auto; }
.nav-abierta .nav a:not(.btn) { padding: 14px 0; font-size: 20px; border-bottom: 1px solid var(--borde); }
.nav-abierta .nav .btn { margin-top: 20px; min-height: 52px; }
@media (min-width: 1080px) {
  .cabecera__in { height: 84px; }
  .logo { font-size: 22px; }
  .menu-btn { display: none; }
  .nav, .nav-abierta .nav { display: flex; position: static; flex-direction: row; align-items: center; gap: 32px; padding: 0; background: none; overflow: visible; }
  .nav-abierta .nav a:not(.btn) { padding: 0; font-size: inherit; border: 0; }
  .nav-abierta .nav .btn { margin: 0; min-height: 44px; }
}

/* ---------- Secciones ---------- */
.seccion { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 48px var(--gutter); }
@media (min-width: 1080px) { .seccion { padding: 64px var(--gutter); } }
.seccion--junco { max-width: none; background: var(--junco); }
.seccion--junco > * { max-width: var(--ancho); margin-left: auto; margin-right: auto; }
.seccion--intro { padding-top: 28px; }
.seccion--intro > h1 { margin: 12px 0 14px; }
.seccion__cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 32px; margin-bottom: 24px; }
.seccion__cabeza h2, .seccion__cabeza h1 { margin-top: 6px; }
.seccion__texto { color: var(--tinta-2); margin-top: 10px; max-width: 720px; }
.seccion__texto--grande { font-size: 19px; margin-bottom: 28px; }
.prosa { display: flex; flex-direction: column; gap: 16px; font-size: 18px; line-height: 1.65; max-width: 760px; }
.prosa p + p { color: var(--tinta-2); }
.vacio { padding: 24px; border-radius: var(--radio); background: var(--papel); border: 1px dashed var(--borde-fuerte); color: var(--tinta-2); }

/* ---------- Grillas y tarjetas ---------- */
.grilla { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .grilla--3, .grilla--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .grilla--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grilla--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.carrusel { grid-auto-flow: column; grid-auto-columns: 78%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); }
.carrusel > * { scroll-snap-align: start; }
.carrusel::-webkit-scrollbar { display: none; }
@media (min-width: 600px) { .carrusel { grid-auto-columns: 46%; } }
@media (min-width: 1000px) { .carrusel { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; margin-right: 0; padding-right: 0; } }

.tarjeta { display: flex; flex-direction: column; background: var(--papel); border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; color: var(--tinta); text-decoration: none; }
.tarjeta:hover { color: var(--tinta); border-color: var(--borde-fuerte); }
.tarjeta__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tarjeta__cuerpo { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1; }
.tarjeta__titulo { font-size: 21px; }
.tarjeta__titulo a { color: var(--tinta); text-decoration: none; }
.tarjeta__titulo a::after { content: ''; }
.tarjeta__titulo a:hover { color: var(--monte); }
.tarjeta__meta { font-size: 14px; color: var(--tinta-2); }
.tarjeta__extra { font-size: 14px; }
.tarjeta__dato { font-size: 14px; font-weight: 600; color: var(--monte); }
.tarjeta__acciones { display: flex; gap: 8px; margin-top: auto; padding-top: 8px; }
.tarjeta__acciones .btn { flex: 1; padding: 0 10px; }
.tarjeta--destino .foto { aspect-ratio: 4 / 3; height: auto; }
@media (min-width: 1000px) { .tarjeta--destino .foto { aspect-ratio: 5 / 4; } }
.tarjeta--destino .tarjeta__titulo { font-size: 24px; }
.tarjeta--experiencia { background: none; border: 0; border-radius: 0; gap: 10px; }
.tarjeta--experiencia .foto { aspect-ratio: 4 / 5; height: auto; border-radius: var(--radio); }
.tarjeta--experiencia:hover .tarjeta__titulo { color: var(--monte); }
.tarjeta--compacta .tarjeta__media { aspect-ratio: 16 / 11; }
.bloque { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: var(--papel); border: 1px solid var(--borde); border-radius: var(--radio); }
.bloque svg { color: var(--monte); }
.bloque h3 { font-family: var(--sans); font-size: 18px; letter-spacing: 0; }
.bloque p { font-size: 15px; color: var(--tinta-2); }
.bloque--blanco { border: 0; }

/* ---------- Home ---------- */
.hero { position: relative; display: flex; flex-direction: column; }
.hero__foto { height: 300px; }
.hero__caja { position: relative; margin: -56px var(--gutter) 0; padding: 26px 22px; background: var(--papel); border-radius: 22px; display: flex; flex-direction: column; gap: 16px; }
.hero__bajada { font-size: 17px; color: var(--tinta-2); }
.hero__enlaces { display: flex; flex-wrap: wrap; gap: 8px 24px; }
@media (min-width: 900px) {
  .hero { min-height: 680px; justify-content: flex-end; padding: 0 var(--gutter) 64px; }
  .hero__foto { position: absolute; inset: 0; height: 100%; }
  .hero__caja { margin: 0; max-width: 720px; padding: 44px; gap: 20px; }
  .hero__bajada { font-size: 19px; }
  .hero > .foto .foto__marca { left: auto; right: var(--gutter); top: 24px; bottom: auto; }
}
.buscador { display: flex; flex-direction: column; gap: 8px; background: var(--blanco); border: 1px solid var(--borde); border-radius: 16px; padding: 8px; }
.buscador label { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; }
.buscador label span { font-size: 12px; font-weight: 600; color: var(--tinta-2); }
.buscador select { border: 0; background: transparent; font: inherit; font-size: 16px; color: var(--tinta); padding: 2px 0; min-height: 28px; }
.buscador .btn { border-radius: 12px; }
@media (min-width: 640px) {
  .buscador { flex-direction: row; align-items: stretch; }
  .buscador label { flex: 1; }
  .buscador label + label { border-left: 1px solid var(--borde); }
}
.franja { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 40px; padding: 20px var(--gutter); background: var(--junco); font-size: 15px; font-weight: 500; margin-top: 32px; }
@media (min-width: 900px) { .franja { margin-top: 0; } }
.franja span { display: inline-flex; align-items: center; gap: 8px; }
.franja svg { color: var(--monte); }
.categorias { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 720px) { .categorias { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .categorias { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 14px; } }
.categoria { display: flex; flex-direction: column; gap: 12px; padding: 18px; min-height: 108px; background: var(--papel); border: 1px solid var(--borde); border-radius: 16px; color: var(--tinta); text-decoration: none; font-weight: 600; }
.categoria svg { color: var(--monte); }
.categoria:hover { border-color: var(--monte); color: var(--tinta); }
.quienes { display: grid; gap: 28px; align-items: center; }
.quienes__foto { aspect-ratio: 4 / 3; height: auto; border-radius: 24px; }
.quienes__texto { display: flex; flex-direction: column; gap: 16px; }
.quienes__texto p { font-size: 18px; color: var(--tinta-2); }
@media (min-width: 900px) { .quienes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; } }
.banda-socios { max-width: var(--ancho); margin: 24px var(--gutter) 64px; padding: 32px 24px; border-radius: 26px; background: var(--monte); color: #fff; display: flex; flex-direction: column; gap: 20px; }
.banda-socios h2 { color: #fff; }
.banda-socios p { margin-top: 12px; color: var(--monte-claro); font-size: 17px; max-width: 700px; }
.banda-socios--suave { background: var(--junco); color: var(--tinta); }
.banda-socios--suave h2 { color: var(--tinta); font-size: clamp(24px, 2.6vw, 30px); }
.banda-socios--suave p { color: var(--tinta-2); }
.banda-socios--suave .btn--claro { background: var(--barro); color: #fff; }
.banda-socios--suave .btn--claro:hover { background: var(--barro-oscuro); }
@media (min-width: 900px) {
  .banda-socios { flex-direction: row; justify-content: space-between; align-items: center; padding: 56px 64px; gap: 48px; }
  .banda-socios .btn { flex-shrink: 0; }
}
@media (min-width: 1440px) { .banda-socios { margin-left: auto; margin-right: auto; } }

/* ---------- Agenda ---------- */
.evento { display: flex; gap: 16px; padding: 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 16px; color: var(--tinta); text-decoration: none; }
.evento:hover { color: var(--tinta); border-color: var(--borde-fuerte); }
.evento:hover h3 { color: var(--monte); }
.evento__fecha { width: 68px; height: 76px; flex-shrink: 0; border-radius: 12px; background: var(--monte); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; text-transform: uppercase; line-height: 1.2; text-align: center; }
.evento__fecha span { font-size: 24px; font-weight: 600; }
.evento__cuerpo { display: flex; flex-direction: column; gap: 6px; }
.evento__cuerpo .eyebrow { font-size: 12px; letter-spacing: .08em; }
.evento h3 { font-family: var(--sans); font-size: 17px; line-height: 1.35; letter-spacing: 0; }
.evento p { font-size: 14px; color: var(--tinta-2); }
.agenda__titulo { font-size: 24px; margin: 36px 0 16px; }
.evento[hidden] { display: none; }

/* ---------- Migas ---------- */
.migas ol { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: 14px; color: var(--tinta-2); }
.migas li + li::before { content: '/'; margin-right: 4px; }
.migas a { color: var(--tinta-2); }

/* ---------- Directorio ---------- */
.seccion__cabeza--dir { align-items: flex-end; }
.busqueda { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 18px; background: var(--blanco); border: 1px solid var(--borde); border-radius: 999px; color: var(--tinta-2); }
.busqueda input { border: 0; flex: 1; min-width: 0; font: inherit; font-size: 16px; background: transparent; color: var(--tinta); outline: none; }
.busqueda:focus-within { outline: 3px solid var(--barro); outline-offset: 2px; }
@media (min-width: 900px) { .busqueda { width: 420px; } }
.directorio { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter) 48px; display: flex; flex-direction: column; gap: 20px; }
.filtros-btn { align-self: flex-start; }
.filtros { display: none; flex-direction: column; gap: 24px; padding: 22px; background: var(--papel); border: 1px solid var(--borde); border-radius: var(--radio); }
.filtros--abiertos { display: flex; }
.filtros fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.filtros legend { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; padding: 0; }
.filtros label { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: 15px; cursor: pointer; }
.filtros input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--monte); }
.filtros select { width: 100%; min-height: 44px; border: 1px solid var(--borde-fuerte); border-radius: 10px; background: var(--blanco); font: inherit; font-size: 15px; padding: 0 10px; color: var(--tinta); }
@media (min-width: 1000px) {
  .directorio { flex-direction: row; align-items: flex-start; gap: 40px; }
  .filtros-btn { display: none; }
  .filtros { display: flex; width: 280px; flex-shrink: 0; position: sticky; top: 108px; }
}
.resultados { flex: 1; display: flex; flex-direction: column; gap: 18px; }
.resultados__conteo span { color: var(--tinta-2); }
.tarjeta[hidden] { display: none; }

/* ---------- Ficha ---------- */
.ficha { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 20px var(--gutter) 64px; }
.aviso { margin: 8px 0 16px; padding: 14px 18px; border-radius: var(--radio-chico); background: var(--junco); font-size: 15px; }
.galeria { position: relative; margin: 12px calc(var(--gutter) * -1) 0; height: 300px; display: grid; grid-template-columns: 100%; overflow: hidden; }
.galeria > :not(:first-child):not(.galeria__mas) { display: none; }
.galeria__mas { position: absolute; right: 14px; bottom: 14px; min-height: 44px; }
@media (min-width: 720px) {
  .galeria { margin: 16px 0 0; height: 480px; border-radius: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .galeria > :first-child { grid-column: span 2; grid-row: span 2; }
  .galeria > :not(:first-child):not(.galeria__mas) { display: block; }
}
@media (min-width: 1080px) { .galeria { height: 520px; } }
.ficha__cols { display: flex; flex-direction: column; gap: 40px; margin-top: 28px; }
.ficha__principal { display: flex; flex-direction: column; gap: 40px; min-width: 0; flex: 1; }
.ficha__principal h2 { font-size: 26px; margin-bottom: 16px; }
.ficha__cabeza { display: flex; flex-direction: column; gap: 12px; }
.ficha__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--tinta-2); font-size: 16px; }
.servicios { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 720px) { .servicios { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.servicios li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--papel); border: 1px solid var(--borde); border-radius: 14px; font-size: 15px; font-weight: 500; }
.servicios svg { color: var(--monte); }
.datos { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--borde); }
@media (min-width: 720px) { .datos { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } }
.datos div { padding: 14px 0; border-bottom: 1px solid var(--borde); display: flex; flex-direction: column; gap: 2px; }
.datos dt { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-2); }
.datos dd { margin: 0; }
.mapa { position: relative; height: 280px; border-radius: var(--radio); background: #D9D3C3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; overflow: hidden; text-align: center; padding: 16px; }
.mapa span { font-size: 14px; color: var(--tinta-2); }
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (min-width: 720px) { .mapa { height: 340px; } }
.mapa__pie { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; margin-top: 12px; }
.galeria-completa { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.galeria-completa .foto { aspect-ratio: 4 / 3; border-radius: 10px; }
.contacto { display: flex; flex-direction: column; gap: 16px; }
.contacto__caja { padding: 24px; background: var(--papel); border: 1px solid var(--borde); border-radius: 20px; display: flex; flex-direction: column; gap: 12px; }
.contacto__caja h2 { font-size: 24px; }
.contacto__caja > p { font-size: 15px; color: var(--tinta-2); }
.contacto__redes { display: flex; gap: 10px; }
.contacto__redes:empty { display: none; }
.contacto__nota { font-size: 13px !important; border-top: 1px solid var(--borde); padding-top: 12px; }
.contacto__sello { display: flex; gap: 12px; padding: 18px 20px; background: var(--monte-claro); border-radius: 16px; font-size: 14px; color: var(--monte-oscuro); }
.contacto__sello svg { color: var(--monte); }
@media (min-width: 1000px) {
  .ficha__cols { flex-direction: row; align-items: flex-start; gap: 64px; }
  .contacto { width: 380px; flex-shrink: 0; position: sticky; top: 108px; }
}
.barra-contacto { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; gap: 8px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--papel); border-top: 1px solid var(--borde); }
.barra-contacto .btn { flex: 1; min-height: 52px; }
body.con-barra { padding-bottom: 84px; }
@media (min-width: 1000px) { .barra-contacto { display: none; } body.con-barra { padding-bottom: 0; } }

/* ---------- Destino ---------- */
.hero--destino .hero__caja .migas ol { margin-bottom: 0; }
.subnav { position: sticky; top: 64px; z-index: 30; display: flex; gap: 28px; padding: 0 var(--gutter); background: var(--arena); border-bottom: 1px solid var(--borde); overflow-x: auto; scrollbar-width: none; margin-top: 32px; }
.subnav::-webkit-scrollbar { display: none; }
.subnav a { flex-shrink: 0; padding: 16px 0; color: var(--tinta); text-decoration: none; font-weight: 500; border-bottom: 2px solid transparent; }
.subnav a:hover { color: var(--monte); border-color: var(--monte); }
@media (min-width: 900px) { .subnav { margin-top: 0; justify-content: center; } }
@media (min-width: 1080px) { .subnav { top: 84px; } }
[id] { scroll-margin-top: 140px; }

/* ---------- Artículos ---------- */
.articulo { max-width: 860px; margin: 0 auto; padding: 28px var(--gutter) 24px; display: flex; flex-direction: column; gap: 18px; }
.articulo__bajada { font-size: 20px; color: var(--tinta-2); }
.articulo__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--tinta-2); }
.articulo__foto { aspect-ratio: 16 / 9; height: auto; border-radius: 20px; margin: 8px 0; }
.articulo__foto--cuadrada { aspect-ratio: 1 / 1; max-width: 520px; }

/* ---------- Institucional ---------- */
.institucional { display: grid; gap: 28px; align-items: center; }
.institucional__texto { display: flex; flex-direction: column; gap: 14px; }
.institucional__foto { aspect-ratio: 4 / 3; height: auto; border-radius: 24px; }
@media (min-width: 900px) { .institucional { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; } }
.prosa-cols { display: grid; gap: 32px; }
.prosa-cols h2 { margin-bottom: 18px; }
@media (min-width: 900px) { .prosa-cols { grid-template-columns: 3fr 2fr; gap: 56px; } }
.tarjetas-mision { display: flex; flex-direction: column; gap: 16px; }
.tarjetas-mision h3 { font-family: var(--serif); font-size: 24px; }
.tarjetas-mision p { font-size: 16px; }
.verificado { display: flex; flex-direction: column; gap: 20px; }
.verificado__icono { width: 96px; height: 96px; border-radius: 999px; background: var(--papel); color: var(--monte); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.verificado p { margin-top: 12px; font-size: 18px; color: var(--tinta-2); max-width: 760px; }
@media (min-width: 720px) { .verificado { flex-direction: row; align-items: center; gap: 32px; } }
.comision { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .comision { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .comision { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.comision li { display: flex; flex-direction: column; gap: 2px; padding: 18px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 14px; }
.comision__cargo { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--barro); }
.comision__nombre { font-weight: 600; font-size: 17px; }
.comision__loc { font-size: 14px; color: var(--tinta-2); }
.contacto-inst { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Asociate ---------- */
.asociate-hero { display: grid; gap: 32px; align-items: center; }
.asociate-hero > div:first-child { display: flex; flex-direction: column; gap: 18px; }
.asociate-hero__visual { position: relative; height: 340px; border-radius: 26px; overflow: hidden; }
.asociate-hero__ficha { position: absolute; right: 16px; bottom: 16px; width: 250px; background: var(--papel); border-radius: 16px; overflow: hidden; }
.asociate-hero__ficha .foto { height: 110px; }
.asociate-hero__ficha > div { padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.asociate-hero__ficha strong { font-family: var(--serif); font-size: 19px; }
.asociate-hero__ficha span:last-child { font-size: 13px; color: var(--tinta-2); }
@media (min-width: 900px) { .asociate-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; } .asociate-hero__visual { height: 480px; } .asociate-hero__ficha { width: 300px; right: 28px; bottom: 28px; } }
.reporte { display: grid; gap: 32px; align-items: center; }
.reporte > div:first-child { display: flex; flex-direction: column; gap: 14px; }
@media (min-width: 900px) { .reporte { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; } }
.reporte__mail { padding: 26px; background: var(--blanco); border: 1px solid var(--borde); border-radius: 22px; display: flex; flex-direction: column; gap: 18px; }
.reporte__cabeza { display: flex; justify-content: space-between; font-size: 14px; color: var(--tinta-2); }
.reporte__hola { font-family: var(--serif); font-size: 24px; }
.reporte__datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.reporte__datos div { padding: 14px; background: var(--arena); border-radius: 12px; display: flex; flex-direction: column; gap: 4px; }
.reporte__datos b { font-size: 28px; color: var(--monte); }
.reporte__datos span { font-size: 13px; color: var(--tinta-2); line-height: 1.3; }
.reporte__mail > p { font-size: 13px; color: var(--tinta-2); }
.pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
@media (min-width: 900px) { .pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pasos li { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 2px solid var(--monte); }
.pasos span { font-family: var(--serif); font-weight: 600; font-size: 40px; color: var(--barro); line-height: 1; }
.pasos h3 { font-family: var(--sans); font-size: 20px; letter-spacing: 0; }
.pasos p { color: var(--tinta-2); }
.formulario { display: grid; gap: 32px; background: var(--papel); border: 1px solid var(--borde); border-radius: 26px; margin: 24px var(--gutter); padding: 32px 22px; max-width: var(--ancho); }
@media (min-width: 900px) { .formulario { grid-template-columns: 2fr 3fr; gap: 56px; padding: 56px; } }
@media (min-width: 1440px) { .formulario { margin-left: auto; margin-right: auto; } }
.form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 640px) { .form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .form__ancho { grid-column: span 2; } }
.form label:not(.trampa) { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.form input, .form select, .form textarea { min-height: 48px; border: 1px solid var(--borde-fuerte); border-radius: 10px; background: var(--blanco); font: inherit; font-size: 16px; font-weight: 400; padding: 0 12px; color: var(--tinta); }
.form textarea { padding: 12px; resize: vertical; }
.form [aria-invalid="true"] { border-color: var(--barro); box-shadow: 0 0 0 1px var(--barro); }
.form__estado { font-size: 15px; font-weight: 500; }
.form__estado--ok { color: var(--monte); }
.form__estado--error { color: var(--barro); }
.faq { max-width: 960px; }
.faq h2 { margin-bottom: 16px; }
.faq details { border-bottom: 1px solid var(--borde); }
.faq summary { padding: 20px 32px 20px 0; font-weight: 600; font-size: 18px; cursor: pointer; list-style: none; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 4px; top: 16px; font-size: 26px; font-weight: 400; color: var(--monte); }
.faq details[open] summary::after { content: '−'; }
.faq details p { padding: 0 0 20px; color: var(--tinta-2); }

/* ---------- Recursos ---------- */
.recursos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.recurso { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; padding: 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 16px; }
.recurso__icono { width: 52px; height: 52px; border-radius: 14px; background: var(--monte-claro); color: var(--monte); display: flex; align-items: center; justify-content: center; }
.recurso__texto { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 4px; }
.recurso__texto h2 { font-family: var(--sans); font-size: 18px; letter-spacing: 0; }
.recurso__texto .eyebrow { font-size: 12px; }
.recurso__texto p { font-size: 15px; color: var(--tinta-2); }
.recurso__pronto { font-size: 14px; font-weight: 600; color: var(--tinta-2); padding: 8px 14px; border-radius: 999px; background: var(--junco); }

/* ---------- Pie ---------- */
.pie { background: var(--tinta); color: var(--junco); }
.pie__in { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 48px var(--gutter) 24px; display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .pie__in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .pie__in { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.pie h2 { font-family: var(--sans); font-size: 15px; color: #fff; margin-bottom: 10px; letter-spacing: 0; }
.pie nav, .pie__in > div { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.pie a { color: var(--junco); text-decoration: none; }
.pie a:hover { color: #fff; text-decoration: underline; }
.pie__logo { font-family: var(--serif); font-weight: 600; font-size: 22px; color: #fff; letter-spacing: .04em; }
.pie__marca p { font-size: 14px; line-height: 1.5; max-width: 380px; }
.pie__legal { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 20px var(--gutter) 32px; font-size: 13px; color: #B9B2A4; border-top: 1px solid #333D38; }

.error404 { min-height: 50vh; }

/* ===== v2: localidades y presencia institucional ===== */

/* Logo con nombre completo de la cámara */
.logo { align-items: center; gap: 10px; letter-spacing: 0; }
.logo__textos { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.logo__nombre { font-family: var(--serif); font-weight: 600; font-size: 20px; letter-spacing: .04em; line-height: 1; }
.logo__lema { font-family: var(--sans); font-weight: 500; font-size: 11px; line-height: 1.25; color: var(--tinta-2); letter-spacing: .01em; max-width: 210px; }
.cabecera__in { height: auto; min-height: 64px; padding-block: 8px; }
@media (min-width: 480px) { .logo__lema { max-width: none; } }
@media (min-width: 1080px) {
  .cabecera__in { min-height: 84px; }
  .logo__nombre { font-size: 22px; }
  .logo__lema { font-size: 12px; max-width: 230px; }
}
@media (min-width: 1240px) { .logo__lema { max-width: none; } }
.nav-abierta .nav { inset: 0; top: var(--alto-cabecera, 72px); }
.subnav { top: 72px; }
@media (min-width: 1080px) { .subnav { top: 84px; } }

/* Firma institucional en el hero */
.hero__firma { display: flex; align-items: center; gap: 10px; padding-top: 16px; border-top: 1px solid var(--borde); font-size: 14px; color: var(--tinta-2); }
.hero__firma svg { color: var(--monte); }
.hero__firma a { font-weight: 600; }

/* Cifras de la cámara */
.cifras { background: var(--monte); color: #fff; margin-top: 32px; }
@media (min-width: 900px) { .cifras { margin-top: 0; } }
.cifras__in { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 28px var(--gutter); display: flex; flex-direction: column; gap: 18px; }
.cifras__titulo { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.2; color: #fff; }
.cifras__lista { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.cifras__lista div { display: flex; flex-direction: column-reverse; gap: 2px; }
.cifras__lista dd { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 40px; line-height: 1; font-variant-numeric: tabular-nums; }
.cifras__lista dt { font-size: 14px; color: var(--monte-claro); }
@media (min-width: 900px) {
  .cifras__in { flex-direction: row; align-items: center; justify-content: space-between; gap: 48px; padding-block: 32px; }
  .cifras__titulo { max-width: 300px; font-size: 22px; }
  .cifras__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); flex: 1; max-width: 820px; }
  .cifras__lista dd { font-size: 48px; }
}
.cifras--pagina { margin-top: 0; }

/* Alojamientos por localidad */
.por-localidad { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.por-localidad h3 { font-family: var(--sans); font-size: 16px; letter-spacing: 0; }
.chip__n { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; margin-left: 8px; padding: 0 6px; border-radius: 999px; background: var(--junco); font-size: 13px; font-weight: 600; color: var(--tinta-2); }
.chip:hover .chip__n { background: var(--monte-claro); color: var(--monte-oscuro); }
.chips--localidades { margin-bottom: 20px; }
.lista-localidades { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .lista-localidades { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .lista-localidades { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lista-localidades a { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 14px 18px; background: var(--papel); border: 1px solid var(--borde); border-radius: 14px; color: var(--tinta); text-decoration: none; }
.lista-localidades a:hover { border-color: var(--monte); color: var(--tinta); }
.lista-localidades a > span:first-child { font-family: var(--serif); font-weight: 600; font-size: 20px; flex: 1; }
.lista-localidades__n { font-size: 14px; color: var(--tinta-2); }
.lista-localidades svg { color: var(--monte); }
.cerca__destino { margin-top: 4px; }

/* Directorio: localidad como filtro principal */
.dir-busqueda { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.selector-localidad { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 14px 0 18px; background: var(--blanco); border: 1.5px solid var(--monte); border-radius: 999px; color: var(--monte); }
.selector-localidad select { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 16px; font-weight: 600; color: var(--tinta); min-height: 48px; outline: none; cursor: pointer; }
.selector-localidad:focus-within { outline: 3px solid var(--barro); outline-offset: 2px; }
.dir-busqueda .busqueda { width: 100%; }
@media (min-width: 900px) {
  .dir-busqueda { flex-direction: row; width: auto; }
  .selector-localidad { width: 280px; }
  .dir-busqueda .busqueda { width: 300px; }
}
.filtros__atajos { display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.filtros__titulo { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 4px; }

/* Home: la cámara */
.camara { display: grid; gap: 28px; }
.camara__texto { display: flex; flex-direction: column; gap: 16px; }
.camara__texto > p { font-size: 18px; color: var(--tinta-2); max-width: 620px; }
.camara__accion { display: flex; flex-direction: column; gap: 14px; padding: 24px; background: var(--papel); border: 1px solid var(--borde); border-radius: 20px; }
.camara__accion h3 { font-size: 22px; }
.acciones-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.acciones-lista li + li { border-top: 1px solid var(--borde); }
.acciones-lista a { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; padding: 14px 0; color: var(--tinta); text-decoration: none; }
.acciones-lista a:hover strong { color: var(--monte); }
.accion__fecha { grid-row: span 2; align-self: start; padding: 6px 10px; border-radius: 8px; background: var(--monte-claro); color: var(--monte-oscuro); font-size: 12px; font-weight: 600; text-transform: uppercase; white-space: nowrap; }
.accion__tipo { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--barro); }
.acciones-lista strong { font-weight: 600; font-size: 16px; line-height: 1.35; }
@media (min-width: 900px) { .camara { grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; } }

/* Línea de tiempo */
.linea-tiempo { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.linea-tiempo li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding-bottom: 26px; }
.linea-tiempo li::before { content: ''; position: absolute; left: 31px; top: 34px; bottom: 0; width: 2px; background: var(--borde-fuerte); }
.linea-tiempo li:last-child::before { display: none; }
.linea-tiempo__anio { display: flex; align-items: center; justify-content: center; width: 64px; height: 34px; border-radius: 999px; background: var(--monte); color: #fff; font-weight: 600; font-size: 15px; font-variant-numeric: tabular-nums; }
.linea-tiempo h3 { font-family: var(--sans); font-size: 18px; letter-spacing: 0; margin-top: 6px; }
.linea-tiempo p { color: var(--tinta-2); margin-top: 4px; max-width: 640px; }
@media (min-width: 900px) { .linea-tiempo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; } .linea-tiempo li::before { display: none; } .linea-tiempo li { border-top: 2px solid var(--borde-fuerte); padding-top: 20px; grid-template-columns: 1fr; gap: 8px; } }

/* ===== Identidad CABASETUR: logo y colores del logo ===== */
.cabecera { border-bottom: 0; box-shadow: 0 1px 0 var(--borde); }
.cabecera::before { content: ""; display: block; height: 5px; background: linear-gradient(90deg, #F7934A, #EE5A16); }
.logo__img { width: 56px; height: 56px; border-radius: 50%; flex: none; box-shadow: 0 2px 8px rgba(150, 60, 10, .18); }
.logo__nombre { color: var(--monte); }
.franja { background: var(--durazno); }
.banda-socios { background: var(--atardecer); color: #1F160F; position: relative; overflow: hidden; }
.banda-socios h2 { color: #1F160F; }
.banda-socios p { color: #3A2210; }
.banda-socios .btn--claro { background: var(--monte); color: #fff; }
.banda-socios .btn--claro:hover { background: var(--monte-oscuro); color: #fff; }
.banda-socios--suave { background: var(--junco); }
.pie__sello { display: flex; align-items: center; gap: 12px; }
.pie__sello img { width: 80px; height: 80px; border-radius: 50%; }
.hero > div.foto { background: var(--atardecer); }
@media (min-width: 1080px) { .logo__img { width: 68px; height: 68px; } }

/* Historia del logo */
.historia-logo { display: grid; gap: 32px; align-items: start; }
.historia-logo__marca { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.historia-logo__marca img { width: min(300px, 80%); height: auto; border-radius: 50%; box-shadow: 0 18px 40px rgba(150, 60, 10, .22); }
.historia-logo__nota { font-size: 14px; color: var(--tinta-2); text-align: center; }
.historia-logo__texto { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.historia-logo__intro { font-size: 19px; color: var(--tinta-2); max-width: 640px; }
.historia-logo__lista { margin: 8px 0 0; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--borde); }
.historia-logo__lista div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--borde); }
.historia-logo__lista dt { font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--monte); }
.historia-logo__lista dd { margin: 0; color: var(--tinta-2); }
.historia-logo__cita { margin: 0; padding: 28px 26px; border-radius: 22px; background: var(--atardecer); color: #1F160F; display: flex; flex-direction: column; gap: 12px; }
.historia-logo__cita p { font-family: var(--serif); font-size: clamp(20px, 2.2vw, 26px); line-height: 1.35; max-width: 900px; }
.historia-logo__cita footer { font-size: 14px; font-weight: 600; color: #3A2210; }
@media (min-width: 900px) {
  .historia-logo { grid-template-columns: 2fr 3fr; gap: 56px; }
  .historia-logo__lista div { grid-template-columns: 180px minmax(0, 1fr); gap: 20px; }
  .historia-logo__cita { grid-column: 1 / -1; padding: 40px 48px; }
}

/* Ficha: logo y color propio del socio (solo como acento) */
.ficha__titulo { display: flex; align-items: center; gap: 16px; }
.ficha__logo { width: 104px; height: 104px; object-fit: contain; border-radius: 18px; background: var(--fondo-logo, var(--blanco)); border: 1px solid var(--borde); padding: 4px; flex: none; }
@media (min-width: 720px) { .ficha__logo { width: 140px; height: 140px; } }
.ficha--marca .ficha__cabeza h1 { color: var(--acento); }
.ficha--marca .servicios svg { color: var(--acento); }
.ficha--marca .contacto__caja { border-top: 5px solid var(--acento); }
.ficha--marca .chip--estatico { background: color-mix(in srgb, var(--acento) 12%, var(--papel)); }

/* Visor de fotos */
.galeria img.foto, .galeria-completa img.foto { cursor: zoom-in; }
body.visor-abierto { overflow: hidden; }
.visor { position: fixed; inset: 0; z-index: 1000; background: rgba(16, 11, 8, .97); display: flex; align-items: center; justify-content: center; padding: calc(env(safe-area-inset-top, 0px) + 56px) max(12px, env(safe-area-inset-right, 0px)) calc(env(safe-area-inset-bottom, 0px) + 20px) max(12px, env(safe-area-inset-left, 0px)); }
.visor[hidden] { display: none; }
.visor__figura { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 100%; max-height: 100%; }
.visor__img { max-width: min(1400px, 100%); max-height: calc(100vh - 140px); width: auto; height: auto; object-fit: contain; border-radius: 6px; }
.visor__pie { display: flex; justify-content: space-between; gap: 16px; width: 100%; max-width: 1400px; color: #F3E7DA; font-size: 14px; }
.visor__contador { font-variant-numeric: tabular-nums; flex: none; }
.visor__cerrar, .visor__flecha { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 999px; line-height: 1; }
.visor__cerrar { top: calc(env(safe-area-inset-top, 0px) + 10px); right: max(12px, env(safe-area-inset-right, 0px)); width: 44px; height: 44px; font-size: 30px; }
.visor__flecha { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 40px; padding-bottom: 4px; }
.visor__flecha--ant { left: max(12px, env(safe-area-inset-left, 0px)); }
.visor__flecha--sig { right: max(12px, env(safe-area-inset-right, 0px)); }
.visor__cerrar:hover, .visor__flecha:hover { background: rgba(255,255,255,.24); }
.visor__cerrar:focus-visible, .visor__flecha:focus-visible { outline: 3px solid var(--sol); outline-offset: 2px; }
@media (max-width: 719px) { .visor__flecha { width: 44px; height: 44px; font-size: 32px; background: rgba(0,0,0,.35); } }

/* Asociate: ejemplo de consulta identificada */
.reporte > div:first-child .seccion__texto { margin-top: 0; }
.chat { padding: 22px; background: #E9F1E6; border-radius: 22px; display: flex; flex-direction: column; gap: 14px; }
.chat__cabeza { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--wa); }
.chat__globo { position: relative; align-self: flex-start; max-width: 92%; padding: 14px 16px; background: var(--blanco); border-radius: 4px 16px 16px 16px; font-size: 16px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.chat__nota { font-size: 13px; color: var(--tinta-2); }

/* Directorio: filtros por servicio agrupados */
.filtros__grupo { border-top: 1px solid var(--borde); }
.filtros__grupo:last-child { border-bottom: 1px solid var(--borde); }
.filtros__grupo summary { display: flex; justify-content: space-between; align-items: center; min-height: 48px; font-weight: 600; font-size: 15px; cursor: pointer; list-style: none; }
.filtros__grupo summary::-webkit-details-marker { display: none; }
.filtros__grupo summary::after { content: '+'; font-size: 22px; font-weight: 400; color: var(--monte); }
.filtros__grupo[open] summary::after { content: '−'; }
.filtros__grupo > div { display: flex; flex-direction: column; gap: 2px; padding-bottom: 12px; }
.filtros__n { margin-left: auto; font-size: 13px; color: var(--tinta-2); font-variant-numeric: tabular-nums; }

/* Tarjeta: logo del socio sobre la foto */
.tarjeta__media { position: relative; }
.tarjeta__logo { position: absolute; left: 12px; bottom: 12px; width: 60px; height: 60px; object-fit: contain; padding: 3px; border-radius: 14px; background: var(--fondo-logo, var(--blanco)); box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.tarjeta--compacta .tarjeta__logo { width: 50px; height: 50px; border-radius: 12px; }

/* ===== Eventos y celebraciones ===== */
.grilla--2 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .grilla--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .categorias { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.para-eventos { display: grid; gap: 28px; align-items: center; }
.para-eventos__texto { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.para-eventos__texto p { font-size: 18px; color: var(--tinta-2); max-width: 520px; }
@media (min-width: 1000px) { .para-eventos { grid-template-columns: 2fr 3fr; gap: 56px; } }

/* Ficha: bloque de eventos */
.eventos-ficha { display: flex; flex-direction: column; gap: 20px; padding: 26px 22px; border-radius: 22px; background: linear-gradient(180deg, #FDEBDA 0%, var(--papel) 70%); border: 1px solid var(--borde); }
.eventos-ficha__cabeza { display: flex; align-items: center; gap: 14px; }
.eventos-ficha__cabeza > svg { color: var(--barro); flex: none; }
.ficha .eventos-ficha h2 { margin: 4px 0 0; }
.eventos-ficha__texto { font-size: 17px; color: var(--tinta-2); max-width: 680px; }
.eventos-ficha__datos { margin: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.eventos-ficha__datos div { padding: 12px 18px; border-radius: 14px; background: var(--blanco); border: 1px solid var(--borde); display: flex; flex-direction: column-reverse; }
.eventos-ficha__datos dt { font-size: 13px; color: var(--tinta-2); }
.eventos-ficha__datos dd { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 22px; }
.eventos-ficha__listas { display: grid; gap: 20px; }
@media (min-width: 720px) { .eventos-ficha__listas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .eventos-ficha { padding: 32px; } }
.eventos-ficha__listas h3 { font-family: var(--sans); font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.eventos-ficha__listas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.eventos-ficha__listas li { display: flex; align-items: center; gap: 8px; font-size: 16px; }
.eventos-ficha__listas svg, .ficha--marca .eventos-ficha__listas svg { color: var(--acento, var(--monte)); }
.evento-consulta { display: grid; gap: 12px; padding: 20px; border-radius: 16px; background: var(--blanco); border: 1px solid var(--borde); }
.evento-consulta h3 { font-family: var(--sans); font-size: 18px; letter-spacing: 0; }
.evento-consulta label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.evento-consulta input, .evento-consulta select { min-height: 48px; border: 1px solid var(--borde-fuerte); border-radius: 10px; background: var(--blanco); font: inherit; font-size: 16px; font-weight: 400; padding: 0 12px; color: var(--tinta); }
.evento-consulta__nota { font-size: 13px; color: var(--tinta-2); }
@media (min-width: 720px) { .evento-consulta { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; } .evento-consulta h3, .evento-consulta .btn, .evento-consulta__nota { grid-column: 1 / -1; } }

/* Página /eventos/ */
.eventos-intro > h1 { margin: 10px 0 14px; }
.eventos-filtros { display: flex; flex-direction: column; gap: 8px; background: var(--blanco); border: 1px solid var(--borde); border-radius: 16px; padding: 8px; max-width: 960px; }
.eventos-filtros label { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; flex: 1; }
.eventos-filtros label span { font-size: 12px; font-weight: 600; color: var(--tinta-2); }
.eventos-filtros select { border: 0; background: transparent; font: inherit; font-size: 16px; color: var(--tinta); min-height: 28px; }
@media (min-width: 720px) { .eventos-filtros { flex-direction: row; } .eventos-filtros label + label { border-left: 1px solid var(--borde); } }
.eventos-resultados { padding-top: 0; display: flex; flex-direction: column; gap: 18px; }
.tarjeta__acciones .btn { white-space: nowrap; padding: 0 8px; }
.tarjeta__acciones .btn--wa { flex: 1.3; }
@media (max-width: 719px) { .eventos-ficha__datos dd { font-size: 19px; } }

/* ===== Centro de recursos ===== */
.recursos--catalogo .recurso { align-items: flex-start; }
.recurso--abierto { border-color: var(--borde-fuerte); }
.recurso__incluye { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 15px; }
.recurso__incluye li { display: flex; gap: 8px; align-items: flex-start; }
.recurso__incluye svg { color: var(--monte); margin-top: 3px; }
.recurso__muestra { margin-top: 10px; }
.recurso__muestra summary { cursor: pointer; font-weight: 600; color: var(--monte); font-size: 15px; min-height: 36px; display: inline-flex; align-items: center; }
.recurso__muestra > :not(summary) { margin-top: 10px; }
.recursos--catalogo .recurso > .btn { align-self: center; }
@media (max-width: 719px) { .recursos--catalogo .recurso > .btn { width: 100%; } }
.recursos__proximos { font-size: 26px; margin: 40px 0 16px; }
.recursos--proximos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 720px) { .recursos--proximos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .recursos--proximos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.recursos--proximos .recurso { align-items: flex-start; background: transparent; border-style: dashed; }
.recursos--proximos .recurso__icono { width: 44px; height: 44px; background: var(--junco); color: var(--tinta-2); }
.recursos--proximos h3 { font-family: var(--sans); font-size: 17px; letter-spacing: 0; }
.muestra-kit { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.muestra-kit div { padding: 10px 12px; background: var(--arena); border-radius: 10px; display: flex; flex-direction: column; }
.muestra-kit b { font-family: var(--serif); font-size: 20px; color: var(--monte); }
.muestra-kit span, .muestra__pie { font-size: 13px; color: var(--tinta-2); }
.muestra__pie { margin-top: 6px; }
.check-muestra { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.check-muestra li { display: flex; gap: 8px; }
.check-muestra svg { color: var(--monte); flex: none; }
.muestra-sello { width: 240px; height: auto; }

/* Herramientas: comunes */
.herramienta__intro > h1 { margin: 10px 0 12px; }
.herramienta__intro .seccion__texto--grande { margin-bottom: 12px; }
.herramienta__nota { display: inline-flex; padding: 8px 14px; border-radius: 999px; background: var(--monte-claro); color: var(--monte-oscuro); font-size: 14px; font-weight: 500; }
.herramienta__pie { padding-top: 0; font-size: 14px; color: var(--tinta-2); }
.btn--copiado { background: var(--monte-claro) !important; color: var(--monte-oscuro) !important; border-color: var(--monte-claro) !important; }

/* Kit de gestión */
.kit { display: flex; flex-direction: column; gap: 24px; padding-top: 8px; }
.kit__cols { display: grid; gap: 24px; }
@media (min-width: 1000px) { .kit__cols { grid-template-columns: 5fr 6fr; align-items: start; } .kit__bloque--resultados { position: sticky; top: 108px; } }
.kit__bloque { padding: 24px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 22px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
@media (min-width: 720px) { .kit__bloque { padding: 28px; } }
.kit__bloque h2 { font-size: 26px; }
.kit__ayuda { font-size: 15px; color: var(--tinta-2); }
.kit__campos { display: grid; gap: 14px; }
@media (min-width: 600px) { .kit__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kit__campo { display: flex; flex-direction: column; gap: 5px; font-size: 14px; font-weight: 600; }
.kit__campo small { font-size: 12.5px; font-weight: 400; color: var(--tinta-2); line-height: 1.35; }
.kit__entrada { display: flex; align-items: center; min-height: 48px; border: 1px solid var(--borde-fuerte); border-radius: 10px; background: var(--blanco); padding: 0 12px; gap: 6px; }
.kit__entrada:focus-within { outline: 3px solid var(--barro); outline-offset: 1px; }
.kit__entrada input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 17px; font-weight: 500; color: var(--tinta); font-variant-numeric: tabular-nums; }
.kit__entrada i { font-style: normal; color: var(--tinta-2); font-weight: 500; }
.kit__tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kit__tile { padding: 14px; border-radius: 14px; background: var(--blanco); border: 1px solid var(--borde); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kit__tile span { font-size: 13px; font-weight: 600; color: var(--tinta-2); }
.kit__tile b { font-family: var(--serif); font-size: 26px; line-height: 1.15; color: var(--monte); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.kit__tile small { font-size: 12.5px; color: var(--tinta-2); line-height: 1.35; }
.kit__tile--destacado { grid-column: 1 / -1; background: var(--monte); border-color: var(--monte); }
.kit__tile--destacado span, .kit__tile--destacado small { color: var(--monte-claro); }
.kit__tile--destacado b { color: #fff; font-size: 34px; }
.kit__tile--destacado b.kit__negativo { color: #FFD3C2; }
.kit__negativo { color: var(--barro) !important; }
.kit__aviso { padding: 12px 14px; border-radius: 12px; background: #FDEBDA; color: var(--barro-oscuro); font-size: 14px; font-weight: 500; }
.kit__tablero-cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; }
.kit__tabla-scroll { overflow-x: auto; margin: 0 -20px; padding: 0 20px; }
.kit__tabla { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
.kit__tabla th, .kit__tabla td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--borde); white-space: nowrap; }
.kit__tabla thead th { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); }
.kit__tabla tbody th { font-weight: 600; }
.kit__tabla input { width: 110px; min-height: 40px; border: 1px solid var(--borde-fuerte); border-radius: 8px; padding: 0 8px; font: inherit; background: var(--blanco); }
.kit__tabla tfoot th, .kit__tabla tfoot td { font-weight: 700; border-bottom: 0; padding-top: 12px; }
.kit__barra { position: relative; display: inline-flex; align-items: center; width: 120px; height: 24px; border-radius: 6px; background: var(--arena); overflow: hidden; }
.kit__barra i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--durazno); }
.kit__barra b { position: relative; padding-left: 8px; font-size: 13px; }
.kit__borrar { align-self: flex-start; border-color: var(--borde-fuerte); color: var(--tinta-2); }

/* Mensajes a huéspedes */
.msjs { display: flex; flex-direction: column; gap: 28px; padding-top: 8px; }
.msjs__datos { padding: 18px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 18px; }
.msjs__datos summary { cursor: pointer; font-weight: 600; font-size: 18px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.msjs__datos summary span { font-size: 14px; font-weight: 400; color: var(--tinta-2); }
.msjs__campos { display: grid; gap: 12px; margin-top: 16px; }
@media (min-width: 600px) { .msjs__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .msjs__campos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.msjs__campos label { display: flex; flex-direction: column; gap: 5px; font-size: 14px; font-weight: 600; }
.msjs__campos input { min-height: 46px; border: 1px solid var(--borde-fuerte); border-radius: 10px; padding: 0 12px; font: inherit; font-size: 16px; font-weight: 400; background: var(--blanco); }
.msjs__barra { display: flex; flex-direction: column; gap: 10px; position: sticky; top: 72px; z-index: 5; padding: 10px 0; background: var(--arena); }
@media (min-width: 900px) { .msjs__barra { flex-direction: row; align-items: center; justify-content: space-between; } .msjs__barra .busqueda { width: 460px; } }
@media (min-width: 1080px) { .msjs__barra { top: 84px; } }
.msjs__ayuda { font-size: 14px; color: var(--tinta-2); }
.msjs__grupo h2 { font-size: 26px; margin-bottom: 14px; }
.msjs__lista { display: grid; gap: 14px; }
@media (min-width: 900px) { .msjs__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.msj { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 18px; }
.msj[hidden], .msjs__grupo[hidden] { display: none; }
.msj h3, .msj h4 { font-family: var(--sans); font-size: 17px; letter-spacing: 0; }
.msj__texto { padding: 14px 16px; background: #E9F1E6; border-radius: 4px 14px 14px 14px; font-size: 15.5px; line-height: 1.55; flex: 1; }
.msj--muestra p { padding: 12px 14px; background: #E9F1E6; border-radius: 4px 14px 14px 14px; font-size: 15px; }
.msj mark, .msjs__ayuda mark { background: #FCE3C6; color: inherit; border-radius: 4px; padding: 0 2px; }
.msj__campo { font-weight: 600; color: var(--monte-oscuro); }
.msj__campo--vacio { color: var(--barro); }
.msj__acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.msjs__ia { display: flex; gap: 16px; padding: 22px; border-radius: 18px; background: var(--monte-claro); color: var(--monte-oscuro); }
.msjs__ia svg { flex: none; }
.msjs__ia h2 { font-size: 22px; margin-bottom: 6px; }
.msjs__ia p { font-size: 15px; }

/* Checklists */
.checks { display: flex; flex-direction: column; gap: 24px; padding-top: 8px; }
.checks__indice { position: sticky; top: 72px; z-index: 5; padding: 10px 0; background: var(--arena); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.checks__indice .chip { flex-shrink: 0; }
@media (min-width: 1080px) { .checks__indice { top: 84px; flex-wrap: wrap; } }
.check { padding: 22px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 22px; display: flex; flex-direction: column; gap: 18px; }
@media (min-width: 720px) { .check { padding: 28px; } }
.check__cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; }
.check__cabeza h2 { font-size: 26px; }
.check__cabeza p { color: var(--tinta-2); margin-top: 6px; font-size: 15px; }
.check__avance { display: flex; flex-direction: column; gap: 6px; min-width: 180px; font-size: 14px; color: var(--tinta-2); }
.check__barra { height: 10px; border-radius: 999px; background: var(--junco); overflow: hidden; }
.check__barra i { display: block; height: 100%; width: 0; background: var(--monte); border-radius: 999px; transition: width .2s; }
.check--completa .check__barra i { background: var(--sol); }
.check fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; }
.check legend { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--barro); margin-bottom: 6px; padding: 0; }
.check label { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--borde); cursor: pointer; font-size: 16px; }
.check label:last-child { border-bottom: 0; }
.check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--monte); flex: none; }
.check input:checked + span { color: var(--tinta-2); text-decoration: line-through; text-decoration-color: var(--borde-fuerte); }
@media (min-width: 900px) { .check fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } .check legend { grid-column: 1 / -1; } .check label:last-child { border-bottom: 1px solid var(--borde); } }

/* Kit de visibilidad */
.visib { display: flex; flex-direction: column; gap: 24px; padding-top: 8px; }
.visib__socio { display: flex; flex-direction: column; gap: 6px; max-width: 480px; font-weight: 600; font-size: 15px; }
.visib__socio select { min-height: 52px; border: 1.5px solid var(--monte); border-radius: 12px; padding: 0 12px; font: inherit; font-size: 17px; background: var(--blanco); color: var(--tinta); }
.visib__bloque { display: grid; gap: 24px; padding: 24px 20px; background: var(--papel); border: 1px solid var(--borde); border-radius: 22px; }
@media (min-width: 900px) { .visib__bloque { grid-template-columns: 3fr 2fr; padding: 32px; align-items: start; } }
.visib__texto { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.visib__texto h2 { font-size: 26px; }
.visib__texto > p { color: var(--tinta-2); }
.visib__codigo { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.visib__codigo textarea { font: 13px/1.5 ui-monospace, Menlo, Consolas, monospace; padding: 10px 12px; border: 1px solid var(--borde-fuerte); border-radius: 10px; background: var(--blanco); resize: vertical; }
.visib__texto > .btn { align-self: flex-start; }
.visib__muestras { display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; padding: 20px; border-radius: 16px; background: var(--blanco); }
.visib__muestras img { width: 260px; height: auto; }
.visib__oscuro { background: transparent; }
.visib__qr { display: flex; align-items: center; justify-content: center; min-height: 240px; padding: 20px; border-radius: 16px; background: var(--blanco); text-align: center; color: var(--tinta-2); font-size: 15px; }
.visib__qr img { width: 220px; height: 220px; image-rendering: pixelated; }
.visib__post img { width: 100%; max-width: 360px; height: auto; border-radius: 14px; margin: 0 auto; box-shadow: 0 10px 30px rgba(120,40,0,.18); }
.visib__textos { display: flex; flex-direction: column; gap: 10px; }
.visib__textos .msj { padding: 14px; gap: 10px; }
.visib__textos .btn { align-self: flex-start; }
.btn[aria-disabled="true"] { opacity: .5; }
.cartel { display: none; }

/* Impresión */
@media print {
  .cabecera, .pie, .barra-contacto, .migas, .botones, .btn, .checks__indice, .msjs__barra, .herramienta__pie, .banda-socios, .kit__borrar { display: none !important; }
  body { background: #fff; font-size: 12pt; }
  .seccion { padding: 8px 0; }
  .check, .kit__bloque, .visib__bloque, .msj { break-inside: avoid; border-color: #bbb; }
  .kit__bloque--resultados { position: static; }
  .kit__tabla input { border: 0; width: auto; }
  body[data-imprimir-solo] main > * { display: none !important; }
  body[data-imprimir-solo] main > .checks, body[data-imprimir-solo] main > .visib { display: block !important; }
  body[data-imprimir-solo] .check, body[data-imprimir-solo] .visib > * { display: none !important; }
  body[data-imprimir-solo="limpieza"] #limpieza, body[data-imprimir-solo="llegada"] #llegada, body[data-imprimir-solo="mantenimiento"] #mantenimiento,
  body[data-imprimir-solo="pileta"] #pileta, body[data-imprimir-solo="inventario"] #inventario, body[data-imprimir-solo="temporada"] #temporada { display: flex !important; border: 0; }
  body[data-imprimir-solo="cartel"] .visib > .cartel { display: flex !important; flex-direction: column; align-items: center; gap: 18px; text-align: center; padding: 40px 20px; font-size: 16pt; }
  .cartel__titulo { font-family: var(--serif); font-weight: 600; font-size: 26pt; color: #2F5B2C; max-width: 14cm; }
  .cartel__qr { width: 9cm; height: 9cm; image-rendering: pixelated; }
  .cartel__nombre { font-weight: 700; font-size: 20pt; }
}

/* Tablero del año: campos más anchos y, en el celular, un mes por tarjeta */
.kit__entrada--tabla { min-height: 42px; width: 150px; padding: 0 10px; }
.kit__entrada--tabla input { font-size: 16px; text-align: right; }
.kit__tabla td[data-c="adr"], .kit__tabla td[data-c="res"] { font-weight: 500; }
@media (max-width: 719px) {
  .kit__tabla-scroll { overflow: visible; margin: 0; padding: 0; }
  .kit__tabla { min-width: 0; }
  .kit__tabla thead { display: none; }
  .kit__tabla, .kit__tabla tbody, .kit__tabla tfoot { display: block; }
  .kit__tabla tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 14px 0; border-bottom: 1px solid var(--borde); }
  .kit__tabla th, .kit__tabla td { display: block; padding: 0; border: 0; white-space: normal; }
  .kit__tabla th[scope="row"] { grid-column: 1 / -1; font-family: var(--serif); font-size: 19px; }
  .kit__tabla td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 600; color: var(--tinta-2); margin-bottom: 3px; }
  .kit__tabla td[data-label="Ocupación"] { grid-column: 1 / -1; }
  .kit__tabla tbody tr:not(.kit__fila--datos) td[data-c], .kit__tabla tbody tr:not(.kit__fila--datos) td[data-label="Ocupación"] { display: none; }
  .kit__entrada--tabla { width: 100%; }
  .kit__barra { width: 100%; }
  .kit__tabla tfoot tr { background: var(--arena); border-radius: 12px; padding: 14px; border: 0; margin-top: 8px; }
  .kit__tabla tfoot td { font-size: 16px; }
}
.kit__tabla .kit__entrada--tabla input { border: 0; width: auto; flex: 1; min-width: 0; min-height: 40px; padding: 0; background: transparent; outline: none; }
.kit__campo--corto { max-width: 220px; }
.kit__tabla [data-c="oc"] { white-space: nowrap; }
@media (min-width: 720px) {
  .kit__tabla { min-width: 860px; }
  .kit__entrada--tabla { width: 132px; }
  .kit__tabla .kit__barra { width: 92px; }
  .kit__tabla th, .kit__tabla td { padding: 6px 6px; }
}
@media (min-width: 720px) { .kit__tabla { min-width: 800px; } .kit__entrada--tabla { width: 126px; } .kit__entrada--tabla:first-child input { text-align: right; } td:nth-child(2) .kit__entrada--tabla { width: 84px; } }

/* Mensajes a huéspedes: fichas para completar */
.msjs__pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
@media (min-width: 900px) { .msjs__pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.msjs__pasos li { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; background: var(--papel); border: 1px solid var(--borde); border-radius: 14px; font-size: 15px; }
.msjs__pasos b { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--sol); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.msjs__datos summary { justify-content: space-between; }
.msjs__datos-estado { font-size: 14px; font-weight: 500; color: var(--monte); padding: 2px 10px; border-radius: 999px; background: var(--monte-claro); }
.msjs__datos-ayuda { margin-top: 10px; font-size: 14px; color: var(--tinta-2); max-width: 760px; }
.msjs__huesped { display: flex; align-items: center; gap: 12px; padding: 6px 6px 6px 16px; border-radius: 999px; background: var(--durazno); font-size: 15px; font-weight: 600; }
.msjs__huesped[hidden] { display: none; }
.msj__cabeza { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.msj__dato { font-weight: 600; color: var(--monte-oscuro); }
.msj--abierto { grid-column: 1 / -1; border-color: var(--monte); box-shadow: 0 6px 24px rgba(47, 91, 44, .12); }
@media (min-width: 900px) {
  .msj--abierto { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-areas: "cabeza cabeza" "ficha vista"; align-items: start; column-gap: 28px; }
  .msj--abierto .msj__cabeza { grid-area: cabeza; }
  .msj--abierto .msj__texto { grid-area: vista; position: sticky; top: 160px; }
  .msj--abierto .msj__ficha { grid-area: ficha; }
}
.msj__ficha { display: flex; flex-direction: column; gap: 14px; }
.msj__ficha[hidden] { display: none; }
.ficha-msj__campos { display: flex; flex-direction: column; gap: 16px; }
.ficha-msj__campos fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
@media (min-width: 600px) { .ficha-msj__campos fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ficha-msj__campos legend, .ficha-msj__ayuda { grid-column: 1 / -1; } }
.ficha-msj__campos legend { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--barro); padding: 0; margin-bottom: 6px; }
.ficha-msj__ayuda { font-size: 13px; color: var(--tinta-2); }
.ficha-msj__campo { display: flex; flex-direction: column; gap: 5px; font-size: 14px; font-weight: 600; }
.ficha-msj__campo em { font-style: normal; font-weight: 400; color: var(--tinta-2); font-size: 12.5px; }
.ficha-msj__campo select, .ficha-msj__campo textarea { min-height: 48px; border: 1px solid var(--borde-fuerte); border-radius: 10px; padding: 8px 12px; font: inherit; font-size: 16px; font-weight: 400; background: var(--blanco); color: var(--tinta); }
.ficha-msj__campo textarea { resize: vertical; }
.ficha-msj__campo .kit__entrada input { font-size: 16px; font-weight: 400; }
.ficha-msj__fijo { display: flex; flex-direction: column; gap: 4px; }
.ficha-msj__fijo--cambiado .kit__entrada { border-color: var(--sol); background: #FFF6EE; }
.ficha-msj__volver { align-self: flex-start; border: 0; background: none; padding: 2px 0; font: inherit; font-size: 13px; font-weight: 600; color: var(--barro); text-decoration: underline; cursor: pointer; }
.ficha-msj__volver[hidden] { display: none; }
.ficha-msj__faltan { font-size: 14px; color: var(--barro-oscuro); background: #FDEBDA; padding: 10px 12px; border-radius: 10px; }
.ficha-msj__faltan[hidden] { display: none; }
.msj--abierto .msj__acciones { grid-column: 1 / -1; }
.msj__pie { display: flex; flex-direction: column; gap: 10px; }
.msj__pie[hidden] { display: none; }
.msj--abierto .msj__ficha { order: 1; }
.msj--abierto .msj__texto { order: 2; }
.msj--abierto .msj__pie { order: 3; position: sticky; bottom: 0; background: var(--papel); padding: 10px 0 12px; }
@media (min-width: 900px) {
  .msj--abierto { grid-template-areas: "cabeza cabeza" "ficha vista" "ficha pie"; grid-template-rows: auto auto 1fr; }
  .msj--abierto .msj__pie { grid-area: pie; position: static; align-self: start; padding: 0; }
}
.msj--abierto .msj__pie { position: static; padding: 0; }

/* Galería: fotos verticales enteras y galerías con pocas fotos */
.foto-vertical { position: relative; overflow: hidden; background: var(--tinta); width: 100%; height: 100%; }
.foto-vertical__fondo { position: absolute; inset: -20px; width: calc(100% + 40px); height: calc(100% + 40px); object-fit: cover; filter: blur(22px) brightness(.85); transform: scale(1.05); }
.foto-vertical .foto { position: relative; object-fit: contain; background: transparent; }
@media (max-width: 719px) { .galeria:has(.foto-vertical:first-child) { height: 420px; } }
@media (min-width: 720px) {
  .galeria--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
  .galeria--1 > :first-child { grid-column: auto; grid-row: auto; }
  .galeria--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr; }
  .galeria--2 > :first-child { grid-column: auto; grid-row: auto; }
  .galeria--3 { grid-template-columns: 2fr 1fr; }
  .galeria--3 > :first-child { grid-column: 1; grid-row: span 2; }
  .galeria--4 { grid-template-columns: 2fr 1fr 1fr; }
  .galeria--4 > :first-child { grid-column: 1; grid-row: span 2; }
  .galeria--4 > :nth-child(4) { grid-column: span 2; }
}
@media (min-width: 1080px) { .galeria--1:has(.foto-vertical) { height: 600px; } }
/* En el celular la galería muestra una sola foto: el botón abre todas */
@media (min-width: 720px) { .galeria__mas--movil { display: none; } }
.foto-vertical { background: var(--f-monte); }
.galeria-completa .foto-vertical { aspect-ratio: 4 / 3; border-radius: 10px; }
.galeria-completa .foto-vertical .foto { aspect-ratio: auto; border-radius: 0; }

/* ===== Agenda: fiestas en la región ===== */
.evento--region { flex-direction: row; }
.evento--region .evento__fecha { background: var(--barro); }
.evento__fecha--confirmar { background: var(--durazno) !important; color: #7A2E06 !important; font-size: 11px; }
.evento__fecha--confirmar span { font-size: 18px !important; }
.evento--region p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.agenda-region { display: flex; flex-direction: column; gap: 18px; }
.agenda-region .seccion__cabeza { margin-bottom: 0; }
.agenda-region__filtro { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; }
.agenda-region__filtro select { min-height: 44px; border: 1px solid var(--borde-fuerte); border-radius: 10px; padding: 0 12px; font: inherit; font-size: 15px; background: var(--blanco); }
.sumar-evento { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; padding: 22px 24px; border-radius: 20px; background: var(--durazno); }
.sumar-evento > svg { color: var(--barro); flex: none; }
.sumar-evento > div { flex: 1; min-width: 220px; }
.sumar-evento h3 { font-family: var(--sans); font-size: 18px; letter-spacing: 0; }
.sumar-evento p { font-size: 15px; color: #3A2210; margin-top: 4px; }
.alojarte { padding-top: 16px; }
.agenda-region { padding-bottom: 24px; }
.agenda-region > h1 { margin: 12px 0 10px; }
.agenda-region .seccion__texto--grande { margin-bottom: 8px; }
.agenda-region__cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; margin-top: 12px; }
.agenda-region__cabeza h2 { margin-top: 6px; }
.recursos--catalogo + .recursos__proximos + .recursos--proximos + .sumar-evento, .sumar-evento { margin-top: 28px; }
.agenda__espacio { height: 20px; } .seccion[data-agenda] { padding-top: 24px; }
.agenda__anio { border-top: 1px solid var(--borde); }
.agenda__anio:last-of-type { border-bottom: 1px solid var(--borde); }
.agenda__anio summary { display: flex; align-items: baseline; gap: 12px; padding: 18px 0; cursor: pointer; list-style: none; font-family: var(--serif); font-weight: 600; font-size: 26px; }
.agenda__anio summary::-webkit-details-marker { display: none; }
.agenda__anio summary span { font-family: var(--sans); font-weight: 500; font-size: 15px; color: var(--tinta-2); }
.agenda__anio summary::after { content: '+'; margin-left: auto; font-family: var(--sans); font-weight: 400; color: var(--monte); }
.agenda__anio[open] summary::after { content: '−'; }
.agenda__anio > .grilla { padding-bottom: 24px; }
.agenda__anio[hidden] { display: none; }

/* ===== Encabezado naranja de cada sección (degradé atardecer + las dos líneas del logo) ===== */
.cabeza { background: var(--atardecer); position: relative; overflow: hidden; }
.cabeza::after { content: ""; position: absolute; left: 0; right: 0; bottom: 22px; height: 20px; border-top: 3px solid rgba(255,248,238,.85); border-bottom: 3px solid rgba(255,248,238,.85); pointer-events: none; }
.cabeza__in { position: relative; z-index: 1; max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 24px var(--gutter) 76px; display: flex; flex-direction: column; gap: 12px; color: #1F160F; }
.cabeza .migas ol, .cabeza .migas a { color: #3A2210; }
.cabeza .eyebrow, .cabeza .etiqueta { color: #7A2E06; }
.cabeza h1 { color: #1F160F; margin: 0; }
.cabeza__in > p, .cabeza .seccion__texto { font-size: 19px; max-width: 680px; color: #2B1A0E; }
.cabeza__saltos { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.cabeza__saltos a { padding: 10px 18px; border-radius: 999px; background: rgba(255,250,244,.9); color: var(--tinta); font-weight: 600; font-size: 15px; text-decoration: none; }
.cabeza__saltos a:hover { background: #fff; color: var(--monte); }
.cabeza .dir-busqueda, .cabeza .eventos-filtros { margin-top: 8px; max-width: 760px; box-shadow: 0 10px 28px rgba(120,40,0,.18); border-radius: 18px; }
.cabeza .dir-busqueda { box-shadow: none; }
.cabeza .selector-localidad, .cabeza .busqueda { border-color: transparent; box-shadow: 0 8px 22px rgba(120,40,0,.16); }
.cabeza .eventos-filtros { border-color: transparent; }
/* La Cámara y Asociate: su presentación (texto + imagen) va dentro de la banda naranja */
.cabeza--heroe > .seccion { position: relative; z-index: 1; padding-top: 24px; padding-bottom: 84px; }
.cabeza--heroe .seccion__texto { color: #2B1A0E; }
.cabeza .btn--barro { background: var(--monte); color: #fff; }
.cabeza .btn--barro:hover { background: var(--monte-oscuro); color: #fff; }
.cabeza .btn--linea { background: rgba(255,250,244,.92); border-color: transparent; color: var(--monte-oscuro); }
.cabeza .btn--linea:hover { background: #fff; }
.seccion--chips { padding-top: 24px; padding-bottom: 0; }
@media (min-width: 900px) { .cabeza__in { padding: 36px var(--gutter) 96px; } .cabeza--heroe > .seccion { padding-top: 36px; padding-bottom: 104px; } .cabeza .dir-busqueda { flex-direction: row; } .cabeza .dir-busqueda .selector-localidad { flex: 0 0 300px; } }

.agenda-region { display: flex; flex-direction: column; gap: 22px; }
.agenda-region__cabeza { margin-top: 0; }

/* Fiestas */
.fiestas { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .fiestas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .fiestas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fiesta { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; background: var(--papel); border: 1px solid var(--borde); color: var(--tinta); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.fiesta:hover { color: var(--tinta); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(90,40,10,.12); }
.fiesta[hidden] { display: none; }
.fiesta__media { position: relative; aspect-ratio: 16 / 9; background: var(--atardecer); overflow: hidden; }
.fiesta__media img { width: 100%; height: 100%; object-fit: cover; }
.fiesta__media--rio { background: linear-gradient(160deg, #9CC3CF 0%, #4E7F8C 100%); }
.fiesta__media--junco { background: linear-gradient(160deg, #F7C98A 0%, #E8641B 100%); }
.fiesta__media--tierra { background: linear-gradient(160deg, #F4B6A0 0%, #C04E10 100%); }
.fiesta__media--monte { background: linear-gradient(160deg, #B7CFA9 0%, #2F5B2C 100%); }
.fiesta__lineas { position: absolute; left: 0; right: 0; bottom: 24px; height: 18px; border-top: 3px solid rgba(255,255,255,.7); border-bottom: 3px solid rgba(255,255,255,.7); }
.fiesta__fecha { position: absolute; left: 16px; top: 16px; min-width: 76px; padding: 8px 12px; border-radius: 14px; background: var(--papel); color: var(--barro-oscuro); text-align: center; font-size: 13px; font-weight: 600; text-transform: uppercase; line-height: 1.15; box-shadow: 0 4px 14px rgba(0,0,0,.15); display: flex; flex-direction: column; }
.fiesta__fecha b { font-family: var(--serif); font-size: 26px; color: var(--tinta); line-height: 1.05; }
.fiesta__cuerpo { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.fiesta__lugar { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--monte); }
.fiesta h3 { font-size: 23px; }
.fiesta p { font-size: 15px; color: var(--tinta-2); }
.fiesta__cta { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; color: var(--monte); }

/* Actividades de la cámara */
.agenda-camara { padding: 56px var(--gutter); }
.agenda-camara__in { max-width: var(--ancho); margin: 0 auto; display: flex; flex-direction: column; gap: 22px; }
.agenda-camara__cabeza p { color: var(--tinta-2); margin-top: 8px; }
.agenda-camara__cabeza h2 { margin-top: 6px; }
.agenda-camara__filtros { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.segmento { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--papel); border: 1px solid var(--borde-fuerte); }
.segmento button { border: 0; background: none; font: inherit; font-weight: 600; font-size: 16px; padding: 9px 20px; border-radius: 999px; color: var(--tinta-2); cursor: pointer; min-height: 40px; }
.segmento button[aria-pressed="true"] { background: var(--monte); color: #fff; }
.linea-actividades { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.actividad { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 0 14px; position: relative; padding-bottom: 14px; }
.actividad[hidden] { display: none; }
.actividad::before { content: ""; position: absolute; left: 30px; top: 58px; bottom: 0; width: 2px; background: var(--borde-fuerte); }
.actividad:last-child::before { display: none; }
.actividad__fecha { width: 62px; height: 62px; border-radius: 50%; background: var(--monte); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; text-transform: uppercase; line-height: 1.05; position: relative; z-index: 1; }
.actividad__fecha b { font-size: 22px; }
.actividad__tarjeta { display: flex; gap: 16px; align-items: stretch; padding: 16px 18px; border-radius: 18px; background: var(--papel); border: 1px solid var(--borde); color: var(--tinta); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.actividad__tarjeta:hover { color: var(--tinta); border-color: var(--borde-fuerte); box-shadow: 0 8px 22px rgba(90,40,10,.08); }
.actividad__tarjeta:hover h3 { color: var(--monte); }
.actividad__texto { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.actividad__tipo { align-self: flex-start; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px; background: var(--monte-claro); color: var(--monte-oscuro); }
.actividad__tipo--capacitacion { background: #FDEBDA; color: var(--barro-oscuro); }
.actividad__tipo--novedad { background: var(--junco); color: #5A3A12; }
.actividad h3 { font-family: var(--sans); font-size: 18px; line-height: 1.3; letter-spacing: 0; }
.actividad__lugar { display: flex; align-items: center; gap: 4px; font-size: 14px; color: var(--tinta-2); }
.actividad__resumen { font-size: 15px; color: var(--tinta-2); }
.actividad__foto { width: 200px; height: 150px; flex: none; border-radius: 12px; object-fit: cover; align-self: center; }
@media (max-width: 599px) { .actividad__tarjeta { flex-direction: column; padding: 12px 14px 14px; gap: 12px; } .actividad__foto { order: -1; width: 100%; height: auto; aspect-ratio: 16 / 10; } .actividad__resumen { display: none; } .actividad { grid-template-columns: 52px minmax(0, 1fr); gap: 0 10px; } .actividad__fecha { width: 52px; height: 52px; } .actividad__fecha b { font-size: 19px; } .actividad::before { left: 25px; top: 50px; } }
@media (max-width: 639px) { .fiesta__media { aspect-ratio: 5 / 2; } }
.cabeza + .eventos-resultados { padding-top: 32px; }

/* Servicios que el socio cobra aparte */
.servicios li > span { display: flex; flex-direction: column; gap: 2px; }
.servicios__costo { font-size: 12px; font-weight: 600; color: var(--barro-oscuro); }
.servicios__nota { margin-top: 12px; font-size: 15px; color: var(--tinta-2); }
.servicios__costo .sin-corte { display: block; }

img.institucional__foto { aspect-ratio: auto; object-fit: contain; }

/* Portada de cada destino: texto a la izquierda y fotos en un recuadro a la derecha, sobre la banda naranja */
.destino-cabeza { display: grid; gap: 24px; align-items: center; }
.destino-cabeza__texto { display: flex; flex-direction: column; gap: 14px; }
.destino-cabeza__texto h1 { margin: 0; }
.destino-cabeza .chip { background: rgba(255,250,244,.92); border-color: transparent; }
.destino-cabeza__media { border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 14px 34px rgba(120,40,0,.22); }
.destino-cabeza__media > .foto { width: 100%; height: 100%; object-fit: cover; }
.mosaico { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 3px; height: 100%; background: var(--papel); }
.mosaico img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 0; }
@media (min-width: 900px) { .destino-cabeza { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; } }

/* Aviso de cookies */
.cookies { position: fixed; z-index: 60; left: 12px; right: 12px; bottom: 12px; max-width: 460px; margin-left: auto; background: #fff; color: var(--tinta); border: 1px solid rgba(0,0,0,.08); border-radius: 12px; box-shadow: 0 6px 22px rgba(0,0,0,.14); padding: 10px 12px 10px 16px; display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 1.35; }
.cookies p { margin: 0; flex: 1; }
.cookies[hidden] { display: none; }
.cookies a { color: inherit; }
.cookies__botones { display: flex; gap: 6px; flex: none; }
.cookies .btn--chico { min-height: 34px; padding: 0 12px; font-size: 13px; }
.pie__cookies { background: none; border: 0; padding: 0; font: inherit; color: var(--junco); text-decoration: underline; cursor: pointer; }
.pie__cookies:hover { color: #fff; }
.pie__legal a { text-decoration: underline; }
.enlace-boton { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.prosa h2 { margin-top: 12px; }

/* ---------- Mapa de prestadores ---------- */
.punto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 7px; vertical-align: 0; flex: none; }
.mapa__filtros { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.mapa__filtros .chips { margin: 0; }
.mapa__filtros .chip { cursor: pointer; font: inherit; display: inline-flex; align-items: center; }
.mapa__cat select { min-height: 44px; border-radius: 999px; border: 1.5px solid rgba(42,36,32,.2); background: #fff; padding: 0 16px; font: inherit; color: var(--tinta); }
.mapa-socios { position: relative; display: grid; gap: 16px; isolation: isolate; }
.mapa__lienzo { position: relative; border-radius: 16px; overflow: hidden; background: #E8E4DA; min-height: 70vh; isolation: isolate; }
.mapa__mapa, .mapa__mapa.maplibregl-map { position: absolute; inset: 0; }
.mapa-socios--chico .mapa__lienzo { min-height: 380px; }
.mapa__lista { display: none; }
.mapa__cuenta { font-size: 14px; color: var(--tinta-2); margin: 0 0 10px; }
.mapa__lista ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.mapa-item { display: flex; gap: 12px; align-items: center; width: 100%; text-align: left; background: #fff; border: 1.5px solid transparent; border-radius: 12px; padding: 8px; font: inherit; color: inherit; cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.mapa-item:hover, .mapa-item--activo { border-color: var(--barro); }
.mapa-item img, .mapa-item__sin-foto { width: 72px; height: 56px; object-fit: cover; border-radius: 8px; flex: none; background: var(--monte-claro); }
.mapa-item b { display: flex; align-items: center; font-size: 15px; line-height: 1.25; }
.mapa-item small { display: block; font-size: 13px; color: var(--tinta-2); margin-top: 2px; }
.mapa__leyenda { position: absolute; z-index: 500; left: 12px; bottom: 26px; background: rgba(255,255,255,.95); border-radius: 12px; padding: 10px 14px; font-size: 13px; display: flex; flex-direction: column; gap: 4px; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.mapa__leyenda span { display: flex; align-items: center; }
.mapa__alternar { position: absolute; z-index: 600; top: 12px; right: 12px; }
.mapa-socios--lista .mapa__lista { display: block; }
.mapa-socios--lista .mapa__lienzo { display: none; }
.mapa-socios--lista .mapa__alternar { position: static; justify-self: end; order: -1; }
/* Pines */
.pin { background: none; border: 0; }
.pin span { display: block; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 3px solid #fff; box-shadow: 0 2px 5px rgba(0,0,0,.35); transition: transform .15s; }
.pin--activo span, .pin:hover span { transform: rotate(-45deg) scale(1.2); }
.grupo { background: none; border: 0; }
.grupo span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; font-weight: 700; font-size: 15px; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
/* Tarjeta del prestador */
.mapa-popup .maplibregl-popup-content { padding: 0; border-radius: 14px; overflow: hidden; width: 260px; box-shadow: 0 8px 28px rgba(0,0,0,.22); font: inherit; }
.mapa-popup .maplibregl-popup-close-button { width: 32px; height: 32px; font-size: 22px; line-height: 1; background: rgba(255,255,255,.92); border-radius: 50%; top: 6px; right: 6px; color: var(--tinta); }
.mapa__aviso { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; color: var(--tinta-2); }
.mapa__mapa .maplibregl-ctrl-attrib { font-size: 11px; }
button.grupo { padding: 0; border: 0; background: none; cursor: pointer; }
.mapa-tarjeta__foto { display: block; width: 100%; height: 130px; object-fit: cover; }
.mapa-tarjeta__cuerpo { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; }
.mapa-tarjeta__corredor { align-self: flex-start; color: #fff; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 3px 9px; }
.mapa-tarjeta__nombre { font-family: var(--fuente-titulo, Fraunces, Georgia, serif); font-size: 18px; line-height: 1.2; color: var(--tinta); }
.mapa-tarjeta__meta { font-size: 13px; color: var(--tinta-2); }
.mapa-tarjeta__acciones { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.mapa-tarjeta .btn--chico { min-height: 38px; padding: 0 14px; font-size: 14px; }
.mapa-popup a.btn--wa { color: #fff; }
.mapa__hoja { position: absolute; z-index: 700; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 18px 18px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.18); }
.mapa__hoja .mapa-tarjeta { display: flex; gap: 0; }
.mapa__hoja .mapa-tarjeta__foto { width: 120px; height: auto; min-height: 120px; }
.mapa__cerrar { position: absolute; top: 6px; right: 8px; width: 36px; height: 36px; border: 0; background: rgba(255,255,255,.9); border-radius: 50%; font-size: 24px; line-height: 1; cursor: pointer; color: var(--tinta); z-index: 1; }
.dir-mapa { background: #fff; color: var(--monte); border-color: #fff; }
.dir-mapa:hover { background: var(--monte-claro); }
@media (min-width: 720px) {
  .mapa__alternar { display: none; }
  .mapa__lienzo { min-height: 620px; }
  .mapa-socios--chico .mapa__lienzo { min-height: 440px; }
}
@media (min-width: 960px) {
  .mapa-pagina .mapa-socios { grid-template-columns: 340px 1fr; }
  .mapa-pagina .mapa__lista { display: block; max-height: 620px; overflow-y: auto; padding-right: 4px; }
  .mapa-socios--lista .mapa__lienzo { display: block; }
}
@media (max-width: 719px) {
  .mapa__filtros { flex-direction: column; align-items: stretch; }
  .mapa__filtros .chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .mapa__filtros .chip { white-space: nowrap; flex: none; }
  .mapa__cat select { width: 100%; }
  .mapa__leyenda { display: none; }
}
.grupo span { transition: transform .15s; }
.grupo:hover span, .grupo--activo span { transform: scale(1.15); box-shadow: 0 0 0 3px rgba(42,36,32,.25), 0 2px 6px rgba(0,0,0,.3); }

.tarjeta__destacados { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; font-size: 14px; color: var(--tinta-2); }
.tarjeta__destacados li { position: relative; padding-left: 16px; line-height: 1.35; }
.tarjeta__destacados li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 6px; height: 6px; border-radius: 50%; background: var(--barro); }
.dir-mapa { white-space: nowrap; flex: none; }

/* Portada: categorías dentro del encabezado */
.inicio-heroe__pregunta { margin: 6px 0 0; font-weight: 700; font-size: 15px; letter-spacing: .02em; color: #3A2210; }
.categorias--heroe { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.categorias--heroe .categoria { flex-direction: row; align-items: center; gap: 10px; min-height: 0; padding: 12px 14px; background: rgba(255,250,244,.94); border-color: transparent; border-radius: 14px; font-size: 15px; box-shadow: 0 4px 14px rgba(120,40,0,.10); transition: transform .15s, background-color .15s; }
.categorias--heroe .categoria:hover { background: #fff; transform: translateY(-2px); }
.categorias--heroe .categoria svg { flex: none; width: 22px; height: 22px; }
.inicio-heroe .hero__enlaces { margin-top: 4px; }
.inicio-heroe .enlace-flecha { color: #1F3F1D; }
.inicio-heroe .destino-cabeza__media { aspect-ratio: 4 / 5; }
@media (min-width: 900px) {
  .inicio-heroe .destino-cabeza { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
  .categorias--heroe { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .categorias--heroe .categoria { flex-direction: column; align-items: flex-start; padding: 14px; }
}
@media (max-width: 899px) { .inicio-heroe .destino-cabeza__media { aspect-ratio: 4 / 3; order: -1; } }

/* Portada: alojamientos por corredor */
.por-corredor { display: grid; gap: 18px; }
.por-corredor__item { display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden; border-top: 5px solid var(--corredor); box-shadow: 0 4px 18px rgba(42,36,32,.07); }
.por-corredor__foto { display: block; aspect-ratio: 16 / 7; overflow: hidden; }
.por-corredor__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.por-corredor__item:hover .por-corredor__foto img { transform: scale(1.04); }
.por-corredor__cuerpo { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.por-corredor__cuerpo h3 { margin: 0; font-size: 21px; }
.por-corredor__cuerpo h3 a { color: var(--tinta); text-decoration: none; display: inline-flex; align-items: center; }
.por-corredor__cuerpo h3 a:hover { color: var(--monte); }
.por-corredor__n { margin: 0 0 6px; font-size: 14px; color: var(--tinta-2); }
.por-corredor .chips { margin: 0; gap: 8px; }
.por-corredor .chip:hover { border-color: var(--corredor); }
@media (min-width: 900px) { .por-corredor { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.inicio-heroe__socios { margin-top: 10px; padding: 16px 18px; border-radius: 16px; background: rgba(31,63,29,.9); color: #F3EFE6; display: flex; flex-direction: column; gap: 12px; }
.inicio-heroe__socios p { margin: 0; font-size: 15px; line-height: 1.45; color: #F3EFE6; }
.inicio-heroe__socios strong { color: #fff; }
.inicio-heroe__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.inicio-heroe__socios .btn--monte { background: #fff; color: var(--monte-oscuro); }
.inicio-heroe__socios .btn--monte:hover { background: var(--monte-claro); color: var(--monte-oscuro); }
.inicio-heroe__socios .btn--linea { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.inicio-heroe__socios .btn--linea:hover { background: rgba(255,255,255,.12); color: #fff; }


/* Portada compacta */
.por-corredor__que { margin: 0; font-size: 14px; color: var(--tinta-2); }
.por-corredor__n { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--tinta-2); }
.por-corredor__ver { margin-top: 8px; font-size: 15px; }
.por-corredor .chip { min-height: 36px; padding: 0 12px; font-size: 14px; }
@media (max-width: 899px) {
  .carrusel-movil { grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); padding-bottom: 6px; }
  .carrusel-movil > * { scroll-snap-align: start; }
  .carrusel-movil::-webkit-scrollbar { display: none; }
}
.camara-inicio { background: var(--monte); color: #F3EFE6; margin-top: 40px; }
.camara-inicio__in { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 40px var(--gutter) 48px; display: grid; gap: 28px; }
.camara-inicio__texto { display: flex; flex-direction: column; gap: 14px; }
.camara-inicio .eyebrow { color: #F6C9A0; }
.camara-inicio h2 { color: #fff; margin: 0; }
.camara-inicio__texto > p { margin: 0; font-size: 17px; color: #E3EADF; max-width: 620px; }
.camara-inicio__cifras { margin: 6px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 520px; }
.camara-inicio__cifras div { display: flex; flex-direction: column-reverse; gap: 2px; }
.camara-inicio__cifras dd { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 36px; line-height: 1; color: #fff; }
.camara-inicio__cifras dt { font-size: 13px; color: var(--monte-claro); }
.camara-inicio .btn--blanco { background: #fff; color: var(--monte-oscuro); border-color: #fff; }
.camara-inicio .btn--blanco:hover { background: var(--monte-claro); }
.camara-inicio .btn--linea-clara { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.camara-inicio .btn--linea-clara:hover { background: rgba(255,255,255,.12); color: #fff; }
.camara-inicio__agenda { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 20px; padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.camara-inicio__agenda h3 { color: #fff; font-size: 20px; margin: 0; }
.camara-inicio .acciones-lista li + li { border-color: rgba(255,255,255,.14); }
.camara-inicio .acciones-lista a { color: #F3EFE6; }
.camara-inicio .acciones-lista strong { color: #fff; }
.camara-inicio .accion__fecha, .camara-inicio .accion__tipo { color: #CFE0C8; }
.camara-inicio .enlace-flecha { color: #fff; }
.camara-inicio + .pie, .camara-inicio + footer { margin-top: 0; }
@media (min-width: 900px) { .camara-inicio__in { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 56px; align-items: center; padding-block: 64px; } .camara-inicio__cifras dd { font-size: 44px; } }
.camara-inicio .accion__fecha { background: rgba(255,255,255,.16); color: #fff; }
@media (min-width: 900px) { .categorias--heroe { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); } .categorias--heroe .categoria { flex-direction: row; align-items: center; } }
@media (max-width: 899px) { .categorias--heroe .categoria:last-child:nth-child(odd) { grid-column: span 2; } }
@media (min-width: 900px) { .categorias--heroe[data-n="5"] .categoria, .categorias--heroe[data-n="6"] .categoria { flex-direction: column; align-items: flex-start; padding: 12px; font-size: 14px; } }
@media (min-width: 900px) { .categorias--heroe[data-n="5"] .categoria, .categorias--heroe[data-n="6"] .categoria { padding: 12px 8px 12px 12px; font-size: 13px; } }

/* Escapadas */
.escapadas-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 2px; }
.escapadas-fila__titulo { font-weight: 700; font-size: 14px; color: #3A2210; margin-right: 4px; }
.escapada-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 14px; border-radius: 999px; background: rgba(255,250,244,.94); color: var(--tinta); font-weight: 600; font-size: 14px; text-decoration: none; box-shadow: 0 3px 10px rgba(120,40,0,.10); }
.escapada-chip svg { color: var(--barro); flex: none; }
.escapada-chip:hover { background: #fff; color: var(--monte-oscuro); }
.escapadas-fila--cabeza { margin-top: 10px; }
.escapadas-cuenta { margin: 0 0 18px; color: var(--tinta-2); }
.escapadas-grilla { display: grid; gap: 16px; }
.escapada-tarjeta { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: #fff; border-radius: 18px; border: 1px solid var(--borde); color: var(--tinta); text-decoration: none; }
.escapada-tarjeta svg { color: var(--barro); }
.escapada-tarjeta h2 { font-size: 24px; margin: 0; }
.escapada-tarjeta p { margin: 0; color: var(--tinta-2); flex: 1; }
.escapada-tarjeta:hover { border-color: var(--monte); }
@media (min-width: 720px) { .escapadas-grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 719px) { .escapadas-fila { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding: 2px var(--gutter) 6px 0; } .escapadas-fila::-webkit-scrollbar { display: none; } .escapada-chip { flex: none; } }
.destino-cabeza { grid-template-columns: minmax(0, 1fr); } .destino-cabeza__texto { min-width: 0; }
@media (min-width: 900px) { .destino-cabeza { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .inicio-heroe .destino-cabeza { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); } }
.mapa__filtros > * { min-width: 0; max-width: 100%; } .mapa-socios { grid-template-columns: minmax(0, 1fr); } @media (min-width: 960px) { .mapa-pagina .mapa-socios { grid-template-columns: 340px minmax(0, 1fr); } }

/* ---------- Directorio: encabezado renovado ---------- */
.red-logos { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.red-logos__pista { display: flex; overflow: hidden; max-width: 100%; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.red-logos__lista { display: flex; gap: 10px; padding-right: 10px; flex: none; animation: red-logos 40s linear infinite; }
.red-logos__item { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--fondo-logo, #fff); box-shadow: 0 3px 10px rgba(120,40,0,.16); overflow: hidden; flex: none; transition: transform .15s; }
.red-logos__item:hover { transform: scale(1.08); }
.red-logos__item img { width: 78%; height: 78%; object-fit: contain; }
.red-logos__texto { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 14px; color: #3A2210; }
.red-logos__texto svg { color: #1F3F1D; }
@keyframes red-logos { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .red-logos__lista { animation: none; } .red-logos__lista[aria-hidden] { display: none; } }
@media (min-width: 900px) {
  .red-logos { flex-direction: row; align-items: center; gap: 16px; }
  .red-logos__pista { mask-image: none; }
  .red-logos__lista { animation: none; }
  .red-logos__lista[aria-hidden] { display: none; }
  .red-logos__item { margin-left: -10px; border: 2px solid #FFF3E6; }
  .red-logos__item:first-child { margin-left: 0; }
}
.dir-herramientas { display: flex; flex-direction: column-reverse; gap: 10px; margin-top: 8px; max-width: 860px; }
.dir-herramientas .vista-selector { align-self: flex-end; }
.dir-barra { display: flex; align-items: stretch; background: #fff; border-radius: 999px; box-shadow: 0 8px 22px rgba(120,40,0,.16); min-height: 54px; }
.dir-barra__campo { display: flex; align-items: center; gap: 8px; padding: 0 16px; color: var(--monte); min-width: 0; }
.dir-barra__campo svg { flex: none; }
.dir-barra__campo--loc { flex: 0 1 45%; border-right: 1px solid var(--borde); }
.dir-barra__campo--buscar { flex: 1 1 55%; color: var(--tinta-2); }
.dir-barra__campo select, .dir-barra__campo input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 16px; color: var(--tinta); outline: none; min-height: 48px; text-overflow: ellipsis; }
.dir-barra__campo select { font-weight: 600; cursor: pointer; }
.dir-barra__campo:focus-within { box-shadow: inset 0 0 0 2px var(--barro); border-radius: 999px; }
.vista-selector { display: inline-flex; padding: 4px; background: rgba(255,250,244,.6); border-radius: 999px; gap: 2px; }
.vista-selector__op { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 18px; border-radius: 999px; font-weight: 600; font-size: 15px; color: var(--monte-oscuro); text-decoration: none; }
.vista-selector__op--activa { background: var(--monte); color: #fff; }
a.vista-selector__op:hover { background: #fff; color: var(--monte-oscuro); }
.chips--cabeza { margin-top: 6px; }
.chips--cabeza .chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,250,244,.92); border-color: transparent; font-weight: 600; }
.chips--cabeza .chip svg { color: var(--monte); }
.chips--cabeza .chip--activa { background: var(--monte); color: #fff; }
.chips--cabeza .chip--activa svg { color: #fff; }
.resultados__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 16px; }
.resultados__cabeza .resultados__conteo { margin: 0; }
.resultados__nota { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--tinta-2); }
.resultados__nota svg { color: var(--monte); flex: none; }
.cabeza + .directorio { margin-top: 28px; }
@media (min-width: 720px) {
  .dir-herramientas { flex-direction: row; align-items: center; }
  .dir-barra { flex: 1; }
  .dir-herramientas .vista-selector { align-self: auto; }
}
@media (max-width: 719px) {
  .dir-barra__campo { padding: 0 12px; gap: 6px; }
  .dir-barra__campo select, .dir-barra__campo input { font-size: 15px; }
}

.red-texto { display: flex; align-items: center; gap: 6px; margin: 2px 0 0; font-size: 15px; color: #3A2210; }
.red-texto svg { color: #1F3F1D; flex: none; }
@media (max-width: 719px) {
  .dir-barra { flex-direction: column; border-radius: 18px; }
  .dir-barra__campo { min-height: 52px; padding: 0 16px; }
  .dir-barra__campo--loc { flex: none; border-right: 0; border-bottom: 1px solid var(--borde); }
  .dir-barra__campo--buscar { flex: none; }
  .dir-barra__campo:focus-within { border-radius: 18px; }
}

/* ---------- Franja estándar: misma estructura en todas las secciones ---------- */
.cabeza__fila { display: flex; align-items: center; gap: 8px; margin-top: 6px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding: 4px var(--gutter) 6px 0; }
.cabeza__fila::-webkit-scrollbar { display: none; }
.cabeza__fila > * { flex: none; }
.cabeza__fila-titulo { font-weight: 700; font-size: 14px; color: #3A2210; margin-right: 2px; }
.chip-fila { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; padding: 0 16px; border-radius: 999px; border: 0; background: rgba(255,250,244,.94); color: var(--tinta); font: inherit; font-weight: 600; font-size: 15px; text-decoration: none; white-space: nowrap; cursor: pointer; box-shadow: 0 3px 10px rgba(120,40,0,.12); transition: background-color .15s, color .15s; }
.chip-fila svg { color: var(--barro); flex: none; }
.chip-fila:hover { background: #fff; color: var(--monte-oscuro); }
.chip-fila--activa, .chip-fila--activa:hover { background: var(--monte); color: #fff; }
.chip-fila--activa svg { color: #fff; }
.chip-fila--accion { background: var(--monte); color: #fff; }
.chip-fila--accion:hover { background: var(--monte-oscuro); color: #fff; }
/* Altura común: todas las franjas estándar miden lo mismo */
.cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 400px; justify-content: flex-end; }
@media (min-width: 900px) {
  .cabeza__fila { flex-wrap: wrap; overflow: visible; margin-right: 0; padding-right: 0; }
  .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 440px; }
}
/* Herramientas dentro de la fila */
.cabeza__fila .dir-herramientas, .cabeza__fila .mapa__filtros { flex: 1 1 100%; margin: 0; }
.cabeza__fila .mapa__filtros { margin-bottom: 0; }
.cabeza__fila .mapa__filtros .chips { gap: 8px; }
.cabeza__fila .eventos-filtros { flex: 1 1 100%; margin: 0; }
.cabeza .mapa__cat select { background: #fff; border-color: transparent; box-shadow: 0 3px 10px rgba(120,40,0,.12); }
/* Debajo de la franja del directorio: categorías y escapadas */
.dir-atajos { display: flex; flex-direction: column; gap: 12px; padding-top: 24px !important; }
.chips--iconos .chip { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.chips--iconos .chip svg { color: var(--monte); }
.chips--iconos .chip--activa svg { color: #fff; }
.dir-atajos .escapada-chip { background: #fff; border: 1px solid var(--borde); box-shadow: none; }
.dir-atajos .escapadas-fila__titulo { color: var(--tinta-2); }
.institucional-foto { padding-top: 32px !important; }
.institucional-foto .foto { width: 100%; border-radius: 22px; }
.asociate-intro { padding-bottom: 0 !important; }
@media (max-width: 899px) {
  .cabeza__fila .mapa__filtros { flex-direction: column; align-items: stretch; }
  .cabeza__fila .mapa__filtros .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
}
.cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 480px; }
@media (min-width: 900px) { .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 480px; } }
@media (max-width: 899px) {
  .cabeza__fila .eventos-filtros { display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding: 6px; scrollbar-width: none; }
  .cabeza__fila .eventos-filtros label { flex: 0 0 auto; min-width: 170px; }
}
@media (max-width: 899px) { .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 500px; } }
@media (max-width: 899px) {
  .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 470px; padding-bottom: 66px; gap: 10px; }
  .cabeza:not(.cabeza--heroe) .cabeza__in > p { font-size: 16.5px; line-height: 1.45; }
  .cabeza:not(.cabeza--heroe) h1 { font-size: 32px; line-height: 1.1; }
}
/* Título arriba, fila interactiva siempre abajo */
.cabeza:not(.cabeza--heroe) .cabeza__in { justify-content: flex-start; }
.cabeza:not(.cabeza--heroe) .cabeza__fila { margin-top: auto; }

.cabeza__fila .mapa__filtros { flex-wrap: nowrap; gap: 10px; }
.cabeza__fila .mapa__filtros .chips { flex-wrap: nowrap; }
.cabeza__fila .mapa__cat { margin-left: auto; }
@media (max-width: 899px) {
  .cabeza__fila:has(.mapa__filtros), .cabeza__fila:has(.dir-herramientas) { margin-right: 0; padding-right: 0; overflow: visible; }
  .cabeza__fila .mapa__filtros .chips { margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); }
  .cabeza__fila .mapa__cat { margin-left: 0; width: 100%; }
  .cabeza__fila .mapa__cat select { width: 100%; }
  .cabeza__fila .mapa__filtros .vista-selector { align-self: flex-start; }
}

/* ---------- Opción A: franja limpia + barra blanca debajo ---------- */
.cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 0; justify-content: flex-end; }
.barra-seccion { background: #fff; border-bottom: 1px solid var(--borde); }
.barra-seccion__in { max-width: calc(var(--ancho) + var(--gutter) * 2); margin: 0 auto; padding: 14px var(--gutter); display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.barra-seccion__in::-webkit-scrollbar { display: none; }
.barra-seccion__in > * { flex: none; }
.barra-seccion .chip-fila { background: var(--papel); box-shadow: none; border: 1px solid var(--borde); min-height: 40px; font-size: 14.5px; }
.barra-seccion .chip-fila:hover { border-color: var(--monte); background: #fff; }
.barra-seccion .chip-fila--activa, .barra-seccion .chip-fila--activa:hover, .barra-seccion .chip-fila--accion { background: var(--monte); border-color: var(--monte); color: #fff; }
.barra-seccion .chip-fila--accion:hover { background: var(--monte-oscuro); }
.barra-seccion .cabeza__fila-titulo { color: var(--tinta-2); }
.barra-seccion .dir-herramientas, .barra-seccion .mapa__filtros, .barra-seccion .eventos-filtros { flex: 1 1 100%; margin: 0; }
.barra-seccion .dir-barra { box-shadow: none; border: 1px solid var(--borde); }
.barra-seccion .vista-selector { background: var(--papel); border: 1px solid var(--borde); }
.barra-seccion .mapa__cat select { box-shadow: none; border: 1px solid var(--borde); }
.barra-seccion .eventos-filtros { max-width: none; border-color: var(--borde); }
.barra-seccion__in:has(.dir-herramientas), .barra-seccion__in:has(.mapa__filtros), .barra-seccion__in:has(.eventos-filtros) { overflow: visible; }
.barra-seccion + .seccion--chips { padding-top: 20px !important; }
.mapa-pagina { padding-top: 24px; }
@media (max-width: 899px) {
  .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 0; padding-bottom: 64px; }
  .barra-seccion .mapa__filtros .chips { margin-right: 0; padding-right: 0; }
  .barra-seccion .eventos-filtros { display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; }
}
.cabeza:not(.cabeza--heroe) h1 { font-size: clamp(30px, 4.2vw, 46px); }
.cabeza:not(.cabeza--heroe) .cabeza__in > p { max-width: 820px; }
.cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 330px; }
@media (max-width: 899px) { .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 330px; } }
.barra-seccion .mapa__filtros, .barra-seccion .dir-herramientas, .barra-seccion .eventos-filtros { min-width: 0; width: 100%; }
@media (max-width: 899px) { .barra-seccion .mapa__filtros .chips { overflow-x: auto; scrollbar-width: none; max-width: 100%; } }

/* ---------- Franja interna más fina ---------- */
.cabeza:not(.cabeza--heroe) .eyebrow { display: none; }
.cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 0; padding: 20px var(--gutter) 62px; gap: 8px; }
.cabeza:not(.cabeza--heroe) h1 { font-size: clamp(28px, 3.4vw, 40px); }
.cabeza:not(.cabeza--heroe) .cabeza__in > p { font-size: 17px; line-height: 1.45; max-width: 900px; }
.cabeza:not(.cabeza--heroe) .migas ol { margin-bottom: 4px; }
@media (min-width: 900px) { .cabeza:not(.cabeza--heroe) .cabeza__in { padding: 24px var(--gutter) 66px; } }
@media (max-width: 899px) { .cabeza:not(.cabeza--heroe) .cabeza__in { padding: 16px var(--gutter) 58px; } .cabeza:not(.cabeza--heroe) .cabeza__in > p { font-size: 16px; } }
@media (max-width: 899px) { .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 247px; } }
@media (min-width: 900px) { .cabeza:not(.cabeza--heroe) .cabeza__in { min-height: 200px; } }
.institucional__legal { margin: 12px 0 0; font-size: 14px; color: var(--tinta-2); }

/* ---------- Destinos por localidad ---------- */
.tarjeta--pueblo { text-decoration: none; color: inherit; }
.tarjeta--pueblo[hidden] { display: none; }
.tarjeta--pueblo .foto { aspect-ratio: 4 / 3; }
.tarjeta--pueblo .tarjeta__meta { display: flex; align-items: center; gap: 6px; }
.tarjeta--pueblo .tarjeta__meta svg { color: var(--barro); flex: none; }
.tarjeta--pueblo:hover .tarjeta__titulo { color: var(--monte); }
.busca-pueblo { display: flex; align-items: center; gap: 10px; flex: 1 1 320px; max-width: 520px; min-height: 46px; padding: 0 18px; background: #fff; border: 1px solid var(--borde); border-radius: 999px; color: var(--tinta-2); }
.busca-pueblo input { border: 0; flex: 1; min-width: 0; font: inherit; font-size: 16px; background: transparent; color: var(--tinta); outline: none; }
.busca-pueblo:focus-within { outline: 3px solid var(--barro); outline-offset: 2px; }
.barra-seccion__in:has(.busca-pueblo) { overflow: visible; flex-wrap: wrap; }
.destino-cabeza__dist { display: flex; align-items: center; gap: 6px; margin: 0; font-weight: 600; color: #3A2210; }
.destino-cabeza__dist svg { color: #1F3F1D; }
.destino-cabeza__media > .foto { width: 100%; height: 100%; object-fit: cover; }
.pueblo-intro { display: grid; gap: 24px; align-items: center; }
.pueblo-intro__foto { border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 9; }
.pueblo-intro__foto .foto { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) { .pueblo-intro { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; } }
.pueblo-intro__resumen { font-family: var(--serif); font-size: 24px; line-height: 1.3; color: var(--tinta) !important; }
