:root,
html {
	color-scheme: only light;
	scroll-behavior: smooth;
}


/* ================================
   SECTION — padding estándar global
   ================================ */
section {
	padding: 60px 20px !important;
}


/* ================================
   BASE
   ================================ */
body {
	background: var(--ldt-white);
	font-family: var(--ldt-ff), sans-serif;
}

h1, h2, h3, h4, h5, h6 {
	letter-spacing: -0.5px;
	font-weight: 500;
}

h1 {
	font-size: 76px;
	line-height: 1em;
}

@media (max-width: 1024px) {
	h1 { font-size: 48px; }
}

@media (max-width: 768px) {
	h1 { font-size: 44px; }
}

h2 {
	font-size: 40px;
	color: var(--ldt-primario);
}

@media (max-width: 768px) {
	h2 { font-size: 32px; }
}

h3 {
	font-size: 26px;
	color: var(--ldt-jade);
}

@media (max-width: 768px) {
	h3 { font-size: 22px; }
}

h4 {
	font-size: 20px;
	font-weight: 400;
	letter-spacing: -0.5px;
}

p,
li {
	font-size: 18px;
	color: var(--ldt-ink-2);
	line-height: 1.3em;
}

ol {
	padding: 5px 0 5px 20px;
}

p strong,
p b {
	font-weight: 500;
}

/* ---- Botones estándar ---- */
.btn-wsp,
.btn-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	padding: 14px 28px;
	border-radius: 8px;
	border: none;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.btn-wsp:hover,
.btn-cta:hover {
	opacity: 0.88;
}

/* WhatsApp — verde */
.btn-wsp {
	background: var(--ldt-jade);
}

.btn-wsp svg {
	width: 22px;
	height: 22px;
	fill: #fff;
	flex-shrink: 0;
}

/* CTA — morado */
.btn-cta {
	background: var(--ldt-jade);
}

.btn-cta svg {
	width: 20px;
	height: 20px;
	fill: #fff;
	flex-shrink: 0;
}


/* ---- Enlace con subrayado degradado ---- */
.link-gradient svg {
	width: 20px;
	height: 20px;
	vertical-align: middle;
}

@keyframes arrow-slide {
	0%, 100% { transform: translateX(0); }
	50%       { transform: translateX(5px); }
}

.link-gradient:hover svg {
	animation: arrow-slide 0.6s ease infinite;
}

.link-gradient {
	position: relative;
	display: inline-block;
	font-size: 20px;
	font-weight: 500;
	color: var(--ldt-primario);
	text-decoration: none;
	text-transform: none !important;
}

.link-general {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: var(--ldt-primario);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.link-general:hover {
	opacity: 0.8;
}

/* ---- Ribbon "MÁS POPULAR" ---- */
.popular,
.ultimo {
	position: relative;
	overflow: hidden;
}


.popular::after {
	content: 'MÁS POPULAR';
	position: absolute;
	top: 30px;
	right: -45px;
	background: linear-gradient(90deg, #8F67FF, #1DC8AB);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	padding: 6px 44px;
	transform: rotate(45deg);
	letter-spacing: 0.5px;
	white-space: nowrap;
}

.badge {
	display: inline-block;
	background-color: var(--ldt-gris-jade);
	padding: 9px 10px;
	border-radius: 7px;
	font-size: 16px;
	color: var(--ldt-primario);
}

.link-gradient::after {
	content: '' !important;
	position: absolute !important;
	width: 100% !important;
	margin: 0px auto !important;
	height: 2px !important;
	background: linear-gradient(270deg, #8F67FF 1.05%, #1DC8AB 51.88%) !important;
	bottom: -6px !important;
	left: 0px !important;
	right: 0px !important;
	display: block !important;
	transition: all .3s linear !important;
}

/* ---- H4 ---- */
h4 {
	font-size: 26px;
	font-weight: 500;
}

/* ---- Bajada ---- */
.bajada *,
.bajada {
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1.3em !important;
	letter-spacing: 0 !important;
	word-spacing: 0 !important;
	color: var(--ldt-ink-2) !important;
}

/* ---- List ---- */
.list ul {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.list li {
	display: block;
	font: 400 15px / 1.5 var(--ldt-ff);
	color: var(--ldt-ink-2);
}

.list ul li::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	background-color: var(--ldt-jade);
	border-radius: 50%;
	flex-shrink: 0;
}

/* ---- Error page (403, 404) ---- */
.error-page {
	padding: 100px 0;
	text-align: center;
}

.error-page__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.error-page__code {
	font-size: 120px;
	font-weight: 700;
	line-height: 1;
	color: var(--ldt-gris-claro);
	letter-spacing: -4px;
}

.error-page__title {
	font-size: 32px;
	font-weight: 600;
	color: var(--ldt-primario);
	margin: 0;
	max-width: 520px;
}

.error-page__actions {
	display: flex;
	gap: 16px;
	margin-top: 16px;
	flex-wrap: wrap;
	justify-content: center;
}

@media (max-width: 768px) {
	.error-page { padding: 60px 0; }
	.error-page__code { font-size: 80px; }
	.error-page__title { font-size: 24px; }
	.error-page__actions { flex-direction: column; align-items: center; }
}

/* ================================
   UTILIDADES — FONDOS
   ================================ */
.bg-blue_standar {
	position: relative;
	background: var(--ldt-primario);
	overflow: hidden;
}

.bg-blue_standar::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../../img/core/pattern_corporativo.png');
	background-repeat: repeat;
	opacity: 0.04;
	pointer-events: none;
	z-index: 0;
}

/* ================================
   DARK MODE
   ================================ */

/* ================================
   LOGO
   ================================ */
.logo-dark { display: none; }
.logo-light { display: block; }

[data-theme="dark"] .logo-dark  { display: block; }
[data-theme="dark"] .logo-light { display: none; }

/* ================================
   CURSOR CUSTOM
   ================================ */
#cursorElement {
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 99999;
	mix-blend-mode: exclusion;
}

#cursorElement::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	mix-blend-mode: exclusion;
	pointer-events: none;
	z-index: 99999;
	background: transparent;
	border: 1px solid #fff;
	opacity: 0.2;
	border-radius: 100%;
}

#cursorElement #cursor_arrow {
	opacity: 0;
	transition: .6s;
	transform: scale(0.3);
	pointer-events: none;
}

#cursorElement.showArrow {
	cursor: pointer;
	pointer-events: none;
}

#cursorElement.showArrow #cursor_arrow {
	opacity: 1;
	transform: scale(1);
	pointer-events: none;
	display: none;
}

/* ================================
   GRADIENT TEXT CLASSES
   ================================ */
@keyframes shine {
	to { background-position: 200%; }
}

@keyframes shine-y {
	to { background-position-y: 200%; }
}

.grd_general { color: var(--ldt-jade); }

.grd_eventos,
.grd_gestion,
.grd_web {
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	background-size: 200% auto;
	animation: shine 3s linear infinite;
	-webkit-animation: shine 3s linear infinite;
}

.grd_eventos {
	background-image: linear-gradient(90deg, #9C89FD 20%, #7E5ED5 40%, #7E5ED5 60%, #9C89FD 80%);
}

.grd_gestion {
	background-image: linear-gradient(90deg, #FCB629 20%, #FDDA94 40%, #FDDA94 60%, #FCB629 80%);
}

.grd_web {
	background-image: linear-gradient(90deg, #8EE3D5 20%, #1DC8AB 40%, #1DC8AB 60%, #8EE3D5 80%);
}

/* ================================
   INNER CONTAINER
   ================================ */
.site-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 30px !important;
}

@media (max-width: 1024px) {
	.site-inner { max-width: 920px !important; padding: 0 30px !important; }
}

@media (max-width: 768px) {
	.site-inner { max-width: 500px !important; padding: 0 30px !important; }
}

/* ================================
   SITE HEADER
   ================================ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 9000;
	width: 100% !important;
	max-width: 100% !important;
	padding: 20px 0 !important;
	background: #fff;
	border-bottom: 1px solid #16064614;
	transition: box-shadow 0.3s ease;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 30px;
}

/* ---- Logo ---- */
.site-header__logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.site-header__logo img {
	height: 38px;
	width: auto;
}

/* ---- Nav desktop ---- */
.site-footer #menu-principal-es-1,
.site-footer .sub-menu {
	list-style-type: none;
}

.site-header__nav .menu {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 12px;
	align-items: center;
}

.site-header__nav .menu li a {
	font-family: var(--ldt-ff), Sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: var(--ldt-ink-2);
	text-decoration: none;
	padding: 0 0 3px 0;
	border-bottom: 2px solid transparent;
	transition: color 0.2s, border-color 0.2s;
	white-space: nowrap;
	display: inline-block;
}

.site-header__nav .menu li a:hover {
	color: var(--ldt-jade);
}

.site-header__nav .menu li.current-menu-item > a,
.site-header__nav .menu li.current-menu-ancestor > a {
	color: var(--ldt-primario);
	border-bottom-color: var(--ldt-primario);
}

/* ---- Dark mode toggle ---- */
.site-header__darkmode {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: transparent;
	border: none;
	border-radius: 50%;
	box-shadow: none;
	outline: none;
	color: var(--ldt-ink-2);
	flex-shrink: 0;
	transition: color 0.2s, background 0.2s;
}

.site-header__darkmode:hover {
	background: var(--ldt-gris-claro) !important;
}

.site-header__darkmode svg {
	stroke: var(--ldt-ink-2) !important;
	flex-shrink: 0;
}

.site-header__darkmode .icon-moon { display: none !important; }
.site-header__darkmode .icon-sun  { display: block !important; }

[data-theme="dark"] .site-header__darkmode .icon-moon { display: block !important; }
[data-theme="dark"] .site-header__darkmode .icon-sun  { display: none !important; }

/* ---- Header CTA ---- */
.site-header__nav { margin-left: auto; margin-right: 30px; }
.site-header__cta {
	background: var(--ldt-secundario, #F4C057);
	color: #fff;
	font-size: 19px;
	font-weight: 500;
	font-family: var(--ldt-ff);
	padding: 10px 20px;
	border-radius: 8px;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity .2s, transform .2s;
}
.site-header__cta:hover {
	opacity: .9;
	transform: translateY(-1px);
}

/* ---- Hamburger ---- */
.site-header__hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: var(--ldt-jade);
	border: none;
	border-radius: 4px;
	padding: 8px;
	flex-shrink: 0;
}

.site-header__hamburger span {
	display: block !important;
	width: 24px;
	height: 2px;
	background: var(--ldt-white) !important;
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
	transform-origin: center;
}

.site-header__hamburger.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.site-header__hamburger.is-active span:nth-child(2) {
	opacity: 0;
}
.site-header__hamburger.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ---- Submenú desktop ---- */
.site-header__nav .menu li {
	position: relative;
}

.site-header__nav .menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	background: var(--ldt-white);
	border: 1px solid var(--ldt-gris-claro);
	border-radius: 10px;
	padding: 8px;
	list-style: none;
	margin: 0;
	box-shadow: 0 8px 24px rgba(5, 28, 60, 0.10);
	z-index: 9100;
}

.site-header__nav .menu li:hover > .sub-menu {
	display: block;
}

.site-header__nav .menu .sub-menu li {
	width: 100%;
	border-bottom: none;
}

.site-header__nav .menu .sub-menu li a {
	display: block;
	padding: 9px 14px;
	font-size: 16px;
	border-radius: 6px;
	border-bottom: none;
	color: var(--ldt-ink-2);
	white-space: nowrap;
	transition: background 0.3s ease, color 0.3s ease;
}

.site-header__nav .menu .sub-menu li a:hover {
	background: var(--ldt-gris-claro);
	color: var(--ldt-jade);
}

.site-header__nav .menu .sub-menu li.current-menu-item > a {
	color: var(--ldt-jade);
	border-bottom: none;
}

[data-theme="dark"] .site-header__nav .menu .sub-menu {
	background: var(--ldt-gris-jade);
	border-color: #ffffff15;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.30);
}

/* ---- Header mobile ---- */
@media (max-width: 1024px) {
	.site-header__inner {
		padding: 0 24px;
	}

	.site-header__darkmode {
		margin-left: auto;
		margin-right: 8px;
	}

	.site-header__logo img { height: 41px; }
	.site-header__cta {
		font-size: 16px;
		padding: 8px 16px;
	}
}

@media (max-width: 768px) {
	.site-header { position: relative; }
	.site-header__logo img { height: 45px !important; }
	.site-header__cta { display: none; }
	.site-header__hamburger {
		display: flex;
		position: fixed;
		top: 16px;
		right: 16px;
		z-index: 9001;
	}

	.site-header__nav {
		position: fixed;
		top: 66px; left: 0; right: 0; bottom: 0;
		width: 100vw;
		background: #fff;
		padding: 30px 30px 40px;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform 0.35s ease, visibility 0.35s ease;
		overflow-y: auto;
		z-index: 8998;
		margin: 0;
	}

	.site-header__nav.is-open {
		transform: translateX(0);
		visibility: visible;
	}

	.site-header__nav .menu {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.site-header__nav .menu li {
		width: 100%;
		border-bottom: 1px solid var(--ldt-gris-claro);
	}

	.site-header__nav .menu li a {
		display: block;
		padding: 16px 0;
		font-size: 18px;
		border-bottom: none;
	}

	.site-header__nav .menu li.current-menu-item > a {
		color: var(--ldt-jade);
		border-bottom: none;
	}

	/* Submenú mobile — inline, sin posición absoluta */
	.site-header__nav .menu .sub-menu {
		display: block;
		position: static;
		box-shadow: none;
		border: none;
		border-radius: 0;
		padding: 0 0 0 16px;
		background: transparent;
		min-width: 0;
	}

	.site-header__nav .menu .sub-menu li {
		border-bottom: 1px solid var(--ldt-gris-claro);
	}

	.site-header__nav .menu .sub-menu li a {
		padding: 12px 0;
		border-radius: 0;
		font-size: 16px;
	}
}


/* ================================
   SITE FOOTER
   ================================ */
.site-footer {
	width: 100%;
	background: #DFE8F5;
	font-size: 18px;
}

.site-footer a {
	text-decoration: none;
}

.site-footer__inner {
	display: flex;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 30px;
}

.site-footer__upper {
	padding: 134px 0 64px 0;
}

.site-footer__upper .site-footer__inner {
	gap: 48px;
	align-items: flex-start;
}

.site-footer__col {
	flex: 1;
}

.site-footer__links {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	flex: 1.4;
}

.site-footer__heading {
	font-family: var(--ldt-ff), sans-serif;
	font-size: 18px;
	font-weight: 500;
	color: var(--ldt-primario);
	margin-bottom: 20px;
}

.site-footer__about p {
	line-height: 1.7;
	color: var(--ldt-ink-2);
	margin-bottom: 12px;
}

.site-footer__legal-link {
	display: inline-block;
	margin-top: 8px;
	color: var(--ldt-ink-2);
	text-decoration: underline;
	transition: color 0.3s ease;
}

.site-footer__legal-link:hover {
	color: var(--ldt-jade);
}

.site-footer__menu {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 20px;
}

.site-footer__menu li a {
	display: block;
	padding: 6px 0;
	color: var(--ldt-ink-2);
	transition: color 0.3s ease;
}

.site-footer__menu li a:hover,
.site-footer__menu li.current-menu-item > a {
	color: var(--ldt-jade);
}

.site-footer__contact-item {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--ldt-ink-2);
	margin-bottom: 12px;
	transition: color 0.3s ease;
}

.site-footer__contact-item:hover {
	color: var(--ldt-jade);
}

.site-footer__contact-item svg {
	flex-shrink: 0;
	color: var(--ldt-jade);
}

.site-footer__payment-label {
	color: var(--ldt-ink-2);
	line-height: 1.5;
	margin: 20px 0 10px;
}

.site-footer__izipay {
	height: 48px !important;
	width: auto;
	margin-bottom: 16px;
}

.site-footer__libro {
	display: flex;
	flex-flow: column nowrap;
	align-items: center;
	gap: 12px;
	background: #051C3C08;
	border-radius: 8px;
	padding: 12px 16px;
	color: var(--ldt-ink-2);
	font-weight: 500;
}

.site-footer__libro img {
	width: 116px;
	height: auto;
}

.site-footer__social-bar {
	border-top: 1px solid var(--ldt-gris-claro);
	padding: 40px 0;
}

.site-footer__social-bar .site-footer__inner {
	align-items: center;
	justify-content: center;
}

.site-footer__social-group {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.site-footer__social-group img {
	height: 68px;
	width: auto;
}

.site-footer__handle {
	font-family: var(--ldt-ff), sans-serif;
	font-weight: 500;
	transition: opacity 0.3s ease;
}

.site-footer__handle:hover {
	opacity: 0.8;
}

.site-footer__handle--purple { color: var(--ldt-jade); }
.site-footer__handle--teal   { color: var(--ldt-jade); }

.site-footer__social-icons {
	display: flex;
	gap: 12px;
}

.site-footer__social-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--ldt-white);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.site-footer__social-icons a:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}

.site-footer__social-icons--purple a { background: var(--ldt-jade); }
.site-footer__social-icons--teal   a { background: var(--ldt-jade); }

.site-footer__social-divider {
	width: 1px;
	height: 120px;
	background: var(--ldt-ink-2);
	opacity: 0.4;
	flex-shrink: 0;
	margin: 0 40px;
}

.site-footer__bottom {
	border-top: 1px solid var(--ldt-gris-claro);
	padding: 20px 30px;
	text-align: center;
}

.site-footer__bottom p {
	font-size: 14px;
	color: var(--ldt-ink-2);
}

.site-footer__strip {
	width: 100%;
	height: 16px;
	background-repeat: repeat-x;
	background-size: 258px auto;
}

[data-theme="dark"] .site-footer {
	background: var(--ldt-white);
}

[data-theme="dark"] .site-footer__libro {
	background: var(--ldt-gris-claro);
}

/* ---- Footer responsive ---- */
@media (max-width: 1024px) {
	.site-footer__inner {
		max-width: 920px;
	}

	.site-footer__upper .site-footer__inner {
		flex-wrap: wrap;
		gap: 36px;
	}

	.site-footer__links {
		display: none;
	}

	.site-footer__col {
		flex: 1 1 calc(50% - 18px);
	}

	.site-footer__social-divider {
		height: 80px;
		margin: 0 24px;
	}
}

@media (max-width: 768px) {
	.site-footer__inner {
		max-width: 500px;
	}

	.site-footer {
		text-align: center;
	}

	.site-footer__about p {
		font-size: 16px;
		text-align: center;
	}

	.site-footer__legal-link,
	.site-footer__contact-item,
	.site-footer__payment-label {
		text-align: center;
		justify-content: center;
	}

	.site-footer__social-group img {
		height: 50px;
	}

	.site-footer__upper {
		padding: 150px 0 40px 0;
	}

	.site-footer__upper .site-footer__inner {
		flex-direction: column;
		gap: 32px;
	}

	.site-footer__col {
		flex: 1 1 100%;
	}

	.site-footer__social-bar .site-footer__inner {
		flex-direction: column;
		gap: 36px;
	}

	.site-footer__social-divider {
		width: 80px;
		height: 1px;
		margin: 0;
	}
}

/* ================================
   HERO
   ================================ */
.fp-hero {
	overflow: hidden;
	position: relative;
}

.fp-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: none;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	opacity: 0.1;
	pointer-events: none;
	z-index: 0;
}

.fp-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 60px;
}

/* ---- Text col ---- */
.fp-hero__text {
	flex: 1.3;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}

.fp-hero__pretitle {
	font-size: 36px;
	font-weight: 500;
	color: var(--ldt-primario);
	line-height: 1em;
	margin-bottom: 4px;
}

.fp-hero__title {
	color: var(--ldt-primario);
	margin-bottom: 24px;
}

.fp-hero__gradient {
	animation: shine 3s linear infinite;
	background: linear-gradient(270deg, #1DC8AB 20%, #8F67FF 40%, #8F67FF 60%, #1DC8AB 80%);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.fp-hero__sub {
	margin-bottom: 36px;
	text-align: right;
}


/* ---- Image col ---- */
.fp-hero__image {
	flex: 1;
}

.fp-hero__image img {
	width: 100%;
	height: auto;
	display: block;
}

/* ================================
   WHY
   ================================ */
.fp-why {
	background: #fff;
}

[data-theme="dark"] .fp-why {
	background: var(--ldt-white);
}

.fp-why__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
	margin-bottom: 60px;
}

.fp-why__title {
	line-height: 1.1em;
}

/* ---- Grid ---- */
.fp-why__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 110px;
}

.fp-why__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.fp-why__card-img {
	width: 100%;
	max-width: 250px;
	height: auto;
	display: block;
	border-radius: 12px;
	margin-bottom: 24px;
}

.fp-why__card-title {
	line-height: 1.2em;
	margin-bottom: 12px;
}

.fp-why__card p {
	font-size: 20px;
	color: var(--ldt-ink-2);
	line-height: 1.5em;
	margin-bottom: 20px;
	flex: 1;
}


/* ================================
   RESPONSIVE
   ================================ */
@media (max-width: 1024px) {
	.fp-hero__pretitle {
		font-size: 22px;
	}

	.fp-hero__inner {
		gap: 40px;
	}

}

@media (max-width: 768px) {
	.fp-hero__inner {
		flex-direction: column;
		text-align: center;
	}

	.fp-hero__text {
		align-items: center;
		text-align: center;
	}

	.fp-hero__pretitle,
	.fp-hero__sub {
		text-align: center;
	}

	.fp-hero__pretitle {
		font-size: 28px;
	}

	.fp-hero__sub {
		max-width: 100%;
	}

	.fp-hero__image {
		width: 100%;
	}

	/* why mobile */
	.fp-why__header {
		margin-bottom: 40px;
	}

	.fp-why__grid {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

/* ================================
   DARK MODE
   ================================ */
[data-theme="dark"] .bg-blue_standar {
	background: var(--ldt-gris-jade);
}

[data-theme="dark"] .fp-stat {
	background: var(--ldt-gris-jade);
}


[data-theme="dark"] .fp-stat__pill {
	background: #000;
	box-shadow: 0px 4px 15px 0px rgb(42 23 97 / 20%);
}

/* ================================
   TESTIMONIOS
   ================================ */
.fp-testimonials {
	padding-bottom: 120px !important;
}

.fp-testimonials__inner {
	position: relative;
	z-index: 1;
}

.fp-testimonials__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
	margin-bottom: 60px;
}

.fp-testimonials__header h2 {
	color: #fff;
}

/* ---- Masonry grid ---- */
.fp-testimonials__grid {
	columns: 3;
	column-gap: 10px;
}

/* ---- Card ---- */
.fp-testimonials__card {
	padding: 15px !important;
	break-inside: avoid;
	page-break-inside: avoid;
	margin-bottom: 10px;
}

.fp-testimonials__quote {
	font-size: 16px;
	color: var(--ldt-primario);
	line-height: 1.6em;
	flex: 1;
}

/* ---- Author ---- */
.fp-testimonials__author {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--ldt-gris-claro);
}

.fp-testimonials__name {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--ldt-jade);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 4px;
}

.fp-testimonials__company {
	display: block;
	font-size: 14px;
	color: var(--ldt-ink-2);
}

/* ---- Avatar con borde degradado ---- */
.fp-testimonials__avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	padding: 2px;
	background: linear-gradient(270deg, #1DC8AB, #8F67FF);
	flex-shrink: 0;
}

.fp-testimonials__avatar img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.fp-testimonials__grid {
		columns: 2;
	}
}

@media (max-width: 768px) {
	.fp-testimonials__grid {
		columns: 1;
	}

	.fp-testimonials__header {
		margin-bottom: 40px;
	}
}

/* ================================
   STAT FLOTANTE
   ================================ */
.fp-stat {
	background: var(--ldt-gris-jade);
	padding: 0 30px !important;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 0;
	overflow: inherit;
	z-index: 1;
	position: relative;
}

.fp-stat__pill {
	background: #fff;
	border-radius: 100px;
	padding: 20px 60px;
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 800px;
	box-shadow: 0px 4px 15px 0px rgba(113, 87, 186, 0.2);
}

.fp-stat__img {
	width: 72px;
	height: auto;
	flex-shrink: 0;
}

.fp-stat__number {
	font-size: 68px;
	font-weight: 500;
	color: var(--ldt-secundario);
	line-height: 1;
	flex-shrink: 0;
	letter-spacing: -2px;
}

.fp-stat__text {
	font-size: 27px;
	font-weight: 500;
	color: var(--ldt-primario);
	line-height: 1.2em;
	letter-spacing: -1px;
}

@media (max-width: 768px) {
	.fp-stat__pill {
		border-radius: 20px;
		padding: 24px;
		flex-wrap: wrap;
		justify-content: center;
		text-align: center;
		gap: 10px;
	}

	.fp-stat__img {
		width: 52px;
	}

	.fp-stat__number {
		font-size: 40px;
	}

	.fp-stat__text {
		font-size: 18px;
	}
}

/* ================================
   PORTFOLIO
   ================================ */
.fp-portfolio {
	background: #fff;
}

[data-theme="dark"] .fp-portfolio {
	background: var(--ldt-white);
}

main.page-nosotros .fp-portfolio {
	background: transparent;
}

.fp-portfolio__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
	margin-bottom: 60px;
}

.fp-portfolio__flags {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.fp-portfolio__flags img {
	width: 30px;
	height: 24px;
	object-fit: cover;
	border-radius: 4px;
	box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.09);
}

/* ---- Grid ---- */
.fp-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

.fp-portfolio__card {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	display: block;
	text-decoration: none;
	transition: transform 0.3s ease;
}

.fp-portfolio__card:hover {
	transform: scale(1.02);
}

.fp-portfolio__card-img {
	width: 100%;
	height: auto;
	display: block;
}

/* ---- Overlay hover ---- */
.fp-portfolio__overlay {
	position: absolute;
	bottom: 10px;
	left: 10px;
	right: inherit;
	background: rgba(5, 28, 60, 0.8);
	padding: 20px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transform: translateY(150%);
	transition: transform 0.35s ease;
	border-radius: 8px;
}

.fp-portfolio__card:hover .fp-portfolio__overlay {
	transform: translateY(0);
}

.fp-portfolio__overlay-type {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 4px;
}

.fp-portfolio__overlay-name {
	font-size: 20px;
	font-weight: 500;
	color: #fff;
}

.fp-portfolio__overlay-arrow {
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.fp-portfolio__overlay-arrow svg {
	width: 28px;
	height: 28px;
}

.fp-portfolio__ribbon {
	position: absolute;
	bottom: 50%;
	left: 0;
	z-index: 1;
	pointer-events: none;
	width: 60px;
	transform: translateY(50%);
}

.fp-portfolio__card-flag {
	position: absolute;
	top: 16px;
	left: 16px;
	width: 30px;
	height: 24px;
	object-fit: cover;
	border-radius: 4px;
	box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.09);
}

/* ---- CTA ---- */
.fp-portfolio__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	margin-top: 48px;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
	.fp-portfolio__grid {
		grid-template-columns: 1fr;
	}

	.fp-portfolio__header {
		margin-bottom: 40px;
	}

	.fp-portfolio__cta {
		flex-direction: column;
		gap: 20px;
	}
}

/* ================================
   SERVICES
   ================================ */
.fp-services {
}

.fp-services__inner {
	position: relative;
	z-index: 1;
}

.fp-services__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
	margin-bottom: 60px;
}

.fp-services__header h2 {
	color: #fff;
}

/* ---- Grid ---- */
.fp-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.fp-services__card {
	padding: 32px 24px 28px;
	align-items: center;
	text-align: center;
	text-decoration: none;
	transition: transform 0.3s ease;
}

.fp-services__card:hover {
	transform: scale(1.05);
}


.fp-services__card-title {
	margin-bottom: 24px;
	line-height: 1.2em;
}

.fp-services__card-img {
	min-width: 100%;
	padding: 0;
	margin-bottom: 28px;
}

.fp-services__card-img img {
	height: auto;
	width: 100%;
	display: block;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.fp-services__grid {
		gap: 16px;
	}
}

@media (max-width: 768px) {
	.fp-services__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.fp-services__header {
		margin-bottom: 40px;
	}
}


/* ================================
   DISEÑO Y DESARROLLO WEB
   ================================ */

/* Badge en lugar de pretitle: necesita el mismo spacing */
.fp-hero__text .badge {
	margin-bottom: 4px;
}

/* ================================
   TIPOS DE PROYECTO
   ================================ */
.sw-types__header {
	text-align: center;
	margin-bottom: 48px;
}

.sw-types__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.card-standar {
	background: #fff;
	border: 1px solid var(--ldt-gris-claro);
	border-radius: 8px;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
	overflow: hidden;
}

.card-standar ol,
.card-standar ul {
	list-style: none;
}

.card-standar p,
.card-standar li {
	font-size: 18px;
	color: var(--ldt-ink-2);
	line-height: 1.3em;
}

.sw-types__card h3 {
	color: var(--ldt-primario);
	font-size: 22px;
	line-height: 1.2em;
}

.sw-types__card p {
	flex: 1;
}

.sw-types__btn {
	display: block;
	text-align: center;
	background: var(--ldt-jade);
	color: #fff;
	padding: 12px 20px;
	border-radius: 8px;
	text-decoration: none;
	font-size: 16px;
	font-weight: 500;
	transition: opacity 0.3s ease;
}

.sw-types__btn:hover {
	opacity: 0.88;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.sw-types__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.sw-types__grid {
		grid-template-columns: 1fr;
	}

	.sw-types__header {
		margin-bottom: 32px;
	}
}

/* ================================
   BENEFITS
   ================================ */
.sw-benefits {
	margin-top: 0;
	padding-top: 60px;
}

.sw-benefits__title {
	text-align: center;
	margin-bottom: 40px;
	color: var(--ldt-primario);
}

.sw-benefits__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 48px;
}

.sw-benefits__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--ldt-gris-claro);
	border-radius: 12px;
	padding: 20px;
}

.sw-benefits__item p {
	margin: 0;
}

.sw-benefits__icon {
	display: flex;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	margin-top: 2px;
}

.sw-benefits__cta {
	display: flex;
	justify-content: center;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
	.sw-benefits {
		margin-top: 40px;
		padding-top: 40px;
	}

	.sw-benefits__grid {
		grid-template-columns: 1fr;
	}
}

/* ================================
   PAIN POINTS
   ================================ */
.sw-pain {
	background: var(--ldt-primario);
}

.sw-pain__inner {
	display: flex;
	align-items: center;
	gap: 80px;
}

.sw-pain__title {
	color: #fff;
	flex: 1;
	flex-shrink: 0;
	line-height: 1.15em;
}

.sw-pain__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	flex: 2.5;
}

.sw-pain__icon {
	display: block;
	width: 56px;
	height: auto;
	margin-bottom: 16px;
}

.sw-pain__card h3 {
	color: #fff;
	font-size: 20px;
	line-height: 1.3em;
	margin-bottom: 12px;
}

.sw-pain__card p {
	color: rgba(255, 255, 255, 0.65);
	font-size: 16px;
	line-height: 1.6em;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.sw-pain__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 40px;
	}

	.sw-pain__title {
		text-align: center;
		width: 100%;
	}

	.sw-pain__grid {
		width: 100%;
	}
}

@media (max-width: 768px) {
	.sw-pain__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.sw-pain__card {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}

/* ================================
   PLANES DE GESTIÓN
   ================================ */
.sw-plans__header {
	text-align: center;
	margin-bottom: 60px;
}

.sw-plans__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	align-items: start;
	margin-bottom: 60px;
}

.sw-plans__renewal {
	font-size: 14px;
	color: var(--ldt-ink-2);
	margin: 0;
}

.sw-plans__name {
	font-size: 24px;
	font-weight: 500;
	color: var(--ldt-primario);
	line-height: 1.2em;
	margin: 0;
}

.sw-plans__hours {
	font-size: 16px;
	font-weight: 500;
	color: var(--ldt-primario);
	margin: 4px 0 8px;
}

.sw-plans__hours span {
	color: var(--ldt-secundario);
}

.sw-plans__list {
	list-style-type: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}


.sw-plans__btn {
	display: block;
	text-align: center;
	background: var(--ldt-jade);
	color: #fff;
	padding: 14px 20px;
	border-radius: 8px;
	text-decoration: none;
	font-size: 16px;
	font-weight: 500;
	transition: opacity 0.3s ease;
	margin-top: auto;
}

.sw-plans__btn:hover {
	opacity: 0.88;
}

.sw-plans__cta-wrap {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

.sw-plans__btn--cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: fit-content;
	margin-top: 0;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.sw-plans__grid {
		grid-template-columns: 1fr;
		max-width: 480px;
		margin: 0 auto;
	}
}

@media (max-width: 768px) {
	.sw-plans__header {
		margin-bottom: 40px;
	}
}

/* ================================================
   NOSOTROS - HERO
   ================================================ */
.ns-hero {
	text-align: center;
	position: relative;
	overflow: hidden;
}

.ns-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: none;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	opacity: 0.1;
	pointer-events: none;
}

.ns-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ns-hero__title {
	line-height: 1.1em;
	color: var(--ldt-primario);
	margin-bottom: 24px;
}

.ns-hero__sub {
	max-width: 480px;
	text-align: center;
}

@media (max-width: 768px) {
	/* ns-hero__title hereda responsive del h1 global */
}

/* ================================================
   NOSOTROS - TIMELINE
   ================================================ */
.ns-timeline {
	background: #fff;
}

.ns-timeline__header {
	text-align: center;
	margin-bottom: 64px;
}

.ns-timeline__header h2 {
	margin-bottom: 16px;
}

.ns-timeline__header p {
	max-width: 560px;
	margin: 0 auto;
}

.ns-timeline__track {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.ns-timeline__track::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 1px;
	background: var(--ldt-gris-claro);
	transform: translateX(-50%);
	z-index: 0;
}

.ns-timeline__item {
	display: grid;
	grid-template-columns: 1fr 80px 1fr;
	align-items: start;
	position: relative;
	z-index: 1;
}

.ns-timeline__center {
	display: flex;
	justify-content: center;
	padding-top: 28px;
}

.ns-timeline__dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 5px solid transparent;
	background-image: linear-gradient(#fff, #fff), linear-gradient(270deg, #1DC8AB, #8F67FF);
	background-origin: border-box;
	background-clip: padding-box, border-box;
	flex-shrink: 0;
}

.ns-timeline__card {
	border-radius: 12px;
	padding: 28px;
	padding-right: 110px;
	position: relative;
	overflow: hidden;
	background: #f9f9ff;
}

.ns-timeline__item--right .ns-timeline__card {
	padding-right: 28px;
	padding-left: 110px;
}

.ns-timeline__year {
	display: block;
	color: var(--ldt-jade);
	font-size: 15px;
	margin-bottom: 8px;
}

.ns-timeline__card-title {
	color: var(--ldt-primario);
	margin-bottom: 12px;
}

.ns-timeline__card p {
	font-size: 16px;
	line-height: 1.6em;
	color: var(--ldt-ink-2);
}

.ns-timeline__card::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 100%;
	background-image: none;
	background-repeat: repeat;
	background-size: 50px;
	pointer-events: none;
}

.ns-timeline__item--right .ns-timeline__card::after {
	right: auto;
	left: 0;
}

.ns-timeline__spacer {
	/* placeholder vacío */
}

/* ================================================
   NOSOTROS - EQUIPO
   ================================================ */
.ns-team {
	text-align: center;
	padding-bottom: 40px;
}

.ns-team__connector {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ns-team__line {
	width: 1px;
	height: 48px;
	background: var(--ldt-gris-claro);
}

.ns-team__title {
	margin: 48px 0 40px;
}

.ns-team__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 32px 24px;
}

.ns-team__member {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	width: 140px;
}

.ns-team__avatar {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	border: 3px solid transparent;
	background-image: linear-gradient(#fff, #fff), linear-gradient(135deg, #1DC8AB, #8F67FF);
	background-origin: border-box;
	background-clip: padding-box, border-box;
	overflow: hidden;
	flex-shrink: 0;
}

.ns-team__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ns-team__role {
	font-size: 15px;
	color: var(--ldt-ink-2);
	text-align: center;
	line-height: 1.4em;
}

/* ================================================
   NOSOTROS - STATS
   ================================================ */
.ns-stats {
	text-align: center;
	padding: 60px 0 0;
}

.ns-stats__title {
	margin-bottom: 48px;
}

.ns-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.ns-stats__number {
	display: block;
	font-size: 76px;
	font-weight: 500;
	color: var(--ldt-jade);
	line-height: 1em;
	margin-bottom: 12px;
}

.ns-stats__desc {
	font-size: 20px;
	color: var(--ldt-ink-2);
	line-height: 1.4em;
}

@media (max-width: 768px) {
	.ns-stats__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ns-stats__number {
		font-size: 48px;
	}
}

@media (max-width: 768px) {
	.ns-timeline__track {
		gap: 24px;
	}

	.ns-timeline__track::before {
		display: none;
	}

	.ns-timeline__item {
		grid-template-columns: 1fr;
	}

	.ns-timeline__center {
		display: none;
	}

	.ns-timeline__spacer {
		display: none;
	}

	.ns-timeline__card,
	.ns-timeline__item--right .ns-timeline__card {
		padding: 24px;
		padding-right: 70px;
	}

	.ns-timeline__item--right .ns-timeline__card::after {
		right: 0;
		left: auto;
	}

	.ns-timeline__card::after {
		width: 24px;
		background-size: 32px;
	}
}

/* ================================================
   BLOG
   ================================================ */
.bl-hero__inner {
	display: flex;
	align-items: center;
	gap: 28px;
}

.bl-hero__title {
	font-size: 80px;
	line-height: 1em;
	flex-shrink: 0;
}

.bl-hero__sub {
	font-size: 18px;
	color: var(--ldt-ink-2);
}

/* Categorías */
.bl-categories {
	background: #fff;
}

.bl-cat {
	margin-bottom: 60px;
}

.bl-cat__header {
	display: flex;
	align-items: center;
	gap: 16px;
	border-bottom: 2px solid var(--ldt-jade);
	padding-bottom: 12px;
	margin-bottom: 28px;
}

.bl-cat__name {
	font-size: 24px;
	color: var(--ldt-jade);
	flex-shrink: 0;
	margin: 0;
}

.bl-cat__link {
	margin-left: auto;
	font-size: 14px;
	color: var(--ldt-jade);
	text-decoration: none;
	letter-spacing: 0.06em;
	flex-shrink: 0;
	transition: opacity 0.3s ease;
}

.bl-cat__link:hover {
	opacity: 0.7;
}

/* Grid de posts */
.bl-cat__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.bl-card__img-wrap {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 16px;
	aspect-ratio: 4 / 3;
}

.bl-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.bl-card__img--placeholder {
	width: 100%;
	height: 100%;
	background: var(--ldt-gris-claro);
}

.bl-card__img-wrap:hover .bl-card__img {
	transform: scale(1.04);
}

.bl-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bl-card__title {
	font-size: 20px;
	line-height: 1.3em;
	margin: 0;
}

.bl-card__title a {
	color: var(--ldt-primario);
	text-decoration: none;
}

.bl-card__title a:hover {
	color: var(--ldt-jade);
}

.bl-card__excerpt {
	font-size: 16px;
	line-height: 1.5em;
	color: var(--ldt-ink-2);
	margin: 0;
}

.bl-card__meta {
	font-size: 14px;
	color: var(--ldt-ink-2);
	opacity: 0.6;
	margin: 0;
}

.bl-card__sep {
	margin: 0 6px;
}

/* Responsive */
@media (max-width: 1024px) {
	.bl-cat__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ================================================
   CATEGORY ARCHIVE
   ================================================ */
.cat-hero {
	text-align: center;
}

.cat-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.cat-hero__title {
	font-size: 64px;
	color: var(--ldt-jade);
	line-height: 1.1em;
	margin: 0;
}

.cat-hero__back {
	font-size: 14px;
	color: var(--ldt-primario);
	text-decoration: underline;
	text-underline-offset: 4px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cat-filter-wrap {
	border-top: 1px dashed var(--ldt-gris-claro);
	border-bottom: 1px dashed var(--ldt-gris-claro);
	padding: 16px 0;
}

.cat-filter {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.cat-filter__label {
	font-size: 14px;
	color: var(--ldt-primario);
	flex-shrink: 0;
}

.cat-filter__links {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.cat-filter__link {
	font-size: 15px;
	color: var(--ldt-jade);
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.cat-filter__link:hover,
.cat-filter__link.active {
	opacity: 0.7;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cat-posts {
	background: #fff;
}

.cat-pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
}

@media (max-width: 768px) {
	.cat-hero__title {
		font-size: 40px;
	}
}

@media (max-width: 768px) {
	.bl-hero__title {
		font-size: 52px;
	}

	.bl-cat__grid {
		grid-template-columns: 1fr;
	}
}

/* ================================================
   DARK MODE  (activado por JS: data-theme="dark" en <body>)
   ================================================ */

/* ---- Fondos de sección ---- */
[data-theme="dark"] .bl-categories,
[data-theme="dark"] .ns-timeline,
[data-theme="dark"] .cat-posts {
	background: #0e131e;
}

[data-theme="dark"] .sw-pain {
	background: #0d1b2e;
}

/* ---- Fondos de cards / items ---- */
[data-theme="dark"] .sw-benefits__item,
[data-theme="dark"] .card-standar,
[data-theme="dark"] .fp-services__card,
[data-theme="dark"] .ns-timeline__card {
	background: #000000b5;
}

/* ---- Punto de timeline (color interior adapta al fondo) ---- */
[data-theme="dark"] .ns-timeline__dot {
	background-image: linear-gradient(#0e131e, #0e131e), linear-gradient(270deg, #1DC8AB, #8F67FF);
}

/* ---- Líneas verticales ---- */
[data-theme="dark"] .ns-timeline__track::before,
[data-theme="dark"] .ns-team__line {
	background: #ffffff47;
}

/* ================================================
   SINGLE POST
   ================================================ */
.sp-hero {
	overflow: hidden;
}

.sp-hero__inner,
.sp-content__inner {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 30px;
}

.sp-hero__inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.sp-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sp-breadcrumb .badge {
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.sp-breadcrumb .badge:hover {
	opacity: 0.75;
}

.sp-hero__title {
	line-height: 1.1em;
	margin: 0;
}

@media (min-width: 769px) {
	.head-title_h1B {
		font-size: 56px;
	}
}

.sp-hero__divider {
	border: none;
	border-top: 1px solid var(--ldt-gris-claro);
	margin: 32px 0 0;
}

.sp-content {
	padding: 48px 0 80px;
	overflow: hidden;
}

/* sp-hero__title hereda responsive del h1 global */

/* ---- Contenido del post ---- */
.sp-content__inner p {
	margin-bottom: 15px;
	line-height: 1.6em;
}

.sp-content__inner h1{
	margin-bottom: 8px;
	margin-top: 32px;
}

.sp-content__inner h2 {
	font-family: var(--ldt-ff), sans-serif;
	font-size: 26px;
	letter-spacing: 0;
	margin: 45px 0 20px;
}

.sp-content__inner h3,
.sp-content__inner h4 {
	font-family: var(--ldt-ff), sans-serif;
	letter-spacing: 0;
	color: var(--ldt-ink-2);
	margin: 35px 0 20px;
}

.sp-content__inner h3 { font-size: 22px; }
.sp-content__inner h4 { font-size: 18px; }

.sp-content__inner a {
	color: var(--ldt-jade);
	font-size: inherit;
	text-decoration: underline;
}

.sp-content__inner strong,
.sp-content__inner b {
	font-weight: 500;
}

.sp-content__inner em {
	background: #fff490;
	font-style: normal;
	text-decoration: inherit;
}

.sp-content__inner img,
.sp-content__inner video {
	border-radius: 6px;
	box-shadow: 0 0 6px rgba(19, 48, 106, 0.1);
	background: #fff;
	border: 4px solid #fff;
	display: block;
	margin: 10px auto;
	max-width: 100%;
}

.sp-content__inner img.emoji {
	background: transparent;
	border: none;
	padding: 2px;
	margin: auto;
	position: relative;
	top: 4px;
	width: 35px;
	height: auto;
	box-shadow: none;
}

.sp-content__inner figcaption {
	color: var(--ldt-ink-2);
	font-size: 14px;
	font-style: italic;
	font-weight: 300;
	line-height: 1.4;
	margin: 2px auto;
	text-align: center;
	display: block;
}

.sp-content__inner figure.wp-caption.alignright { margin: 0 0 0 20px; }
.sp-content__inner figure.wp-caption.alignleft  { margin: 0 20px 0 0; }

.sp-content__inner blockquote {
	border-radius: 8px;
	border: 1px solid #A370F7;
	padding: 16px;
	margin: 10px 0;
	width: 100%;
	background: #EBE5FC;
	font-family: var(--ldt-ff), sans-serif;
	font-size: 18px;
	color: #290661;
}

[data-theme="dark"] .sp-content__inner em {
	background: #edff0038;
}

[data-theme="dark"] .sp-content__inner blockquote {
	background: #281f45;
}

/* ---- Post-it / insight ---- */
.sp-content__inner .insight_blog {
	display: inline-block;
	vertical-align: top;
	text-align: center;
	width: 300px;
	position: relative;
	background: #dfd6ff;
	overflow: hidden;
	margin: 20px;
	padding: 20px 20px 30px;
	border-radius: 0 0 0 30px / 45px;
	box-shadow:
		inset 0 -40px 40px rgba(0,0,0,0.04),
		inset 0  25px 10px rgba(0,0,0,0.04),
		0 5px 6px 5px rgba(0,0,0,0.04);
}

.sp-content__inner .insight_blog::before {
	content: '';
	display: block;
	position: absolute;
	width: 20px;
	height: 25px;
	background: #dfd6ff;
	box-shadow: 3px -2px 10px rgba(0,0,0,0.2), inset 15px -15px 15px rgba(0,0,0,0.2);
	left: 0;
	bottom: 0;
	z-index: 2;
	transform: skewX(25deg);
}

/* ---- Utilidades ---- */
.hide { display: none !important; }

.sp-content__inner .img-only-mobile { display: none; }

@media (max-width: 768px) {
	.sp-content__inner .img-only-desktop { display: none; }
	.sp-content__inner .img-only-mobile  { display: block; }

	.sp-content__inner figure {
		padding: 0;
		display: block;
		float: none;
		width: 100%;
	}

	.sp-content__inner figure.wp-caption.alignright,
	.sp-content__inner figure.wp-caption.alignleft {
		margin: 0 auto;
	}
}

/* ================================================
   PROMOS
   ================================================ */
.pm-hero {
	text-align: center;
	overflow: hidden;
}

.pm-hero__title {
	margin: 0 0 60px 0;
}

/* ---- Tabs nav ---- */
.pm-tabs .site-inner,
.page-promos .site-inner {
	max-width: 800px;
}

.pm-tabs__nav {
	display: flex;
	justify-content: center;
	gap: 32px;
	border-bottom: 1px solid var(--ldt-gris-claro);
	margin-bottom: 32px;
}

.pm-tabs__btn {
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	padding: 10px 0;
	margin-bottom: -1px;
	font-size: 18px;
	font-weight: 500;
	color: var(--ldt-primario);
	cursor: pointer;
	transition: color 0.3s ease, border-color 0.3s ease;
	font-family: var(--ldt-ff), sans-serif;
}

.pm-tabs__btn.is-active {
	color: var(--ldt-jade);
	border-bottom-color: var(--ldt-jade);
}

/* ---- Panels ---- */
.pm-tabs__panel {
	display: none;
}

.pm-tabs__panel.is-active {
	display: block;
}

/* ---- Lista de promos ---- */
.pm-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.pm-item {
	display: flex;
	align-items: center;
	gap: 20px;
	background: #fff;
	border: 1px solid var(--ldt-gris-claro);
	border-radius: 8px;
	padding: 16px 20px;
	text-decoration: none;
	transition: box-shadow 0.3s ease;
	box-shadow: 0 2px 10px 0 rgba(66, 35, 187, .05);
}

.pm-item:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.07);
}

.pm-item:hover .pm-item__arrow svg {
	animation: arrow-slide 0.6s ease infinite;
}

.pm-item__img {
	width: 100%;
	max-width: 80px;
	border-radius: 8px;
	overflow: hidden;
	flex-shrink: 0;
	background: var(--ldt-gris-claro);
	box-shadow: 0 0 10px 0 rgb(0 0 0 / .05);
}

.pm-item__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pm-item__img--placeholder {
	background: var(--ldt-gris-claro);
}

.pm-item__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: left;
}

.pm-item__title {
	font-weight: 500;
	color: var(--ldt-primario);
	margin: 0;
}

.page-legales .pm-item__title {
	font-weight: 400 !important;
}

.pm-item__vigencia {
	font-size: 14px;
	color: var(--ldt-ink-2);
	margin: 0;
}

.pm-item__arrow {
	color: var(--ldt-jade);
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.pm-item__arrow svg {
	width: 30px;
	height: 30px;
}

.pm-empty {
	color: var(--ldt-ink-2);
}

/* ---- Dark mode ---- */
[data-theme="dark"] .pm-item {
	background: #000000b5;
}

@media (max-width: 768px) {
	/* pm-hero__title hereda responsive del h1 global */
	.pm-tabs__nav { gap: 20px; }
}

/* ================================================
   SINGLE PROMO
   ================================================ */
.spr-hero__body {
	display: flex;
	align-items: center;
	gap: 32px;
}

.spr-hero__img {
	flex-shrink: 0;
	width: 180px;
	height: 180px;
	border-radius: 12px;
	overflow: hidden;
	background: var(--ldt-gris-claro);
	box-shadow: 0 4px 20px 0 rgb(0 0 0 / .08);
}

.spr-hero__img img {
	width: 100%;
	max-width: 200px;
	border-style: solid;
	border-width: 2px;
	border-color: var(--e-global-color-4baa0cb);
	border-radius: 16px;
	box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.05);
	display: block;
}

.spr-hero__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.spr-hero__estado {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--ldt-ink-2);
	text-transform: uppercase;
	margin: 0;
}

.spr-hero__estado strong {
	font-weight: 500;
}

.spr-hero__meta .sp-hero__title {
	margin: 0;
}

.spr-hero__vigencia {
	font-size: 15px;
	color: var(--ldt-ink-2);
	margin: 0;
}

@media (max-width: 600px) {
	.spr-hero__body {
		flex-direction: column;
		align-items: flex-start;
	}
	.spr-hero__img {
		width: 140px;
		height: 140px;
	}
}

/* ================================================
   LIST — bullets reemplazados por checkmark SVG
   ================================================ */
.list ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.list ul li {
	position: relative;
	padding: 4px 0 4px 28px;
}

/* Ítems de icono: por defecto el SVG se oculta y el label se muestra (footer, mobile, tablet) */
.menu-icon-svg { display: none !important; }
.menu-icon-label { display: inline; }

/* Solo en el header desktop se invierte */
@media (min-width: 1025px) {
	.site-header__nav .menu-icon-svg {
		display: inline-flex !important;
		align-items: center;
		width: 1.2em;
		height: 1.2em;
		vertical-align: middle;
		fill: currentColor;
		line-height: 1;
	}
	.site-header__nav .menu-icon-svg svg {
		width: 24px;
		height: 24px;
		display: block;
		fill: inherit;
	}
	.site-header__nav .menu-icon-label { display: none; }

	/* Separador vertical antes del icono */
	.site-header__nav .menu-carrito,
	.site-header__nav .menu-user {
		border-left: 1px solid #ccc;
		padding: 0 0 0 10px;
	}
}

.list ul li::before {
	content: '';
	position: absolute;
	top: 6px;
	left: 0;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='currentColor' aria-hidden='true'><path d='M14.72 8.79L10.43 13.09L8.78 11.44C8.69036 11.3353 8.58004 11.2503 8.45597 11.1903C8.33191 11.1303 8.19678 11.0965 8.05906 11.0912C7.92134 11.0859 7.78401 11.1091 7.65568 11.1594C7.52736 11.2096 7.41081 11.2859 7.31335 11.3833C7.2159 11.4808 7.13964 11.5974 7.08937 11.7257C7.03909 11.854 7.01589 11.9913 7.02121 12.1291C7.02653 12.2668 7.06026 12.4019 7.12028 12.526C7.1803 12.65 7.26532 12.7604 7.37 12.85L9.72 15.21C9.81344 15.3027 9.92426 15.376 10.0461 15.4258C10.1679 15.4755 10.2984 15.5008 10.43 15.5C10.6923 15.4989 10.9437 15.3947 11.13 15.21L16.13 10.21C16.2237 10.117 16.2981 10.0064 16.3489 9.88458C16.3997 9.76272 16.4258 9.63201 16.4258 9.5C16.4258 9.36799 16.3997 9.23728 16.3489 9.11542C16.2981 8.99356 16.2237 8.88296 16.13 8.79C15.9426 8.60375 15.6892 8.49921 15.425 8.49921C15.1608 8.49921 14.9074 8.60375 14.72 8.79ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2V2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20V20Z' fill='%2310DB48'/></svg>") center / contain no-repeat;
}
