:root {
	--naranja: #F04A1A;
	--naranja-texto: #C9370E;
	--azul: #13294B;
	--azul-medio: #2A4A75;
	--celeste: #CDEBF5;
	--celeste-suave: #F2F8FB;
	--durazno: #FFE1D6;
	--niebla: #DCE3EE;
	--linea: #DCEAF0;
	--linea-fuerte: #B9CFDB;
	--gris-texto: #3E5470;
	--claro-sobre-azul: #DCE7F2;
	--fuente: 'Bricolage Grotesque', system-ui, sans-serif;
	--ancho: 1200px;
	--radio: 22px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--fuente);
	font-size: 17px;
	line-height: 1.5;
	color: var(--azul);
	background: #FFFFFF;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--azul); }
a:hover { color: var(--naranja-texto); }
:focus-visible { outline: 3px solid var(--naranja); outline-offset: 3px; }
h1, h2, h3 { margin: 0; font-weight: 800; letter-spacing: -0.02em; line-height: 1.05; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto; clip: auto;
	padding: 10px 16px; background: var(--azul); color: #FFFFFF; border-radius: 999px;
}
.wrap { max-width: var(--ancho); margin: 0 auto; padding: 0 24px; }

/* Botones y chips */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 0 22px; border-radius: 999px; border: 0;
	font: 700 16px/1 var(--fuente); text-decoration: none; cursor: pointer;
}
.btn--azul { background: var(--azul); color: #FFFFFF; }
.btn--azul:hover { background: var(--azul-medio); color: #FFFFFF; }
.btn--blanco { background: #FFFFFF; color: var(--azul); }
.btn--celeste { background: var(--celeste); color: var(--azul); }
.btn--borde { background: transparent; color: var(--azul); border: 1.5px solid var(--azul); }
.btn--grande { min-height: 52px; padding: 0 26px; font-size: 17px; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.chip {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px;
	border-radius: 999px; border: 1.5px solid var(--linea-fuerte); background: #FFFFFF;
	color: var(--azul); font: 500 16px/1 var(--fuente); text-decoration: none;
}
.chip:hover { border-color: var(--azul); color: var(--azul); }
.chip.is-active { background: var(--naranja-texto); border-color: var(--naranja-texto); color: #FFFFFF; }
.chip--fuerte { border: 2px solid var(--azul); font-weight: 700; min-height: 48px; padding: 0 22px; }
.chip--fuerte.is-active { background: var(--azul); border-color: var(--azul); }
.kicker { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--naranja-texto); }

/* Cabecera */
.site-header { background: #FFFFFF; border-bottom: 1px solid var(--linea); }
.site-header .wrap {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 12px 24px; padding-top: 14px; padding-bottom: 14px;
}
.logo { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--azul); }
.logo__globo { position: relative; display: block; width: 84px; height: 42px; }
.logo__globo svg { position: absolute; inset: 0; display: block; }
.logo__globo span {
	position: absolute; left: 0; top: 0; width: 84px; height: 34px; display: flex; align-items: center; justify-content: center;
	color: #FFFFFF; font-size: 26px; font-weight: 800; letter-spacing: -0.04em; line-height: 1;
}
.logo__texto { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.main-nav ul { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0; list-style: none; }
.main-nav a { display: block; padding: 10px 0; font-weight: 500; font-size: 16px; text-decoration: none; }
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a,
.main-nav .current_page_parent > a {
	text-decoration: underline; text-decoration-thickness: 3px;
	text-underline-offset: 8px; text-decoration-color: var(--naranja);
}
.header-actions { display: flex; align-items: center; gap: 8px; }
.icon-btn {
	width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--linea);
	background: #FFFFFF; color: var(--azul); display: inline-flex; align-items: center; justify-content: center;
}
.header-search { display: none; padding: 0 24px 16px; max-width: var(--ancho); margin: 0 auto; }
.header-search.is-open { display: block; }

/* Formularios */
.field { display: flex; flex-wrap: wrap; gap: 10px; }
.field input[type="email"], .field input[type="search"], .input {
	flex: 1 1 220px; min-width: 0; min-height: 52px; border-radius: 999px;
	border: 1.5px solid var(--linea-fuerte); padding: 0 22px; font: 400 17px var(--fuente); color: var(--azul);
}

/* Hero portada */
.hero { background: var(--celeste); }
.hero .wrap { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; padding-top: 64px; padding-bottom: 72px; }
.hero__texto { flex: 1 1 440px; min-width: 0; }
.hero__fecha { display: inline-flex; padding: 6px 14px; border-radius: 999px; background: #FFFFFF; font-size: 15px; font-weight: 700; }
.hero h1 { margin: 20px 0 16px; font-size: clamp(46px, 6vw, 76px); line-height: 0.98; }
.hero p { margin: 0 0 28px; font-size: 21px; max-width: 520px; }
.hero__acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__planes { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }

/* Encabezado de sección */
.seccion { padding-top: 72px; }
.seccion__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.seccion__cabeza h2 { font-size: clamp(30px, 4vw, 40px); }
.seccion__cabeza a { font-weight: 700; }
.seccion__bajada { margin: -12px 0 24px; font-size: 18px; color: var(--gris-texto); }

/* Tarjetas */
.foto {
	border-radius: var(--radio); overflow: hidden; background: var(--niebla);
	position: relative; aspect-ratio: 4 / 3;
}
.foto img { width: 100%; height: 100%; object-fit: cover; }
.foto .etiqueta {
	position: absolute; top: 12px; left: 12px; padding: 4px 12px; border-radius: 999px;
	background: #FFFFFF; color: var(--azul); font-size: 13px; font-weight: 700;
}
.grid-cards { display: flex; flex-wrap: wrap; gap: 24px; }
.card { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--azul); }
.card h3 { font-size: 21px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; }
.card__meta { font-size: 15px; color: var(--gris-texto); }
.card__precio { font-size: 15px; font-weight: 700; }
.card-h { display: flex; gap: 16px; align-items: center; text-decoration: none; color: var(--azul); }
.card-h .foto { flex: 0 0 112px; aspect-ratio: auto; height: 92px; border-radius: 16px; }
.card-h h3 { font-size: 20px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; }
.card-h--blanca { padding: 12px; border-radius: 20px; background: #FFFFFF; }
.destacada {
	flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; overflow: hidden;
	border-radius: 28px; background: var(--azul); color: #FFFFFF; text-decoration: none;
}
.destacada:hover { color: #FFFFFF; }
.destacada .foto { border-radius: 0; aspect-ratio: 16 / 8; background: var(--azul-medio); }
.destacada__texto { padding: 28px 32px 32px; }
.destacada .kicker { color: var(--celeste); }
.destacada h3 { margin-top: 8px; font-size: clamp(28px, 3vw, 38px); }
.destacada p { margin: 12px 0 0; font-size: 18px; color: var(--claro-sobre-azul); }
.lista-guias { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }

/* Barrios */
.barrios { display: flex; flex-wrap: wrap; gap: 16px; }
.barrio {
	flex: 1 1 170px; min-width: 0; min-height: 120px; border-radius: var(--radio); padding: 20px;
	display: flex; flex-direction: column; justify-content: space-between; text-decoration: none;
	font-size: 24px; font-weight: 800; letter-spacing: -0.02em;
}
.barrio:nth-child(3n+1) { background: var(--naranja-texto); color: #FFFFFF; }
.barrio:nth-child(3n+2) { background: var(--celeste); color: var(--azul); }
.barrio:nth-child(3n) { background: var(--azul); color: #FFFFFF; }
.barrio:hover { color: inherit; opacity: 0.92; }

/* Newsletter */
.newsletter {
	margin-top: 80px; border-radius: 32px; background: var(--azul); color: #FFFFFF; padding: 48px;
	display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: space-between;
}
.newsletter h2 { font-size: clamp(32px, 4vw, 44px); }
.newsletter p { margin: 12px 0 0; font-size: 19px; color: var(--claro-sobre-azul); }
.newsletter > div, .newsletter form { flex: 1 1 380px; min-width: 0; }
.newsletter label { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 500; color: var(--claro-sobre-azul); }
.newsletter input[type="email"] { border: 0; }

/* Cabecera de página interior */
.cabecera { background: var(--celeste); }
.cabecera .wrap { padding-top: 48px; padding-bottom: 40px; }
.cabecera h1 { font-size: clamp(40px, 5vw, 64px); }
.cabecera p { margin: 12px 0 0; font-size: 20px; max-width: 640px; }
.cabecera .chips { margin-top: 28px; }

/* Agenda */
.agenda { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; padding-top: 32px; }
.agenda__lista { flex: 999 1 600px; min-width: 0; }
.agenda__lista .chips { margin-bottom: 24px; }
.agenda__cuenta { margin: 0 0 12px; font-size: 15px; color: var(--gris-texto); }
.eventos { border-top: 1px solid var(--linea); }
.evento { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--linea); }
.evento__dia {
	flex: 0 0 72px; height: 76px; border-radius: 16px; background: var(--azul); color: #FFFFFF;
	display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
}
.evento__dia.is-hoy { background: var(--naranja-texto); }
.evento__dia span { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.evento__dia strong { font-size: 32px; font-weight: 800; margin-top: 4px; }
.evento .foto { flex: 0 0 120px; height: 76px; aspect-ratio: auto; border-radius: 16px; }
.evento__texto { flex: 1 1 240px; min-width: 0; }
.evento__texto h2 { margin: 2px 0; font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; }
.evento__texto h2 a { text-decoration: none; }
.evento__lado { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-weight: 700; }
.vacio { padding: 40px 24px; border-radius: 24px; background: var(--celeste-suave); text-align: center; }
.vacio strong { display: block; font-size: 22px; }
.lateral { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.caja { border-radius: 24px; border: 1.5px solid var(--linea); padding: 28px; }
.caja--azul { background: var(--azul); border-color: var(--azul); color: #FFFFFF; }
.caja--azul a { color: #FFFFFF; }
.caja--azul p { color: var(--claro-sobre-azul); }
.caja h2 { font-size: 22px; line-height: 1.15; }
.caja p { margin: 8px 0 16px; font-size: 15px; }
.caja .input { width: 100%; min-height: 48px; }
.caja .btn { width: 100%; margin-top: 10px; }

/* Nota */
.nota__cabeza { max-width: 860px; margin: 0 auto; padding: 40px 24px 0; }
.migas { font-size: 15px; color: var(--gris-texto); }
.nota__cabeza h1 { margin: 16px 0; font-size: clamp(40px, 5.5vw, 64px); line-height: 1; }
.nota__bajada { margin: 0; font-size: 22px; line-height: 1.45; }
.nota__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 20px; font-size: 15px; color: var(--gris-texto); }
.nota__foto { max-width: var(--ancho); margin: 32px auto 0; padding: 0 24px; }
.nota__foto .foto { border-radius: 32px; aspect-ratio: 16 / 7; }
.nota__cuerpo { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; padding-top: 48px; }
.contenido { flex: 999 1 560px; min-width: 0; max-width: 760px; font-size: 18px; line-height: 1.65; }
.contenido > * { margin-top: 0; margin-bottom: 20px; }
.contenido h2 { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--linea); font-size: 30px; }
.contenido h3 { margin-top: 28px; font-size: 22px; }
.contenido img, .contenido figure { border-radius: 24px; overflow: hidden; }
.contenido figure { margin-left: 0; margin-right: 0; }
.contenido figcaption { font-size: 14px; color: var(--gris-texto); margin-top: 8px; }
.contenido blockquote { margin-left: 0; padding: 24px 28px; border-radius: 24px; background: var(--celeste); }
.contenido .respuesta-corta { padding: 24px 28px; border-radius: 24px; background: var(--celeste); }
.contenido table { width: 100%; border-collapse: collapse; font-size: 16px; }
.contenido td, .contenido th { padding: 10px 12px; border-bottom: 1px solid var(--linea); text-align: left; }
.ficha {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px;
	padding: 18px 20px; border-radius: 18px; background: var(--celeste-suave); font-size: 16px; line-height: 1.4;
}
.ficha dt { font-weight: 700; }
.ficha dd { margin: 0; }
.colaboracion { font-size: 14px; color: var(--gris-texto); }
.relacionadas ul { list-style: none; margin: 12px 0 0; padding: 0; font-size: 16px; line-height: 1.4; }
.relacionadas li { padding: 8px 0; border-bottom: 1px solid var(--azul-medio); }
.relacionadas li:last-child { border-bottom: 0; }

/* Archivo de notas */
.paginacion { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 8px; }
.paginacion .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
	padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--linea-fuerte); text-decoration: none; font-weight: 700;
}
.paginacion .current { background: var(--azul); border-color: var(--azul); color: #FFFFFF; }

/* Pie */
.site-footer { margin-top: 80px; border-top: 1px solid var(--linea); }
.site-footer .wrap {
	display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: flex-start;
	padding-top: 40px; padding-bottom: 48px;
}
.site-footer__marca { flex: 1 1 280px; min-width: 0; }
.site-footer__marca strong { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; }
.site-footer__marca strong span { color: var(--naranja); }
.site-footer__marca p { margin: 8px 0 0; font-size: 15px; color: var(--gris-texto); }
.footer-nav ul { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.footer-nav a { display: block; padding: 10px 0; }

@media (max-width: 900px) {
	.site-header .wrap { gap: 6px 16px; padding-bottom: 6px; }
	.main-nav { order: 3; flex: 1 0 100%; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.main-nav::-webkit-scrollbar { display: none; }
	.main-nav ul { flex-wrap: nowrap; gap: 0 20px; white-space: nowrap; }
}

@media (max-width: 480px) {
	.header-actions .btn--azul { display: none; }
	.logo__texto { font-size: 26px; }
}

@media (max-width: 640px) {
	body { font-size: 16px; }
	.hero .wrap { padding-top: 40px; padding-bottom: 48px; gap: 32px; }
	.newsletter { padding: 32px 24px; }
	.evento__lado { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
	.ficha { grid-template-columns: minmax(0, 1fr); }
}
