/* =============================================================
 * CfoFlexio Core · global.css
 * Migrado 1:1 desde cfoflexio_1.html (style inline del <head>).
 * Reformateado para legibilidad. NO cambiar valores de paleta ni
 * tipografías sin reflejarlo en el plugin cfoflexio-geo (schema color).
 * ============================================================= */

:root {
	--ink:   #0f2750;
	--paper: #f5f5f5;
	--p2:    #ebebeb;
	--teal:  #3a94b8;
	--td:    #0570f4;
	--rule:  #0f275020;
	--ac:    #c28227;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	background: var(--paper);
	color: var(--ink);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	font-feature-settings: "kern", "liga";
}

h1, h2, h3, h4 {
	font-optical-sizing: auto;
	font-feature-settings: "kern", "liga", "dlig";
}

/* -------------------------------------------------------------
 * Navegación
 * ------------------------------------------------------------- */
.cfo-nav {
	position: fixed;
	top: 24px;
	left: 48px;
	right: 48px;
	z-index: 200;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 36px;
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 999px;
	box-shadow: 0 8px 32px 0 rgba(15, 39, 80, 0.08);
	max-width: 1200px;
	margin: 0 auto;
}
.nav.cfo-nav {
	position: fixed;
}
.cfo-nav .svg-logo-nav {
	filter: none;
}

/* Grupo derecha: CTA + burger */
.nav-right {
	display: flex;
	align-items: center;
	gap: 16px;
}

.lg {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 600;
	font-size: 22px;
	letter-spacing: -.025em;
	text-decoration: none;
	color: var(--ink);
}
.lg span {
	color: var(--td);
}

.nl {
	display: flex;
	gap: 36px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.nl a,
.nl-list a {
	color: var(--ink);
	text-decoration: none;
	position: relative;
}
.nl a::after,
.nl-list a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -4px;
	width: 0;
	height: 2px;
	background: var(--td);
	transition: width .3s ease, left .3s ease;
}
.nl a:hover::after,
.nl-list a:hover::after {
	width: 100%;
	left: 0;
}
.nl-list {
	display: flex;
	gap: 36px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.nl-list li { list-style: none; }

.cta {
	padding: 14px 28px;
	background: var(--ink);
	color: var(--paper);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: all .3s ease;
}
.cta:hover {
	background: var(--td);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -8px var(--td);
}

.cfo-nav-mobile-trigger {
	display: none;
	background: transparent;
	border: none;
	padding: 0;
	margin: 0;
	width: 32px;
	height: 32px;
	cursor: pointer;
	z-index: 110;
	position: relative;
	appearance: none;
	-webkit-appearance: none;
}
.cfo-nav-mobile-trigger span {
	display: block;
	position: absolute;
	left: 4px;
	width: 24px;
	height: 2px;
	background: var(--ink);
	transition: all .3s ease;
}
.cfo-nav-mobile-trigger span:nth-child(1) { top: 10px; }
.cfo-nav-mobile-trigger span:nth-child(2) { top: 18px; }
.cfo-nav-mobile-trigger span:nth-child(3) { top: 26px; }

/* --- Responsive: ocultar/mostrar nav en móvil --- */
@media (max-width: 920px) {
	/* Reposicionar la barra */
	.cfo-nav {
		top: 12px;
		left: 12px;
		right: 12px;
		padding: 10px 16px;
		height: 60px;
	}
	/* Ocultar menú de escritorio con !important para dominar sobre WordPress */
	.nl { display: none !important; }
	/* Ocultar el botón de Contacto de escritorio */
	.cta-desktop { display: none !important; }
	/* Mostrar burger */
	.cfo-nav-mobile-trigger { display: flex !important; }
	/* Logo más compacto */
	.svg-logo-nav { width: 150px; }
}
@media (max-width: 400px) {
	.svg-logo-nav { width: 120px; }
}

/* Menú Móvil: Overlay a pantalla completa */
.cfo-mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.97);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
	z-index: 190;
	display: none; /* JS lo activará con .is-open */
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 40px 24px;
}
.cfo-mobile-menu.is-open {
	display: flex;
}
.cfo-mobile-menu .mobile-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}
.cfo-mobile-menu .mobile-nav-list li {
	margin: 20px 0;
}
.cfo-mobile-menu .mobile-nav-list a,
.cfo-mobile-menu nav a {
	font-family: 'Inter Tight', sans-serif;
	font-size: 36px;
	font-weight: 300;
	color: var(--ink);
	text-decoration: none;
	letter-spacing: -.03em;
	display: block;
}
.cfo-mobile-menu .mobile-nav-list a:hover,
.cfo-mobile-menu nav a:hover {
	color: var(--td);
}
.cfo-mobile-cta {
	margin-top: 48px;
}

/* -------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------- */
.hero {
	min-height: 100vh;
	padding: 160px 48px 80px;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 60px;
	align-items: center;
}

.eb {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--td);
	margin-bottom: 32px;
}

h1 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 300;
	font-size: clamp(38px, 6vw, 92px);
	line-height: 1;
	letter-spacing: -.04em;
	margin-bottom: 36px;
}
h1 em {
	font-style: normal;
	font-weight: 400;
	background: linear-gradient(135deg, var(--td) 0%, var(--teal) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
h1 .a {
	font-style: normal;
	color: var(--ac);
	font-weight: 400;
}

.ld {
	font-size: clamp(16px, 2.2vw, 19px);
	line-height: 1.6;
	max-width: 560px;
	color: #15243d;
	margin-bottom: 44px;
}

.bp {
	padding: 18px 32px;
	background: var(--ink);
	color: var(--paper);
	border-radius: 999px;
	text-decoration: none;
	font-weight: 500;
	font-size: 14px;
	display: inline-flex;
	gap: 10px;
	margin-right: 12px;
	transition: all .3s;
}
.bp:hover {
	background: var(--td);
	transform: translateY(-2px);
}

.bg {
	padding: 18px 32px;
	color: var(--ink);
	text-decoration: none;
	font-weight: 500;
	transition: color .25s, border-color .25s;
	font-size: 14px;
	border: 1px solid var(--ink);
	border-radius: 999px;
}
.bg:hover {
	color: var(--td);
	border-color: var(--td);
}

.hc {
	padding: 24px 0 0 24px;
	background: transparent;
	color: var(--ink);
	position: relative;
}
.hc::before {
	display: none;
}
.hc h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 36px;
	font-weight: 300;
	line-height: 1.3;
	margin: 16px 0 48px;
	letter-spacing: -.02em;
	color: var(--ink);
}

.met {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px 32px;
	padding-top: 32px;
	border-top: 1px solid var(--rule);
}
@media (max-width: 480px) {
	.met { grid-template-columns: 1fr; gap: 40px; }
	.met .n,
	.met-item .n { font-size: 48px; }
}
.met .n,
.met-item .n {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 64px;
	font-weight: 300;
	color: var(--td);
	letter-spacing: -.05em;
	line-height: 1;
}
.met .b,
.met-item .b {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-top: 16px;
	color: var(--ink);
	opacity: .8;
	padding-top: 16px;
	border-top: 1px solid var(--rule);
}

@media (max-width: 900px) {
	.hero {
		grid-template-columns: 1fr;
		padding: 110px 20px 48px;
	}
	.hc {
		transform: none;
		padding: 36px;
	}
	.bp, .bg {
		display: flex;
		width: 100%;
		justify-content: center;
		margin: 0 0 16px 0;
	}
}

/* -------------------------------------------------------------
 * Strip marquee
 * ------------------------------------------------------------- */
.strip {
	background: var(--ink);
	color: var(--paper);
	padding: 24px 0;
	overflow: hidden;
	border-top: 1px solid #15243d;
	border-bottom: 1px solid #15243d;
}
.st {
	display: flex;
	gap: 60px;
	white-space: nowrap;
	animation: strip-scroll 40s linear infinite;
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 22px;
	font-weight: 500;
}
@media (max-width: 768px) {
	.st { font-size: 16px; gap: 40px; }
}
.st span::after {
	content: " ✦ ";
	color: var(--teal);
	font-style: normal;
}
@keyframes strip-scroll {
	to { transform: translateX(-50%); }
}

/* -------------------------------------------------------------
 * Secciones genéricas
 * ------------------------------------------------------------- */
section {
	padding: 140px 48px;
}

.ct {
	max-width: 1280px;
	margin: 0 auto;
}

.sh {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 60px;
	margin-bottom: 80px;
	align-items: end;
}
.sh .num {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 12px;
	color: var(--td);
	letter-spacing: .15em;
}
.sh h2 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 300;
	font-size: clamp(36px, 5vw, 68px);
	line-height: 1.02;
	letter-spacing: -.035em;
	margin-top: 16px;
}
.sh h2 em {
	font-style: normal;
	color: var(--td);
	font-weight: 400;
}
.sh p {
	font-size: 18px;
	color: #15243d;
	max-width: 520px;
	justify-self: end;
}

@media (max-width: 820px) {
	section { padding: 80px 20px; }
	.cn { padding: 80px 20px; }
	.sh {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.sh p { justify-self: start; }
}

/* -------------------------------------------------------------
 * Servicios grid (sv)
 * ------------------------------------------------------------- */
.sg {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
.sv {
	padding: 48px;
	border: 1px solid var(--rule);
	border-radius: 6px;
	background: var(--p2);
	transition: all .4s;
}
.sv:hover {
	transform: translateY(-6px);
	border-color: var(--td);
}

.tag {
	display: inline-block;
	padding: 6px 12px;
	background: var(--ink);
	color: var(--paper);
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: 999px;
	margin-bottom: 24px;
	font-family: 'JetBrains Mono', 'Courier New', monospace;
}

.sv h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 400;
	letter-spacing: -.02em;
	margin-bottom: 16px;
	line-height: 1.05;
}
.sv h3 em {
	font-style: normal;
	color: var(--td);
	font-weight: 400;
}
.sv .d {
	font-size: 15px;
	color: #15243d;
	margin-bottom: 32px;
}
.sv ul {
	list-style: none;
}
.sv li {
	padding: 14px 0;
	border-top: 1px solid var(--rule);
	font-size: 14px;
	display: flex;
	gap: 14px;
}
.sv li::before {
	content: "→";
	color: var(--td);
	font-weight: 600;
}

@media (max-width: 820px) {
	.sg { grid-template-columns: 1fr; }
	.sv { padding: 32px; }
}

/* -------------------------------------------------------------
 * Dark section (enfoque)
 * ------------------------------------------------------------- */
.dk {
	background: var(--ink);
	color: var(--paper);
}
.dk .sh h2 { color: var(--paper); }
.dk .sh h2 em { color: var(--teal); }
.dk .sh p { color: rgba(245, 245, 245,.7); }
.dk .sh .num { color: var(--teal); }

.ps {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: rgba(245, 245, 245,.1);
}
.pc {
	padding: 48px;
	background: var(--ink);
}
.pc h4 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 22px;
	font-weight: 500;
	margin-bottom: 32px;
	color: var(--teal);
	letter-spacing: -.01em;
}
.pc.ap h4 { color: var(--ac); }
.pc ul { list-style: none; }
.pc li {
	padding: 14px 0;
	border-top: 1px solid rgba(245, 245, 245,.08);
	font-size: 14px;
	color: rgba(245, 245, 245,.85);
}

@media (max-width: 820px) {
	.ps { grid-template-columns: 1fr; }
	.pc { padding: 32px; }
}

/* -------------------------------------------------------------
 * Diferencial grid
 * ------------------------------------------------------------- */
.dg {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}
.df {
	padding: 48px 24px;
	border-right: 1px solid var(--rule);
	text-align: center;
}
.df:last-child { border-right: none; }
.df:hover { background: var(--p2); }
.df .big {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 60px;
	font-weight: 500;
	color: var(--td);
	line-height: 1;
	letter-spacing: -.045em;
}
.df .big.t { font-size: 32px; }
.df .lbl {
	font-size: 12px;
	margin-top: 18px;
	color: #15243d;
}
/* Tablet: 3 primeras en fila 1, Flex+AEAT comparten fila 2 */
@media (max-width: 900px) {
	.dg {
		grid-template-columns: repeat(3, 1fr);
	}
	.df { border-bottom: 1px solid var(--rule); }
	/* Las celdas 4 y 5 (Flex + AEAT) comparten fila: cada una ocupa 1.5 columnas */
	.df:nth-child(4) {
		grid-column: 1 / 2;
		border-right: 1px solid var(--rule);
	}
	.df:nth-child(5) {
		grid-column: 2 / 4;
		border-right: none;
	}
}
/* Móvil: una sola columna */
@media (max-width: 560px) {
	.dg { grid-template-columns: 1fr !important; }
	.df { border-right: none !important; grid-column: auto !important; }
}

/* -------------------------------------------------------------
 * Audiencia
 * ------------------------------------------------------------- */
.au {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 60px;
}
.aud {
	padding: 36px 28px;
	background: var(--p2);
	border-radius: 4px;
	border-left: 3px solid var(--td);
	transition: all .3s;
}
.aud:hover {
	transform: translateY(-4px);
	border-left-color: var(--ac);
}
.aud .ic {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 32px;
	color: var(--td);
	display: block;
	margin-bottom: 16px;
}
.aud h4 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 22px;
	font-weight: 500;
	margin-bottom: 12px;
}
.aud p {
	font-size: 13px;
	color: #15243d;
}
@media (max-width: 820px) {
	.au { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------
 * Proceso timeline
 * ------------------------------------------------------------- */
.pr {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	position: relative;
}
.pr::before {
	content: "";
	position: absolute;
	top: 48px;
	left: 10%;
	right: 10%;
	height: 1px;
	background: var(--rule);
}
.stp {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 0 24px;
}
.stp .c {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--paper);
	border: 1px solid var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 32px;
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 32px;
	font-weight: 500;
	transition: all .3s;
	letter-spacing: -.02em;
}
.stp:hover .c {
	background: var(--ink);
	color: var(--paper);
}
.stp h4 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 26px;
	font-weight: 500;
	margin-bottom: 14px;
}
.stp p {
	font-size: 14px;
	color: #15243d;
	max-width: 280px;
	margin: 0 auto;
}
@media (max-width: 820px) {
	.pr {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.pr::before { display: none; }
}

/* -------------------------------------------------------------
 * About
 * ------------------------------------------------------------- */
.ab {
	background: var(--p2);
}
.abg {
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	gap: 80px;
	align-items: center;
}
.abc {
	padding: 48px;
	background: var(--paper);
	border: 1px solid var(--rule);
	border-radius: 6px;
}
.abc .nm {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: clamp(26px, 4vw, 36px);
	font-weight: 400;
	line-height: 1.1;
	margin-bottom: 8px;
}
.abc .ro {
	font-size: 13px;
	color: var(--td);
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	margin-bottom: 32px;
	text-transform: uppercase;
}
.abc .qt {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.45;
	color: #15243d;
	padding: 24px 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	margin: 24px 0;
	letter-spacing: -.01em;
}
.abc .cr {
	font-size: 13px;
	line-height: 1.7;
	color: #15243d;
}

.abt h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 300;
	font-size: clamp(32px, 5vw, 48px);
	line-height: 1.1;
	margin-bottom: 32px;
	letter-spacing: -.025em;
}
.abt h3 em {
	font-style: normal;
	color: var(--td);
	font-weight: 400;
}
.abt p {
	font-size: 16px;
	color: #15243d;
	margin-bottom: 20px;
	line-height: 1.7;
}
.el { margin-top: 32px; }
.er {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 24px;
	padding: 14px 0;
	border-top: 1px solid var(--rule);
	font-size: 14px;
}
.er .yr {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 12px;
	color: var(--td);
}
.er .co { font-weight: 500; }
.er .rl {
	color: #15243d;
	font-size: 13px;
	display: block;
	margin-top: 2px;
}
@media (max-width: 900px) {
	.abg {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

/* -------------------------------------------------------------
 * Contacto CTA (fondo oscuro)
 * ------------------------------------------------------------- */
.cn {
	background: var(--ink);
	color: var(--paper);
	text-align: center;
	padding: 160px 48px;
}
.cn h2 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 300;
	font-size: clamp(48px, 7.5vw, 104px);
	line-height: 1;
	letter-spacing: -.04em;
	margin-bottom: 32px;
}
.cn h2 em {
	font-style: normal;
	color: var(--teal);
	font-weight: 400;
}
.cn p {
	font-size: 18px;
	color: rgba(245, 245, 245,.7);
	max-width: 600px;
	margin: 0 auto 48px;
}
.bl {
	display: inline-flex;
	gap: 12px;
	padding: 22px 40px;
	background: var(--teal);
	color: var(--ink);
	border-radius: 999px;
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
	transition: all .3s;
}
.bl:hover {
	background: var(--paper);
}

.ci {
	display: flex;
	justify-content: center;
	gap: 48px;
	flex-wrap: wrap;
	margin-top: 60px;
	padding-top: 48px;
	border-top: 1px solid rgba(245, 245, 245,.15);
}
.cii {
	text-align: left;
}
.cii .lbl {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--teal);
	margin-bottom: 8px;
}
.cii a,
.cii span {
	color: var(--paper);
	font-size: 18px;
	text-decoration: none;
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* -------------------------------------------------------------
 * Footer
 * ------------------------------------------------------------- */
.cfo-footer {
	background: var(--ink);
	color: rgba(245, 245, 245,.6);
	padding: 80px 48px 32px;
	border-top: 1px solid #15243d;
	font-size: 13px;
}
.cfo-footer__inner {
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(245, 245, 245,.1);
}
.cfo-footer__col .lg { color: var(--paper); font-size: 24px; }
.cfo-footer__claim,
.cfo-footer__work {
	margin-top: 16px;
	color: rgba(245, 245, 245,.55);
	font-size: 13px;
	line-height: 1.6;
}
.cfo-footer__h {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--teal);
	margin-bottom: 20px;
}
.cfo-footer__col p {
	margin-bottom: 10px;
	line-height: 1.6;
}
.cfo-footer__col a {
	color: rgba(245, 245, 245,.75);
	text-decoration: none;
	transition: color .2s;
}
.cfo-footer__col a:hover { color: var(--teal); }

.cfo-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cfo-footer__bottom {
	max-width: 1280px;
	margin: 32px auto 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	font-size: 12px;
	color: rgba(245, 245, 245,.4);
}

@media (max-width: 900px) {
	.cfo-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.cfo-footer__inner { grid-template-columns: 1fr; }
	.cfo-footer { padding: 60px 24px 24px; }
}

/* -------------------------------------------------------------
 * Reveal on scroll (IntersectionObserver)
 * ------------------------------------------------------------- */
.rv {
	opacity: 0;
	transform: translateY(30px);
	transition: all .8s cubic-bezier(.2, .8, .2, 1);
}
.rv.in {
	opacity: 1;
	transform: none;
}

/* Respeto de usuarios con motion reducida. */
@media (prefers-reduced-motion: reduce) {
	.rv {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.st {
		animation: none;
	}
	html {
		scroll-behavior: auto;
	}
}

/* -------------------------------------------------------------
 * Utilidades accesibilidad
 * ------------------------------------------------------------- */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* -------------------------------------------------------------
 * Bloques de prosa (Gutenberg core) dentro de páginas estáticas
 * ------------------------------------------------------------- */
.cfo-page__content {
	font-size: 17px;
	line-height: 1.75;
	color: #15243d;
	max-width: 780px;
}
.cfo-page__content h2 {
	font-family: 'Inter Tight', sans-serif;
	font-weight: 400;
	font-size: clamp(30px, 3.6vw, 44px);
	line-height: 1.15;
	letter-spacing: -.025em;
	color: var(--ink);
	margin: 72px 0 20px;
}
.cfo-page__content h3 {
	font-family: 'Inter Tight', sans-serif;
	font-weight: 500;
	font-size: 22px;
	line-height: 1.3;
	color: var(--ink);
	margin: 48px 0 16px;
}
.cfo-page__content p {
	margin-bottom: 22px;
}
.cfo-page__content ul,
.cfo-page__content ol {
	margin: 0 0 28px 24px;
}
.cfo-page__content li {
	margin-bottom: 10px;
}
.cfo-page__content a {
	color: var(--td);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.cfo-page__content table {
	width: 100%;
	border-collapse: collapse;
	margin: 32px 0;
	font-size: 14px;
}
.cfo-page__content th,
.cfo-page__content td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid var(--rule);
	vertical-align: top;
}
.cfo-page__content th {
	background: var(--p2);
	font-weight: 600;
	font-family: 'Inter Tight', sans-serif;
}

.cfo-page__title {
	font-family: 'Inter Tight', sans-serif;
	font-weight: 300;
	font-size: clamp(44px, 6vw, 80px);
	line-height: 1.02;
	letter-spacing: -.04em;
	max-width: 960px;
}

/* Hero de /sobre-alejandro/ con foto lateral */
@media (max-width: 900px) {
	.cfo-about-hero {
		grid-template-columns: 1fr !important;
		gap: 40px !important;
		padding: 110px 20px 48px !important;
	}
	.cfo-about-hero__figure {
		order: -1;
		max-width: 280px;
	}
	.cfo-main--about section[style*="padding:0 48px"] {
		padding-left: 20px !important;
		padding-right: 20px !important;
		padding-bottom: 80px !important;
	}
}
@media (max-width: 600px) {
	.cfo-timeline {
		padding-left: 20px;
		margin-left: 8px;
	}
	.cfo-timeline-item {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.cfo-timeline-item::before {
		left: -25px;
	}
	.cfo-credentials {
		padding: 28px 20px !important;
	}
	.cfo-credentials p {
		font-size: 16px !important;
	}
}

/* -------------------------------------------------------------
 * Utilidades adicionales (evitar estilos en línea)
 * ------------------------------------------------------------- */
.text-mono-small {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 10px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--teal);
}
.svg-logo-nav {
	display: block;
	width: 250px;
	max-width: 100%;
	height: auto;
}
.svg-logo-footer {
	display: block;
	width: 280px;
	max-width: 100%;
	height: auto;
	filter: brightness(0) invert(1);
	opacity: .9;
}
.front-link-decor {
	text-decoration: none;
	color: inherit;
	display: block;
}
.front-link-underline {
	color: var(--td);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cfo-nav .cta {
	background: var(--ink);
	color: var(--paper);
}
.cfo-nav .cta:hover {
	background: var(--td);
	color: var(--paper);
}

/* Service Page Content Grid (Asymmetrical Editorial) */
.svc-grid {
	display: grid;
	gap: 64px 0;
}
.svc-item {
	display: grid;
	grid-template-columns: 1fr 1.8fr;
	gap: 64px;
	padding-top: 48px;
	border-top: 1px solid var(--rule);
}
.svc-item h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 32px;
	font-weight: 300;
	margin: 0;
	color: var(--ink);
	letter-spacing: -.03em;
	line-height: 1.1;
}
.svc-item .desc {
	font-size: 19px;
	line-height: 1.6;
	color: #15243d;
	margin: 0;
}
.svc-item .num {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 14px;
	color: var(--td);
	margin-bottom: 16px;
	letter-spacing: .1em;
}
@media (max-width: 820px) {
	.svc-item { grid-template-columns: 1fr; gap: 24px; padding-top: 32px; }
	.svc-item h3 { font-size: 26px; }
}

.svc-phases {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 48px;
}
.svc-phase {
	padding: 40px;
	background: var(--p2);
	border: 1px solid var(--rule);
	border-radius: 4px;
}
.svc-phase .num {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 42px;
	color: var(--td);
	margin-bottom: 24px;
	line-height: 1;
}
.svc-phase h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 22px;
	margin-bottom: 16px;
	font-weight: 400;
	letter-spacing: -.02em;
}
@media (max-width: 820px) {
	.svc-phases { grid-template-columns: 1fr; }
}

/* Timeline para Trayectoria Profesional */
.cfo-timeline {
	border-left: 1px solid var(--rule);
	padding-left: 32px;
	margin-left: 16px;
}
.cfo-timeline-item {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 40px;
	padding-bottom: 48px;
	position: relative;
}
.cfo-timeline-item::before {
	content: '';
	position: absolute;
	left: -37px;
	top: 8px;
	width: 11px;
	height: 11px;
	background: var(--paper);
	border: 2px solid var(--ink);
	border-radius: 50%;
}
.cfo-timeline-item .meta .year {
	font-family: 'JetBrains Mono', 'Courier New', monospace;
	font-size: 14px;
	color: var(--td);
	letter-spacing: .05em;
	margin-bottom: 8px;
}
.cfo-timeline-item .meta .role {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 18px;
	color: var(--ink);
	font-weight: 500;
}
.cfo-timeline-item .content h3 {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 24px;
	margin: 0 0 16px 0;
	color: var(--ink);
	font-weight: 400;
	letter-spacing: -.02em;
}
.cfo-timeline-item .content p {
	font-size: 16px;
	line-height: 1.6;
	color: #15243d;
	margin: 0;
}
/* Contact Page Grid */
.cfo-contact-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 80px;
	align-items: start;
}
@media (max-width: 900px) {
	.cfo-contact-grid { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 768px) {
	h1 { font-size: 48px; }
	section { padding: 80px 24px; }
	.hero { padding: 140px 24px 60px; }
}

/* LinkedIn card — sección About */
.cfo-linkedin-card {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 56px !important;
	padding: 14px 18px;
	border: 1px solid rgba(255,255,255,.15);
	border-radius: 6px;
	background: rgba(255,255,255,.04);
	text-decoration: none;
	color: inherit;
	transition: background .2s, border-color .2s, transform .2s;
	cursor: pointer;
}
.cfo-linkedin-card:hover {
	background: rgba(255,255,255,.09);
	border-color: rgba(255,255,255,.28);
	transform: translateY(-2px);
}
.cfo-linkedin-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: #0A66C2;
	color: #fff;
	flex-shrink: 0;
}
.cfo-linkedin-card__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
}
.cfo-linkedin-card__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.5);
}
.cfo-linkedin-card__name {
	font-size: 14px;
	font-weight: 500;
	color: rgba(255,255,255,.9);
	font-family: 'Inter Tight', sans-serif;
}
.cfo-linkedin-card__arrow {
	font-size: 18px;
	color: rgba(255,255,255,.4);
	transition: color .2s, transform .2s;
}
.cfo-linkedin-card:hover .cfo-linkedin-card__arrow {
	color: rgba(255,255,255,.8);
	transform: translate(2px,-2px);
}

/* Bullets de acreditación — sección About */
.cr--bullets {
	margin-top: 12px;
	margin-bottom: 32px;
}
.cfo-bullets {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.cfo-bullets li {
    position: relative;
    padding-left: 18px;
    font-size: 14px;
    color: rgba(255,255,255,.8);
    margin-bottom: 8px;
}
.cfo-bullets li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--td);
    font-weight: bold;
}

/* H2 SEO — hero portada (visible pero subordinado al H1) */
.cfo-hero-sub {
	font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .02em;
	color: var(--td);
	margin: 20px 0 32px;
	line-height: 1.4;
	opacity: .85;
}
