/*
Theme Name: Rincón del Sibarita
Theme URI: https://rincondelsibarita.com
Author: Rincón del Sibarita
Description: Tema a medida para el directorio Rincón del Sibarita (verde inglés y dorado metálico), basado en el boceto aprobado.
Version: 2.5.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rincon
*/

/* ---------- Marca ---------- */
:root {
	--verde: #1F3A2E;
	--verde-oscuro: #16291F;
	--oro: #CFA650;
	--oro-claro: #E6C765;
	--crema: #F5F0E6;
	--arena: #D9D2C2;
	--hueso: #E9E2D2;
	--linea: #D8C7A2;
	--oro-texto: #7D6010;
	--oro-degradado: linear-gradient(100deg, #9C7424 0%, #D9B25A 22%, #F6E7A8 45%, #CFA650 62%, #A67C2C 82%, #E3C477 100%);
	--serif: 'Cormorant Garamond', Georgia, serif;
	--logo: 'Playfair Display', Georgia, serif;
	--sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;
	--margen: 80px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--crema);
	color: var(--verde);
	font-family: var(--sans);
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; }
a { color: var(--oro); text-decoration: none; transition: color .2s; }
a:hover { color: var(--oro-claro); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

.oro {
	color: var(--oro);
	background-image: var(--oro-degradado);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
	-webkit-box-decoration-break: clone; box-decoration-break: clone;
}

.btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--sans); font-size: 14px; font-weight: 500;
	letter-spacing: 2px; text-transform: uppercase;
	padding: 18px 32px; min-height: 44px;
}
.btn-oro { background: var(--oro-degradado); color: var(--verde-oscuro); box-shadow: 0 6px 20px rgba(0,0,0,.35); }
.btn-oro:hover { color: var(--verde-oscuro); filter: brightness(1.06); }
.btn-borde { border: 1px solid rgba(245,240,230,.5); color: var(--crema); padding: 17px 31px; }
.btn-borde:hover { color: var(--crema); border-color: var(--oro); }

.antetitulo { font-size: 13px; letter-spacing: 4px; text-transform: uppercase; color: var(--oro); }

/* ---------- Barra superior ---------- */
.barra-sup {
	position: relative; z-index: 30; height: 44px;
	padding: 0 var(--margen);
	display: flex; align-items: center; justify-content: space-between;
	background: var(--verde-oscuro); border-bottom: 1px solid rgba(207,166,80,.2);
}
.barra-sup__lema { display: flex; align-items: center; gap: 12px; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--oro); }
.barra-sup__lema::before { content: ""; display: block; width: 28px; height: 1px; background: var(--oro); }
.idioma { position: relative; }
.idioma__boton {
	min-height: 44px; display: flex; align-items: center; gap: 10px; padding: 12px 20px;
	background: transparent; border: 1px solid var(--oro); cursor: pointer;
	font-family: var(--sans); font-size: 13px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase; color: var(--oro); white-space: nowrap;
}
.idioma__boton:hover, .idioma__boton[aria-expanded="true"] { background: rgba(207,166,80,.12); }
.idioma__codigo { color: var(--crema); }
.idioma__boton[aria-expanded="true"] .idioma__flecha { transform: rotate(180deg); }
.idioma__lista {
	position: absolute; top: calc(100% + 8px); right: 0; z-index: 40; margin: 0; padding: 8px 0; list-style: none; min-width: 230px;
	background: var(--verde-oscuro); border: 1px solid rgba(207,166,80,.45); box-shadow: 0 14px 34px rgba(0,0,0,.3);
}
.idioma__lista[hidden] { display: none; }
.idioma__opcion {
	min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 20px;
	font-size: 15px; color: var(--crema);
}
.idioma__opcion small { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: rgba(233,226,210,.6); }
a.idioma__opcion:hover { color: var(--oro); background: rgba(207,166,80,.08); }
.idioma__opcion--actual, .idioma__opcion--actual small { color: var(--oro); }
.idioma__opcion--pronto { color: rgba(233,226,210,.55); cursor: default; }

/* ---------- Cabecera ---------- */
.cabecera {
	position: relative; z-index: 20; height: 96px; padding: 0 var(--margen);
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
	background: var(--verde); border-bottom: 1px solid rgba(207,166,80,.35);
}
.logo { font-family: var(--logo); font-style: italic; font-size: 28px; font-weight: 400; letter-spacing: .5px; white-space: nowrap; }
.nav-cat { display: flex; gap: clamp(16px, 1.9vw, 32px); font-size: 13px; letter-spacing: 2px; text-transform: uppercase; font-weight: 400; }
.nav-cat a { color: var(--hueso); white-space: nowrap; }
.nav-cat a:hover, .nav-cat a[aria-current="page"] { color: var(--oro); }
.cabecera__derecha { display: flex; align-items: center; gap: 12px; }
.menu-movil__boton {
	display: none; width: 44px; height: 44px; align-items: center; justify-content: center;
	background: transparent; border: 1px solid rgba(207,166,80,.5); padding: 0; cursor: pointer;
}
.menu-movil {
	display: none; background: var(--verde); border-bottom: 1px solid rgba(207,166,80,.35);
	padding: 8px 24px 28px;
}
.menu-movil[hidden] { display: none !important; }
.menu-movil a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid rgba(207,166,80,.2); font-family: var(--serif); font-size: 24px; color: var(--hueso); }
.menu-movil a.menu-movil__admision { margin-top: 20px; justify-content: center; border: 1px solid var(--oro); font-family: var(--sans); font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--oro); }

/* ---------- Portada: bienvenida ---------- */
.portada {
	position: relative; overflow: hidden; min-height: 760px; padding: 80px var(--margen);
	display: flex; align-items: center; justify-content: space-between; gap: 80px;
	background: #3A1A12;
}
.portada__fondo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.portada__velo { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,9,5,.78) 0%, rgba(28,9,5,.5) 55%, rgba(28,9,5,.35) 100%); }
.portada__texto { position: relative; display: flex; flex-direction: column; gap: 32px; max-width: 740px; min-width: 0; }
.portada__ante { display: flex; align-items: center; gap: 16px; }
.portada__ante::before { content: ""; display: block; width: 48px; height: 1px; background: var(--oro-degradado); }
.portada h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 72px; line-height: 1.06; color: var(--crema); overflow-wrap: break-word; }
.portada h1 em { font-style: italic; }
.portada__intro { margin: 0; max-width: 620px; font-size: 20px; font-weight: 400; line-height: 1.6; color: var(--crema); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.portada__botones { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; }

.sello { position: relative; flex-shrink: 0; width: 440px; height: 440px; border: 1px solid var(--oro); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.sello__interior { width: 380px; height: 380px; border: 1px solid rgba(207,166,80,.4); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.sello__rs { font-family: var(--serif); font-size: 168px; line-height: .95; font-style: italic; }
.sello__islas { display: block; width: 200px; height: auto; margin-top: 4px; }
.sello__est { font-size: 12px; letter-spacing: 5px; text-transform: uppercase; color: var(--arena); }
.sello-movil { display: none; position: relative; align-items: center; gap: 20px; }
.sello-movil__rs { width: 120px; height: 120px; flex-shrink: 0; border: 1px solid var(--oro); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 68px; font-style: italic; }
.sello-movil svg { width: 180px; min-width: 0; flex-shrink: 1; height: auto; }

/* ---------- Portada: categorías ---------- */
.categorias { position: relative; padding: 120px var(--margen) 72px; }
.categorias__fondo { position: absolute; inset: 0; overflow: hidden; background: var(--verde-oscuro) center/cover no-repeat; }
.categorias__fondo video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.categorias__fondo::after { content: ""; position: absolute; inset: 0; background: rgba(22,41,31,.45); }
.categorias__contenido { position: relative; display: flex; flex-direction: column; gap: 56px; }
.categorias__cabeza { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.categorias__cabeza h2 { margin: 16px 0 0; font-family: var(--serif); font-weight: 400; font-size: 56px; line-height: 1.1; color: var(--crema); }
.categorias__cabeza p { margin: 0; max-width: 420px; font-size: 17px; line-height: 1.6; color: var(--arena); }
.cat-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cat {
	display: flex; flex-direction: column; gap: 14px; padding: 40px; min-height: 260px;
	background: rgba(22,41,31,.78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border: 1px solid rgba(207,166,80,.45); color: var(--crema); transition: border-color .25s, background .25s;
}
.cat:hover { border-color: var(--oro); background: rgba(22,41,31,.88); color: var(--crema); }
.cat__num { font-family: var(--serif); font-size: 20px; font-style: italic; }
.cat__nombre { font-family: var(--serif); font-size: 38px; font-weight: 500; line-height: 1.15; }
.cat__tipos { font-size: 14px; line-height: 1.65; letter-spacing: .3px; color: var(--arena); }
.cat-invitacion { display: flex; justify-content: center; margin-top: -24px; }
.cat-invitacion p {
	margin: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 20px; padding: 14px 28px;
	background: rgba(22,41,31,.72); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border: 1px solid rgba(207,166,80,.35); font-size: 15px; color: var(--hueso); text-align: center;
}
.cat-invitacion a { min-height: 44px; display: flex; align-items: center; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; font-weight: 500; }

/* ---------- Portada: selección ---------- */
.seleccion { padding: 0 var(--margen) 120px; display: flex; flex-direction: column; gap: 56px; }
.categorias + .seleccion { padding-top: 120px; }
.titulo-filete { display: flex; align-items: center; gap: 32px; }
.titulo-filete::before, .titulo-filete::after { content: ""; flex-grow: 1; height: 1px; background: var(--linea); }
.titulo-filete h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 48px; font-style: italic; text-align: center; }
.sel-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.sel-item { display: flex; flex-direction: column; gap: 20px; color: var(--verde); }
.sel-item__foto { aspect-ratio: 4 / 5; max-height: 400px; width: 100%; object-fit: cover; background: #D9D1BF; }
.sel-item__meta { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--oro-texto); font-weight: 400; }
.sel-item h2, .sel-item h3 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 32px; line-height: 1.15; }
.sel-item h2 a, .sel-item h3 a { color: var(--verde); }
.enlace-ficha { align-self: flex-start; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; font-weight: 400; color: var(--verde); border-bottom: 1px solid var(--oro); padding-bottom: 4px; }
.enlace-ficha:hover { color: var(--oro-texto); }

/* ---------- Portada: admisión ---------- */
.admision { padding: 120px var(--margen); display: flex; flex-direction: column; gap: 64px; background: var(--verde); color: var(--crema); }
.admision__cabeza { display: flex; justify-content: space-between; align-items: flex-end; gap: 80px; }
.admision__cabeza h2 { margin: 16px 0 0; font-family: var(--serif); font-weight: 400; font-size: 56px; line-height: 1.1; }
.admision__cabeza p { margin: 0; max-width: 520px; font-size: 17px; line-height: 1.65; color: var(--arena); }
.pasos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.paso { display: flex; flex-direction: column; gap: 16px; padding-top: 28px; border-top: 1px solid var(--oro); }
.paso__num { font-family: var(--serif); font-size: 44px; font-style: italic; }
.paso h3 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 30px; }
.paso p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--arena); }
.paso p a { color: var(--arena); border-bottom: 1px solid rgba(207,166,80,.5); }
.admision .btn { align-self: flex-start; }

/* ---------- Páginas interiores ---------- */
.pagina-cabeza { padding: 96px var(--margen) 72px; background: var(--verde); color: var(--crema); border-bottom: 1px solid rgba(207,166,80,.35); }
.pagina-cabeza h1 { margin: 16px 0 0; max-width: 900px; font-family: var(--serif); font-weight: 400; font-size: 64px; line-height: 1.08; }
.pagina-cuerpo { padding: 88px var(--margen) 120px; }
.contenido { max-width: 760px; margin: 0 auto; font-size: 18px; line-height: 1.75; color: var(--verde); }
.contenido.ancho { max-width: 1120px; }
.contenido h2 { margin: 2.2em 0 .6em; font-family: var(--serif); font-weight: 500; font-size: 40px; line-height: 1.15; }
.contenido h3 { margin: 1.8em 0 .5em; font-family: var(--serif); font-weight: 500; font-size: 28px; }
.contenido h2:first-child, .contenido h3:first-child { margin-top: 0; }
.contenido p, .contenido ul, .contenido ol { margin: 0 0 1.2em; }
.contenido a { color: var(--verde); border-bottom: 1px solid var(--oro); }
.contenido a:hover { color: var(--oro-texto); }
.contenido blockquote { margin: 2em 0; padding-left: 28px; border-left: 1px solid var(--oro); font-family: var(--serif); font-style: italic; font-size: 26px; line-height: 1.45; }
.contenido hr { border: 0; height: 1px; background: var(--linea); margin: 3em 0; }

/* ---------- Página de categoría ---------- */
.cat-cabeza__num { font-family: var(--serif); font-size: 28px; font-style: italic; color: var(--oro); }
.cat-cabeza h1 { margin-top: 8px; }
.cat-cabeza__tipos { margin: 24px 0 0; max-width: 760px; font-size: 16px; line-height: 1.7; color: var(--arena); }
.cat-cuerpo { display: flex; flex-direction: column; gap: 48px; }
.cat-recuento { margin: 0; font-family: var(--serif); font-size: 22px; font-style: italic; color: var(--verde); }
.cat-vacia { max-width: 620px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; font-size: 17px; line-height: 1.65; color: var(--verde); }
.cat-vacia p { margin: 0; }
.cat-vacia__texto { font-family: var(--serif); font-size: 30px; line-height: 1.25; }
.cat-vacia .btn { margin-top: 12px; }
.cat-otras { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--linea); display: flex; flex-direction: column; gap: 20px; }
.cat-otras__titulo { margin: 0; font-family: var(--sans); font-size: 13px; font-weight: 400; color: var(--oro-texto); }
.cat-otras ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 40px; }
.cat-otras a { display: flex; align-items: baseline; gap: 10px; min-height: 44px; padding-top: 8px; font-family: var(--serif); font-size: 24px; color: var(--verde); }
.cat-otras a:hover { color: var(--oro-texto); }
.cat-otras__num { font-size: 16px; font-style: italic; color: var(--oro-texto); }

/* ---------- Pantallas muy anchas ----------
   Los fondos siguen a todo el ancho, pero el contenido se queda en una columna
   de 1440 px centrada (todas las secciones usan --margen como relleno lateral). */
@media (min-width: 1600px) {
	:root { --margen: max(80px, calc((100vw - 1440px) / 2)); }
}

.solo-movil { display: none; }
.aviso-idioma { padding: 16px 20px; border-left: 2px solid var(--oro); background: rgba(207,166,80,.08); font-size: 16px; }

/* ---------- Información legal ---------- */
.legal { font-size: 15px; line-height: 1.7; color: #3E5448; }
.legal h2 { margin: 48px 0 16px; font-family: var(--serif); font-weight: 500; font-size: 30px; color: var(--verde); scroll-margin-top: 24px; }
.legal h2:first-child { margin-top: 0; }
.legal h3 { margin: 24px 0 6px; font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: var(--oro-texto); }
.legal p { margin: 0 0 12px; }
.legal__aviso-idioma { margin-bottom: 32px; }

/* ---------- Pie ---------- */
.pie { padding: 72px var(--margen) 48px; display: flex; flex-direction: column; gap: 48px; background: var(--verde-oscuro); color: var(--arena); border-top: 1px solid rgba(207,166,80,.35); }
.pie__fila { display: flex; justify-content: space-between; gap: 80px; }
.pie__marca { display: flex; flex-direction: column; gap: 16px; max-width: 480px; }
.pie__logo { font-family: var(--logo); font-style: italic; font-size: 32px; letter-spacing: .5px; }
.pie__lema { margin: 0; font-family: var(--serif); font-size: 20px; font-style: italic; line-height: 1.5; }
.pie__columnas { display: flex; gap: 80px; font-size: 15px; }
.pie__col { display: flex; flex-direction: column; gap: 12px; }
.pie__col span { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--oro); font-weight: 400; }
.pie__col a { color: var(--arena); }
.pie__col a:hover { color: var(--oro); }
.pie__copy { font-size: 13px; letter-spacing: 1px; color: #9FA89C; padding-top: 24px; border-top: 1px solid rgba(207,166,80,.2); }

/* ---------- Ficha del establecimiento ---------- */
.ficha-cabeza { padding: 36px var(--margen) 28px; display: flex; flex-direction: column; gap: 14px; }
.ficha-ruta { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #5A5446; font-weight: 400; }
.ficha-ruta a { color: #5A5446; }
.ficha-ruta a:hover { color: var(--oro-texto); }
.ficha-ruta span { color: var(--oro); margin: 0 6px; }
.ficha-titular { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.ficha-titular__texto { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ficha-nombre { display: flex; align-items: center; gap: 14px; }
.ficha-nombre h1 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 60px; line-height: 1.05; color: var(--verde); overflow-wrap: break-word; }
.ficha-sello { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--oro); background: var(--verde); display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-style: italic; font-size: 15px; line-height: 1; }
.ficha-meta { margin: 0; font-size: 16px; color: #3E5448; }
.ficha-meta__cat { color: var(--oro-texto); font-weight: 400; }
.ficha-acciones { display: flex; gap: 12px; flex-shrink: 0; }
.ficha-compartir { min-height: 48px; padding: 0 20px; display: flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--verde); background: transparent; border: 1px solid var(--verde); cursor: pointer; }
.ficha-compartir:hover { background: rgba(31,58,46,.06); }
.ficha-web { min-height: 48px; padding: 0 24px; font-size: 13px; box-shadow: none; }
.ficha-rapidos { display: flex; flex-wrap: wrap; column-gap: 32px; }
.ficha-rapidos a { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; color: var(--verde); }
.ficha-rapidos a span { border-bottom: 1px solid var(--oro); padding-bottom: 1px; }
.ficha-rapidos a:hover { color: var(--oro-texto); }

.ficha-galeria { padding: 0 var(--margen); display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 10px; height: 540px; }
.ficha-galeria--una { grid-template-columns: 1fr; }
.ficha-galeria__principal { position: relative; overflow: hidden; background: #D9D1BF; }
.ficha-galeria__principal img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ficha-galeria__miniaturas { display: grid; grid-auto-rows: minmax(0, 1fr); gap: 10px; min-height: 0; }
.ficha-mini { position: relative; padding: 0; border: 0; cursor: pointer; overflow: hidden; background: #D9D1BF; min-height: 0; }
.ficha-mini img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.ficha-mini.activa { outline: 2px solid var(--oro); outline-offset: -2px; }
.ficha-mini:not(.activa) img { opacity: .82; }
.ficha-mini:hover img { opacity: 1; }
.ficha-mini--oculta { display: none; }
.ficha-flecha { position: absolute; top: 50%; z-index: 2; width: 48px; height: 48px; margin-top: -24px; padding: 0 0 4px; border: 1px solid rgba(255, 255, 255, .55); border-radius: 50%; background: rgba(18, 38, 28, .55); color: #fff; font-size: 30px; line-height: 44px; text-align: center; cursor: pointer; transition: background .2s; }
.ficha-flecha:hover, .ficha-flecha:focus-visible { background: rgba(18, 38, 28, .85); }
.ficha-flecha--ant { left: 16px; }
.ficha-flecha--sig { right: 16px; }
@media (hover: hover) {
	.ficha-flecha { opacity: 0; transition: opacity .25s, background .2s; }
	.ficha-galeria__principal:hover .ficha-flecha, .ficha-flecha:focus-visible { opacity: 1; }
}

.ficha-cuerpo { padding: 72px var(--margen) 96px; display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 80px; align-items: start; }
.ficha-texto { display: flex; flex-direction: column; gap: 36px; max-width: 760px; }
.ficha-bloque { display: flex; flex-direction: column; gap: 16px; }
.ficha-etiqueta { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--oro-texto); font-weight: 400; }
.ficha-entradilla { margin: 0; font-family: var(--serif); font-size: 28px; font-style: italic; line-height: 1.4; color: var(--verde); }
.ficha-parrafo { margin: 0; font-size: 17px; line-height: 1.75; color: #3E5448; }
.ficha-filete { height: 1px; background: var(--linea); }
.ficha-info { display: flex; flex-direction: column; gap: 18px; padding: 40px 36px; background: var(--verde); position: sticky; top: 24px; }
.ficha-info__titulo { font-family: var(--serif); font-size: 26px; font-style: italic; }
.ficha-info__dato { display: flex; flex-direction: column; gap: 6px; padding-bottom: 18px; border-bottom: 1px solid rgba(207,166,80,.25); }
.ficha-info__dato span { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--oro); font-weight: 400; }
.ficha-info__dato p { margin: 0; font-size: 16px; line-height: 1.5; color: var(--crema); overflow-wrap: anywhere; }
.ficha-info__dato a { color: var(--crema); border-bottom: 1px solid rgba(207,166,80,.6); padding-bottom: 2px; }
.ficha-info__dato a:hover { color: var(--oro-claro); }
.ficha-info__llegar { margin-top: 8px; font-size: 13px; box-shadow: none; }

.ficha-tambien { padding: 88px var(--margen); display: flex; flex-direction: column; gap: 48px; background: var(--verde-oscuro); }
.ficha-tambien__cabeza { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.ficha-tambien__cabeza h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 44px; color: var(--crema); }
.ficha-tambien__cabeza a { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; min-height: 44px; display: flex; align-items: center; white-space: nowrap; }
.ficha-tambien__rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ficha-otro { display: flex; flex-direction: column; gap: 14px; color: var(--crema); }
.ficha-otro:hover { color: var(--oro-claro); }
.ficha-otro__foto { height: 240px; overflow: hidden; background: #2A3A30; }
.ficha-otro__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ficha-otro__meta { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--oro); }
.ficha-otro__nombre { font-family: var(--serif); font-size: 24px; font-weight: 500; line-height: 1.2; }
.ficha-aviso { margin: 0; padding: 28px var(--margen); text-align: center; font-size: 14px; color: #5A5446; border-top: 1px solid var(--linea); }
.ficha-aviso a { color: var(--verde); border-bottom: 1px solid var(--oro); }

@media (max-width: 1100px) {
	.ficha-titular { flex-direction: column; align-items: flex-start; gap: 20px; }
	.ficha-cuerpo { grid-template-columns: 1fr; gap: 48px; }
	.ficha-info { position: static; }
	.ficha-tambien__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.ficha-cabeza { padding: 24px var(--margen) 20px; }
	.ficha-nombre h1 { font-size: clamp(32px, 9vw, 40px); }
	.ficha-meta { font-size: 15px; }
	.ficha-acciones { width: 100%; }
	.ficha-acciones > * { flex: 1 1 0; justify-content: center; }
	.ficha-rapidos { column-gap: 20px; }
	.ficha-galeria { padding: 0; grid-template-columns: 1fr; height: auto; }
	.ficha-galeria__principal { aspect-ratio: 4 / 3; }
	.ficha-galeria__miniaturas { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); grid-auto-rows: auto; padding: 0 var(--margen); }
	.ficha-mini { aspect-ratio: 1; }
	.ficha-cuerpo { padding: 48px var(--margen) 64px; }
	.ficha-entradilla { font-size: 24px; }
	.ficha-info { padding: 32px 24px; }
	.ficha-tambien { padding: 64px var(--margen); gap: 32px; }
	.ficha-tambien__cabeza { flex-direction: column; align-items: flex-start; gap: 8px; }
	.ficha-tambien__cabeza h2 { font-size: 32px; }
	.ficha-tambien__rejilla { grid-template-columns: 1fr; }
	.ficha-aviso { font-size: 13px; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1360px) {
	:root { --margen: 48px; }
	.nav-cat { gap: 22px; font-size: 12px; }
	.portada h1 { font-size: 60px; }
	.sello { width: 380px; height: 380px; }
	.sello__interior { width: 326px; height: 326px; }
	.sello__rs { font-size: 140px; }
	.sello__islas { width: 170px; }
}
@media (max-width: 1380px) {
	.nav-cat { display: none; }
	.menu-movil__boton { display: flex; }
	.menu-movil { display: block; }
}
@media (max-width: 1100px) {
	.portada { gap: 48px; }
	.sello { display: none; }
	.sello-movil { display: flex; }
	.portada__texto { max-width: 760px; }
	.cat-rejilla, .sel-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pie__fila { flex-direction: column; gap: 40px; }
}
@media (max-width: 720px) {
	:root { --margen: 24px; }
	.barra-sup__lema { font-size: 10px; letter-spacing: 2px; }
	.barra-sup__lema::before { display: none; }
	.idioma__boton { padding: 10px; gap: 6px; }
	.idioma__rotulo { display: none; }
	.cabecera { height: 72px; gap: 10px; }
	.cabecera__derecha { gap: 8px; }
	.logo { font-size: 21px; }

	.portada { display: block; min-height: 0; padding: 72px var(--margen) 80px; }
	.portada__texto { width: 100%; max-width: 100%; }
	.sello-movil { gap: 16px; }
	.sello-movil__rs { width: clamp(88px, 28vw, 120px); height: clamp(88px, 28vw, 120px); font-size: clamp(50px, 16vw, 68px); }
	.sello-movil svg { width: auto; flex: 1 1 0; max-width: 180px; }
	.portada__velo { background: linear-gradient(180deg, rgba(28,9,5,.55) 0%, rgba(28,9,5,.72) 100%); }
	.portada__texto { gap: 28px; }
	.portada__ante { font-size: 11px; letter-spacing: 3px; gap: 12px; }
	.portada__ante::before { width: 32px; }
	.portada h1 { font-size: clamp(34px, 10.5vw, 44px); line-height: 1.08; }
	.portada__intro { font-size: 17px; }
	.portada__intro .solo-escritorio { display: none; }
	.portada__intro .solo-movil { display: inline; }
	.portada__botones { flex-direction: column; gap: 12px; }
	.portada__botones .btn { font-size: 13px; padding: 17px 24px; }

	.categorias { padding: 72px var(--margen) 40px; }
	.categorias__contenido { gap: 32px; }
	.categorias__cabeza { flex-direction: column; align-items: flex-start; gap: 12px; }
	.categorias__cabeza .antetitulo { font-size: 11px; letter-spacing: 3px; }
	.categorias__cabeza h2 { margin-top: 12px; font-size: 36px; line-height: 1.12; }
	.categorias__cabeza p { display: none; }
	.cat-rejilla { display: flex; flex-direction: column; gap: 0; border-top: 1px solid rgba(207,166,80,.45); }
	.cat { flex-direction: row; align-items: baseline; gap: 16px; padding: 20px 16px; min-height: 44px; border-width: 0 0 1px; }
	.cat__num { width: 36px; flex-shrink: 0; font-size: 18px; }
	.cat__nombre { font-size: 26px; }
	.cat__tipos { display: none; }
	.cat-invitacion { margin-top: 0; }
	.cat-invitacion p { flex-direction: column; gap: 4px; padding: 16px 20px; font-size: 14px; }
	.cat-invitacion a { font-size: 12px; }

	.seleccion { padding-bottom: 72px; gap: 40px; }
	.categorias + .seleccion { padding-top: 72px; }
	.titulo-filete { gap: 16px; }
	.titulo-filete h2 { font-size: 32px; }
	.sel-rejilla { grid-template-columns: 1fr; gap: 40px; }
	.sel-item { gap: 14px; }
	.sel-item__meta { font-size: 11px; }
	.sel-item h2, .sel-item h3 { font-size: 28px; }

	.admision { padding: 72px var(--margen); gap: 40px; }
	.admision__cabeza { flex-direction: column; align-items: flex-start; gap: 16px; }
	.admision__cabeza .antetitulo { font-size: 11px; letter-spacing: 3px; }
	.admision__cabeza h2 { font-size: 38px; }
	.admision__cabeza p { font-size: 16px; }
	.pasos { grid-template-columns: 1fr; gap: 32px; }
	.paso { gap: 10px; padding-top: 20px; }
	.paso__num { font-size: 34px; }
	.paso h3 { font-size: 26px; }
	.paso p { font-size: 15px; }
	.admision .btn { align-self: stretch; font-size: 13px; padding: 17px 24px; }

	.pagina-cabeza { padding: 56px var(--margen) 48px; }
	.pagina-cabeza h1 { font-size: 40px; }
	.pagina-cuerpo { padding: 56px var(--margen) 80px; }
	.cat-cabeza__tipos { font-size: 15px; }
	.cat-cuerpo { gap: 36px; }
	.cat-vacia__texto { font-size: 26px; }
	.cat-otras a { font-size: 21px; }
	.cat-otras ul { gap: 0 28px; }
	.contenido { font-size: 17px; }
	.contenido h2 { font-size: 32px; }

	.pie { padding: 56px var(--margen) 40px; gap: 36px; }
	.pie__logo { font-size: 28px; }
	.pie__lema { font-size: 18px; }
	.pie__columnas { flex-direction: column; gap: 32px; }
	.pie__col a { padding: 6px 0; }
	.pie__copy { font-size: 12px; padding-top: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}

@media (max-width: 360px) {
	.logo { font-size: 18px; }
	.idioma__flecha { display: none; }
	.idioma__boton { padding: 10px 8px; }
}

/* Carrusel de tarjetas (3 visibles). Se añade al final de style.css del tema. */
.carrusel { position: relative; }
.carrusel__pista { display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
.carrusel__pista::-webkit-scrollbar { display: none; }
.carrusel__pista > .sel-item { flex: 0 0 calc((100% - 64px) / 3); scroll-snap-align: start; }
.carrusel__flecha { position: absolute; top: calc(200px - 24px); width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer; background: var(--oro-degradado); color: var(--verde-oscuro); box-shadow: 0 6px 20px rgba(0,0,0,.3); display: grid; place-items: center; z-index: 2; transition: opacity .25s, transform .25s; }
.carrusel__flecha:hover { transform: scale(1.07); }
.carrusel__flecha[disabled] { opacity: 0; pointer-events: none; }
.carrusel__flecha--ant { left: -24px; }
.carrusel__flecha--sig { right: -24px; }
.carrusel__flecha svg { width: 18px; height: 18px; }
.carrusel__puntos { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.carrusel__punto { width: 28px; height: 2px; border: 0; padding: 0; background: var(--linea); cursor: pointer; transition: background .3s, width .3s; }
.carrusel__punto[aria-current="true"] { background: var(--oro); width: 44px; }

/* Tarjeta: marco que recorta el zoom lento de la foto */
.sel-item__marco { display: block; overflow: hidden; background: #D9D1BF; }
.sel-item__marco .sel-item__foto { display: block; transition: transform 1.6s cubic-bezier(.2,.6,.2,1); }
.sel-item:hover .sel-item__foto, .sel-item:focus-within .sel-item__foto { transform: scale(1.06); }

@media (max-width: 1100px) {
	.carrusel__pista > .sel-item { flex-basis: calc((100% - 32px) / 2); }
	.carrusel__flecha--ant { left: -14px; }
	.carrusel__flecha--sig { right: -14px; }
}
@media (max-width: 720px) {
	.carrusel__pista { gap: 16px; }
	.carrusel__pista > .sel-item { flex-basis: 84%; }
	.carrusel__flecha { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.carrusel__pista { scroll-behavior: auto; }
	.sel-item__marco .sel-item__foto { transition: none; }
	.sel-item:hover .sel-item__foto { transform: none; }
}

.seleccion--arriba { padding-top: 96px; padding-bottom: 96px; }
.cat-cuerpo > .carrusel { margin-bottom: 56px; }
@media (max-width: 720px) { .seleccion--arriba { padding-top: 64px; padding-bottom: 64px; } }

/* ---------- Riel de establecimientos (portada) ---------- */
/* Móvil y tablet: tira horizontal justo bajo la portada. */
.riel { background: var(--verde-oscuro); border-bottom: 1px solid rgba(207,166,80,.35); padding: 22px 0 26px; }
.riel__marco { display: flex; flex-direction: column; gap: 16px; }
.riel__titulo { margin: 0 var(--margen); font-size: 12px; letter-spacing: 3px; text-transform: uppercase; font-weight: 400; align-self: flex-start; }
.riel__pista { display: flex; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding: 0 var(--margen); }
.riel__pista::-webkit-scrollbar { display: none; }
.riel__grupo { display: flex; flex: 0 0 auto; gap: 16px; padding-right: 16px; }
.riel__grupo--copia { pointer-events: none; }
.riel .sel-item { flex: 0 0 148px; gap: 8px; color: var(--crema); }
.riel .sel-item__foto { aspect-ratio: 4 / 5; max-height: none; }
.riel .sel-item__meta { font-size: 10px; letter-spacing: 2px; color: var(--oro-claro); }
.riel .sel-item h3 { font-size: 20px; line-height: 1.15; }
.riel .sel-item h3 a { color: var(--crema); }
.riel .enlace-ficha { display: none; }
@media (min-width: 721px) { .riel .sel-item { flex-basis: 190px; } }

/* Escritorio: columna fija a la izquierda, con el resto de la portada a su derecha. */
@media (min-width: 1200px) {
	.portada-grid--riel { display: grid; grid-template-columns: 260px minmax(0, 1fr); }
	.portada-grid--riel > .riel { grid-column: 1; grid-row: 1 / span 3; padding: 0; border-bottom: 0; border-right: 1px solid rgba(207,166,80,.35); }
	.portada-grid--riel > :not(.riel) { grid-column: 2; }
	.riel__marco { position: sticky; top: 0; height: 100vh; gap: 0; }
	.riel__titulo { margin: 0; padding: 32px 24px 18px; align-self: stretch; font-size: 12px; }
	.riel__pista { flex: 1 1 auto; flex-direction: column; overflow-x: hidden; overflow-y: auto; padding: 0 24px;
		-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%);
		mask-image: linear-gradient(180deg, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%); }
	.riel__grupo { flex-direction: column; gap: 36px; padding: 0 0 36px; }
	.riel .sel-item { flex: 0 0 auto; gap: 12px; }
	.riel .sel-item h3 { font-size: 24px; }
	.riel .sel-item__meta { font-size: 11px; }
}

/* ---------- Miembros fundadores (los 100 primeros) ---------- */
.portada__fundadores { margin: 0; font-family: var(--serif); font-style: italic; font-size: 24px; line-height: 1.3; color: var(--oro-claro); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.admision__texto { display: flex; flex-direction: column; gap: 16px; max-width: 520px; }
.admision__texto p { max-width: none; }
.admision__cabeza .admision__fundadores { color: var(--oro-claro); font-weight: 400; }
@media (max-width: 720px) { .portada__fundadores { font-size: 20px; } }

/* Sello de Miembro fundador en la ficha */
.ficha-fundador { flex-shrink: 0; width: 96px; height: 96px; border-radius: 50%; background: var(--verde-oscuro); box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.ficha-fundador svg { display: block; width: 100%; height: 100%; }
@media (max-width: 720px) { .ficha-fundador { width: 76px; height: 76px; } }

/* ---------- Portada compacta: la primera pantalla ya muestra las categorías ---------- */
.portada { min-height: 0; padding: 36px var(--margen); }
.portada__texto { gap: 16px; }
.portada h1 { font-size: 54px; line-height: 1.04; }
.portada__intro { font-size: 17px; line-height: 1.5; }
.portada__botones { margin-top: 2px; }
.sello { width: 280px; height: 280px; }
.sello__interior { width: 240px; height: 240px; gap: 6px; }
.sello__rs { font-size: 104px; }
.sello__islas { width: 120px; margin-top: 0; }
.sello__est { font-size: 10px; letter-spacing: 4px; }
.categorias { padding: 40px var(--margen) 56px; }
.categorias__contenido { gap: 28px; }
.categorias__cabeza { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 6px; }
.categorias__cabeza .antetitulo { display: none; }
.categorias__cabeza h2 { margin: 0; white-space: nowrap; }
.categorias__cabeza p { max-width: none; font-size: 14px; line-height: 1.4; }
.cat { min-height: 200px; padding: 30px 36px; }
@media (max-width: 1360px) {
	.portada h1 { font-size: 48px; }
	.sello { width: 250px; height: 250px; }
	.sello__interior { width: 214px; height: 214px; }
	.sello__rs { font-size: 92px; }
}
@media (max-width: 720px) {
	.portada { padding: 32px var(--margen) 32px; }
	.portada__texto { gap: 16px; }
	.portada h1 { font-size: clamp(30px, 9vw, 38px); }
	.portada__intro { font-size: 15px; }
	.sello-movil__rs { width: clamp(64px, 20vw, 84px); height: clamp(64px, 20vw, 84px); font-size: clamp(36px, 11vw, 48px); }
	.portada__botones { flex-direction: row; flex-wrap: wrap; gap: 10px; }
	.portada__botones .btn { font-size: 12px; padding: 14px 18px; }
	.categorias { padding: 32px var(--margen) 32px; }
	.categorias__contenido { gap: 16px; }
	.categorias__cabeza h2 { white-space: normal; font-size: 28px; }
	.categorias__cabeza p { display: block; font-size: 13px; }
	.cat { padding: 14px 16px; }
}
.ficha-propietario { padding: 28px var(--margen) 8px; font-size: .95rem; line-height: 1.55; color: var(--oro-texto); text-align: center; }
.ficha-propietario p { margin: 0 0 6px; }
.ficha-propietario a:not(.btn) { color: inherit; text-decoration: underline; }
.ficha-propietario__ia { font-style: italic; opacity: .85; }
.ficha-propietario__acciones { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; margin-top: 10px; }
.ficha-propietario__retirar { font-size: .85rem; opacity: .8; }
.rds-reclama-aviso { margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--oro); color: var(--oro-texto); background: rgba(207,166,80,.1); font-size: .95rem; line-height: 1.5; }
/* Fichas con poco texto: la tarjeta de información se tiende debajo, en apaisado. */
.ficha-cuerpo--ancha { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-bottom: 72px; }
.ficha-cuerpo--ancha .ficha-texto { max-width: 900px; }
.ficha-cuerpo--ancha .ficha-info { position: static; flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 24px 48px; padding: 32px 40px; }
.ficha-cuerpo--ancha .ficha-info__titulo { flex: 0 0 100%; }
.ficha-cuerpo--ancha .ficha-info__dato { flex: 1 1 220px; padding-bottom: 0; border-bottom: 0; }
.ficha-cuerpo--ancha .ficha-info__llegar { margin-top: 0; align-self: center; }
@media (max-width: 720px) { .ficha-cuerpo--ancha .ficha-info { padding: 28px 24px; } }
.isla { font-family: var(--sans); font-size: .5em; font-weight: 400; font-style: normal; letter-spacing: .02em; opacity: .75; white-space: nowrap; }

/* ===== v2: fotos cuadradas, portada compacta en móvil, islas ===== */
.sel-item__foto { aspect-ratio: 1 / 1; height: auto; max-height: none; object-fit: cover; }
.riel .sel-item__foto { aspect-ratio: 1 / 1; height: auto; max-height: none; }
.portada__botones .btn-isla { cursor: pointer; }
@media (min-width: 1200px) {
	.portada-grid--riel { grid-template-columns: 298px minmax(0, 1fr); }
	.riel .sel-item { width: 250px; }
}
@media (min-width: 1101px) { .sel-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
	.portada__texto { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; row-gap: 12px; align-items: center; }
	.portada__texto > .sello-movil { grid-column: 2; grid-row: 1 / span 2; display: flex; }
	.portada__texto > .portada__ante { grid-column: 1; grid-row: 1; align-self: end; }
	.portada__texto > h1 { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(28px, 8.4vw, 34px); }
	.portada__texto > .portada__intro, .portada__texto > .portada__botones { grid-column: 1 / -1; }
	.sello-movil { gap: 8px; }
	.sello-movil svg { display: block; width: 64px; flex: 0 0 auto; }
	.sello-movil__rs { width: 52px !important; height: 52px !important; font-size: 30px !important; }
	.portada__botones { flex-direction: column; }
	.riel .sel-item { flex-basis: 150px; }
	.riel .sel-item h3 { font-size: 16px; }
	.sel-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
	.sel-rejilla .sel-item { gap: 6px; }
	.sel-rejilla .sel-item h2, .sel-rejilla .sel-item h3 { font-size: 18px; }
	.sel-rejilla .sel-item__meta { font-size: 10px; letter-spacing: 1.5px; }
	.sel-rejilla .enlace-ficha { display: none; }
	.cat-cuerpo > .carrusel { display: none; }
}
.panel-islas { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(10,20,15,.84); }
.panel-islas[hidden] { display: none; }
.panel-islas__caja { position: relative; width: min(440px, 100%); padding: 40px 36px 32px; background: var(--verde); border: 1px solid var(--oro); color: var(--crema); }
.panel-islas__caja h2 { margin: 0 0 20px; font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 30px; color: var(--oro); }
.panel-islas__caja ul { margin: 0; padding: 0; list-style: none; }
.panel-islas__caja li a { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 4px; border-bottom: 1px solid rgba(207,166,80,.25); font-family: var(--serif); font-size: 26px; color: var(--crema); }
.panel-islas__caja li a:hover { color: var(--oro-claro); }
.panel-islas__caja li small { font-family: var(--sans); font-size: 13px; color: var(--arena); }
.panel-islas__cerrar { position: absolute; top: 8px; right: 14px; background: none; border: 0; color: var(--oro); font-size: 34px; line-height: 1; cursor: pointer; }
.filtro-islas { display: flex; flex-wrap: wrap; gap: 10px; }
.filtro-islas__btn { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 18px; border: 1px solid var(--oro); color: var(--verde); font-size: 14px; letter-spacing: .5px; }
.filtro-islas__btn small { font-size: 12px; opacity: .7; }
.filtro-islas__btn.es-actual, .filtro-islas__btn:hover { background: var(--verde); color: var(--crema); }
.isla-cat { margin: 24px 0 0; font-family: var(--serif); font-weight: 400; font-size: 32px; color: var(--verde); }
@media (max-width: 720px) { .filtro-islas__btn { padding: 8px 14px; font-size: 13px; } .isla-cat { font-size: 26px; } }

.btn-isla { -webkit-appearance: none; appearance: none; background: transparent; color: var(--crema); font-family: inherit; text-transform: uppercase; }
.btn-isla:hover { background: rgba(207,166,80,.15); }

/* ===== v3: portada con pregunta, botón de admisión pequeño y «Descubre tu isla» ===== */
.portada__invita { display: flex; align-items: center; gap: 14px 22px; }
.portada__pregunta { margin: 0; max-width: 460px; font-size: 22px; line-height: 1.35; color: var(--crema); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.btn-mini { padding: 12px 22px; font-size: 12px; }
.portada__botones .btn-isla { background: var(--oro-degradado); color: var(--verde-oscuro); border: 0; font-weight: 600; }
.portada__botones .btn-isla:hover { background: var(--oro-degradado); filter: brightness(1.08); }
@media (max-width: 720px) {
	.portada__invita { flex-direction: row; align-items: center; gap: 12px; }
	.portada__pregunta { flex: 1 1 0; min-width: 0; font-size: 15px; line-height: 1.3; }
	.btn-mini { flex: 0 0 auto; width: 112px; padding: 10px 8px; font-size: 10px; letter-spacing: 1.2px; line-height: 1.25; text-align: center; white-space: normal; }
	.portada__texto > .portada__invita, .portada__texto > .portada__botones { grid-column: 1 / -1; }
	.sello-movil { width: 100px; height: 100px; border: 1px solid var(--oro); border-radius: 50%; flex-direction: column; justify-content: center; align-items: center; gap: 2px; }
	.sello-movil__rs { border: 0 !important; width: auto !important; height: auto !important; font-size: 46px !important; line-height: .95; }
	.sello-movil svg { width: 54px !important; }
}

/* ===== v4: categorías en móvil, 2 columnas x 3 filas con su descripción ===== */
@media (max-width: 720px) {
	.cat-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border-top: 0; }
	.cat { flex-direction: column; align-items: flex-start; gap: 6px; min-height: 0; padding: 16px 14px; border: 1px solid rgba(207,166,80,.45); }
	.cat__num { width: auto; font-size: 14px; }
	.cat__nombre { font-size: 22px; line-height: 1.15; }
	.cat__tipos { display: block; font-size: 11.5px; line-height: 1.5; }
}

/* ===== Etiqueta «Imagen ilustrativa» sobre las fotos de las fichas sin reclamar ===== */
.ficha-galeria__principal, .sel-item__marco { position: relative; }
.etiqueta-ilustrativa { position: absolute; left: 12px; bottom: 12px; z-index: 3; padding: 5px 10px; background: rgba(15,25,20,.74); color: var(--crema); font-family: var(--sans); font-size: 11px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; pointer-events: none; }
.sel-item__marco .etiqueta-ilustrativa { left: 8px; bottom: 8px; padding: 4px 8px; font-size: 9px; }
@media (max-width: 720px) { .etiqueta-ilustrativa { left: 8px; bottom: 8px; font-size: 10px; } .sel-item__marco .etiqueta-ilustrativa { font-size: 8px; padding: 3px 6px; } }
.ficha-otro__foto { position: relative; }
.ficha-otro__foto .etiqueta-ilustrativa { left: 8px; bottom: 8px; padding: 4px 8px; font-size: 9px; }


/* ---------- Selector de provincias (portada y categorías) ---------- */
.panel-islas__caja--prov { width: min(1000px, 100%); max-height: 88vh; overflow-y: auto; padding: 40px 36px 28px; }
.panel-prov__lista { display: block; column-count: 2; column-gap: 48px; }
.panel-prov__fila { break-inside: avoid; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 14px; padding: 11px 4px; border-bottom: 1px solid rgba(207,166,80,.25); }
.panel-prov__nombre { font-family: var(--serif); font-size: 22px; color: var(--crema); }
a.panel-prov__nombre:hover, a.panel-prov__isla:hover { color: var(--oro-claro); }
.panel-prov__nombre small, .panel-prov__isla small { margin-left: 6px; font-family: var(--sans); font-size: 12px; color: var(--arena); }
.panel-prov__nombre.es-vacia, .panel-prov__isla.es-vacia { opacity: .38; }
.panel-prov__islas { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-left: auto; text-align: right; justify-content: flex-end; }
.panel-prov__isla { font-family: var(--sans); font-size: 14px; letter-spacing: .02em; color: var(--arena); }
.panel-prov__todas { margin: -8px 0 16px; font-family: var(--sans); font-size: 14px; }
.panel-prov__todas a { color: var(--oro-claro); text-decoration: underline; }
.selector-provincia { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0 0 28px; }
.selector-provincia__actual { font-family: var(--sans); font-size: 15px; color: var(--crema); }
.selector-provincia__actual strong { color: var(--oro); font-weight: 600; }
.selector-provincia__actual a { color: var(--oro-claro); text-decoration: underline; }
@media (max-width: 720px) {
	.panel-prov__lista { column-count: 1; }
	.panel-islas__caja--prov { padding: 36px 20px 24px; }
	.panel-prov__nombre { font-size: 20px; }
}

/* Evita el desplazamiento horizontal causado por el riel de destacados. */
html, body { overflow-x: clip; }

/* Selector de provincia: botón + provincia elegida en verde */
.selector-provincia__chip { display: inline-flex; align-items: baseline; gap: 8px; padding: 12px 22px; background: var(--verde); color: var(--crema); border: 1px solid var(--oro); font-family: var(--serif); font-size: 19px; line-height: 1.2; }
.selector-provincia__chip small { font-family: var(--sans); font-size: 12px; color: var(--arena); }
.selector-provincia__todas { font-family: var(--sans); font-size: 14px; color: var(--verde); text-decoration: underline; }
@media (max-width: 720px) {
	.selector-provincia { flex-direction: column; align-items: stretch; gap: 10px; }
	.selector-provincia .btn { width: 100%; text-align: center; }
	.selector-provincia__chip { align-self: flex-start; }
	.selector-provincia__todas { align-self: flex-start; }
}

.selector-provincia .btn-isla { background: var(--oro-degradado); color: var(--verde-oscuro); border: 0; cursor: pointer; font-size: 13px; padding: 15px 26px; min-height: 48px; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.selector-provincia .btn-isla:hover { filter: brightness(1.06); }

.selector-provincia .btn.btn-isla, .selector-provincia button.btn-oro { background: linear-gradient(135deg, #e0bd6a 0%, #c9a24d 45%, #a8832f 100%) !important; background-image: var(--oro-degradado, linear-gradient(135deg, #e0bd6a 0%, #c9a24d 45%, #a8832f 100%)) !important; color: var(--verde-oscuro, #17301f) !important; border: 0 !important; cursor: pointer; font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; padding: 15px 26px; min-height: 48px; box-shadow: 0 4px 14px rgba(0,0,0,.18); -webkit-appearance: none; appearance: none; }
.selector-provincia .btn.btn-isla:hover, .selector-provincia .btn.btn-isla:focus-visible { filter: brightness(1.06); color: var(--verde-oscuro, #17301f) !important; }


/* Invitación a los establecimientos, bajo las categorías */
.cat-invitacion { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 34px; padding: 30px 44px; }
.cat-invitacion p { margin: 0; font-size: 24px; line-height: 1.35; }
.cat-invitacion .btn.btn-oro { font-size: 13px; padding: 16px 32px; color: var(--verde-oscuro, #17301f) !important; }
@media (max-width: 720px) {
	.cat-invitacion { flex-direction: column; text-align: center; padding: 26px 22px; }
	.cat-invitacion p { font-size: 21px; }
	.cat-invitacion .btn.btn-oro { width: 100%; }
}

.cat-invitacion { width: fit-content; max-width: 100%; margin: 0 auto; background: rgba(22,41,31,.78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(207,166,80,.45); }
.cat-invitacion p { flex-direction: row; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; border: 0; padding: 0; font-size: 24px; color: var(--hueso, #f3eee3); text-align: left; }
@media (max-width: 720px) {
	.cat-invitacion { width: 100%; }
	.cat-invitacion p { text-align: center; font-size: 21px; }
}

/* Móvil: presentación de la categoría plegada a dos líneas con «Leer más» dentro de la segunda */
@media (max-width: 720px) {
	.cat-cabeza__texto.rds-plegable { position: relative; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; text-align: left; }
	.cat-cabeza__texto .rds-mas { font: inherit; color: var(--oro-claro, #e0c27a); background: none; border: 0; padding: 0 0 0 8px; cursor: pointer; text-decoration: underline; }
	.cat-cabeza__texto.rds-plegable .rds-mas { position: absolute; right: 0; bottom: 0; padding-left: 44px; background: linear-gradient(90deg, rgba(31,58,44,0) 0, var(--verde, #1f3a2c) 44px); text-decoration: none; }
	.cat-cabeza__texto.rds-plegable .rds-mas::after { content: ""; }
	.cat-cabeza__texto.rds-plegable.rds-abierto { display: block; overflow: visible; }
	.cat-cabeza__texto.rds-plegable.rds-abierto .rds-mas { position: static; padding-left: 8px; background: none; text-decoration: underline; }
}

/* Móvil: cabecera de categorías y provincias más compacta */
@media (max-width: 720px) {
	.pagina-cabeza.cat-cabeza { padding-top: 14px; padding-bottom: 20px; }
	.cat-cabeza .cat-cabeza__num { display: inline-block; margin: 0 12px 0 0; font-size: 24px; line-height: 1.1; vertical-align: baseline; }
	.cat-cabeza .cat-cabeza__num + h1 { display: inline-block; margin: 0; font-size: 36px; line-height: 1.1; vertical-align: baseline; }
	.cat-cabeza .cat-cabeza__tipos { margin: 6px 0 0 !important; }
	.cat-cabeza .cat-cabeza__texto { margin: 8px 0 0 !important; max-width: none !important; }
	.cat-cabeza .antetitulo + h1 { margin-top: 4px; }
}

@media (max-width: 720px) {
	.pagina-cabeza.cat-cabeza { padding-bottom: 16px; }
	.pagina-cuerpo.cat-cuerpo { padding-top: 20px; }
}

/* Ordenador: cabecera de categorías más compacta (número y título en la misma línea) */
@media (min-width: 721px) {
	.pagina-cabeza.cat-cabeza { padding-top: 22px; padding-bottom: 26px; }
	.cat-cabeza .cat-cabeza__num { display: inline-block; margin: 0 16px 0 0; line-height: 1.1; vertical-align: baseline; }
	.cat-cabeza .cat-cabeza__num + h1 { display: inline-block; margin: 0; vertical-align: baseline; }
	.cat-cabeza .cat-cabeza__tipos { margin-top: 10px !important; }
	.cat-cabeza .cat-cabeza__texto { margin-top: 12px !important; }
	.pagina-cuerpo.cat-cuerpo { padding-top: 30px; }
}

/* Móvil: una sola línea de aire antes y después de «Selección» */
@media (max-width: 720px) {
	.pagina-cuerpo.cat-cuerpo { row-gap: 20px; }
	.pagina-cuerpo.cat-cuerpo .selector-provincia { margin-bottom: 0; }
	.pagina-cuerpo.cat-cuerpo .cat-recuento { margin: 0; }
	.pagina-cuerpo.cat-cuerpo .sel-rejilla { margin-top: 0; }
}

/* Portada: tarjetas de categoría más bajas, con número romano y nombre en la misma línea */
.cat { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; column-gap: 14px; row-gap: 10px; padding: 26px 30px; min-height: 0; }
.cat__num { font-size: 22px; }
.cat__nombre { font-size: 32px; line-height: 1.12; }
.cat__tipos { grid-column: 1 / -1; line-height: 1.55; }
@media (max-width: 720px) {
	.cat { padding: 20px 22px; row-gap: 8px; }
	.cat__nombre { font-size: 28px; }
}

/* Móvil: carrusel pequeño de destacados tras el «Leer más», con flechas y avance automático */
@media (max-width: 720px) {
	.cat-cuerpo > .carrusel { display: block; margin: 0; }
	.cat-cuerpo > .carrusel .carrusel__pista { gap: 10px; padding-bottom: 0; }
	.cat-cuerpo > .carrusel .carrusel__pista > .sel-item { flex: 0 0 112px; }
	.cat-cuerpo > .carrusel .sel-item__foto { aspect-ratio: 1 / 1; }
	.cat-cuerpo > .carrusel .sel-item__meta { display: none; }
	.cat-cuerpo > .carrusel .sel-item h2, .cat-cuerpo > .carrusel .sel-item h3 { font-size: 13px; line-height: 1.25; margin-top: 6px; }
	.cat-cuerpo > .carrusel .carrusel__flecha { display: grid; width: 32px; height: 32px; top: 40px; }
	.cat-cuerpo > .carrusel .carrusel__flecha--ant { left: 4px; }
	.cat-cuerpo > .carrusel .carrusel__flecha--sig { right: 4px; }
	.cat-cuerpo > .carrusel .carrusel__flecha svg { width: 16px; height: 16px; }
	.cat-cuerpo > .carrusel .carrusel__puntos { display: none; }
}

@media (max-width: 720px) { .cat-cuerpo > .carrusel .enlace-ficha { display: none; } }

/* Móvil: tarjetas de categoría de la portada sin número romano y con el nombre bien legible */
@media (max-width: 720px) {
	.cat { grid-template-columns: minmax(0, 1fr); padding: 18px 22px; row-gap: 6px; }
	.cat__num { display: none; }
	.cat__nombre { font-size: 30px; line-height: 1.12; overflow-wrap: anywhere; }
}

@media (max-width: 720px) {
	.cat-rejilla { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.cat { padding: 16px 20px; row-gap: 4px; }
	.cat__nombre { font-size: 28px; overflow-wrap: normal; word-break: normal; hyphens: none; }
	.cat__tipos { font-size: 13px; line-height: 1.5; }
}

/* Móvil, portada: vuelven las 2 columnas; sin número romano; nombre entero, partido solo entre palabras */
@media (max-width: 720px) {
	.cat-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.cat { padding: 16px 14px; row-gap: 6px; }
	.cat__num { display: none; }
	.cat__nombre { font-size: 21px; line-height: 1.12; overflow-wrap: normal; word-break: normal; hyphens: none; }
	.cat__tipos { font-size: 12px; line-height: 1.45; }
}

.cat { align-content: start; }

.ficha-verificado{display:inline-block;margin-left:10px;padding:3px 10px;border:1px solid var(--oro,#c9a961);border-radius:12px;color:var(--oro,#c9a961);font-size:.72rem;letter-spacing:.04em;vertical-align:middle;white-space:nowrap}
.ficha-info__contacto{margin:6px 0 14px;font-size:.88rem;opacity:.85}
.portada__botones{display:flex;flex-wrap:wrap;gap:12px}
.ficha-propietario__nota{margin:0 0 14px;font-size:.78rem;line-height:1.55;color:#8a8d89;max-width:720px}

/* ---------- Paginación de categorías (19/10/2026) ---------- */
.cat-paginas{margin:44px 0 12px;text-align:center}
.cat-paginas__estado{margin:0 0 14px;font-size:15px;color:#3b4a43}
.cat-paginas__lista{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}
.cat-paginas__lista a,.cat-paginas__actual{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border:1px solid rgba(26,58,46,.35);border-radius:2px;font-size:16px;text-decoration:none;color:#1a3a2e;background:transparent}
.cat-paginas__lista a:hover,.cat-paginas__lista a:focus-visible{background:#1a3a2e;color:#f5f0e1;border-color:#1a3a2e}
.cat-paginas__actual{background:#1a3a2e;color:#f5f0e1;border-color:#1a3a2e}
.cat-paginas__salto{display:inline-flex;align-items:center;min-height:44px;color:#3b4a43}
@media (max-width:600px){.cat-paginas__lista a,.cat-paginas__actual{min-width:40px;padding:0 10px}}

/* ---------- Control de pausa del vídeo de categorías (19/10/2026) ---------- */
.categorias{position:relative}
.categorias__pausa{position:absolute;right:16px;bottom:16px;z-index:3;min-height:44px;padding:0 16px;border:1px solid rgba(245,240,225,.7);border-radius:2px;background:rgba(22,47,39,.78);color:#f5f0e1;font:inherit;font-size:15px;cursor:pointer}
.categorias__pausa:hover,.categorias__pausa:focus-visible{background:#162f27;border-color:#f5f0e1}

/* ---------- Accesibilidad 19/10/2026 ---------- */
.etiqueta-ilustrativa{font-size:11px;line-height:1.3;letter-spacing:.06em}
.cat-vacia a{color:#6b5217;text-decoration:underline;text-underline-offset:3px}
.cat-vacia a:hover,.cat-vacia a:focus-visible{color:#1a3a2e}
.panel-islas [id$="-titulo"][tabindex="-1"]:focus{outline:none}
.panel-prov__lista > [hidden]{display:none!important}

/* ---------- Solicitud de admisión (19/10/2026) ---------- */
.admision-intro{max-width:760px;margin:0 0 32px;padding:22px 26px;border:1px solid rgba(26,58,46,.25);border-left:4px solid #1a3a2e;background:rgba(26,58,46,.04)}
.admision-intro p{margin:0 0 14px}
.admision-intro__titulo{margin:6px 0 10px;font-size:22px}
.admision-intro ul{margin:0 0 14px;padding-left:20px}
.admision-intro li{margin:0 0 8px}
.admision-intro a{color:#1a3a2e;text-decoration:underline}
.admision-intro__privacidad{font-size:15px;color:#3b4a43;margin-bottom:0}
.admision-ayuda{margin:6px 0 0;font-size:14px;line-height:1.45;color:#3b4a43}


/* Carrusel de las páginas de categoría: miniaturas (un cuarto de superficie) para que no compitan con la selección de abajo. */
.cat-cuerpo .carrusel__pista { gap: 16px; }
.cat-cuerpo .carrusel__pista > .sel-item { flex: 0 0 calc((100% - 80px) / 6); gap: 10px; }
.cat-cuerpo .carrusel .sel-item h3, .cat-cuerpo .carrusel .sel-item h2 { font-size: .95rem; line-height: 1.25; }
.cat-cuerpo .carrusel__flecha { top: calc(85px - 18px); width: 36px; height: 36px; }
.cat-cuerpo .carrusel__flecha--ant { left: -18px; }
.cat-cuerpo .carrusel__flecha--sig { right: -18px; }
@media (max-width: 1100px) {
	.cat-cuerpo .carrusel__pista > .sel-item { flex: 0 0 calc((100% - 48px) / 4); }
}
@media (max-width: 600px) {
	.cat-cuerpo .carrusel__pista { gap: 12px; }
	.cat-cuerpo .carrusel__pista > .sel-item { flex: 0 0 calc((100% - 24px) / 3); }
	.cat-cuerpo .carrusel__flecha { display: none; }
}

.cat-cuerpo .carrusel .etiqueta-ilustrativa { font-size: 7px; padding: 2px 5px; left: 5px; bottom: 5px; letter-spacing: .04em; }

/* Espacios compactos entre carrusel, botones y «Selección» (como mucho unos 3 mm). */
/* El contenedor deja 48 px entre bloques: aquí se compensa para que el hueco real sea de unos 10 px. */
.cat-cuerpo > .carrusel { margin-bottom: -38px; }
.cat-cuerpo > .carrusel__puntos { margin-top: 8px; }
.cat-cuerpo > .selector-provincia { margin-bottom: -38px; }
.pagina-cuerpo .carrusel__puntos { margin-top: 8px; }
.cat-cuerpo > .selector-provincia + .isla-cat { margin-top: 0; }

/* Móvil: el hueco entre bloques ya es de 20 px; se deja una separación de unos 14 px (sin solapar el texto del carrusel). */
@media (max-width: 720px) {
	.cat-cuerpo > .carrusel { margin-bottom: 8px; }
	.cat-cuerpo > .carrusel .carrusel__puntos { margin-top: 12px; }
}

/* Antetítulo de la portada: mismo tamaño, letra y color que la frase de debajo, en mayúsculas (20/10/2026). */
.portada__ante { font-size: 22px; font-weight: 300; letter-spacing: .5px; line-height: 1.35; text-transform: uppercase; color: var(--crema); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
@media (max-width: 720px) {
	.portada__ante { font-size: 15px; line-height: 1.3; letter-spacing: .3px; }
}

/* ---------- Buscador ---------- */
.busca__boton { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid rgba(207,166,80,.45); border-radius: 50%; cursor: pointer; transition: transform .2s, border-color .2s; }
.busca__boton:hover { transform: scale(1.08); border-color: var(--oro); }
.busca__boton:focus-visible { outline: 1px solid var(--oro); outline-offset: 3px; }
.busca__boton--cat { width: 56px; height: 56px; border: 0; }
.busca__boton--ficha { width: 48px; height: 48px; align-self: center; }
.cat-cabeza__titulo { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 8px; }
.cat-cabeza__titulo h1 { margin: 0; }
.busca { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; padding: 22px var(--margen) 26px; background: var(--verde-oscuro); border-bottom: 1px solid rgba(207,166,80,.35); box-shadow: 0 18px 40px rgba(0,0,0,.28); }
.busca[hidden] { display: none; }
.busca__form { max-width: 760px; margin: 0 auto; }
.busca__campo { width: 100%; box-sizing: border-box; padding: 10px 2px; background: transparent; border: 0; border-bottom: 1px solid var(--oro); color: var(--crema); font-family: var(--serif); font-size: 28px; outline: none; }
.busca__campo::placeholder { color: var(--arena); opacity: .7; font-style: italic; }
.busca__res { max-width: 760px; max-height: 58vh; margin: 14px auto 0; overflow-y: auto; }
.busca__item { display: flex; flex-direction: column; gap: 2px; padding: 12px 2px; border-bottom: 1px solid rgba(207,166,80,.2); text-decoration: none; }
.busca__nombre { font-family: var(--serif); font-size: 22px; color: var(--crema); }
.busca__lugar { font-size: 14px; letter-spacing: .04em; color: var(--arena); }
.busca__item:hover .busca__nombre, .busca__item:focus-visible .busca__nombre { color: var(--oro-claro); }
.busca__vacio { margin: 8px 2px; font-style: italic; color: var(--arena); }
@media (max-width: 720px) {
	.busca__boton { width: 40px; height: 40px; }
	.busca__boton--cat { width: 46px; height: 46px; }
	.busca { padding: 16px var(--margen) 20px; }
	.busca__campo { font-size: 22px; }
}
.busca__campo::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.portada__titulo { display: flex; align-items: center; gap: 18px; }
.portada__titulo h1 { min-width: 0; }
.busca__boton--portada { width: 60px; height: 60px; }
@media (max-width: 720px) { .portada__titulo { gap: 10px; } .busca__boton--portada { width: 44px; height: 44px; } .busca__boton--portada svg { width: 26px; height: 26px; } }
