/*
Theme Name: FEC 2026
Theme URI:
Author: Portable
Author URI:
Description: Fundación Collahuasi — tema desde Figma. Bootstrap 5, sin jQuery, sin librerías de animación.
Version: 2.2.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fec-wireframe
Tags: bootstrap5
*/

:root {
	--fec-navy: #003e6a;
	--fec-accent: #fd2800;
	--fec-footer: #20282e;
	--fec-light: #ebf3f7;
	--fec-brown: #6a523f;
	--fec-blue: #00a8ff;
	--fec-teal: #008bb2;
	--fec-white: #ffffff;
	--fec-font: 'DM Sans', sans-serif;
}

/* Image placeholders — used wherever a real photo isn't available yet */
.fec-ph {
	background: #e9ecef;
	color: #adb5bd;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px dashed #ced4da;
	border-radius: 8px;
	overflow: hidden;
}
.fec-ph span {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: -0.03em;
}

body {
	font-family: var(--fec-font);
	color: var(--fec-navy);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--fec-font);
	font-weight: 700;
	color: var(--fec-navy);
}

a { color: var(--fec-navy); }

/* Staging badge */
.wireframe-badge {
	font-size: 0.7rem;
	letter-spacing: -0.03em;
	text-transform: uppercase;
}

/* --- Global --- */
:root { --fec-border: #b8c7d6; --fec-line: rgba(0, 62, 106, .3); --fec-edge: max(1.5rem, calc((100vw - 1320px) / 2 + 12px)); }
html, body { overflow-x: clip; }
body { letter-spacing: -0.03em; }
button, input, select, textarea { letter-spacing: inherit; }

/* Persistent, always-visible horizontal scrollbars (Chrome/Safari via -webkit, Firefox via standard props) */
.fec-scroll { overflow-x: auto; }
.fec-scroll::-webkit-scrollbar { height: 6px; }
.fec-scroll::-webkit-scrollbar-track { background: rgba(0, 62, 106, .12); border-radius: 999px; }
.fec-scroll::-webkit-scrollbar-thumb { background: var(--fec-navy); border-radius: 999px; }
@supports not selector(::-webkit-scrollbar) {
	.fec-scroll { scrollbar-width: thin; scrollbar-color: var(--fec-navy) rgba(0, 62, 106, .12); }
}

/* --- Aguayo stripe (top decorative bar) --- */
.fec-aguayo {
	height: 6px;
	background-image: url('assets/aguayo_pattern.png');
	background-repeat: repeat-x;
	background-size: auto 6px;
}

/* --- Header --- */
#site-header { position: relative; z-index: 1030; background: #fff; }
#site-header .navbar { position: relative; padding-top: 1.1rem; padding-bottom: 1.1rem; border: 0; }
#site-header .navbar-brand img { height: 46px; }
@media (min-width: 992px) {
	#site-header .navbar-brand img { height: 60px; }
}
.fec-nav .nav-link {
	font-weight: 600;
	font-size: 1.0rem;
	color: var(--fec-navy) !important;
	padding: 0.5rem 1rem !important;
	border-radius: 999px;
}
/* Open item = navy pill */
.fec-nav .nav-link.show,
.fec-nav .nav-link.dropdown-toggle.show { background: var(--fec-navy); color: #fff !important; }

/* --- Mega menu panels: aligned to the bottom edge of the header (same in Safari/Chrome/Firefox) --- */
.fec-nav .nav-item.dropdown { position: static; }
.fec-nav .dropdown-menu.fec-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	box-shadow: 0 25px 40px rgba(0, 0, 0, .1);
	padding: 1.5rem 0 3rem;
	transform: none !important;
	inset: 100% 0 auto 0 !important;
}
.fec-mega-inner { max-width: 1320px; margin: 0 auto; padding: 0 1.5rem; }

/* Type 1 (Qué Hacemos / Nosotros): left light card + right link bars */
.fec-mega-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: stretch; }
.fec-mega-card {
	background: var(--fec-light);
	border-radius: 16px;
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-height: 320px;
}
.fec-mega-card .kicker { color: var(--fec-accent); text-transform: uppercase; font-size: 1.125rem; font-weight: 500; line-height: 1.3; margin-bottom: .5rem; }
.fec-mega-card h3 { color: var(--fec-navy); font-size: 2.75rem; font-weight: 700; line-height: 1.1; margin-bottom: 1.75rem; } /* 44px */

.fec-mega-links { display: flex; flex-direction: column; justify-content: flex-start; }
.fec-mega-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--fec-navy);
	text-decoration: none;
	padding: 1.25rem 1.5rem;
}
.fec-mega-links .fec-btn-icon {
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--fec-accent); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.fec-mega-links a:hover { background: var(--fec-blue); color: #fff; }
.fec-mega-links a:hover .fec-btn-icon { background: var(--fec-navy); }

/* Type 2 / cards on image: Ámbitos, Impulsos, Subpáginas, Páginas relacionadas */
.fec-mega-cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.fec-card2 {
	background-size: cover;
	background-position: center;
	border-radius: 20px;
	padding: 2rem;
	min-height: 410px;
	color: #fff;
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
}
.fec-card2::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(0deg, rgba(0, 20, 35, .7) 0%, rgba(0, 20, 35, .25) 60%, rgba(0, 20, 35, .35) 100%);
}
.fec-card2 > * { position: relative; z-index: 1; }
.fec-card2 .kicker { display: block; color: var(--fec-blue); text-transform: uppercase; font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin-bottom: .5rem; }
.fec-card2 .title { display: block; color: #fff; font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin-bottom: .75rem; } /* 34px */
.fec-card2 .desc { display: none; font-size: 1.125rem; font-weight: 600; line-height: 1.3; color: var(--fec-navy); }
.fec-card2 .cta { margin-top: auto; display: inline-flex; align-items: center; gap: .6rem; color: #fff; font-size: 1rem; font-weight: 600; line-height: 1.3; }
.fec-card2 .cta .fec-btn-icon {
	width: 28px; height: 28px; border-radius: 50%; background: var(--fec-blue); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
@media (hover: hover) {
	.fec-card2:not(.fec-card2--static):hover {
		background-image: none !important;
		background-color: var(--fec-light);
		color: var(--fec-navy);
	}
	.fec-card2:not(.fec-card2--static):hover::before { background: none; }
	.fec-card2:not(.fec-card2--static):hover .title { color: var(--fec-navy); }
	.fec-card2:not(.fec-card2--static):hover .desc { display: block; }
	.fec-card2:not(.fec-card2--static):hover .cta { color: var(--fec-navy); }
	.fec-card2:not(.fec-card2--static):hover .cta-text { text-decoration: underline; }
}
.fec-card2--static:hover .title { text-decoration: underline; }

@media (max-width: 991px) {
	.fec-nav .dropdown-menu.fec-mega { position: static; inset: auto !important; padding: 1.5rem 0; box-shadow: none; }
	.fec-nav .nav-link.show { display: inline-block; }
	.fec-mega-split,
	.fec-mega-cards3 { grid-template-columns: minmax(0, 1fr); }
	.fec-mega-card h3 { font-size: 2rem; }
}

/* --- Buttons (estados: normal blanco con borde gris-azulado / hover naranjo) --- */
.fec-btn-pill,
.fec-btn-outline,
.fec-btn-link {
	font-size: 1.25rem; /* 20px */
	font-weight: 600;
	line-height: 1.3;
}
.fec-btn-pill {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	gap: 0.6rem;
	background: var(--fec-white);
	color: var(--fec-navy);
	border: 2px solid var(--fec-border);
	border-radius: 999px;
	padding: 0.45rem 0.5rem 0.45rem 1.4rem;
	text-decoration: none;
}
.fec-btn-pill .fec-btn-icon {
	width: 32px; height: 32px;
	background: var(--fec-accent);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
}
.fec-btn-pill:hover { background: var(--fec-accent); border-color: var(--fec-accent); color: #fff; }
.fec-btn-pill:hover .fec-btn-icon { background: #fff; color: var(--fec-accent); }

.fec-btn-outline {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	gap: 0.6rem;
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255,255,255,.7);
	border-radius: 999px;
	padding: 0.5rem 0.55rem 0.5rem 1.25rem;
	text-decoration: none;
}
.fec-btn-outline .fec-btn-icon {
	width: 30px; height: 30px;
	background: rgba(255,255,255,.15);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.fec-btn-outline:hover { background: #fff; color: var(--fec-navy); }
.fec-btn-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--fec-navy);
	font-weight: 600;
	text-decoration: none;
}
.fec-btn-link .fec-btn-icon {
	width: 28px; height: 28px;
	background: var(--fec-accent);
	color: #fff;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.fec-btn-link:hover { text-decoration: underline; }

/* --- Hero --- */
.fec-hero { position: relative; display: grid; color: #fff; overflow: hidden; }
.fec-hero-slide {
	grid-area: 1 / 1;
	position: relative;
	min-height: 560px;
	display: flex;
	align-items: flex-end;
	background-size: cover;
	background-position: center;
	padding: 4rem 0 5rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s ease, visibility .7s;
}
.fec-hero-slide.is-active { opacity: 1; visibility: visible; }
.fec-hero-slide::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(0deg, rgba(0,20,35,.75) 10%, rgba(0,20,35,.15) 70%);
	z-index: 1;
}
.fec-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fec-hero-slide .container { position: relative; z-index: 2; }
.fec-hero-eyebrow {
	text-transform: uppercase;
	font-weight: 700;
	font-size: .9rem; /* 18px -20% */
	margin-bottom: .75rem;
}
.fec-hero h1 {
	color: #fff;
	font-size: 4.3rem; /* 86px -20% */
	font-weight: 700;
	max-width: 900px;
	line-height: 1;
	margin-bottom: 1.75rem;
}
.fec-hero .fec-btn-pill { font-size: 1rem; }
.fec-hero-dots {
	position: absolute;
	right: 2rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.fec-hero-dots button {
	width: 12px; height: 12px;
	border-radius: 50%;
	border: none;
	padding: 0;
	background: rgba(255,255,255,.45);
	cursor: pointer;
}
.fec-hero-dots button { position: relative; }
.fec-hero-dots button::after { content: ""; position: absolute; inset: -12px; }
.fec-hero-dots button.active { background: #fff; }
@media (max-width: 767px) {
	.fec-hero h1 { font-size: 2.1rem; }
	.fec-hero-slide { min-height: 440px; padding-top: 2.5rem; }
	.fec-hero-dots { right: 1rem; }
}

/* --- Cifras (home + bloque cifras destacadas) --- */
.fec-cifras { background: var(--fec-light); border-radius: 16px; overflow: hidden; padding: 3rem; }
.fec-cifras-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; align-items: stretch; }
.fec-cifras-title { font-size: 2.5rem; font-weight: 700; line-height: 1.3; margin-bottom: .5rem; } /* 40px */
.fec-cifras-nav { list-style: none; padding: 0; margin: 1.25rem 0 1.75rem; }
.fec-cifras-nav li {
	padding: .35rem 0 .35rem 1.4rem;
	font-size: 1.625rem; /* 26px */
	font-weight: 700;
	line-height: 1.1;
	color: #a9c0d1;
	position: relative;
	cursor: pointer;
}
.fec-cifras-nav li.active { color: var(--fec-navy); }
.fec-cifras-nav li.active::before {
	content: "";
	position: absolute; left: 0; top: 50%; margin-top: -4px;
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--fec-accent);
}
.fec-cifras-num { color: var(--fec-accent); font-size: 6.875rem; font-weight: 800; line-height: 1.3; margin: 0; } /* 110px */
.fec-cifras-label { color: var(--fec-navy); text-transform: uppercase; font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin: .25rem 0 0; } /* 20px */
.fec-cifras-desc { color: var(--fec-navy); font-size: 1.125rem; font-weight: 500; line-height: 1.3; max-width: 420px; margin: .5rem 0 0; } /* 18px */
.fec-cifras-photo { height: 100%; min-height: 360px; border-radius: 16px; background-size: cover; background-position: center; }
@media (max-width: 991px) {
	.fec-cifras { padding: 1.75rem; }
	.fec-cifras-grid { grid-template-columns: minmax(0, 1fr); }
	.fec-cifras-num { font-size: 4.5rem; }
}

/* --- Section title row (title + link) --- */
.fec-section-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.fec-section-h2 { font-size: 2.5rem; font-weight: 700; line-height: 1.3; margin: 0; } /* 40px */

/* --- Ámbitos de acción (split cards) --- */
.fec-ambito-card {
	display: flex;
	min-height: 420px;
	color: #fff;
	overflow: hidden;
	border-radius: 16px;
	text-decoration: none;
}
.fec-ambito-card .fec-ambito-text {
	flex: 1 1 45%;
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
}
.fec-ambito-card .fec-ambito-photo {
	flex: 1 1 55%;
	background-size: cover;
	background-position: center;
}
.fec-ambito-card h3 { color: #fff; font-size: 3rem; font-weight: 700; line-height: 1.1; margin-bottom: 0; } /* 48px */
.fec-ambito-card p { font-size: 1.125rem; font-weight: 600; line-height: 1.3; max-width: 420px; margin-bottom: 0; } /* 18px semibold */
@media (max-width: 767px) {
	.fec-ambito-card { flex-direction: column; }
	.fec-ambito-card .fec-ambito-photo { min-height: 200px; }
	.fec-ambito-card .fec-ambito-text { padding: 1.75rem; }
	.fec-ambito-card h3 { font-size: 2.25rem; }
}
@media (max-width: 400px) {
	.fec-ambito-card h3 { font-size: 2rem; }
	.fec-ambito-card .fec-ambito-text { padding: 1.5rem; }
}

/* --- Noticias section (home carousel, full-width background) --- */
.fec-noticias-section { background: var(--fec-light); padding: 3.5rem 0; margin: 2rem 0; }
.fec-noticias-track {
	display: flex;
	gap: 1.5rem;
	scroll-snap-type: x mandatory;
	padding-bottom: 1.25rem;
}
.fec-noticias-track .fec-noticia-card {
	flex: 0 0 calc(75% - .75rem);
	scroll-snap-align: start;
}
@media (min-width: 768px) {
	.fec-noticias-track .fec-noticia-card { flex-basis: calc(41% - 1rem); }
}
@media (min-width: 1100px) {
	.fec-noticias-track .fec-noticia-card { flex-basis: calc(28% - 1.1rem); }
}

/* --- Noticias card (white, reused on archive/single too) --- */
.fec-noticia-card {
	text-decoration: none;
	color: inherit;
	display: block;
	background: #fff;
	border-radius: 16px;
	padding: 1rem;
}
.fec-noticia-card .fec-noticia-img {
	aspect-ratio: 4/3;
	background-size: cover;
	background-position: center;
	border-radius: 14px;
	margin-bottom: 1rem;
}
.fec-chip {
	display: inline-block;
	background: var(--fec-light);
	color: var(--fec-navy);
	font-size: .75rem;
	font-weight: 600;
	border-radius: 999px;
	padding: .25rem .7rem;
	margin: 0 .3rem .3rem 0;
}
.fec-noticia-date { color: #7a8fa1; font-size: 1rem; font-weight: 500; line-height: 1.3; margin-bottom: .3rem; } /* 16px */
.fec-noticia-card h3 { font-size: 1.5rem; font-weight: 600; line-height: 1.3; margin-bottom: .5rem; } /* 24px */

/* --- Impulsos bento (3 text cards + 1 shared image card) --- */
.fec-impulsos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.fec-impulso-card {
	background: var(--fec-light);
	color: var(--fec-navy);
	border-radius: 20px;
	padding: 4.5rem 2rem 5rem;
	position: relative;
	overflow: hidden;
	min-height: 400px; /* +25% */
	display: flex;
	flex-direction: column;
	text-decoration: none;
}
.fec-impulso-card .num { position: absolute; top: 1.75rem; left: 2rem; font-size: 1.25rem; font-weight: 700; }
.fec-impulso-card .body { margin: auto 0; display: block; }
.fec-impulso-card .title { display: block; font-size: 1.75rem; font-weight: 700; line-height: 1.1; margin-bottom: .75rem; }
.fec-impulso-card .desc { display: block; font-size: 1rem; font-weight: 500; line-height: 1.3; }
.fec-impulso-card .cta {
	position: absolute; left: 2rem; bottom: 2rem;
	display: none; align-items: center; gap: .6rem;
	color: #fff; font-size: 1rem; font-weight: 600;
}
.fec-impulso-card .cta .fec-btn-icon {
	width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--fec-imp-c, var(--fec-blue));
	display: inline-flex; align-items: center; justify-content: center;
}
.fec-impulso-card .cta .cta-text { text-decoration: underline; }
.fec-impulso-card.is-active { background: var(--fec-imp-c, var(--fec-blue)); color: #fff; }
.fec-impulso-card.is-active .cta { display: inline-flex; }
.fec-impulso-image { border-radius: 20px; min-height: 400px; background-size: cover; background-position: center; }
@media (max-width: 991px) { .fec-impulsos-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .fec-impulsos-grid { grid-template-columns: minmax(0, 1fr); } .fec-impulso-card, .fec-impulso-image { min-height: 320px; } }

/* --- Testimonios (home slider): the orange card scrolls with the slides --- */
.fec-quotes { margin: 3rem 0 4rem; overflow: hidden; }
.fec-quote-track {
	display: flex;
	gap: 2rem;
	scroll-snap-type: x mandatory;
	padding: 0 0 2rem var(--fec-edge);
	scroll-padding-left: var(--fec-edge);
}
.fec-quote-track::-webkit-scrollbar-track { margin-left: var(--fec-edge); margin-right: var(--fec-edge); }
.fec-quote-intro {
	flex: 0 0 clamp(260px, 22vw, 320px);
	scroll-snap-align: start;
	background: var(--fec-accent);
	color: #fff;
	padding: 2.25rem 2rem;
	min-height: 420px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-radius: 20px;
}
.fec-quote-intro h3 { font-size: 1.625rem; font-weight: 700; line-height: 1.1; color: #fff; } /* 26px */
.fec-quote-intro p { font-size: 1rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 16px */
.fec-quote-slide {
	flex: 0 0 min(860px, 82vw);
	scroll-snap-align: start;
	display: grid;
	grid-template-columns: clamp(220px, 21vw, 300px) 1fr;
	gap: 2rem;
	background: #fff;
}
.fec-quote-photo {
	background-color: var(--fec-light);
	background-size: cover;
	background-position: center;
	border-radius: 20px;
	min-height: 420px;
}
.fec-quote-text { align-self: center; padding-right: 1rem; }
.fec-quote-mark { color: var(--fec-accent); width: 90px; height: 60px; display: block; margin-bottom: 1.5rem; }
.fec-quote-text p.quote { font-size: 2.125rem; font-weight: 600; line-height: 1.15; color: var(--fec-navy); margin-bottom: 1.5rem; } /* 34px */
.fec-quote-author { font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin: 0; } /* 18px */
.fec-quote-role { color: #6f8ba1; font-size: .875rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 14px */
.fec-quote-end { flex: 0 0 1px; }
@media (max-width: 767px) {
	.fec-quote-slide { grid-template-columns: 1fr; flex-basis: 82vw; }
	.fec-quote-photo { min-height: 300px; }
	.fec-quote-text p.quote { font-size: 1.5rem; }
}

/* --- Footer --- */
#site-footer { background: var(--fec-footer); color: #fff; }
#site-footer .footer-logo { height: 42px; margin-bottom: 2rem; }
#site-footer h6 { color: #fff; font-weight: 700; text-transform: uppercase; font-size: .8rem; letter-spacing: -0.03em; margin-bottom: 1.25rem; }
#site-footer a { color: #fff; text-decoration: none; }
#site-footer .fec-social a {
	width: 38px; height: 38px;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	margin-right: .5rem;
}

/* --- Stub / placeholder page content --- */
.fec-stub {
	background: var(--fec-light);
	border: 1px dashed #b9cfdd;
	border-radius: 16px;
	padding: 3rem 2rem;
	text-align: center;
	color: var(--fec-navy);
}

/* Section title row (title + "ver todos" link) */
.fec-section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2rem; }

/* --- Breadcrumb --- */
.fec-breadcrumb { font-size: .85rem; color: #6f8ba1; margin-bottom: 1.5rem; }
.fec-breadcrumb a { color: #6f8ba1; text-decoration: none; }
.fec-breadcrumb a:hover { color: var(--fec-navy); }

/* --- Content hero photo --- */
.fec-content-hero {
	aspect-ratio: 16/6;
	background-size: cover;
	background-position: center;
	border-radius: 16px;
	margin-bottom: 2.5rem;
}
@media (max-width: 767px) { .fec-content-hero { aspect-ratio: 4/3; } }

/* --- Intro block --- */
.fec-intro-kicker { font-weight: 700; font-size: 1.1rem; margin-bottom: .75rem; }
.fec-intro p { color: var(--fec-navy); max-width: 780px; }

/* --- Feature row (photo + text) --- */
.fec-feature { display: flex; gap: 2.5rem; align-items: center; margin: 3rem 0; }
.fec-feature.reverse { flex-direction: row-reverse; }
.fec-feature-media { flex: 1 1 45%; }
.fec-feature-media img,
.fec-feature-media .fec-ph { width: 100%; aspect-ratio: 4/3; border-radius: 14px; }
.fec-feature-text { flex: 1 1 55%; }
.fec-feature-text h3 { font-size: 1.4rem; margin-bottom: .75rem; }
@media (max-width: 767px) {
	.fec-feature, .fec-feature.reverse { flex-direction: column; }
}

/* --- Pull statement --- */
.fec-pull { color: var(--fec-accent); font-size: 1.6rem; font-weight: 700; line-height: 1.3; margin: 3rem 0; max-width: 780px; }

/* --- Numbered highlight cards (reuse impulso card look) --- */
.fec-hl-card { background: var(--fec-light); border-radius: 16px; padding: 1.75rem; height: 100%; }
.fec-hl-card .num { font-weight: 700; color: var(--fec-navy); display: block; margin-bottom: .75rem; }
.fec-hl-card.filled { background: var(--fec-blue); color: #fff; }
.fec-hl-card.filled .num, .fec-hl-card.filled h4 { color: #fff; }
.fec-hl-card h4 { font-size: 1.1rem; margin-bottom: .4rem; }
.fec-hl-card p { font-size: .9rem; margin: 0; }

/* --- Stat row --- */
.fec-stat-row { display: flex; gap: 2.5rem; flex-wrap: wrap; margin: 2rem 0; }
.fec-stat-row .stat { min-width: 140px; }
.fec-stat-row .stat .val { color: var(--fec-accent); font-size: 2.2rem; font-weight: 700; line-height: 1; }
.fec-stat-row .stat .lbl { color: var(--fec-navy); font-size: .85rem; margin-top: .35rem; }

/* --- Timeline --- */
.fec-timeline { position: relative; padding-left: 2rem; border-left: 2px solid var(--fec-light); }
.fec-timeline-item { position: relative; padding-bottom: 2.5rem; }
.fec-timeline-item::before {
	content: ""; position: absolute; left: -2.45rem; top: .3rem;
	width: 12px; height: 12px; border-radius: 50%; background: var(--fec-accent);
}
.fec-timeline-item .year { color: var(--fec-accent); font-weight: 700; font-size: 1.3rem; }
.fec-timeline-item h4 { margin: .25rem 0 .5rem; }

/* --- Team grid --- */
.fec-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 2rem; }
.fec-team-card .fec-ph { aspect-ratio: 1/1; border-radius: 12px; margin-bottom: .75rem; }
.fec-team-card h4 { font-size: 1rem; margin-bottom: .2rem; }
.fec-team-card p { font-size: .85rem; color: #6f8ba1; margin: 0; }

/* --- Breadcrumb --- */
.fec-breadcrumb { font-size: .85rem; color: #6f8ba1; margin-bottom: 1.5rem; }
.fec-breadcrumb a { color: #6f8ba1; text-decoration: none; }
.fec-breadcrumb a:hover { color: var(--fec-navy); }

/* --- Content hero photo --- */
.fec-content-hero {
	aspect-ratio: 16/6;
	background-size: cover;
	background-position: center;
	border-radius: 16px;
	margin-bottom: 2.5rem;
}
@media (max-width: 767px) { .fec-content-hero { aspect-ratio: 4/3; } }

/* =========================================================
 * ENCABEZADO (campo administrable, obligatorio en toda página)
 * ========================================================= */
.fec-encabezado {
	padding: 6rem 0 3rem;
	margin-bottom: 3rem;
	background-size: cover;
	background-position: center;
	position: relative;
	display: flex;
	align-items: flex-end;
}
.fec-encabezado .container { width: 100%; }
.fec-encabezado--a { color: #fff; min-height: 23rem; } /* +25% */
.fec-encabezado--a::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(0deg, rgba(0,20,35,.75) 10%, rgba(0,20,35,.15) 70%);
}
.fec-encabezado--b { color: #fff; }
.fec-encabezado--c { color: var(--fec-navy); background: #fff; }
.fec-encabezado .container { position: relative; z-index: 1; }
.fec-encabezado .fec-breadcrumb { font-size: 1.5rem; font-weight: 500; line-height: 1.3; margin-bottom: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35em; } /* 24px; separación entre elementos +20% (antes ≈.92em, ahora ≈1.1em) */
.fec-breadcrumb .sep { opacity: .8; }
.fec-encabezado .fec-breadcrumb .current { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.fec-encabezado--a .fec-breadcrumb,
.fec-encabezado--b .fec-breadcrumb { color: rgba(255,255,255,.75); }
.fec-encabezado--a .fec-breadcrumb a,
.fec-encabezado--b .fec-breadcrumb a { color: rgba(255,255,255,.75); }
.fec-encabezado h1 {
	font-size: 5.375rem; /* 86px */
	font-weight: 700;
	line-height: 1.2;
	color: inherit;
	margin: 0;
}
@media (max-width: 767px) {
	.fec-encabezado h1 { font-size: 2.6rem; overflow-wrap: anywhere; hyphens: auto; }
	.fec-encabezado .fec-breadcrumb { font-size: 1rem; }
	.fec-encabezado--a { min-height: 18rem; }
}

/* =========================================================
 * CONTENIDO ADMINISTRABLE: columnas 25% / 50% / 25% con flujos verticales independientes.
 * - Título principal: flota a la izquierda (25%).
 * - Bloques centrales: columna del medio (50%), flujo normal.
 * - Bloques laterales: flotan a la derecha (25%) y van primero en el DOM de su bloque central, así
 *   se alinean con su borde superior sin compartir filas: su altura nunca empuja al siguiente central.
 * - Bloques de ancho completo despejan los flotantes (clear) y siguen debajo.
 * ========================================================= */
.fec-fc-grid {
	--fec-gap: 2.5rem;
	--fec-col: calc((100% - 2 * var(--fec-gap)) / 4);
	display: block;
}
.fec-fc-col-left { float: left; width: var(--fec-col); }
.fec-fc-col-center { margin-left: calc(var(--fec-col) + var(--fec-gap)); width: calc(2 * var(--fec-col)); }
.fec-fc-lateral-col {
	float: right;
	width: var(--fec-col);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-bottom: 3rem;
}
.fec-fc-pair { display: block; }
.fec-fc-col-full, .fec-fc-col-space, .fec-fc-col-bleed, .fec-fc-col-bleedband, .fec-fc-col-bleed0, .fec-fc-col-edge { clear: both; }
.fec-fc-col-full { margin: 5rem 0; }
/* Full-screen-width blocks (break out of the container) */
.fec-fc-col-bleed, .fec-fc-col-bleedband, .fec-fc-col-bleed0 {
	width: 100vw;
	margin: 80px 0 80px calc(50% - 50vw);
}
/* Blocks with 80px margins to the screen edges */
.fec-fc-col-edge {
	width: calc(100vw - 160px);
	margin: 5rem 0 5rem calc(50% - 50vw + 80px);
}
.fec-fc-col-space { margin: 0; }
.fec-fc-grid::after { content: ""; display: block; clear: both; }
@media (max-width: 991px) {
	.fec-fc-grid { --fec-gap: 0rem; }
	.fec-fc-col-left { float: none; width: auto; }
	.fec-fc-col-center { margin-left: 0; width: auto; }
	/* mobile: a single column, each lateral right after its central block */
	.fec-fc-pair { display: flex; flex-direction: column; }
	.fec-fc-lateral-col { float: none; width: auto; order: 2; margin-bottom: 2.5rem; }
	.fec-fc-col-full { margin: 3rem 0; }
	.fec-fc-col-bleed, .fec-fc-col-bleedband, .fec-fc-col-bleed0 { margin: 3rem 0 3rem calc(50% - 50vw); }
	.fec-fc-col-edge { width: calc(100vw - 40px); margin: 3rem 0 3rem calc(50% - 50vw + 20px); }
}

/* --- Espacio en blanco (inicio / fin de sección) --- */
.fec-fc-espacio { width: 100%; height: 80px; }
.fec-fc-espacio--inicio { border-top: 1px solid var(--fec-line); }
.fec-fc-espacio--fin { border-bottom: 1px solid var(--fec-line); }

/* --- Título principal (izquierda) --- */
.fec-fc-titulo-principal { font-size: 2.125rem; font-weight: 700; line-height: 1.1; } /* 34px */

/* --- Bajada / títulos / texto descriptivo (centro) --- */
.fec-fc-bajada { font-size: 1.5rem; font-weight: 600; line-height: 1.3; margin-bottom: 1.25rem; } /* 24px */
.fec-fc-titulo-2 { font-size: 1.5rem; font-weight: 700; line-height: 1.3; margin-bottom: .25rem; } /* 24px */
.fec-fc-titulo-3 { font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: .25rem; } /* 20px */
.fec-fc-texto-desc { font-size: 1.25rem; font-weight: 500; line-height: 1.3; margin-bottom: 2.5rem; } /* 20px */
.fec-fc-texto-desc p, .fec-fc-texto-desc ul, .fec-fc-texto-desc ol { margin-bottom: 1rem; }
.fec-fc-texto-desc > :last-child { margin-bottom: 0; }
.fec-fc-texto-desc a { text-decoration: underline; }

/* --- Cita solo texto --- */
.fec-fc-cita { margin-bottom: 2.5rem; }
.fec-fc-cita .fec-quote-mark, .fec-fc-testimonio-cita .fec-quote-mark { margin-bottom: 1rem; }
.fec-fc-cita-texto { font-size: 2.125rem; font-weight: 600; line-height: 1.1; color: var(--fec-navy); } /* 34px */
.fec-fc-cita-nombre { font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin-bottom: 0; } /* 18px */
.fec-fc-cita-cargo { font-size: .875rem; font-weight: 500; line-height: 1.3; color: #6f8ba1; } /* 14px */

/* --- Imagen central / video --- */
.fec-fc-imagen-central { margin-bottom: 1.875rem; }
.fec-fc-imagen-central img { width: 100%; border-radius: 14px; }
.fec-fc-imagen-central figcaption,
.fec-fc-video-caption { font-size: .875rem; font-weight: 500; line-height: 1.3; color: #6f8ba1; margin-top: .5rem; } /* 14px */
.fec-fc-video { margin-bottom: 2.5rem; }
.fec-fc-video .ratio { border-radius: 14px; overflow: hidden; background: #000; }
.fec-fc-video iframe { width: 100%; height: 100%; border: 0; }

/* --- Botón / enlace --- */
.fec-fc-col-center .fec-btn-pill { margin-bottom: 1.875rem; }

/* --- Galería de imágenes (100%) --- */
.fec-fc-galeria-track { display: flex; gap: 1rem; scroll-snap-type: x mandatory; padding-bottom: 40px; }
.fec-fc-galeria-item { flex: 0 0 auto; height: 210px; scroll-snap-align: start; } /* -50% */
.fec-fc-galeria-item img { height: 100%; width: auto; border-radius: 14px; display: block; }

/* --- Bloque testimonio (ancho de pantalla) --- */
.fec-fc-testimonio { background: var(--fec-light); padding: 3rem 0; }
.fec-fc-testimonio-inner {
	max-width: 1320px; margin: 0 auto; padding: 0 12px;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); gap: 2rem; align-items: stretch;
}
.fec-fc-testimonio-intro { background: var(--fec-accent); color: #fff; padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; border-radius: 20px; min-height: 325px; } /* +25% */
.fec-fc-testimonio-intro h3 { color: #fff; font-size: 1.625rem; font-weight: 700; line-height: 1.1; } /* 26px */
.fec-fc-testimonio-intro p { font-size: 1rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 16px */
.fec-fc-testimonio-foto { background-size: cover; background-position: center; border-radius: 20px; min-height: 325px; background-color: #fff; }
.fec-fc-testimonio-cita { padding: 0 1rem; align-self: center; }
@media (max-width: 767px) { .fec-fc-testimonio-inner { grid-template-columns: minmax(0, 1fr); padding: 0 20px; } .fec-fc-testimonio { padding: 2rem 0; } .fec-fc-testimonio-intro, .fec-fc-testimonio-foto { min-height: 260px; } }

/* --- Bloque imagen + texto destacado + texto descriptivo (ancho de pantalla) --- */
.fec-fc-itd { background: var(--fec-light); padding: 4rem 0; }
.fec-fc-itd-inner { max-width: 1320px; margin: 0 auto; padding: 0 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.fec-fc-itd-media { margin: 0; }
.fec-fc-itd-media img { width: 100%; border-radius: 14px; }
.fec-fc-itd-media figcaption { font-size: .875rem; font-weight: 500; color: #6f8ba1; margin-top: .5rem; }
.fec-fc-itd-text h3 { color: var(--fec-accent); font-size: 3rem; font-weight: 700; line-height: 1.1; } /* 48px */
.fec-fc-itd-text p { font-size: 1.25rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 20px */
@media (max-width: 767px) { .fec-fc-itd { padding: 2.5rem 0; } .fec-fc-itd-inner { grid-template-columns: minmax(0, 1fr); padding: 0 20px; } .fec-fc-itd-text h3 { font-size: 2rem; } }

/* --- Bloque texto grande destacado (100%) --- */
.fec-fc-texto-grande { font-size: 5.375rem; font-weight: 700; line-height: 1.2; color: var(--fec-accent); text-align: center; background: #fff; margin: 0; } /* 86px */
@media (max-width: 767px) { .fec-fc-texto-grande { font-size: 2.4rem; } }
@media (max-width: 575px) { .fec-fc-texto-grande { font-size: 1.9rem; line-height: 1.2; overflow-wrap: anywhere; hyphens: auto; } .fec-fc-cita-texto { font-size: 1.5rem; line-height: 1.2; overflow-wrap: anywhere; } .fec-fc-titulo-principal { font-size: 1.75rem; } .fec-section-h2, .fec-cifras-title { font-size: 1.75rem; } .fec-fc-rel-titulo, .fec-fc-personas-titulo { font-size: 1.75rem; } .fec-hero-dots button::after { inset: -14px; } }

/* --- Bloque 1 imagen + 3 cuadros (80px a los bordes) --- */
.fec-fc-i3c { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.fec-fc-i3c-hero {
	background-size: cover; background-position: center; border-radius: 16px;
	min-height: 390px; display: flex; align-items: flex-end; padding: 2rem; position: relative; overflow: hidden;
}
.fec-fc-i3c-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,20,35,.75) 20%, rgba(0,20,35,.15) 80%); }
.fec-fc-i3c-hero h3 { position: relative; color: #fff; font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin: 0; } /* 34px */
.fec-fc-i3c-box { border-radius: 16px; padding: 1.75rem; color: #fff; min-height: 390px; display: flex; flex-direction: column; justify-content: flex-end; }
.fec-fc-i3c-box .num { font-size: 1.375rem; font-weight: 700; display: block; margin-bottom: .5rem; } /* 22px */
.fec-fc-i3c-box h4 { color: #fff; font-size: 1.625rem; font-weight: 700; line-height: 1.1; margin-bottom: .5rem; } /* 26px */
.fec-fc-i3c-box p { font-size: 1rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 16px */
@media (max-width: 991px) { .fec-fc-i3c { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .fec-fc-i3c { grid-template-columns: minmax(0, 1fr); } .fec-fc-i3c-hero, .fec-fc-i3c-box { min-height: 280px; } }

/* --- 4 bloques imagen + título + texto corto (80px a los bordes; bloque completo de color) --- */
.fec-fc-4b-titulo { font-size: 2.125rem; font-weight: 500; line-height: 1.1; margin-bottom: 2rem; } /* 34px */
.fec-fc-4b-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.fec-fc-4b-item { border-radius: 16px; padding: 1.25rem 1.25rem 1.75rem; color: #fff; }
.fec-fc-4b-item img, .fec-fc-4b-item .fec-ph { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; margin-bottom: 1.25rem; display: block; }
.fec-fc-4b-item .num { display: block; font-size: 1.375rem; font-weight: 700; margin-bottom: .5rem; } /* 22px */
.fec-fc-4b-item h4 { color: #fff; font-size: 1.625rem; font-weight: 700; line-height: 1.1; margin-bottom: .5rem; } /* 26px */
.fec-fc-4b-item p { font-size: 1rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 16px */
@media (max-width: 991px) { .fec-fc-4b-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .fec-fc-4b-grid { grid-template-columns: minmax(0, 1fr); } }

/* --- Slide logos (100%) --- */
.fec-fc-logos-track { display: flex; gap: 3rem; align-items: center; scroll-snap-type: x mandatory; padding-bottom: 60px; }
.fec-fc-logo-item { flex: 0 0 auto; height: 72px; scroll-snap-align: start; } /* +20% */
.fec-fc-logo-item img { height: 100%; width: auto; }

/* --- Personas / equipo (3 por fila, imagen vertical ~1:1,48) --- */
.fec-fc-personas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 2.5rem; }
.fec-fc-personas-titulo { font-size: 2.125rem; font-weight: 700; line-height: 1.1; } /* 34px */
.fec-fc-personas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.fec-fc-persona-foto { background: var(--fec-light); border-radius: 16px; overflow: hidden; aspect-ratio: 100 / 148; margin-bottom: .9rem; }
.fec-fc-persona-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fec-fc-persona h5, .fec-fc-persona p { overflow-wrap: anywhere; hyphens: auto; }
.fec-fc-persona h5 { font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: .1rem; } /* 20px */
.fec-fc-persona p { font-size: 1.25rem; font-weight: 500; line-height: 1.3; color: #6f8ba1; margin: 0; } /* 20px */
@media (max-width: 991px) { .fec-fc-personas { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575px) { .fec-fc-personas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Subpáginas / Páginas relacionadas --- */
.fec-fc-subpaginas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.fec-fc-rel-titulo { font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin-bottom: 2rem; } /* 34px */
.fec-fc-rel-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
@media (max-width: 991px) { .fec-fc-subpaginas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fec-fc-rel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .fec-fc-subpaginas, .fec-fc-rel-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; } .fec-card2 { min-height: 340px; } }

/* --- Bloques laterales (columna derecha, 25%) --- */
.fec-fc-lateral,
.fec-fc-cifras-laterales { background: var(--fec-light); border-radius: 16px; padding: 1.75rem; }
.fec-fc-lateral .normal { font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: .25rem; } /* 20px */
.fec-fc-lateral .destacado { color: var(--fec-accent); font-size: 1.5rem; font-weight: 700; line-height: 1.3; margin-bottom: .5rem; } /* 24px */
.fec-fc-lateral .desc { font-size: 1.125rem; font-weight: 500; line-height: 1.4; } /* 18px */
.fec-fc-lateral .fec-btn-link { margin-top: .5rem; font-size: 1.125rem; }
.fec-fc-cifras-laterales .ctitulo { font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: 1.25rem; }
.fec-fc-cl-item { margin-bottom: 1.75rem; }
.fec-fc-cl-item:last-child { margin-bottom: 0; }
.fec-fc-cl-item .titulo { font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: .25rem; } /* 20px */
.fec-fc-cl-item .cifra { color: var(--fec-accent); font-size: 3rem; font-weight: 700; line-height: 1.1; margin-bottom: .25rem; } /* 48px */
.fec-fc-cl-item .desc { font-size: 1.125rem; font-weight: 500; line-height: 1.4; margin: 0; } /* 18px */

/* =========================================================
 * LÍNEA DE TIEMPO (solo página "Línea de tiempo")
 * ========================================================= */
.fec-tl { position: relative; display: flex; flex-direction: column; gap: 2.5rem; margin: 3rem 0; }
.fec-tl::before {
	content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px;
	background: var(--fec-line);
}
.fec-tl-item { position: relative; border-radius: 20px; padding: 2rem; z-index: 1; }
.fec-tl-item--left  { width: 40%; align-self: flex-start; }
.fec-tl-item--right { width: 40%; align-self: flex-end; }
.fec-tl-item--center { width: 90%; align-self: center; }
/* connector from each card to the central line */
.fec-tl-item--left::after, .fec-tl-item--right::after {
	content: ""; position: absolute; top: 3.25rem; width: 25%; height: 2px; background: var(--fec-line); z-index: -1;
}
.fec-tl-item--left::after  { left: 100%; }
.fec-tl-item--right::after { right: 100%; }
.fec-tl-item .tl-img { width: 100%; border-radius: 14px; display: block; margin-top: 1.25rem; }
.fec-tl-item .tl-titulo { font-size: 1.5rem; font-weight: 700; line-height: 1.2; margin-bottom: .75rem; } /* 24px */
.fec-tl-item .tl-texto { font-size: 1rem; font-weight: 500; line-height: 1.4; margin: 0; } /* 16px */

.fec-tl-a { background: var(--fec-light); }
.fec-tl-a .tl-anio, .fec-tl-b .tl-anio { font-size: 2.5rem; font-weight: 700; line-height: 1.1; margin-bottom: .75rem; } /* 40px */
.fec-tl-a .tl-anio { color: var(--fec-accent); }
.fec-tl-b { color: #fff; }
.fec-tl-b .tl-anio, .fec-tl-b .tl-titulo, .fec-tl-b .tl-texto { color: #fff; }

.fec-tl-c { background: #fff; border: 2px solid var(--fec-navy); }
.fec-tl-c .tl-sub { color: var(--fec-accent); font-size: 1.25rem; font-weight: 700; line-height: 1.2; margin-bottom: .5rem; } /* 20px */
.fec-tl-c .tl-cifra { margin-top: 1.25rem; }
.fec-tl-c .tl-cifra .v { color: var(--fec-accent); font-size: 2.125rem; font-weight: 500; line-height: 1.1; margin: 0; } /* 34px */
.fec-tl-c .tl-cifra .t { font-size: .875rem; font-weight: 500; line-height: 1.3; margin: 0; } /* 14px */

.fec-tl-d { background: var(--fec-blue); color: #fff; padding: 2.5rem; }
.fec-tl-d .tl-anio { color: #fff; font-size: 3rem; font-weight: 700; line-height: 1.1; margin-bottom: 1rem; } /* 48px */
.fec-tl-d .tl-titulo { color: #fff; font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin-bottom: .75rem; } /* 34px */
.fec-tl-d .tl-texto { color: #fff; font-size: 1.125rem; font-weight: 600; line-height: 1.3; max-width: 900px; } /* 18px */
.tl-d-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.tl-d-box { border-radius: 16px; padding: 1.5rem; color: #fff; }
.tl-d-box img { width: 30%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; display: block; margin-bottom: 1.25rem; }
.tl-d-box .sub { text-transform: uppercase; font-size: 1rem; font-weight: 700; line-height: 1.3; margin-bottom: .75rem; } /* 16px */
.tl-d-box h4 { color: #fff; font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin-bottom: .5rem; } /* 18px */
.tl-d-box .txt { font-size: 1rem; font-weight: 600; line-height: 1.3; margin: 0; } /* 16px */

@media (max-width: 767px) {
	.fec-tl::before, .fec-tl-item--left::after, .fec-tl-item--right::after { display: none; }
	.fec-tl-item--left, .fec-tl-item--right, .fec-tl-item--center { width: 100%; align-self: stretch; }
	.tl-d-grid { grid-template-columns: minmax(0, 1fr); }
	.tl-d-box img { width: 90px; }
}

/* --- Doc download row (Memorias) --- */
.fec-doc-card {
	display: flex; align-items: center; gap: 1rem;
	background: var(--fec-light); border-radius: 12px; padding: 1.25rem 1.5rem;
	text-decoration: none; color: var(--fec-navy); margin-bottom: 1rem;
}
.fec-doc-card .icon {
	width: 42px; height: 42px; border-radius: 50%; background: var(--fec-navy); color: #fff;
	display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: .8rem; font-weight: 700;
}
.fec-doc-card h4 { margin: 0; font-size: 1rem; }
.fec-doc-card p { margin: 0; font-size: .8rem; color: #6f8ba1; }

/* =========================================================
 * MOBILE (auditoría 2026-10-05)
 * ========================================================= */
/* Touch devices have no hover: show the card description statically */
@media (hover: none) {
	.fec-card2 .desc { display: block; color: #fff; font-size: 1rem; font-weight: 500; margin-bottom: 1rem; }
	.fec-card2--static .desc { display: none; }
}
@media (max-width: 991px) {
	.fec-mega-inner { padding: 0 .75rem; }
	.fec-mega-card { padding: 1.5rem; min-height: 0; }
	.fec-mega-card h3 { font-size: 1.75rem; margin-bottom: 1.25rem; }
	.fec-mega-links a { padding: 1rem .75rem; }
	.fec-mega-cards3 { gap: 1rem; }
	.fec-mega-cards3 .fec-card2 { min-height: 280px; }
	.fec-nav .nav-link { padding: .75rem 1rem !important; }
}
@media (max-width: 575px) {
	.fec-section-title { flex-direction: column; align-items: flex-start; gap: .75rem; margin-bottom: 1.5rem; }
	.fec-cifras { padding: 1.5rem; }
	.fec-cifras-nav li { font-size: 1.375rem; }
	.fec-cifras-num { font-size: 4rem; }
	.fec-cifras-photo { min-height: 240px; }
	.fec-hero-dots { top: auto; bottom: 1.25rem; right: 1.5rem; transform: none; flex-direction: row; }
	.fec-hero-slide { padding-bottom: 5.5rem; }
	.fec-impulso-image { display: none; }
	.fec-impulso-card { min-height: 300px; padding: 4rem 1.5rem 4.5rem; }
	.fec-impulso-card .cta { left: 1.5rem; bottom: 1.5rem; }
	.fec-noticias-section { padding: 2.5rem 0; }
	.fec-quote-intro { flex-basis: 78vw; min-height: 0; }
	.fec-quote-slide { flex-basis: 85vw; }
	.fec-quote-text p.quote { font-size: 1.375rem; }
	.fec-quote-mark { width: 60px; height: 40px; margin-bottom: 1rem; }
	.fec-card2 { padding: 1.5rem; }
	.fec-card2 .title { font-size: 1.75rem; }
	.fec-fc-itd-text h3 { font-size: 1.75rem; }
	.fec-fc-i3c-hero h3 { font-size: 1.75rem; }
	.fec-fc-galeria-item { height: 180px; }
	.fec-fc-logo-item { height: 56px; }
	.fec-fc-logos-track { gap: 1.5rem; }
	.fec-fc-col-edge { width: calc(100vw - 40px); margin-left: calc(50% - 50vw + 20px); }
	.fec-tl-item { padding: 1.5rem; }
	.fec-tl-d { padding: 1.5rem; }
	.fec-tl-d .tl-anio { font-size: 2.25rem; }
	.fec-tl-d .tl-titulo { font-size: 1.5rem; }
	.fec-tl-a .tl-anio, .fec-tl-b .tl-anio { font-size: 2rem; }
	.fec-fc-cl-item .cifra, .fec-fc-lateral .destacado { font-size: 2.25rem; }
	.fec-ambito-card { min-height: 0; }
	.fec-btn-link, .fec-btn-pill, .fec-btn-outline { min-height: 44px; }
}

/* =========================================================
 * RONDA 3
 * ========================================================= */

/* --- Menú de navegación secundaria (sticky) --- */
.fec-encabezado:has(+ .fec-subnav) { margin-bottom: 0; }
.fec-subnav {
	--fec-subnav-h: 62px;
	position: sticky; top: 0; z-index: 1020;
	background: #fff;
	border-bottom: 1px solid var(--fec-line);
	margin-bottom: 3rem;
}
.fec-subnav ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: 2.5rem;
	overflow-x: auto; white-space: nowrap;
	scrollbar-width: none;
}
.fec-subnav ul::-webkit-scrollbar { display: none; }
.fec-subnav a {
	display: block; padding: 1.25rem .25rem 1.1rem;
	font-size: 1rem; font-weight: 600; line-height: 1.3;
	color: var(--fec-navy); text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
}
.fec-subnav a:hover { color: var(--fec-accent); }
.fec-subnav a.is-active { color: var(--fec-accent); border-bottom-color: var(--fec-accent); }
.fec-subnav a:focus-visible { outline: 2px solid var(--fec-blue); outline-offset: 2px; }
/* títulos de sección: que ni el header ni la barra fija los tapen */
.fec-fc-titulo-principal[id] { scroll-margin-top: calc(var(--fec-subnav-h, 62px) + 24px); }
@media (max-width: 575px) { .fec-subnav ul { gap: 1.5rem; } .fec-subnav a { padding: 1rem .15rem .9rem; font-size: .95rem; } }

/* --- Imagen completa --- */
.fec-fc-imgfull { position: relative; margin: 0; }
.fec-fc-imgfull img { width: 100%; display: block; max-height: 80vh; object-fit: cover; }
.fec-fc-imgfull-titulo { position: absolute; left: 0; right: 0; bottom: 0; padding: 4rem 0 2rem; background: linear-gradient(0deg, rgba(0,20,35,.65), rgba(0,20,35,0)); }
.fec-fc-imgfull-titulo h3 { color: #fff; font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin: 0; } /* 34px */
@media (max-width: 575px) { .fec-fc-imgfull-titulo h3 { font-size: 1.5rem; } }

/* --- Cifras en cuadros x6 --- */
.fec-fc-cuadros { background: var(--fec-light); padding: 3.5rem 0; }
.fec-fc-cuadros-inner { max-width: 1320px; margin: 0 auto; padding: 0 12px; }
.fec-fc-cuadros-titulo { font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin-bottom: 2rem; } /* 34px */
.fec-fc-cuadros-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.fec-fc-cuadro { border-radius: 20px; aspect-ratio: 1 / .98; overflow: hidden; container-type: inline-size; }
.fec-fc-cuadro--img { background-size: cover; background-position: center; background-color: #d5e3ec; }
.fec-fc-cuadro--cifra { background: #fff; padding: 1.75rem 2rem; display: flex; flex-direction: column; justify-content: flex-end; }
.fec-fc-cuadro .cifra { color: var(--fec-accent); font-size: min(6.875rem, 31cqw); font-weight: 800; line-height: 1; letter-spacing: -.06em; white-space: nowrap; margin: 0 0 .5rem; } /* 110px (se reduce solo si no cabe) */
.fec-fc-cuadro .altas { color: var(--fec-navy); text-transform: uppercase; font-size: 2.25rem; font-weight: 800; line-height: 1.1; margin: 0 0 .5rem; } /* 36px */
.fec-fc-cuadro .desc { color: var(--fec-navy); font-size: 1.25rem; font-weight: 500; line-height: 1.3; margin: 0 0 .5rem; } /* 20px */
.fec-fc-cuadro .desc:last-child { margin-bottom: 0; }
@media (max-width: 1199px) { .fec-fc-cuadro .cifra { font-size: 4.5rem; } .fec-fc-cuadro .altas { font-size: 1.75rem; } .fec-fc-cuadro .desc { font-size: 1.05rem; } }
@media (max-width: 767px) {
	.fec-fc-cuadros { padding: 2.5rem 0; }
	.fec-fc-cuadros-inner { padding: 0 20px; }
	.fec-fc-cuadros-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.fec-fc-cuadro { aspect-ratio: auto; min-height: 220px; }
	.fec-fc-cuadro--cifra { padding: 1.25rem; }
	.fec-fc-cuadro .cifra { font-size: 3rem; }
	.fec-fc-cuadro .altas { font-size: 1.25rem; }
	.fec-fc-cuadro .desc { font-size: .95rem; }
}

/* --- Banner link externo (A: imagen, B: color) --- */
.fec-fc-banner { background-size: cover; background-position: center; position: relative; color: #fff; }
.fec-fc-banner--a::before { content: ""; position: absolute; inset: 0; background: rgba(0, 20, 35, .6); }
.fec-fc-banner-inner {
	position: relative; max-width: 1320px; margin: 0 auto; padding: 3.5rem 12px;
	display: flex; align-items: center; justify-content: space-between; gap: 2.5rem;
}
.fec-fc-banner h3 { color: #fff; font-size: 2.125rem; font-weight: 700; line-height: 1.1; margin: 0 0 .75rem; } /* 34px */
.fec-fc-banner.is-navy h3 { color: var(--fec-blue); }
.fec-fc-banner .txt { font-size: 1.5rem; font-weight: 500; line-height: 1.3; max-width: 820px; } /* 24px */
.fec-fc-banner .txt p { margin-bottom: .75rem; }
.fec-fc-banner .txt > :last-child { margin-bottom: 0; }
.fec-fc-banner .txt strong, .fec-fc-banner .txt b { font-weight: 700; }
.fec-fc-banner .fec-btn-pill { flex-shrink: 0; }
@media (max-width: 767px) {
	.fec-fc-banner-inner { flex-direction: column; align-items: flex-start; padding: 2.5rem 20px; gap: 1.5rem; }
	.fec-fc-banner h3 { font-size: 1.75rem; }
	.fec-fc-banner .txt { font-size: 1.125rem; }
}

/* --- Bloques links externos con iconos (3 por fila) --- */
.fec-fc-iconos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.fec-fc-icono-card { background: var(--fec-light); border-radius: 20px; padding: 1.75rem; display: flex; flex-direction: column; align-items: flex-start; }
.fec-fc-icono-card .ico { width: 56px; height: 56px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; flex-shrink: 0; }
.fec-fc-icono-card .ico img { width: 26px; height: 26px; object-fit: contain; }
.fec-fc-icono-card h4 { font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin: 0 0 1.25rem; } /* 18px */
.fec-fc-icono-card .vermas { margin-top: auto; display: inline-flex; align-items: center; gap: .6rem; color: var(--fec-navy); font-size: 1rem; font-weight: 600; text-decoration: none; }
.fec-fc-icono-card .vermas .fec-btn-icon { width: 26px; height: 26px; border-radius: 50%; background: var(--fec-accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.fec-fc-icono-card .vermas:hover { text-decoration: underline; }
@media (max-width: 991px) { .fec-fc-iconos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .fec-fc-iconos { grid-template-columns: minmax(0, 1fr); } }

/* --- Párrafos (cada Enter separa un párrafo) en bloques de texto corto --- */
.fec-fc-i3c-box p, .fec-fc-4b-item p, .fec-fc-itd-text p { margin: 0 0 .75rem; }
.fec-fc-i3c-box p:last-child, .fec-fc-4b-item p:last-child, .fec-fc-itd-text p:last-child { margin-bottom: 0; }
.fec-fc-itd-text .fec-btn-pill { margin-top: 1.5rem; }

/* --- Home: noticias a todo el ancho, el slide corre hasta el borde y siempre asoma la siguiente card --- */
.fec-noticias-section .fec-noticias-track {
	padding-left: var(--fec-edge);
	padding-right: 0;
	scroll-padding-left: var(--fec-edge);
	gap: 1.5rem;
}
.fec-noticias-track::-webkit-scrollbar-track { margin-left: var(--fec-edge); margin-right: var(--fec-edge); }
.fec-noticias-section .fec-noticias-track .fec-noticia-card { flex: 0 0 78vw; }
@media (min-width: 768px) { .fec-noticias-section .fec-noticias-track .fec-noticia-card { flex-basis: calc((100vw - var(--fec-edge)) / 2.4 - 1.5rem); } }
@media (min-width: 1100px) { .fec-noticias-section .fec-noticias-track .fec-noticia-card { flex-basis: calc((100vw - var(--fec-edge)) / 3.35 - 1.5rem); } }
.fec-noticias-track::after { content: ""; flex: 0 0 1px; }

/* --- Hero: puntos (inactivo = aro, activo = lleno) --- */
.fec-hero-dots button { width: 18px; height: 18px; background: transparent; border: 2px solid #fff; }
.fec-hero-dots button.active { background: #fff; }

/* --- Botón outline sobre color (ámbitos del home) --- */
.fec-btn-outline .fec-btn-icon { background: #fff; color: var(--fec-navy); }
