/*
 * Capa visual de las Guías Especiales.
 * Paleta tierra/otoñal y tipografías tomadas de la guía de referencia.
 * Todos los valores son variables: una guía nueva cambia la piel sin tocar
 * ninguna regla.
 */

:root {
	--cgu-primario: #2c4a35;   /* forest */
	--cgu-acento: #d98a3a;     /* amber */
	--cgu-arcilla: #b4653c;
	--cgu-crema: #faf4e8;
	--cgu-fondo: #fbf7ef;
	--cgu-texto: #2f2a24;
	--cgu-texto-suave: #6b6357;
	--cgu-borde: #e7ddc9;
	--cgu-tarjeta: #fffdf8;
	--cgu-whatsapp: #1f9d55;
	--cgu-radio: 1rem;
	--cgu-sombra: 0 1px 2px rgba(60, 45, 25, .06), 0 12px 32px -18px rgba(60, 45, 25, .35);
	--cgu-sombra-alta: 0 24px 60px -28px rgba(60, 45, 25, .45);
	--cgu-serif: "Fraunces", Georgia, serif;
	--cgu-sans: "Plus Jakarta Sans", system-ui, sans-serif;
}

.cgu-guia {
	background: var(--cgu-fondo);
	color: var(--cgu-texto);
	font-family: var(--cgu-sans);
	line-height: 1.6;
}

.cgu-guia h1, .cgu-guia h2, .cgu-guia h3, .cgu-guia h4 {
	font-family: var(--cgu-serif);
	color: var(--cgu-primario);
	line-height: 1.15;
	text-wrap: balance;
}

.cgu-contenedor { width: min(100% - 2rem, 76rem); margin-inline: auto; }
.cgu-seccion { padding-block: clamp(2.5rem, 6vw, 4.5rem); scroll-margin-top: 5rem; }
.cgu-seccion__encabezado { margin-bottom: 1.75rem; }
.cgu-seccion__kicker { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cgu-acento); font-weight: 700; }
.cgu-seccion__bajada { color: var(--cgu-texto-suave); max-width: 46rem; }

/* ---------- Navegación ---------- */
.cgu-header { position: sticky; top: 0; z-index: 40; background: rgba(251, 247, 239, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--cgu-borde); }
.cgu-header__barra { display: flex; align-items: center; gap: 1rem; justify-content: space-between; padding-block: .75rem; }
.cgu-marca { display: grid; line-height: 1.1; }
.cgu-marca__portal { font-size: .78rem; color: var(--cgu-texto-suave); }
.cgu-marca__guia { font-family: var(--cgu-serif); font-weight: 700; color: var(--cgu-primario); }
.cgu-nav { display: none; }
.cgu-nav ul { display: flex; gap: 1.1rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.cgu-nav a { color: var(--cgu-texto); text-decoration: none; font-size: .92rem; font-weight: 500; }
.cgu-nav a:hover, .cgu-nav a:focus-visible { color: var(--cgu-primario); text-decoration: underline; }
.cgu-nav__grupo { position: relative; }
.cgu-nav__grupo > button { background: none; border: 0; font: inherit; cursor: pointer; color: inherit; }
.cgu-nav__panel { position: absolute; inset-inline-start: 0; top: 130%; min-width: 14rem; background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: var(--cgu-radio); box-shadow: var(--cgu-sombra); padding: .6rem; display: none; }
.cgu-nav__grupo[open] .cgu-nav__panel, .cgu-nav__grupo.is-open .cgu-nav__panel { display: grid; }
.cgu-nav__panel a { display: block; padding: .45rem .6rem; border-radius: .6rem; }
.cgu-nav__panel a:hover { background: var(--cgu-crema); text-decoration: none; }

.cgu-cta-alta { background: var(--cgu-acento); color: #fff; padding: .55rem 1rem; border-radius: 999px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.cgu-cta-alta:hover { filter: brightness(.95); color: #fff; }

.cgu-burger { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid var(--cgu-borde); background: var(--cgu-tarjeta); border-radius: .75rem; padding: .5rem .8rem; font: inherit; cursor: pointer; }
.cgu-panel-movil { position: fixed; inset-block: 0; inset-inline-end: 0; width: min(88vw, 22rem); background: var(--cgu-tarjeta); border-inline-start: 1px solid var(--cgu-borde); box-shadow: var(--cgu-sombra-alta); padding: 1.25rem; overflow-y: auto; transform: translateX(100%); transition: transform .25s ease; z-index: 60; }
.cgu-panel-movil[data-abierto="true"] { transform: translateX(0); }
.cgu-panel-movil a { display: block; padding: .7rem .25rem; border-bottom: 1px solid var(--cgu-borde); color: var(--cgu-texto); text-decoration: none; font-size: 1rem; }
.cgu-panel-movil__cerrar { float: inline-end; background: none; border: 0; font-size: 1.5rem; cursor: pointer; line-height: 1; }
.cgu-overlay { position: fixed; inset: 0; background: rgba(40, 30, 15, .35); z-index: 50; display: none; }
.cgu-overlay[data-abierto="true"] { display: block; }
.cgu-skip { position: absolute; left: -9999px; }
.cgu-skip:focus { left: 1rem; top: 1rem; z-index: 100; background: var(--cgu-primario); color: #fff; padding: .6rem 1rem; border-radius: .6rem; }

@media (min-width: 1024px) {
	.cgu-nav { display: block; }
	.cgu-burger { display: none; }
}

/* ---------- Hero ---------- */
.cgu-hero { position: relative; color: #fff; padding-block: clamp(3rem, 10vw, 6rem); background: linear-gradient(180deg, rgba(20,35,25,.72), rgba(20,35,25,.86)); background-size: cover; background-position: center; }
.cgu-hero h1 { color: #fff; font-size: clamp(2rem, 6vw, 3.4rem); }
.cgu-hero p { max-width: 42rem; color: rgba(255,255,255,.9); }
.cgu-hero__acciones { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }

/* ---------- Botones ---------- */
.cgu-btn { display: inline-flex; align-items: center; gap: .4rem; border-radius: 999px; padding: .5rem .9rem; font-size: .85rem; font-weight: 600; text-decoration: none; border: 1px solid var(--cgu-borde); background: var(--cgu-tarjeta); color: var(--cgu-texto); }
.cgu-btn:hover { box-shadow: var(--cgu-sombra); }
.cgu-btn--primario { background: var(--cgu-primario); color: #fff; border-color: transparent; }
.cgu-btn--whatsapp { background: var(--cgu-whatsapp); color: #fff; border-color: transparent; }
.cgu-btn--maps { background: var(--cgu-crema); }
.cgu-btn--portal { background: transparent; border-style: dashed; }

/* ---------- Tarjetas ---------- */
.cgu-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .cgu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cgu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cgu-grid--2 { grid-template-columns: 1fr; }
@media (min-width: 768px) { .cgu-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cgu-card { background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: var(--cgu-radio); overflow: hidden; display: flex; flex-direction: column; }
.cgu-card--destacada { box-shadow: var(--cgu-sombra); }
.cgu-card__media img { width: 100%; height: 12.5rem; object-fit: cover; display: block; }
.cgu-card__body { padding: 1rem; display: grid; gap: .55rem; }
.cgu-card__meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cgu-texto-suave); margin: 0; }
.cgu-card__categoria { color: var(--cgu-acento); font-weight: 700; }
.cgu-card__titulo { font-size: 1.1rem; margin: 0; }
.cgu-card__titulo a { color: inherit; text-decoration: none; }
.cgu-card__texto { margin: 0; color: var(--cgu-texto-suave); font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cgu-card__acciones { display: flex; flex-wrap: wrap; gap: .5rem; }
.cgu-card--basica .cgu-card__body { padding: .85rem 1rem; }

/* ---------- Grupos por localidad / tipo ---------- */
.cgu-grupo { margin-bottom: 2rem; }
.cgu-grupo__titulo { font-size: 1.25rem; padding-bottom: .4rem; border-bottom: 2px solid var(--cgu-crema); margin-bottom: 1rem; }
.cgu-subgrupo { display: grid; gap: .75rem; align-content: start; }
.cgu-subgrupo__titulo { font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cgu-texto-suave); margin: 0; }

/* ---------- Propuestas ---------- */
.cgu-propuestas { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cgu-propuestas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cgu-propuesta { background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: var(--cgu-radio); overflow: hidden; box-shadow: var(--cgu-sombra); display: flex; flex-direction: column; }
.cgu-propuesta__media img { width: 100%; height: 11rem; object-fit: cover; display: block; }
.cgu-propuesta__body { padding: 1.1rem; display: grid; gap: .6rem; }
.cgu-propuesta__resumen { margin: 0; color: var(--cgu-texto-suave); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cgu-propuesta__detalle summary { cursor: pointer; font-weight: 600; color: var(--cgu-primario); }
.cgu-propuesta__texto { white-space: pre-line; font-size: .93rem; color: var(--cgu-texto-suave); }

/* ---------- Servicios ---------- */
.cgu-servicios__aviso { background: var(--cgu-crema); border-radius: .75rem; padding: .6rem 1rem; display: inline-block; }
.cgu-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; padding: 0; list-style: none; }
.cgu-chips a { display: inline-block; border: 1px solid var(--cgu-borde); border-radius: 999px; padding: .45rem .9rem; text-decoration: none; color: var(--cgu-texto); background: var(--cgu-tarjeta); font-size: .9rem; }
.cgu-chips a[aria-current="true"] { background: var(--cgu-primario); color: #fff; border-color: transparent; }

/* ---------- Programación y entradas ---------- */
.cgu-programacion__dia { margin-bottom: 1.5rem; }
.cgu-programacion__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cgu-programacion__item { display: flex; flex-wrap: wrap; gap: .75rem; padding: .7rem .9rem; background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: .8rem; }
.cgu-programacion__hora { font-weight: 700; color: var(--cgu-acento); min-width: 4rem; }
.cgu-entradas { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cgu-entradas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cgu-entrada { background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: var(--cgu-radio); padding: 1.1rem; display: grid; gap: .5rem; align-content: start; }
.cgu-entrada__precio { font-family: var(--cgu-serif); font-size: 1.4rem; color: var(--cgu-primario); margin: 0; }

/* ---------- Publicidad ---------- */
.cgu-ad { border: 1px dashed var(--cgu-borde); border-radius: var(--cgu-radio); overflow: hidden; background: var(--cgu-crema); }
.cgu-ad__etiqueta { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cgu-texto-suave); margin: .6rem 1rem 0; }
.cgu-ad__media img { width: 100%; height: 14rem; object-fit: cover; display: block; }
.cgu-ad__body { padding: 1rem; display: grid; gap: .5rem; }

/* ---------- Ficha individual ---------- */
.cgu-ficha { display: grid; gap: 1.5rem; }
@media (min-width: 900px) { .cgu-ficha { grid-template-columns: 1.6fr 1fr; align-items: start; } }
.cgu-ficha__galeria img { width: 100%; border-radius: var(--cgu-radio); }
.cgu-ficha__datos { background: var(--cgu-tarjeta); border: 1px solid var(--cgu-borde); border-radius: var(--cgu-radio); padding: 1.2rem; display: grid; gap: .7rem; position: sticky; top: 6rem; }
.cgu-ficha__dato { display: grid; gap: .1rem; font-size: .92rem; }
.cgu-ficha__dato span { color: var(--cgu-texto-suave); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }

/* ---------- Breadcrumbs y pie ---------- */
.cgu-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 1rem 0; font-size: .82rem; color: var(--cgu-texto-suave); }
.cgu-breadcrumbs li + li::before { content: "/"; margin-inline-end: .4rem; color: var(--cgu-borde); }
.cgu-breadcrumbs a { color: inherit; }
.cgu-footer { background: var(--cgu-primario); color: rgba(255,255,255,.88); padding-block: 2.5rem; margin-top: 3rem; }
.cgu-footer a { color: #fff; }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
html { scroll-behavior: smooth; }

.cgu-card__badge { background: var(--cgu-acento); color: #fff; border-radius: 999px; padding: .1rem .55rem; font-weight: 700; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
