
:root {
	--lp-navy: #0B2148;
	--lp-blue: #1A49A3;
	--lp-blue-600: #113b8c;
	--lp-blue-100: #E7EEFB;
	--lp-teal: #0F9C9C;
	--lp-teal-600: #0B7C7C;
	--lp-teal-100: #E1F5F4;
	--lp-purple: #824bb5;
	--lp-purple-100: #F1E9FA;

	--lp-ink: #16203A;
	--lp-ink-soft: #55617A;
	--lp-ink-faint: #6B7690;
	--lp-surface: #FFFFFF;
	--lp-bg: #F6F8FC;
	--lp-line: #E3E8F2;

	--lp-r-sm: 12px;
	--lp-r-md: 18px;
	--lp-r-lg: 26px;
	--lp-shadow-sm: 0 2px 8px rgba(11, 33, 72, .05);
	--lp-shadow-md: 0 14px 40px -18px rgba(11, 33, 72, .28);
	--lp-shadow-lg: 0 34px 70px -30px rgba(11, 33, 72, .38);

	--lp-font-title: 'Manrope', 'Inter', sans-serif;
	--lp-font-body: 'Inter', sans-serif;
}

/* ---- Base de la página -------------------------------------------------- */
body.lp {
	background: var(--lp-bg) !important;
	color: var(--lp-ink);
	font-family: var(--lp-font-body);
	overflow-x: hidden;
}

.lp * { box-sizing: border-box; }

.lp img { transition: none; }
.lp img:hover { transform: none; }

.lp p { margin-bottom: 0; }

.lp a { color: inherit; }

.lp-section {
	position: relative;
	padding: clamp(48px, 6.5vw, 100px) 0;
}

.lp-section--tight { padding: clamp(38px, 4.8vw, 72px) 0; }

.lp-container {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 40px);
}

.lp-container--narrow { max-width: 880px; }

/* ---- Tipografía --------------------------------------------------------- */
.lp-eyebrow {
	gap: 8px;
	font-family: var(--lp-font-body);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: var(--lp-teal-600);
	margin-bottom: 16px;
}

.lp-eyebrow::before {
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: var(--lp-teal);
}

/* Escala tipográfica fluida: crece de forma continua entre 320px y ~1400px */
.lp-h1 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.75rem, 1.1rem + 3.1vw, 3.55rem);
	line-height: 1.13;
	font-weight: 800;
	letter-spacing: -.022em;
	color: var(--lp-navy);
	margin: 0 0 18px;
}

.lp-h2 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.45rem, 1.05rem + 1.9vw, 2.2rem);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--lp-navy);
	margin: 0 0 14px;
}

/* Variante azul del titulo de seccion */
.lp-h2--blue { color: var(--lp-blue); }

.lp-h3 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.05rem, 0.98rem + 0.34vw, 1.25rem);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: -.01em;
	color: var(--lp-navy);
	margin: 0 0 8px;
}

.lp-lead {
	font-size: clamp(0.95rem, 0.9rem + 0.26vw, 1.09rem);
	line-height: 1.62;
	color: var(--lp-ink-soft);
}

.lp-body {
	font-size: clamp(0.9rem, 0.87rem + 0.15vw, 0.97rem);
	line-height: 1.66;
	color: var(--lp-ink-soft);
}

.lp-small {
	font-size: clamp(0.8rem, 0.78rem + 0.1vw, 0.85rem);
	line-height: 1.55;
	color: var(--lp-ink-faint);
}

.lp-grad {
	background: linear-gradient(100deg, var(--lp-teal) 0%, var(--lp-blue) 62%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--lp-teal);
}

.lp-head {
	max-width: 720px;
	margin: 0 auto 40px;
	text-align: center;
}

.lp-head .lp-eyebrow { justify-content: center; }

/* ---- Botones ------------------------------------------------------------ */
.lp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--lp-font-body);
	font-size: clamp(0.875rem, 0.85rem + 0.1vw, 0.92rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
	padding: clamp(13px, 1.2vw, 16px) clamp(18px, 2.2vw, 28px);
	border-radius: 999px;
	border: 1.5px solid transparent;
	text-decoration: none;
	cursor: pointer;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}

.lp-btn:hover,
.lp-btn:focus { text-decoration: none; }

.lp-btn:focus-visible {
	outline: 3px solid rgba(15, 156, 156, .45);
	outline-offset: 3px;
}

.lp-btn--primary {
	background: linear-gradient(120deg, var(--lp-teal) 0%, var(--lp-blue) 100%);
	color: #fff !important;
	box-shadow: 0 14px 30px -12px rgba(15, 108, 156, .75);
}

.lp-btn--primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 20px 38px -12px rgba(15, 108, 156, .85);
	color: #fff !important;
}

.lp-btn--ghost {
	background: #fff;
	color: var(--lp-navy) !important;
	border-color: var(--lp-line);
	box-shadow: var(--lp-shadow-sm);
}

.lp-btn--ghost:hover {
	transform: translateY(-2px);
	border-color: var(--lp-teal);
	color: var(--lp-teal-600) !important;
}

.lp-btn--white {
	background: #fff;
	color: var(--lp-navy) !important;
	box-shadow: 0 16px 34px -16px rgba(0, 0, 0, .6);
}

.lp-btn--white:hover { transform: translateY(-2px); }

.lp-btn--outline-light {
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
	border-color: rgba(255, 255, 255, .4);
}

.lp-btn--outline-light:hover {
	background: #fff;
	color: var(--lp-navy) !important;
	transform: translateY(-2px);
}

.lp-btn--block { width: 100%; }

.lp-btn--sm { padding: 12px 20px; font-size: 13.5px; }

.lp-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
	font-weight: 700;
	color: var(--lp-teal-600) !important;
	text-decoration: none;
	transition: gap .25s ease, color .25s ease;
}

.lp-link:hover {
	gap: 12px;
	color: var(--lp-blue) !important;
	text-decoration: none;
}

.lp-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---- Hero --------------------------------------------------------------- */
.lp-hero {
	position: relative;
	padding: clamp(168px, 13vw, 196px) 0 clamp(46px, 6vw, 90px);
	background:
		radial-gradient(760px 460px at 88% 4%, rgba(15, 156, 156, .16), transparent 62%),
		radial-gradient(640px 480px at -6% 12%, rgba(26, 73, 163, .14), transparent 58%),
		linear-gradient(180deg, #FFFFFF 0%, #F3F7FD 100%);
	overflow: hidden;
}

.lp-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 42px;
	align-items: center;
}

.lp-hero__note {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--lp-line);
}

.lp-hero__note span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--lp-ink-soft);
}

.lp-hero__note i { color: var(--lp-teal); }

.lp-hero__aside {
	margin-top: 18px;
	font-size: 13.5px;
	color: var(--lp-ink-faint);
}

.lp-hero__aside a {
	font-weight: 700;
	color: var(--lp-teal-600) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* La imagen del hero es un recorte con fondo transparente: por eso no lleva
   tarjeta, y la sombra va con drop-shadow para seguir la silueta de los equipos. */
.lp-hero__media img {
	display: block;
	width: 100%;
	height: auto;
	filter:
		drop-shadow(0 22px 34px rgba(11, 33, 72, .20))
		drop-shadow(0 6px 12px rgba(11, 33, 72, .12));
}

/* ---- Métricas ----------------------------------------------------------- */
.lp-metrics {
	position: relative;
	z-index: 2;
	background: linear-gradient(125deg, #0B2148 0%, #16357C 48%, #0E6E82 100%);
	overflow: hidden;
}

.lp-metrics::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(620px 300px at 82% 0%, rgba(15, 156, 156, .35), transparent 62%);
	pointer-events: none;
}

.lp-metrics__grid {
	position: relative;
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr;
	padding: 46px 0;
}

.lp-metric {
	text-align: center;
	padding: 18px 14px;
	border-radius: var(--lp-r-md);
	transition: background .3s ease;
}

.lp-metric:hover { background: rgba(255, 255, 255, .07); }

/* Iconos de la franja de métricas: cuadrados, fluidos y del mismo tamaño */
.lp-metric__img {
	display: block;
	width: clamp(42px, 4vw, 50px);
	height: auto;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	margin: 0 auto 14px;
}

.lp-metric h3 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.4rem);
	font-weight: 800;
	letter-spacing: -.02em;
	color: #fff;
	margin: 0 0 4px;
}

.lp-metric p {
	font-size: 13.5px;
	font-weight: 500;
	color: rgba(255, 255, 255, .78);
	margin: 0;
}

/* ---- Rejilla de tarjetas ------------------------------------------------ */
.lp-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}

/* ---- Tarjetas de rol ---------------------------------------------------- */
.lp-role {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--lp-surface);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-r-lg);
	padding: clamp(22px, 2.4vw, 30px) clamp(20px, 2.2vw, 28px);
	box-shadow: var(--lp-shadow-sm);
	overflow: hidden;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.lp-role:hover {
	transform: translateY(-6px);
	box-shadow: var(--lp-shadow-md);
	border-color: transparent;
}

.lp-role__icon {
	width: 54px;
	height: 54px;
	display: grid;
	place-items: center;
	border-radius: 17px;
	font-size: 21px;
	margin-bottom: 18px;
	background: var(--lp-accent-soft, var(--lp-teal-100));
	color: var(--lp-accent, var(--lp-teal));
}

.lp-role__tag {
	display: block;
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--lp-accent, var(--lp-teal));
	margin-bottom: 6px;
}

.lp-role ul {
	list-style: none;
	padding: 0;
	margin: 16px 0 22px;
}

.lp-role ul li {
	position: relative;
	font-size: 14px;
	line-height: 1.5;
	color: var(--lp-ink-soft);
	padding: 0 0 0 26px;
	margin-bottom: 9px;
}

/* Check dibujado con CSS: no depende de ninguna fuente de iconos */
.lp-role ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 5px;
	width: 6px;
	height: 11px;
	border: solid var(--lp-accent, var(--lp-teal));
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.lp-role__foot { margin-top: auto; }

.lp-role--teal   { --lp-accent: #0F9C9C; --lp-accent-soft: #E1F5F4; }
.lp-role--blue   { --lp-accent: #1A49A3; --lp-accent-soft: #E7EEFB; }
.lp-role--purple { --lp-accent: #824bb5; --lp-accent-soft: #F1E9FA; }
.lp-role--amber  { --lp-accent: #C9761A; --lp-accent-soft: #FCF0DD; }

/* ---- Bloque multi-rol --------------------------------------------------- */
.lp-combo {
	position: relative;
	margin-top: 34px;
	border-radius: var(--lp-r-lg);
	padding: clamp(26px, 3.2vw, 44px) clamp(20px, 3vw, 40px);
	background: linear-gradient(125deg, #0B2148 0%, #1A49A3 60%, #0F9C9C 130%);
	color: #fff;
	overflow: hidden;
	box-shadow: var(--lp-shadow-md);
}

.lp-combo::before {
	content: "";
	position: absolute;
	right: -80px;
	top: -110px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, .16), transparent 68%);
}

.lp-combo__inner {
	position: relative;
	display: grid;
	gap: 26px;
	align-items: center;
}

.lp-combo h3 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.25rem, 1.05rem + 0.85vw, 1.55rem);
	font-weight: 800;
	letter-spacing: -.02em;
	color: #fff;
	margin: 0 0 10px;
}

.lp-combo p {
	font-size: 15px;
	line-height: 1.62;
	color: rgba(255, 255, 255, .82);
	margin: 0;
}

.lp-combo__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.lp-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	padding: 8px 15px;
	font-size: 12.5px;
	font-weight: 600;
	color: #fff;
}

.lp-chip i { color: #7FE3DF; font-size: 11px; }

/* ---- Funcionalidades ---------------------------------------------------- */
.lp-feature {
	display: grid;
	gap: 26px;
	align-items: center;
	padding: 30px 0;
}

.lp-feature + .lp-feature { border-top: 1px solid var(--lp-line); }

.lp-feature__media {
	position: relative;
	border-radius: var(--lp-r-lg);
	padding: clamp(16px, 2.4vw, 32px);
	text-align: center;
}

.lp-feature__media img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}

.lp-feature__num {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--lp-font-title);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--lp-teal-600);
	margin-bottom: 12px;
}

.lp-feature__num span {
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	border-radius: 9px;
	background: var(--lp-teal-100);
	font-size: 12px;
}

.lp-feature__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

.lp-tag {
	font-size: 12px;
	font-weight: 600;
	color: var(--lp-blue-600);
	background: var(--lp-blue-100);
	border-radius: 999px;
	padding: 6px 13px;
}

/* ---- Pasos -------------------------------------------------------------- */
.lp-steps {
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr;
	counter-reset: lpstep;
}

.lp-step {
	position: relative;
	background: var(--lp-surface);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-r-md);
	padding: 20px 18px 18px;
	box-shadow: var(--lp-shadow-sm);
	transition: transform .3s ease, box-shadow .3s ease;
}

.lp-step:hover {
	transform: translateY(-5px);
	box-shadow: var(--lp-shadow-md);
}

.lp-step__num {
	counter-increment: lpstep;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: linear-gradient(140deg, var(--lp-teal), var(--lp-blue));
	color: #fff;
	font-family: var(--lp-font-title);
	font-weight: 800;
	font-size: 16px;
	margin-bottom: 12px;
	box-shadow: 0 10px 22px -12px rgba(15, 108, 156, .9);
}

.lp-step__num::before { content: counter(lpstep); }

/* ---- Planes ------------------------------------------------------------- */
.lp-plans {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
	align-items: stretch;
}

.lp-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--lp-surface);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-r-lg);
	padding: clamp(24px, 2.6vw, 32px) clamp(20px, 2.2vw, 28px) clamp(22px, 2.2vw, 28px);
	box-shadow: var(--lp-shadow-sm);
	transition: transform .3s ease, box-shadow .3s ease;
}

.lp-plan:hover {
	transform: translateY(-6px);
	box-shadow: var(--lp-shadow-md);
}

.lp-plan--featured {
	border-color: transparent;
	background: linear-gradient(180deg, #FFFFFF, #F7FBFF);
	box-shadow: 0 0 0 2px var(--lp-teal), var(--lp-shadow-md);
}

.lp-plan__flag {
	position: absolute;
	top: -13px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(120deg, var(--lp-teal), var(--lp-blue));
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 7px 16px;
	border-radius: 999px;
	white-space: nowrap;
	box-shadow: 0 10px 22px -12px rgba(15, 108, 156, .9);
}

.lp-plan__icon {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	font-size: 17px;
	margin-bottom: 14px;
	background: var(--lp-accent-soft, var(--lp-teal-100));
	color: var(--lp-accent, var(--lp-teal));
}

.lp-plan__meta {
	display: block;
	margin: 12px 0 2px;
	font-family: var(--lp-font-title);
	font-size: 15px;
	font-weight: 800;
	color: var(--lp-navy);
}

.lp-plan ul {
	list-style: none;
	padding: 0;
	margin: 16px 0 20px;
}

.lp-plan ul li {
	position: relative;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--lp-ink-soft);
	padding: 0 0 0 22px;
	margin-bottom: 8px;
}

.lp-plan ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 5px;
	width: 5px;
	height: 10px;
	border: solid var(--lp-accent, var(--lp-teal));
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.lp-plan__foot { margin-top: auto; }

.lp-plan--teal   { --lp-accent: #0F9C9C; --lp-accent-soft: #E1F5F4; }
.lp-plan--blue   { --lp-accent: #1A49A3; --lp-accent-soft: #E7EEFB; }
.lp-plan--purple { --lp-accent: #824bb5; --lp-accent-soft: #F1E9FA; }
.lp-plan--amber  { --lp-accent: #C9761A; --lp-accent-soft: #FCF0DD; }

.lp-plans-note {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-top: 26px;
	background: var(--lp-surface);
	border: 1px dashed var(--lp-line);
	border-radius: var(--lp-r-md);
	padding: 20px 22px;
}

.lp-plans-note i {
	color: var(--lp-teal);
	font-size: 17px;
	margin-top: 2px;
}

/* ---- Alianzas ----------------------------------------------------------- */
.lp-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 22px 40px;
}

.lp-logos a {
	display: block;
	transition: filter .3s ease, opacity .3s ease, transform .3s ease;
}

.lp-logos a:hover {
	filter: grayscale(0);
	opacity: 1;
	transform: translateY(-3px);
}

.lp-logos img {
	max-width: 140px;
	height: auto;
	display: block;
}

/* ---- Preguntas frecuentes ----------------------------------------------- */
.lp-faq .card {
	background: var(--lp-surface);
	border: 1px solid var(--lp-line) !important;
	border-radius: var(--lp-r-md) !important;
	box-shadow: none;
	margin-bottom: 12px;
	overflow: hidden;
	transition: border-color .25s ease, box-shadow .25s ease;
}

.lp-faq .card:hover {
	border-color: rgba(15, 156, 156, .5) !important;
	box-shadow: var(--lp-shadow-sm);
}

.lp-faq .card-header {
	background: transparent;
	border: none !important;
	padding: 0;
}

.lp-faq .btn-acc {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	text-align: left;
	font-family: var(--lp-font-title);
	font-size: 15.5px;
	font-weight: 700;
	color: var(--lp-navy);
	padding: 19px 22px;
	white-space: normal;
	box-shadow: none !important;
}

.lp-faq .btn-acc:hover,
.lp-faq .btn-acc:focus { color: var(--lp-teal-600); }

.lp-faq .btn-acc::after {
	content: "\2212";
	font-family: var(--lp-font-title);
	font-weight: 700;
	font-size: 17px;
	line-height: 1;
	position: static;
	right: auto;
	top: auto;
	transform: none;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--lp-teal-100);
	color: var(--lp-teal-600);
	transition: background .3s ease, color .3s ease;
}

.lp-faq .btn-acc.collapsed::after { content: "\2b"; }

.lp-faq .card-body {
	padding: 0 22px 22px;
	font-size: 14.5px;
	line-height: 1.66;
	color: var(--lp-ink-soft);
	border: none !important;
}

.lp-faq .card-body p { margin-bottom: 0; }

.lp-faq .card-body a {
	color: var(--lp-teal-600) !important;
	font-weight: 700;
}

/* ---- CTA de cierre ------------------------------------------------------ */
.lp-cta {
	position: relative;
	border-radius: var(--lp-r-lg);
	padding: clamp(36px, 4.5vw, 66px) clamp(20px, 3.4vw, 48px);
	text-align: center;
	background: linear-gradient(125deg, #0B2148 0%, #1A49A3 55%, #0F9C9C 125%);
	color: #fff;
	overflow: hidden;
	box-shadow: var(--lp-shadow-md);
}

.lp-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(420px 220px at 12% 0%, rgba(255, 255, 255, .16), transparent 60%),
		radial-gradient(420px 240px at 92% 100%, rgba(127, 227, 223, .22), transparent 62%);
	pointer-events: none;
}

.lp-cta__inner { position: relative; }

.lp-cta h2 {
	font-family: var(--lp-font-title);
	font-size: clamp(1.45rem, 1.05rem + 1.9vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -.02em;
	color: #fff;
	margin: 0 0 12px;
}

.lp-cta p {
	font-size: clamp(0.95rem, 0.9rem + 0.26vw, 1.05rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, .84);
	max-width: 620px;
	margin: 0 auto 26px;
}

.lp-cta .lp-btn-row { justify-content: center; }

/* ---- Contacto ----------------------------------------------------------- */
.lp-contact {
	background: linear-gradient(180deg, #F6F8FC 0%, #EDF2FA 100%);
}

.lp-contact__card {
	display: grid;
	gap: 0;
	background: var(--lp-surface);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-r-lg);
	overflow: hidden;
	box-shadow: var(--lp-shadow-md);
}

.lp-contact__form { padding: clamp(24px, 3vw, 46px) clamp(18px, 2.6vw, 42px); }

.lp-contact__side {
	padding: clamp(24px, 3vw, 46px) clamp(18px, 2.6vw, 40px);
	background: linear-gradient(160deg, #0B2148, #14356E);
	color: #fff;
}

.lp-contact__side h3 { color: #fff; }

.lp-contact .form-group { margin-bottom: 16px; }

.lp-contact label {
	font-family: var(--lp-font-body);
	font-size: 12.5px;
	font-weight: 700;
	color: var(--lp-navy) !important;
	margin-bottom: 6px;
	letter-spacing: .01em;
}

.lp-contact .form-control {
	height: auto;
	font-size: 14.5px;
	padding: 12px 15px;
	border-radius: var(--lp-r-sm) !important;
	border: 1.5px solid var(--lp-line);
	background: #FBFCFE;
	color: var(--lp-ink);
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.lp-contact .form-control:focus {
	background: #fff;
	border-color: var(--lp-teal);
	box-shadow: 0 0 0 4px rgba(15, 156, 156, .13);
}

.lp-contact textarea.form-control { min-height: 132px; }

.lp-contact .btn-azul {
	border-radius: 999px !important;
	padding: 15px 26px;
	font-size: 14.5px;
	font-weight: 700;
	letter-spacing: .01em;
	background: linear-gradient(120deg, var(--lp-teal) 0%, var(--lp-blue) 100%);
	box-shadow: 0 14px 30px -12px rgba(15, 108, 156, .75);
	margin-bottom: 8px;
}

.lp-contact .btn-azul:hover {
	transform: translateY(-2px);
	box-shadow: 0 20px 38px -12px rgba(15, 108, 156, .85);
}

.lp-info {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.lp-info:last-of-type { border-bottom: none; }

/* Iconos de los datos de contacto: la imagen ya trae su propio círculo */
.lp-info__img {
	display: block;
	width: clamp(34px, 3.2vw, 40px);
	height: auto;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	flex-shrink: 0;
}

.lp-info b {
	display: block;
	font-family: var(--lp-font-title);
	font-size: 14px;
	color: #fff;
	margin-bottom: 2px;
}

.lp-info span {
	display: block;
	font-size: 13.5px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .74);
}

.lp-info a { color: rgba(255, 255, 255, .74) !important; }
.lp-info a:hover { color: #7FE3DF !important; }

.lp-map {
	margin-top: 18px;
	border-radius: var(--lp-r-md);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .14);
	line-height: 0;
}

.lp-map iframe {
	display: block;
	width: 100%;
	height: 230px;
	border: 0;
	filter: grayscale(.3);
}

/* ---- Animación de entrada ----------------------------------------------- */
/* El estado oculto solo se aplica si el script de aparición está activo,
   así el contenido nunca queda invisible sin JavaScript. */
.lp-js .lp-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.22, .8, .28, 1);
}

.lp-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* Escalonado de entrada: el paso de .15s hace visible la cascada en las grillas
   de cuatro tarjetas (roles, pasos y planes) sin que la última se sienta lenta. */
.lp-reveal[data-delay="1"] { transition-delay: .15s; }
.lp-reveal[data-delay="2"] { transition-delay: .30s; }
.lp-reveal[data-delay="3"] { transition-delay: .45s; }
.lp-reveal[data-delay="4"] { transition-delay: .60s; }
.lp-reveal[data-delay="5"] { transition-delay: .75s; }

/* ---- Responsive ---------------------------------------------------------
   Los tamaños ya escalan solos con clamp(); aquí solo cambia la estructura.
   -------------------------------------------------------------------------- */

/* La imagen del hero solo acompaña en escritorio (lg+): de md hacia abajo se
   oculta, que es justo donde .lp-hero__grid deja de ser de dos columnas. */
@media (max-width: 991.98px) {
	.lp-hero__media { display: none; }
}

/* Teléfonos muy angostos (320–400px) */
@media (max-width: 400px) {
	.lp-btn-row { flex-direction: column; align-items: stretch; }
	.lp-btn-row .lp-btn { width: 100%; }
	.lp-hero__note { gap: 9px 14px; }
	.lp-hero__note span { font-size: 12.5px; }
	.lp-chip { font-size: 11.5px; padding: 7px 12px; }
	.lp-faq .btn-acc { font-size: 14.5px; padding: 16px 16px; }
	.lp-faq .card-body { padding: 0 16px 18px; }
	.lp-logos { gap: 18px 26px; }
	.lp-logos img { max-width: 115px; }
	.lp-plans-note { flex-direction: column; gap: 10px; }
}

/* Teléfonos grandes en horizontal / tablets pequeñas */
@media (min-width: 576px) {
	.lp-metrics__grid { grid-template-columns: repeat(3, 1fr); }
	.lp-grid { grid-template-columns: repeat(2, 1fr); }
	.lp-steps { grid-template-columns: repeat(2, 1fr); }
	.lp-plans { grid-template-columns: repeat(2, 1fr); }
}

/* Tablets */
@media (min-width: 768px) {
	.lp-combo__inner { grid-template-columns: 1.5fr 1fr; }
	.lp-feature { grid-template-columns: repeat(2, 1fr); gap: clamp(30px, 3.5vw, 52px); padding: clamp(34px, 3.4vw, 52px) 0; }
	.lp-feature--flip .lp-feature__media { order: -1; }
}

/* Escritorio */
@media (min-width: 992px) {
	.lp-hero__grid { grid-template-columns: 1.06fr .94fr; gap: clamp(38px, 4vw, 64px); }
	.lp-grid--4 { grid-template-columns: repeat(4, 1fr); }
	.lp-steps { grid-template-columns: repeat(4, 1fr); }
	.lp-plans { grid-template-columns: repeat(4, 1fr); }
	.lp-contact__card { grid-template-columns: 1.05fr .95fr; }
	.lp-map iframe { height: 268px; }
}

/* Monitores anchos: el contenido acompaña el ancho en vez de quedar angosto */
@media (min-width: 1600px) {
	.lp-container { max-width: 1320px; }
	.lp-container--narrow { max-width: 960px; }
	.lp-logos img { max-width: 165px; }
	.lp-map iframe { height: 300px; }
}

@media (min-width: 1920px) {
	.lp-container { max-width: 1440px; }
	.lp-grid { gap: 26px; }
	.lp-plans { gap: 26px; }
	.lp-map iframe { height: 330px; }
}

/* ---- Movimiento reducido ------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	.lp-js .lp-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.lp *,
	.lp *::before,
	.lp *::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
	}
}

/* ---- Página de contacto -------------------------------------------------
   La cabecera es fija, así que la primera sección necesita aire arriba.
   -------------------------------------------------------------------------- */
.lp-section--page-top { padding-top: clamp(150px, 12vw, 178px); }

/* ---- Avisos del formulario de contacto ---------------------------------- */
.lp-form-msg {
	display: block;
	margin-bottom: 18px;
	padding: 13px 16px;
	border-radius: var(--lp-r-sm);
	border: 1px solid transparent;
	font-size: 13.5px;
	line-height: 1.5;
}

.lp-form-msg--ok {
	background: var(--lp-teal-100);
	border-color: rgba(15, 156, 156, .35);
	color: var(--lp-teal-600);
}

.lp-form-msg--error {
	background: #FDECEC;
	border-color: rgba(190, 60, 60, .28);
	color: #9E2A2A;
}

/* Campo trampa contra el spam: invisible, pero sin display:none para que
   los robots sí lo encuentren y lo completen. */
.lp-form-trampa {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.lp-contact .btn-azul[disabled] {
	opacity: .7;
	transform: none;
	cursor: progress;
}
