/* Variables ---------- */
:root{
	--font-family:"Ubuntu",sans-serif;
	--font-weight-light:300;
	--font-weight-regular:400;
	--font-weight-medium:500;
	--font-weight-bold:700;

	--color-white:#fff;
	--color-black:#1a1a1a;
	--color-brand:#0088aa;
	--color-accent:#00f0ff;

	--color-muted:#6b7280;
	--color-border:rgba(26,26,26,.12);
	--color-shadow:rgba(0,0,0,.12);

	--radius-12:12px;
	--radius-16:16px;

	--container-max:1100px;

	--color-bg:var(--color-white);
	--color-text:var(--color-black);
	--color-surface:#f6f7f8;
	--color-surface-2:#eef2f4;
	--color-nav:rgba(255,255,255,.85);
	--color-nav-text:var(--color-black);
	--color-hero-overlay:rgba(0,0,0,.55);

	--btn-bg:var(--color-brand);
	--btn-text:var(--color-white);
	--btn-bg-hover:#066a82;

	--link:var(--color-brand);
	--link-hover:#066a82;
}

html[data-theme="dark"]{
	--color-bg:#0b0f12;
	--color-text:#e6eef2;
	--color-surface:#0f151a;
	--color-surface-2:#121b22;
	--color-border:rgba(255,255,255,.10);
	--color-shadow:rgba(0,0,0,.35);
	--color-nav:rgba(15,21,26,.80);
	--color-nav-text:#e6eef2;
	--color-hero-overlay:rgba(0,0,0,.60);

	--btn-bg:var(--color-brand);
	--btn-text:var(--color-white);
	--btn-bg-hover:#00a9d0;

	--link:var(--color-accent);
	--link-hover:#7ff8ff;
}

/* Base ---------- */
html,body{
	font-size:100%;
	font-family:var(--font-family);
	font-weight:var(--font-weight-regular);
	background:var(--color-bg);
	color:var(--color-text);
	overflow-x:hidden;
}

#wrapper{width:100vw;overflow:hidden;}

a{color:var(--link);transition:color .2s ease;}
a:hover,a:focus{color:var(--link-hover);text-decoration:none;}

ul{list-style:none;margin:0;padding:0;}

h1,h2,h3,h4,h5{margin:0;padding:0;font-weight:var(--font-weight-bold);}

.no-padding{padding:0!important;}
.v-center{position:relative;top:50%;transform:translateY(-50%);}

.img-bg{width:100%;height:100%;position:relative;}
img.bg{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

a.boton{
	display:inline-block;
	padding:10px 18px;
	background:var(--btn-bg);
	color:var(--btn-text);
	border-radius:999px;
	transition:transform .25s ease,background .25s ease,box-shadow .25s ease;
	box-shadow:0 10px 30px var(--color-shadow);
}
a.boton:hover{background:var(--btn-bg-hover);transform:translateY(-2px);}

/* Tipos ---------- */
.font-size-18{font-size:.8rem;}
.font-size-20{font-size:.9rem;}
.font-size-24{font-size:1rem;line-height:1.6rem;}
.font-size-28{font-size:1.1rem;line-height:1.8rem;}
.font-size-30{font-size:1.2rem;}
.font-size-32{font-size:1.3rem;line-height:2.1rem;}
.font-size-36{font-size:1.5rem;}
.font-size-40{font-size:1.8rem;}
.font-size-56{font-size:2.3rem;}
.font-size-72{font-size:3rem;line-height:3.6rem;}
@media (max-width:991px){.font-size-56{font-size:1.9rem;}.font-size-72{font-size:2.1rem;line-height:2.7rem;}}
@media (max-width:500px){.font-size-72{font-size:1.8rem;line-height:2.3rem;}}

/* Spacing ---------- */
.padding-top-120{padding-top:120px!important;}
.padding-top-60{padding-top:60px!important;}
.padding-top-40{padding-top:40px!important;}
.padding-top-30{padding-top:30px!important;}
.padding-top-15{padding-top:15px!important;}
.padding-bottom-120{padding-bottom:120px!important;}
.padding-bottom-60{padding-bottom:60px!important;}
.padding-bottom-40{padding-bottom:40px!important;}
.padding-bottom-30{padding-bottom:30px!important;}
.padding-bottom-15{padding-bottom:15px!important;}
@media (max-width:991px){.padding-top-120{padding-top:72px!important;}.padding-bottom-120{padding-bottom:72px!important;}}

/* Preloader ---------- */
#preloader{
	position:fixed;
	inset:0;
	z-index:2000;
	background:var(--color-bg);
	display:grid;
	place-items:center;
}
.preloader-spinner{
	width:56px;
	height:56px;
	border-radius:50%;
	border:3px solid var(--color-border);
	border-top-color:var(--color-brand);
	animation:spin .9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
html[data-theme="dark"] .preloader-spinner{
	border-color:rgba(255,255,255,.15);
	border-top-color:var(--color-accent);
}

/* Top ---------- */
#top{
	height:90px;
	width:100%;
	position:fixed;
	top:0;
	left:0;
	z-index:1000;
	backdrop-filter:blur(12px);
	background:var(--color-nav);
	border-bottom:1px solid var(--color-border);
	transition:height .25s ease,background .25s ease;
	overflow:visible;
}

#top .container{
	height:100%;
	max-width:100%;
	padding-left:18px;
	padding-right:18px;
}

#top .row,#top .col-12{height:100%;}

#top .col-12{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:14px;
}

#top ul{
	position:relative;
	font-size:0;
	text-align:right;
	white-space:nowrap;
}

#top ul li{display:inline-block;margin-left:22px;}

#top ul li a{
	display:block;
	padding:8px 6px;
	color:var(--color-nav-text);
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:.06em;
}

#top ul li a::after{
	content:'';
	display:block;
	height:2px;
	width:0;
	background:var(--color-accent);
	transition:width .25s ease;
	margin-top:4px;
	border-radius:2px;
}
#top ul li a:hover::after,#top ul li a.activo::after{width:100%;}

#top .logo{
	position:absolute;
	height:44px;
	top:50%;
	left:18px;
	transform:translateY(-50%);
}

#top .logo img{display:none;height:100%;}
#top .logo img.logo-light{display:block;}
html[data-theme="dark"] #top .logo img.logo-light{display:none;}
html[data-theme="dark"] #top .logo img.logo-dark{display:block;}

#top.corto{height:64px;}

#top .menu-movil-trigger{
	position:absolute;
	top:12px;
	right:12px;
	width:44px;
	height:44px;
	z-index:260;
	display:none;
	border-radius:12px;
	cursor:pointer;
}

#top .menu-movil-trigger span{
	display:block;
	height:3px;
	width:26px;
	background:var(--color-nav-text);
	border-radius:2px;
	margin:0 auto;
	position:relative;
	top:21px;
	transition-delay:.2s;
}

#top .menu-movil-trigger span::after,#top .menu-movil-trigger span::before{
	content:'';
	display:block;
	height:3px;
	width:26px;
	border-radius:2px;
	background:var(--color-nav-text);
	position:absolute;
	transition-duration:.25s,.25s;
	transition-delay:.05s,.2s;
}

#top .menu-movil-trigger span::after{top:-8px;transition-property:top,transform;}
#top .menu-movil-trigger span::before{top:8px;transition-property:top,transform;}

#top .menu-movil-trigger-ani-in span{background:transparent;}
#top .menu-movil-trigger-ani-in span::after{top:0;transform:rotate(45deg);}
#top .menu-movil-trigger-ani-in span::before{top:0;transform:rotate(-45deg);}

#top .menu-movil-trigger-ani-out span{background:var(--color-nav-text);}
#top .menu-movil-trigger-ani-out span::after{top:-8px;transform:rotate(0deg);}
#top .menu-movil-trigger-ani-out span::before{top:8px;transform:rotate(0deg);}

#top .theme-toggle{
	position:relative;
	width:40px;
	height:40px;
	border-radius:12px;
	border:1px solid var(--color-border);
	background:var(--color-surface);
	color:var(--color-text);
	cursor:pointer;
	display:grid;
	place-items:center;
	transition:transform .2s ease,background .2s ease;
	flex:0 0 auto;
	z-index:250;
}
#top .theme-toggle:hover{transform:scale(1.03);background:var(--color-surface-2);}

@media (max-width:767px){
	#top{height:64px;}
	#top .col-12{justify-content:flex-end;}
	#top ul{
		position:fixed;
		top:64px;
		left:0;
		right:0;
		width:100%;
		margin:0;
		text-align:left;
		white-space:normal;
		height:calc(100vh - 64px);
		background:var(--color-bg);
		padding:12px 0;
		border-top:1px solid var(--color-border);
		transition:transform .28s ease;
		transform:translateX(100%);
		z-index:2000;
	}
	#top ul.is-open{transform:translateX(0);}
	#top ul li{display:block;margin:0;}
	#top ul li a{padding:14px 18px;font-weight:var(--font-weight-bold);color:var(--color-text);}
	#top .menu-movil-trigger{display:block;}
	#top .theme-toggle{position:absolute;top:12px;right:64px;}
}

/* Hero ---------- */
.hero-banner{
	position:relative;
	min-height:100vh;
	background:var(--color-black);
	overflow:hidden;
}

.hero-banner .pod{
	position:relative;
	min-height:100vh;
	color:var(--color-white);
	overflow:hidden;
	display:flex;
	align-items:center;
	padding-bottom:220px;
}

.hero-banner .pod::before{
	content:'';
	position:absolute;
	inset:0;
	background:var(--color-hero-overlay);
	z-index:1;
	opacity: .2;
}

.hero-banner .pod img.bg{opacity:.9;}

.hero-banner .pod .container{
	position:relative;
	z-index:2;
	max-width:var(--container-max);
	width:100%;
	padding-left:15px;
	padding-right:15px;
}

.hero-banner .txt{
	background:rgba(0,0,0,.25);
	border:1px solid rgba(255,255,255,.12);
	border-radius:var(--radius-16);
	padding:22px;
	backdrop-filter:blur(10px);
	max-width:640px;
}

.hero-banner h1,.hero-banner h2{font-size:3.2rem;line-height:1.05;}
@media (max-width:991px){.hero-banner h1,.hero-banner h2{font-size:2.2rem;}}

.hero-banner ul.menu{
	width:min(880px,calc(100% - 30px));
	position:absolute;
	bottom:16px;
	left:50%;
	transform:translateX(-50%);
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:12px;
	z-index:3;
}

.hero-banner ul.menu li a{
	display:flex;
	flex-direction:column;
	justify-content:flex-start;
	gap:10px;
	padding:14px;
	border-radius:var(--radius-16);
	background:rgba(255,255,255,.10);
	border:1px solid rgba(255,255,255,.14);
	backdrop-filter:blur(10px);
	transition:transform .2s ease,background .2s ease,border-color .2s ease;
	height:100%;
}

@media (min-width:992px){.hero-banner ul.menu li a{aspect-ratio:4/3;}}

.hero-banner ul.menu li a:hover{
	transform:translateY(-3px);
	background:rgba(0,240,255,.14);
	border-color:rgba(0,240,255,.32);
}

.hero-banner ul.menu li h4{
	font-weight:var(--font-weight-medium);
	color:#fff;
	text-align:left;
	line-height:1.2;
	margin:0;
}

.hero-banner ul.menu li .icono{
	margin-top:auto;
	height:96px;
	display:flex;
	align-items:center;
	justify-content:center;
}

.hero-banner ul.menu li .icono .icon-pill{
	width:64px;
	height:64px;
	border-radius:18px;
	display:grid;
	place-items:center;
	background:rgba(255,255,255,.10);
	border:1px solid rgba(0,240,255,.22);
	box-shadow:0 18px 50px rgba(0,0,0,.18);
	transition:transform .2s ease,background .2s ease,border-color .2s ease;
}

.hero-banner ul.menu li a:hover .icon-pill{
	transform:translateY(-2px) scale(1.02);
	background:rgba(0,240,255,.16);
	border-color:rgba(0,240,255,.38);
}

.hero-banner ul.menu li .icono .icon-pill i{
	font-size:26px;
	color:var(--color-accent);
}

.hero-banner ul.menu li .icono img{display:none;}

.hero-banner .pod{position:relative;overflow:hidden;}
.hero-banner .bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;}
.hero-banner .bg-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.30) 55%,rgba(0,0,0,.15) 100%);}
.hero-banner .container,
.hero-banner .menu{position:relative;z-index:2;}

@media (min-width:1200px){
	.hero-banner .pod{padding-bottom:236px;}
	.hero-banner ul.menu{width:min(920px,calc(100% - 30px));}
	.hero-banner ul.menu li .icono{height:104px;}
	.hero-banner ul.menu li .icono .icon-pill{width:68px;height:68px;border-radius:20px;}
	.hero-banner ul.menu li .icono .icon-pill i{font-size:28px;}
}

@media (max-width:1199px){.hero-banner .pod{padding-bottom:240px;}}

@media (max-width:991px){
	.hero-banner .pod{padding-bottom:280px;}
	.hero-banner ul.menu{grid-template-columns:repeat(2,1fr);bottom:14px;}
	.hero-banner ul.menu li a{aspect-ratio:auto;}
	.hero-banner ul.menu li .icono{height:92px;}
	.hero-banner ul.menu li .icono .icon-pill{width:60px;height:60px;border-radius:18px;}
	.hero-banner ul.menu li .icono .icon-pill i{font-size:24px;}
}

@media (max-width:575px){
	.hero-banner{min-height:auto;}
	.hero-banner .pod{min-height:auto;display:block;padding-bottom:0;}
	.hero-banner .pod .container{padding-top:92px;padding-bottom:18px;}
	.hero-banner .txt{max-width:100%;}
	.hero-banner h1,.hero-banner h2{font-size:1.75rem;line-height:1.2;}
	.hero-banner ul.menu{
		position:static;
		transform:none;
		width:100%;
		padding:12px;
		margin:0;
		display:grid;
		grid-template-columns:repeat(2,1fr);
		gap:12px;
	}
	.hero-banner ul.menu li .icono{height:84px;}
	.hero-banner ul.menu li .icono .icon-pill{width:56px;height:56px;border-radius:16px;}
	.hero-banner ul.menu li .icono .icon-pill i{font-size:22px;}
}

/* Banner ---------- */
.banner{position:relative;background:var(--color-black);color:var(--color-white);overflow:hidden;}
.banner img.bg{opacity:.75;}
.banner .container{max-width:var(--container-max);}
@media (max-width:767px){.banner{text-align:center;}}

/* Imagen y texto ---------- */
.imagen-y-texto .txt .rte{color:var(--color-muted);}
.imagen-y-texto .txt .rte p:last-child{margin-bottom:0;}
.imagen-y-texto .txt a.boton{padding:10px 22px;}

.imagen-y-texto .img .pod{
	position:relative;
	width:100%;
	height:520px;
	max-height:680px;
	min-height:380px;
}

.imagen-y-texto .img .pod>div{
	position:absolute;
	top:18%;
	left:45%;
	width:50%;
	height:80%;
	overflow:hidden;
	border-radius:var(--radius-16);
	box-shadow:0 18px 50px var(--color-shadow);
	border:1px solid var(--color-border);
}

.imagen-y-texto .img .pod>div:last-child{
	top:0;
	left:5%;
	height:80%;
}

.imagen-y-texto.alt .txt{text-align:right;}
.imagen-y-texto.alt .img .pod>div{top:0;left:5%;}
.imagen-y-texto.alt .img .pod>div:last-child{top:18%;left:45%;}

@media (max-width:767px){
	.imagen-y-texto .txt{margin-bottom:22px;}
	.imagen-y-texto .img{padding-top:75%;margin-bottom:24px;}
	.imagen-y-texto .img .pod{
		position:absolute;
		inset:0;
		height:auto;
		max-height:none;
		min-height:0;
		margin-top:0;
	}
	.imagen-y-texto .img .pod>div{left:auto!important;right:15px!important;height:80%;}
	.imagen-y-texto .img .pod>div:last-child{right:auto!important;left:15px!important;height:80%;}
	.imagen-y-texto.alt .txt{text-align:left;}
}

@media (max-width:575px){.imagen-y-texto .txt{text-align:center!important;}}

/* Listado ---------- */
div.listado ul{color:var(--color-muted);font-size:0;}
div.listado ul li{
	display:inline-block;
	position:relative;
	vertical-align:top;
	padding:0 15px;
	margin-bottom:15px;
	width:calc(100% / 3);
	font-size:1rem;
}
div.listado ul li::after{
	display:block;
	position:absolute;
	top:10px;
	left:0;
	width:6px;
	height:6px;
	background:var(--color-accent);
	content:'';
	border-radius:2px;
}
@media (max-width:991px){div.listado ul li{width:50%;}div.listado ul li::after{top:8px;}}
@media (max-width:575px){div.listado ul li{width:100%;}div.listado ul li::after{top:6px;}}

/* CTA ---------- */
.cta{position:relative;color:var(--color-white);background:var(--color-black);overflow:hidden;}
.cta img.bg{opacity:.75;}
.cta a.boton{padding:10px 26px;}

/* Footer ---------- */
#footer{
	background:var(--color-surface);
	color:var(--color-text);
	border-top:1px solid var(--color-border);
}
#footer .container{position:relative;max-width:var(--container-max);}
#footer p{margin:0;}
#footer a{color:var(--color-text);}
#footer a:hover{color:var(--link-hover);}
#footer .lista{text-align:right;}
#footer span.top-button{
	display:block;
	background:var(--color-brand);
	color:var(--color-white);
	width:54px;
	height:54px;
	position:absolute;
	top:-27px;
	right:15px;
	font-size:24px;
	text-align:center;
	line-height:54px;
	cursor:pointer;
	border-radius:18px;
	box-shadow:0 16px 40px var(--color-shadow);
	transition:transform .2s ease,background .2s ease;
}
#footer span.top-button:hover{background:var(--color-accent);color:#001319;transform:translateY(-2px);}

#copy{
	background:var(--color-surface-2);
	color:var(--color-text);
	padding:10px 0;
	border-top:1px solid var(--color-border);
}
#copy a{display:inline-block;padding:5px;color:var(--color-text);}
#copy a:hover{color:var(--link-hover);}

#footer .footer-logo img{height:60px;display:none;}
#footer .footer-logo img.logo-light{display:block;}
html[data-theme="dark"] #footer .footer-logo img.logo-light{display:none;}
html[data-theme="dark"] #footer .footer-logo img.logo-dark{display:block;}

#footer i{display:inline-block;margin-right:10px;color:var(--color-brand);}

@media (max-width:575px){#footer{padding:30px 0!important;}#footer .lista{text-align:left;margin-top:15px;}}

/* WhatsApp ---------- */
.whatsapp-fab{
	position:fixed;
	right:16px;
	bottom:18px;
	z-index:1200;
	width:56px;
	height:56px;
	border-radius:18px;
	border:1px solid var(--color-border);
	background:var(--color-surface);
	color:var(--color-text);
	box-shadow:0 18px 50px var(--color-shadow);
	display:grid;
	place-items:center;
	cursor:pointer;
	transition:transform .2s ease,background .2s ease;
}
.whatsapp-fab:hover{transform:translateY(-2px);background:var(--color-surface-2);}
.whatsapp-fab i{font-size:26px;color:#25d366;}

.modal-wa{position:fixed;inset:0;z-index:1300;display:none;}
.modal-wa.is-open{display:block;}
.modal-wa .backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.modal-wa .panel{
	position:absolute;
	right:16px;
	bottom:90px;
	width:min(360px,calc(100% - 32px));
	background:var(--color-bg);
	border:1px solid var(--color-border);
	border-radius:var(--radius-16);
	box-shadow:0 24px 80px var(--color-shadow);
	padding:16px;
}
.modal-wa .panel h4{font-size:1.05rem;}
.modal-wa .panel p{margin:10px 0 14px;color:var(--color-muted);}
.modal-wa .panel .actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;}
.modal-wa .panel button{
	border:1px solid var(--color-border);
	background:var(--color-surface);
	color:var(--color-text);
	border-radius:999px;
	padding:8px 14px;
	cursor:pointer;
}
.modal-wa .panel button:hover{background:var(--color-surface-2);}
.modal-wa .panel a.boton{padding:10px 16px;}

/* Dos columnas + Beneficios ---------- */
.dos-columnas{
	background:var(--color-surface);
	border-top:1px solid var(--color-border);
	border-bottom:1px solid var(--color-border);
}

.beneficio-card{
	height:100%;
	padding:18px 16px;
	border-radius:var(--radius-16);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	border:1px solid var(--color-border);
	box-shadow:0 14px 40px var(--color-shadow);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.beneficio-card:hover{
	transform:translateY(-4px);
	border-color:rgba(0,136,170,.35);
	box-shadow:0 22px 60px var(--color-shadow);
}

.beneficio-icon{
	width:64px;
	height:64px;
	margin:0 auto 14px auto;
	border-radius:18px;
	display:grid;
	place-items:center;
	background:rgba(0,136,170,.12);
	border:1px solid rgba(0,136,170,.22);
	box-shadow:0 18px 50px rgba(0,0,0,.12);
}
.beneficio-icon i{font-size:26px;color:var(--color-brand);}

html[data-theme="dark"] .beneficio-card{
	background:linear-gradient(180deg,var(--color-surface),var(--color-surface-2));
}
html[data-theme="dark"] .beneficio-icon{
	background:rgba(0,240,255,.10);
	border-color:rgba(0,240,255,.18);
}
html[data-theme="dark"] .beneficio-icon i{color:var(--color-accent);}

.poliza-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:14px 16px;
	border-radius:999px;
	background:linear-gradient(90deg,rgba(0,136,170,.18),rgba(0,240,255,.14));
	border:1px solid rgba(0,240,255,.28);
	box-shadow:0 18px 60px rgba(0,0,0,.14);
	color:var(--color-text);
	font-weight:var(--font-weight-medium);
	animation:polizaPulse 2.2s ease-in-out infinite;
}
.poliza-badge i{font-size:18px;color:var(--color-brand);}

html[data-theme="dark"] .poliza-badge{
	background:linear-gradient(90deg,rgba(0,136,170,.22),rgba(0,240,255,.16));
	border-color:rgba(0,240,255,.25);
}
html[data-theme="dark"] .poliza-badge i{color:var(--color-accent);}

@keyframes polizaPulse{
	0%,100%{transform:translateY(0) scale(1);filter:brightness(1);}
	50%{transform:translateY(-2px) scale(1.02);filter:brightness(1.08);}
}

@media (max-width:767px){
	.beneficio-card{padding:16px 14px;}
	.beneficio-icon{width:58px;height:58px;border-radius:16px;}
	.poliza-badge{border-radius:18px;padding:12px 14px;}
}

/* Servicios ---------- */
.servicios-grid{background:var(--color-bg);}

.servicio-card{
	height:100%;
	padding:18px 16px;
	border-radius:var(--radius-16);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	border:1px solid var(--color-border);
	box-shadow:0 14px 40px var(--color-shadow);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.servicio-card:hover{
	transform:translateY(-4px);
	border-color:rgba(0,136,170,.35);
	box-shadow:0 22px 60px var(--color-shadow);
}

.servicio-icon{
	width:64px;
	height:64px;
	margin:0 0 14px 0;
	border-radius:18px;
	display:grid;
	place-items:center;
	background:rgba(0,136,170,.12);
	border:1px solid rgba(0,136,170,.22);
	box-shadow:0 18px 50px rgba(0,0,0,.12);
}
.servicio-icon i{font-size:26px;color:var(--color-brand);}

html[data-theme="dark"] .servicio-icon{
	background:rgba(0,240,255,.10);
	border-color:rgba(0,240,255,.18);
}
html[data-theme="dark"] .servicio-icon i{color:var(--color-accent);}

.servicio-link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-weight:var(--font-weight-medium);
	color:var(--link);
}
.servicio-link:hover{color:var(--link-hover);}

.servicios-cta{
	padding:22px;
	border-radius:var(--radius-16);
	background:linear-gradient(90deg,rgba(0,136,170,.16),rgba(0,240,255,.12));
	border:1px solid rgba(0,240,255,.22);
	box-shadow:0 18px 60px rgba(0,0,0,.12);
}

.proceso-step{
	height:100%;
	padding:18px 16px;
	border-radius:var(--radius-16);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	border:1px solid var(--color-border);
	box-shadow:0 14px 40px var(--color-shadow);
}

.proceso-num{
	width:46px;
	height:46px;
	border-radius:16px;
	display:grid;
	place-items:center;
	margin:0 auto 14px auto;
	background:rgba(0,136,170,.12);
	border:1px solid rgba(0,136,170,.22);
	color:var(--color-brand);
	font-weight:var(--font-weight-bold);
}
html[data-theme="dark"] .proceso-num{
	background:rgba(0,240,255,.10);
	border-color:rgba(0,240,255,.18);
	color:var(--color-accent);
}

/* Nosotros ---------- */
.mv-card{
	height:100%;
	padding:18px 16px;
	border-radius:var(--radius-16);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	border:1px solid var(--color-border);
	box-shadow:0 14px 40px var(--color-shadow);
}

.mv-icon{
	width:64px;
	height:64px;
	margin:0 auto 14px auto;
	border-radius:18px;
	display:grid;
	place-items:center;
	background:rgba(0,136,170,.12);
	border:1px solid rgba(0,136,170,.22);
	box-shadow:0 18px 50px rgba(0,0,0,.12);
}
.mv-icon i{font-size:26px;color:var(--color-brand);}

html[data-theme="dark"] .mv-icon{
	background:rgba(0,240,255,.10);
	border-color:rgba(0,240,255,.18);
}
html[data-theme="dark"] .mv-icon i{color:var(--color-accent);}

.equipo-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:14px 16px;
	border-radius:18px;
	background:linear-gradient(90deg,rgba(0,136,170,.16),rgba(0,240,255,.12));
	border:1px solid rgba(0,240,255,.22);
	box-shadow:0 18px 60px rgba(0,0,0,.12);
	color:var(--color-text);
	animation:polizaPulse 2.2s ease-in-out infinite;
}
.equipo-badge i{font-size:18px;color:var(--color-brand);}
html[data-theme="dark"] .equipo-badge i{color:var(--color-accent);}

.valores{background:var(--color-bg);}

.valor-card{
	height:100%;
	padding:18px 16px;
	border-radius:var(--radius-16);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	border:1px solid var(--color-border);
	box-shadow:0 14px 40px var(--color-shadow);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.valor-card:hover{
	transform:translateY(-4px);
	border-color:rgba(0,136,170,.35);
	box-shadow:0 22px 60px var(--color-shadow);
}

.valor-icon{
	width:64px;
	height:64px;
	margin:0 auto 14px auto;
	border-radius:18px;
	display:grid;
	place-items:center;
	background:rgba(0,136,170,.12);
	border:1px solid rgba(0,136,170,.22);
	box-shadow:0 18px 50px rgba(0,0,0,.12);
}
.valor-icon i{font-size:26px;color:var(--color-brand);}

html[data-theme="dark"] .valor-icon{
	background:rgba(0,240,255,.10);
	border-color:rgba(0,240,255,.18);
}
html[data-theme="dark"] .valor-icon i{color:var(--color-accent);}

@media (max-width:767px){
	.mv-card,.valor-card{padding:16px 14px;}
	.mv-icon,.valor-icon{width:58px;height:58px;border-radius:16px;}
	.equipo-badge{padding:12px 14px;}
}

/* Contacto ---------- */
.formulario-de-contacto{background:var(--color-bg);}

.cotizacion-form{
	background:var(--color-surface);
	border:1px solid var(--color-border);
	border-radius:var(--radius-16);
	padding:28px;
	box-shadow:0 18px 50px var(--color-shadow);
}
.cotizacion-form .row>div{margin-bottom:16px;}

.cotizacion-form input,
.cotizacion-form textarea{
	width:100%;
	padding:14px 16px;
	font-family:var(--font-family);
	font-size:.95rem;
	color:var(--color-text);
	background:var(--color-bg);
	border:1px solid var(--color-border);
	border-radius:14px;
	transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.cotizacion-form textarea{resize:vertical;min-height:140px;}

.cotizacion-form ::placeholder{color:var(--color-muted);opacity:.8;}

.cotizacion-form input:focus,
.cotizacion-form textarea:focus{
	outline:none;
	border-color:var(--color-brand);
	box-shadow:0 0 0 3px rgba(0,136,170,.15);
	background:var(--color-bg);
}

.cotizacion-form button.boton{border:none;cursor:pointer;padding:12px 26px;}
.cotizacion-form button.boton:hover{transform:translateY(-2px);}

.formulario-de-contacto .check{margin-top:20px;color:var(--color-muted);}
.formulario-de-contacto .check label{
	display:flex;
	gap:10px;
	align-items:flex-start;
	cursor:pointer;
	font-size:.9rem;
	line-height:1.4;
}
.formulario-de-contacto .check input[type="checkbox"]{accent-color:var(--color-brand);margin-top:3px;}
.formulario-de-contacto i{color:var(--color-brand);margin-right:8px;}

html[data-theme="dark"] .cotizacion-form{background:var(--color-surface);}
html[data-theme="dark"] .cotizacion-form input,
html[data-theme="dark"] .cotizacion-form textarea{background:var(--color-bg);border-color:var(--color-border);}
html[data-theme="dark"] .cotizacion-form input:focus,
html[data-theme="dark"] .cotizacion-form textarea:focus{box-shadow:0 0 0 3px rgba(0,240,255,.18);}

@media (max-width:767px){.cotizacion-form{padding:20px;}}

/* Portafolio ---------- */
.portafolio-grid{background:var(--color-bg);}

.portfolio-card{
	display:flex;
	flex-direction:column;
	height:100%;
	border-radius:var(--radius-16);
	overflow:hidden;
	background:var(--color-surface);
	border:1px solid var(--color-border);
	box-shadow:0 18px 50px var(--color-shadow);
	transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
	color:var(--color-text);
}
.portfolio-card:hover{
	transform:translateY(-6px);
	border-color:rgba(0,136,170,.35);
	box-shadow:0 26px 70px var(--color-shadow);
}

.portfolio-img{position:relative;width:100%;padding-top:62%;overflow:hidden;}
.portfolio-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.portfolio-info{padding:18px 16px;}
.portfolio-info h3{margin:0 0 10px 0;}

.portfolio-meta{list-style:none;padding:0;margin:0;color:var(--color-muted);}
.portfolio-meta li{margin-bottom:6px;}
.portfolio-meta strong{color:var(--color-text);font-weight:var(--font-weight-medium);}

html[data-theme="dark"] .portfolio-card{background:var(--color-surface);}

/* Portafolio Single ---------- */
.proyecto-hero{position:relative;overflow:hidden;background:var(--color-black);}

.proyecto-hero .pod{
	position:relative;
	min-height:70vh;
	color:var(--color-white);
	overflow:hidden;
	display:flex;
	align-items:center;
	padding:100px 0 60px 0;
}

.proyecto-hero .pod::before{
	content:'';
	position:absolute;
	inset:0;
	background:var(--color-hero-overlay);
	z-index:1;
}

.proyecto-hero .pod img.bg{opacity:.9;}

.proyecto-hero .container{
	position:relative;
	z-index:2;
	max-width:var(--container-max);
	width:100%;
}

.proyecto-hero .txt{
	background:rgba(0,0,0,.25);
	border:1px solid rgba(255,255,255,.12);
	border-radius:var(--radius-16);
	padding:22px;
	backdrop-filter:blur(10px);
}

.proyecto-back{
	display:inline-flex;
	gap:10px;
	align-items:center;
	color:#fff;
	opacity:.9;
}
.proyecto-back:hover{opacity:1;color:#fff;}

.proyecto-meta{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin:0;
	padding:0;
	list-style:none;
}

.proyecto-meta .chip{
	display:inline-flex;
	gap:10px;
	align-items:center;
	padding:8px 12px;
	border-radius:999px;
	background:rgba(255,255,255,.10);
	border:1px solid rgba(255,255,255,.14);
}
.proyecto-meta .chip i{color:var(--color-accent);}

.proyecto-galeria{background:var(--color-bg);}

.galeria-grid{
	display:grid;
	grid-template-columns:repeat(12,1fr);
	gap:12px;
}

.galeria-item{
	grid-column:span 4;
	border-radius:var(--radius-16);
	overflow:hidden;
	background:var(--color-surface);
	border:1px solid var(--color-border);
	box-shadow:0 16px 40px var(--color-shadow);
	cursor:pointer;
	position:relative;
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
	padding:0;
}

.galeria-item:hover{
	transform:translateY(-4px);
	border-color:rgba(0,136,170,.35);
	box-shadow:0 24px 60px var(--color-shadow);
}

.galeria-thumb{position:relative;width:100%;padding-top:70%;overflow:hidden;}
.galeria-thumb img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	transform:scale(1.02);
	transition:transform .25s ease;
}
.galeria-item:hover .galeria-thumb img{transform:scale(1.06);}

.galeria-item .galeria-badge{
	position:absolute;
	left:12px;
	top:12px;
	padding:6px 10px;
	border-radius:999px;
	background:rgba(0,0,0,.45);
	border:1px solid rgba(255,255,255,.18);
	color:#fff;
	font-size:.85rem;
}

.galeria-empty{
	border-radius:var(--radius-16);
	border:1px dashed var(--color-border);
	background:linear-gradient(180deg,var(--color-bg),var(--color-surface));
	padding:26px;
	display:flex;
	gap:12px;
	align-items:center;
	justify-content:center;
	text-align:center;
	color:var(--color-muted);
}
.galeria-empty i{font-size:22px;color:var(--color-brand);}

@media (max-width:991px){
	.galeria-item{grid-column:span 6;}
	.proyecto-hero .pod{min-height:60vh;}
}

@media (max-width:575px){
	.galeria-item{grid-column:span 12;}
	.proyecto-hero .pod{min-height:auto;padding:92px 0 40px 0;}
}

/* Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:1400;display:none;}
.lightbox.is-open{display:block;}

.lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);}

.lightbox-panel{
	position:absolute;
	inset:20px;
	display:flex;
	align-items:center;
	justify-content:center;
}

.lightbox-panel img{
	max-width:min(1100px,92vw);
	max-height:86vh;
	border-radius:var(--radius-16);
	border:1px solid rgba(255,255,255,.16);
	box-shadow:0 26px 90px rgba(0,0,0,.55);
	background:#000;
}

.lightbox-close{
	position:absolute;
	top:18px;
	right:18px;
	width:44px;
	height:44px;
	border-radius:14px;
	border:1px solid rgba(255,255,255,.18);
	background:rgba(0,0,0,.45);
	color:#fff;
	display:grid;
	place-items:center;
	cursor:pointer;
}

.lightbox-nav{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:46px;
	height:46px;
	border-radius:16px;
	border:1px solid rgba(255,255,255,.18);
	background:rgba(0,0,0,.45);
	color:#fff;
	display:grid;
	place-items:center;
	cursor:pointer;
}
.lightbox-nav.prev{left:18px;}
.lightbox-nav.next{right:18px;}

.lightbox-counter{
	position:absolute;
	bottom:18px;
	left:50%;
	transform:translateX(-50%);
	padding:8px 12px;
	border-radius:999px;
	border:1px solid rgba(255,255,255,.18);
	background:rgba(0,0,0,.45);
	color:#fff;
}

@media (max-width:575px){
	.lightbox-panel{inset:12px;}
	.lightbox-nav.prev{left:10px;}
	.lightbox-nav.next{right:10px;}
	.lightbox-close{top:10px;right:10px;}
}

.cta-video {
	position: relative;
	overflow: hidden;
	color: #fff;
}

.cta-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.cta-video-bg {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	transform: translate(-50%, -50%);
	object-fit: cover;
}

.cta-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(0, 0, 0, 0.65),
		rgba(0, 0, 0, 0.45)
	);
	z-index: 1;
}

.cta .container {
	position: relative;
	z-index: 2;
}

.header-nosotros {
	position: relative;
	padding-top: 90px;
	overflow: hidden;
	background: linear-gradient(135deg, #063a44 0%, #0e5c6d 100%);
	color: #fff;
}

.header-nosotros .header-bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 1;
}

.header-nosotros .header-bg img.bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.35;
	transform: scale(1.05);
}

.header-nosotros .header-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(6, 58, 68, 0.95) 0%,
		rgba(6, 58, 68, 0.85) 40%,
		rgba(6, 58, 68, 0.3) 100%
	);
	opacity: .5;
}

.header-nosotros .header-accent {
	position: absolute;
	top: 0;
	right: 0;
	width: 40%;
	height: 100%;
	background: linear-gradient(
		135deg,
		rgba(0, 180, 200, 0.25),
		rgba(0, 120, 140, 0.2)
	);
	clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
}

.header-nosotros .container {
	position: relative;
	z-index: 3;
}

.header-nosotros h1 {
	font-weight: 700;
	letter-spacing: -1px;
}

.header-divider {
	width: 80px;
	height: 4px;
	background: linear-gradient(to right, #00b4c8, #5fd6e6);
	border-radius: 2px;
}

.header-nosotros .rte p {
	opacity: 0.95;
	max-width: 900px;
}

/* Animaciones: evitar flash / jump */
[data-animacion-lg]{
	opacity: 0;
	transform: translate3d(0, 14px, 0);
	will-change: opacity, transform;
}

[data-animacion-lg].av-inview{
	opacity: 1;
	transform: none;
}

[data-animacion-lg].av-no-motion{
	opacity: 1 !important;
	transform: none !important;
}

@media (prefers-reduced-motion: reduce){
	[data-animacion-lg]{ opacity: 1; transform: none; }
}