/*!
 * Colina · efectos (v2.1, sitio oscuro)
 * El diseño base (colores, tipografías, espacios, bordes, fondos) está en cada widget de
 * Elementor y en el Kit global. Este archivo agrega lo que Elementor no trae como control:
 * titulares a dos colores, botones con vida, papel rasgado, grano, tarjetas apiladas,
 * procesos animados, pestañas, luz que sigue el cursor y estados de animación GSAP.
 *
 * Clases para Avanzado › Clases CSS:
 *   Títulos ........ <mark>palabra</mark> en el texto = bloque carmesí · <em> = negrita
 *   Botones ........ c-btn (la pone cada botón) + c-btn--primary | ghost | light | wa | linklight
 *   Texturas ....... c-grain (grano) · c-bw (foto en blanco y negro, color al pasar el mouse)
 *                    c-torn-noche | negro | grafito | pizoscuro | carmesi (borde de papel abajo)
 *                    c-torn-img (foto con bordes rasgados)
 *   Tarjetas ....... c-lift · c-glow (luz que sigue el cursor) · c-zoom
 *   Apiladas ....... c-stack (contenedor) > tarjetas: se quedan pegadas y se apilan al bajar
 *   Proceso ........ c-process > c-process__track + c-process__step (línea que se llena)
 *   Pestañas ....... c-tabs > c-tabs__nav (c-tab ×n) + c-tabs__panels (c-tab-panel ×n)
 *   Texto .......... c-highlight (se ilumina con el scroll) · c-outline (texto gigante en contorno)
 *                    c-drift (se desplaza en horizontal con el scroll)
 *   Animación ...... gsap-fade · gsap-stagger · gsap-split · gsap-reveal · gsap-hero (+ gsap-hero-item)
 *                    gsap-counter · gsap-marquee · c-float
 */

:root {
	--c-carmesi: #AE063B;
	--c-profundo: #9D0C3C;
	--c-noche: #0E0E0E;
	--c-negro: #121212;
	--c-ease: cubic-bezier(.2, .7, .2, 1);
}

html,
body {
	overflow-x: clip;
}

body {
	background-color: var(--c-noche);
}

::selection {
	background: var(--c-carmesi);
	color: #FFFFFF;
}

/* ------------------------------------------------------------------ Titulares a dos colores */

/* <em>: la palabra clave en negrita (Geomanist 700), como en los posts */
.elementor-heading-title em {
	font-style: normal;
	font-weight: 700;
	letter-spacing: -0.02em;
}

/* <mark>: bloque carmesí con texto blanco. Se dibuja de izquierda a derecha al entrar */
.elementor-heading-title mark {
	--mk: 100%;
	color: #FFFFFF;
	font-weight: 700;
	letter-spacing: -0.02em;
	padding: 0 .18em .02em;
	margin: 0 -.04em;
	border-radius: .14em;
	background: linear-gradient(var(--c-carmesi), var(--c-carmesi)) no-repeat 0 0 / var(--mk) 100%;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
/* Con la frase resaltada en bloque, las líneas necesitan un poco más de aire para no pisarse */
.elementor-heading-title:has(mark) { line-height: 1.03 !important; }
@media (max-width: 767px) { .elementor-heading-title:has(mark) { line-height: 1.08 !important; } }
.colina-js body:not(.elementor-editor-active) .gsap-split:not(.is-marked) .elementor-heading-title mark {
	--mk: 0%;
}
.elementor-heading-title mark .c-line,
.elementor-heading-title mark div {
	color: inherit;
}

/* Links dentro de textos: blancos con subrayado fino */
.elementor-widget-text-editor a {
	color: #FFFFFF;
	text-decoration: underline;
	text-decoration-color: rgba(174, 6, 59, .9);
	text-underline-offset: .22em;
	text-decoration-thickness: 2px;
}

/* ------------------------------------------------------------------ Etiqueta (eyebrow) */

.c-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.c-eyebrow .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--c-carmesi);
	box-shadow: 0 0 0 0 rgba(174, 6, 59, .6);
	animation: colina-pulse-c 2.4s infinite;
}
@keyframes colina-pulse-c {
	70% { box-shadow: 0 0 0 8px rgba(174, 6, 59, 0); }
	100% { box-shadow: 0 0 0 0 rgba(174, 6, 59, 0); }
}

/* Punto blanco que late (cupos) */
.c-dot .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 10px;
	border-radius: 50%;
	background: #FFFFFF;
	box-shadow: 0 0 0 0 rgba(255, 255, 255, .6);
	animation: c-dot-pulse 2s infinite;
	vertical-align: middle;
	transform: translateY(-1px);
}
@keyframes colina-pulse {
	70% { box-shadow: 0 0 0 10px rgba(37, 211, 102, 0); }
	100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* ------------------------------------------------------------------ Botones */

.c-btn .elementor-button {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	gap: 14px;
	transition: background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .45s ease !important;
	will-change: transform;
}
.c-btn .elementor-button-content-wrapper {
	position: relative;
	z-index: 2;
	align-items: center;
}
.c-btn .elementor-button-icon {
	transition: transform .45s var(--c-ease), background-color .35s ease, color .35s ease;
}

/* Barrido de luz al pasar el mouse */
.c-btn .elementor-button::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, .28) 45%, transparent 70%);
	transform: translateX(-120%);
	transition: transform .8s var(--c-ease);
	pointer-events: none;
}
.c-btn .elementor-button:hover::before {
	transform: translateX(120%);
}

/* Primario: flecha dentro de un círculo blanco que gira al pasar el mouse */
.c-btn--primary .elementor-button {
	box-shadow: 0 10px 30px -12px rgba(174, 6, 59, .75);
}
.c-btn--primary .elementor-button:hover {
	box-shadow: 0 18px 44px -14px rgba(174, 6, 59, .95);
}
.c-btn--primary .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-left: 4px;
	border-radius: 50%;
	background: #FFFFFF;
	color: var(--c-carmesi);
	font-size: 13px;
}
.c-btn--primary .elementor-button-icon svg {
	width: 13px;
	height: 13px;
	fill: var(--c-carmesi);
}
.c-btn--primary .elementor-button:hover .elementor-button-icon {
	transform: rotate(-45deg);
}

/* Contorno con flecha larga (como en los posts) */
.c-btn--ghost .elementor-button-icon,
.c-btn--light .elementor-button-icon {
	font-size: 20px;
}
.c-btn--ghost .elementor-button-icon svg,
.c-btn--light .elementor-button-icon svg {
	width: 22px;
	height: 22px;
}
.c-btn--ghost .elementor-button:hover .elementor-button-icon,
.c-btn--light .elementor-button:hover .elementor-button-icon,
.c-btn--linklight .elementor-button:hover .elementor-button-icon,
.c-btn--wa .elementor-button:hover .elementor-button-icon {
	transform: translateX(6px);
}
.c-btn--wa .elementor-button {
	box-shadow: 0 10px 30px -14px rgba(37, 211, 102, .8);
}
.c-btn--wa .elementor-button:hover .elementor-button-icon {
	transform: scale(1.12) rotate(-8deg);
}

/* Enlace: subrayado que se dibuja */
.c-btn--linklight .elementor-button {
	border-bottom-color: transparent !important;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 1px;
	transition: background-size .45s var(--c-ease), color .3s ease !important;
}
.c-btn--linklight .elementor-button::before {
	display: none;
}
.c-btn--linklight .elementor-button:hover {
	background-size: 0% 1px;
	background-position: 100% 100%;
}

/* Formularios: el botón de enviar sigue el mismo sistema */
.c-form .elementor-field-type-submit .elementor-button {
	position: relative;
	overflow: hidden;
	box-shadow: 0 12px 34px -14px rgba(174, 6, 59, .9);
}
.c-form .elementor-field-type-submit .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, .25) 45%, transparent 70%);
	transform: translateX(-120%);
	animation: colina-shine 4.5s ease-in-out 2s infinite;
}
@keyframes colina-shine {
	0%, 70% { transform: translateX(-120%); }
	100% { transform: translateX(120%); }
}
.c-form .elementor-field-textual::placeholder {
	color: rgba(255, 255, 255, .38);
}
.c-form .elementor-field-textual:focus {
	box-shadow: 0 0 0 3px rgba(174, 6, 59, .35);
}
.c-form select.elementor-field-textual {
	-webkit-appearance: none;
	appearance: none;
}
.c-form select.elementor-field-textual option {
	background: #161616;
	color: #FFFFFF;
}
.c-form .elementor-select-wrapper .select-caret-down-wrapper {
	color: #FFFFFF;
}

/* ------------------------------------------------------------------ Texturas */

/* Grano de película sobre fondos y fotos */
.c-grain, .c-tex, .c-tex-g {
	position: relative;
}
.c-grain::before, .c-tex::before, .c-tex-g::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background-image: var(--c-grain);
	background-size: 220px 220px;
	opacity: .05;
	mix-blend-mode: overlay;
	pointer-events: none;
	border-radius: inherit;
}
.c-grain > .e-con-inner,
.c-grain > .elementor-element,
.c-tex > .e-con-inner, .c-tex > .elementor-element,
.c-tex-g > .e-con-inner, .c-tex-g > .elementor-element {
	position: relative;
	z-index: 2;
}

/* Borde de papel rasgado real (textura de la marca): la clase dice el color de la sección que sigue */
[class*="c-torn-"]:not(.c-torn-img) {
	position: relative;
}
[class*="c-torn-"]:not(.c-torn-img)::after {
	content: "";
	position: absolute;
	z-index: 3;
	left: 0;
	right: 0;
	bottom: -1px;
	height: clamp(18px, 1.9vw, 34px);
	background: var(--c-torn) repeat-x left bottom / auto 100%;
	pointer-events: none;
}

/* Borde superior rasgado (footer): la sección de arriba muerde el footer */
.c-torn-top { position: relative; }
[class*="c-torn-"].c-torn-top::after {
	bottom: auto;
	content: "";
	position: absolute;
	z-index: 3;
	left: 0;
	right: 0;
	top: -1px;
	height: clamp(18px, 1.9vw, 34px);
	background: url(../img/tex/borde-noche.png) repeat-x left bottom / auto 100%;
	transform: scaleY(-1);
	pointer-events: none;
}
.c-torn-noche { --c-torn: url(../img/tex/borde-noche.png); }
.c-torn-negro { --c-torn: url(../img/tex/borde-negro.png); }
.c-torn-grafito { --c-torn: url(../img/tex/borde-grafito.png); }
.c-torn-pizoscuro { --c-torn: url(../img/tex/borde-pizoscuro.png); }
.c-torn-carmesi { --c-torn: url(../img/tex/borde-carmesi.png); }

/* Fondos con textura (muro y tela) sobre el color de la sección, con su grano */
.c-tex, .c-tex-g {
	background-repeat: repeat !important;
	background-position: center top !important;
	background-blend-mode: lighten;
}
.c-tex { background-image: url(../img/tex/fondo-muro.jpg) !important; background-size: 1600px auto !important; }
.c-tex-g { background-image: url(../img/tex/fondo-tela.jpg) !important; background-size: 1100px auto !important; }
@media (max-width: 767px) {
	.c-tex { background-size: 900px auto !important; }
	.c-tex-g { background-size: 600px auto !important; }
}

/* Texto de los artículos del blog */
.c-prose h2, .c-prose h3, .c-prose h4 { color: #FFFFFF; font-family: Geomanist, sans-serif; letter-spacing: -0.01em; margin: 1.8em 0 .6em; line-height: 1.2; }
.c-prose h2 { font-size: clamp(28px, 3vw, 36px); font-weight: 300; }
.c-prose h3 { font-size: clamp(22px, 2.2vw, 26px); font-weight: 500; }
.c-prose p { margin: 0 0 1.25em; }
.c-prose strong { color: #FFFFFF; font-weight: 700; }
.c-prose a { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--c-carmesi); text-underline-offset: .2em; text-decoration-thickness: 2px; }
.c-prose ul, .c-prose ol { margin: 0 0 1.4em; padding-left: 1.2em; }
.c-prose li { margin-bottom: .5em; }
.c-prose li::marker { color: var(--c-carmesi); }
.c-prose blockquote { margin: 1.8em 0; padding: 26px 30px; border-left: 3px solid var(--c-carmesi); background: rgba(255,255,255,.04); border-radius: 0 20px 20px 0; color: #FFFFFF; font-size: 1.1em; font-weight: 300; }
.c-prose img { border-radius: 20px; height: auto; }
.c-prose figure { margin: 2em 0; }
.c-prose figcaption { color: #9AA6B4; font-size: 14px; margin-top: 10px; }
.c-prose table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: .9em; }
.c-prose th, .c-prose td { border-bottom: 1px solid rgba(255,255,255,.12); padding: 12px 10px; text-align: left; }
.c-prose th { color: #FFFFFF; font-weight: 500; }

/* Tarjetas de artículos (Pro Elements): la tarjeta sube apenas y la foto hace zoom dentro de su marco */
.c-posts .elementor-post__card { transition: transform .6s var(--c-ease), border-color .4s ease, box-shadow .6s var(--c-ease); }
.c-posts .elementor-post__card:hover { transform: translateY(-4px); border-color: rgba(255,255,255,.2) !important; box-shadow: 0 30px 60px -36px rgba(0,0,0,.9); }
.c-posts .elementor-post__thumbnail__link { overflow: hidden; display: block; }
.c-posts .elementor-post__thumbnail { overflow: hidden; transition: transform 1.2s var(--c-ease); transform-origin: 50% 50%; }
.c-posts .elementor-post__card:hover .elementor-post__thumbnail { transform: scale(1.06); }
.c-posts .elementor-post__thumbnail img { transition: filter .8s ease !important; }
.c-posts .elementor-post__card .elementor-post__read-more { transition: letter-spacing .4s var(--c-ease), color .3s; }
.c-posts .elementor-post__card:hover .elementor-post__read-more { letter-spacing: .08em; }
.c-posts .elementor-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); padding: 0 14px; }
.c-posts .elementor-pagination .page-numbers.current { background: var(--c-carmesi); border-color: var(--c-carmesi); }

/* Ícono con anillo que late (confirmaciones) */
.c-pulse .elementor-icon { position: relative; }
.c-pulse .elementor-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgba(174, 6, 59, .55);
	animation: colina-pulse 2.2s var(--c-ease) infinite;
}
@keyframes colina-pulse {
	0% { box-shadow: 0 0 0 0 rgba(174, 6, 59, .55); }
	100% { box-shadow: 0 0 0 26px rgba(174, 6, 59, 0); }
}

/* Foto en blanco y negro que toma color al pasar el mouse por su tarjeta */
.c-bw img,
.c-bw.e-con {
	filter: grayscale(1) contrast(1.08) brightness(.92);
	transition: filter .9s var(--c-ease), transform 1.1s var(--c-ease);
}
.c-bw:hover img,
.c-bw.e-con:hover,
.c-lift:hover .c-bw img {
	filter: none;
}

/* Texto gigante en contorno (fondo de sección) */
.c-outline .elementor-heading-title {
	white-space: nowrap;
	line-height: .9;
	pointer-events: none;
	user-select: none;
}

/* ------------------------------------------------------------------ Tarjetas */

.c-lift {
	transition: transform .55s var(--c-ease), box-shadow .55s ease, border-color .55s ease;
}
.c-lift:hover {
	transform: translateY(-6px);
	box-shadow: 0 34px 70px -34px rgba(0, 0, 0, .8);
}

/* Luz que sigue el cursor + borde que se enciende */
.c-glow {
	position: relative;
	isolation: isolate;
}
.c-glow::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 0%), rgba(174, 6, 59, .22), transparent 60%);
	opacity: 0;
	transition: opacity .5s ease;
	pointer-events: none;
}
.c-glow::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: radial-gradient(260px circle at var(--gx, 50%) var(--gy, 0%), rgba(255, 255, 255, .5), rgba(174, 6, 59, .5) 40%, transparent 70%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0;
	transition: opacity .5s ease;
	pointer-events: none;
}
.c-glow:hover::before,
.c-glow:hover::after {
	opacity: 1;
}
.c-glow > * {
	position: relative;
	z-index: 1;
}

/* Foto con zoom suave al pasar el mouse por su tarjeta */
.c-zoom,
.c-card-zoom .elementor-widget-image {
	overflow: hidden;
}
.c-zoom img,
.c-card-zoom .elementor-widget-image img {
	transition: transform 1.1s var(--c-ease), filter .9s var(--c-ease);
}
.c-zoom:hover img,
.c-card-zoom:hover .elementor-widget-image img {
	transform: scale(1.05);
}

/* Fondo de tarjeta con foto que se acerca al pasar el mouse */
.c-bgzoom {
	background-size: 100% auto;
	transition: background-size 1.2s var(--c-ease), transform .55s var(--c-ease), box-shadow .55s ease !important;
}
.c-bgzoom:hover {
	background-size: 108% auto;
}

/* Flecha de las tarjetas: círculo que late y flecha que sale y vuelve a entrar */
.c-card-arrow .elementor-icon {
	position: relative;
	overflow: hidden;
	transition: background-color .35s ease, color .35s ease, transform .45s var(--c-ease);
}
.c-lift:hover .c-card-arrow .elementor-icon,
.c-stack-card:hover .c-card-arrow .elementor-icon {
	background-color: var(--c-carmesi) !important;
	transform: rotate(-45deg);
}
.c-lift:hover .c-card-arrow .elementor-icon svg,
.c-stack-card:hover .c-card-arrow .elementor-icon svg {
	fill: #FFFFFF;
}

/* ------------------------------------------------------------------ Tarjetas apiladas (sticky) */

@media (min-width: 768px) {
	.c-stack {
		overflow: visible !important;
	}
	.c-stack > .e-con,
	.c-stack > .e-con-inner > .e-con {
		position: -webkit-sticky;
		position: sticky;
		top: calc(130px + var(--c-step, 0) * 18px);
		transform-origin: 50% 0;
		will-change: transform;
	}
	.c-stack > .e-con:nth-child(2), .c-stack > .e-con-inner > .e-con:nth-child(2) { --c-step: 1; }
	.c-stack > .e-con:nth-child(3), .c-stack > .e-con-inner > .e-con:nth-child(3) { --c-step: 2; }
	.c-stack > .e-con:nth-child(4), .c-stack > .e-con-inner > .e-con:nth-child(4) { --c-step: 3; }
	.c-stack > .e-con:nth-child(5), .c-stack > .e-con-inner > .e-con:nth-child(5) { --c-step: 4; }
	.c-stack > .e-con:nth-child(6), .c-stack > .e-con-inner > .e-con:nth-child(6) { --c-step: 5; }
	.c-stack > .e-con:nth-child(7), .c-stack > .e-con-inner > .e-con:nth-child(7) { --c-step: 6; }
	.c-stack > .e-con:nth-child(8), .c-stack > .e-con-inner > .e-con:nth-child(8) { --c-step: 7; }
	.c-stack > .e-con:nth-child(9), .c-stack > .e-con-inner > .e-con:nth-child(9) { --c-step: 8; }
	.c-sticky {
		position: -webkit-sticky;
		position: sticky !important;
		top: 140px;
		align-self: flex-start;
	}
}

/* ------------------------------------------------------------------ Proceso animado */

.c-process {
	position: relative;
	--c-node: 64px;
	--p: 0;
}
.c-process__track {
	position: absolute !important;
	z-index: 0;
	top: calc(var(--c-node) / 2);
	left: calc(var(--c-node) / 2);
	right: calc(var(--c-node) / 2);
	height: 2px;
	background: rgba(255, 255, 255, .12);
	border-radius: 2px;
	pointer-events: none;
}
.c-process__track::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--c-carmesi), #FF2E63);
	transform: scaleX(var(--p));
	transform-origin: 0 50%;
	box-shadow: 0 0 18px rgba(174, 6, 59, .8);
	border-radius: inherit;
}
.c-process__track::after {
	content: "";
	position: absolute;
	top: -4px;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #FFFFFF;
	box-shadow: 0 0 16px 4px rgba(255, 46, 99, .7);
	animation: colina-run 5.5s cubic-bezier(.65, 0, .35, 1) infinite;
}
@keyframes colina-run {
	0% { left: 0; opacity: 0; }
	8% { opacity: 1; }
	92% { opacity: 1; }
	100% { left: calc(100% - 10px); opacity: 0; }
}
.c-process__step {
	position: relative;
	z-index: 1;
}
.c-process__step .c-process__node .elementor-icon {
	transition: background-color .5s ease, color .5s ease, box-shadow .5s ease, transform .5s var(--c-ease);
}
.c-process__step.is-on .c-process__node .elementor-icon {
	background-color: var(--c-carmesi) !important;
	box-shadow: 0 0 0 8px rgba(174, 6, 59, .18), 0 12px 30px -8px rgba(174, 6, 59, .9);
	transform: scale(1.06);
}
.c-process__step.is-on .c-process__node .elementor-icon svg {
	fill: #FFFFFF;
}
.c-process__step .c-process__num .elementor-heading-title {
	transition: color .5s ease;
}
.c-process__step.is-on .c-process__num .elementor-heading-title {
	color: #FFFFFF !important;
}
@media (max-width: 1024px) {
	.c-process__track {
		top: calc(var(--c-node) / 2);
		bottom: calc(var(--c-node) / 2);
		left: calc(var(--c-node) / 2 - 1px);
		right: auto;
		width: 2px;
		height: auto;
	}
	.c-process__track::before {
		transform: scaleY(var(--p));
		transform-origin: 50% 0;
	}
	.c-process__track::after {
		left: -4px;
		animation-name: colina-run-v;
	}
	@keyframes colina-run-v {
		0% { top: 0; opacity: 0; }
		8% { opacity: 1; }
		92% { opacity: 1; }
		100% { top: calc(100% - 10px); opacity: 0; }
	}
}

/* ------------------------------------------------------------------ Pestañas */

.c-tabs .c-tab {
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: background-color .4s ease, border-color .4s ease, transform .4s var(--c-ease);
}
.c-tabs .c-tab::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: 2px;
	width: 100%;
	background: var(--c-carmesi);
	transform: scaleX(0);
	transform-origin: 0 50%;
}
.c-tabs .c-tab.is-active {
	background-color: rgba(255, 255, 255, .06) !important;
	border-color: rgba(255, 255, 255, .22) !important;
}
.c-tabs .c-tab.is-active::after {
	animation: colina-tab var(--c-tab-time, 7s) linear forwards;
}
.c-tabs.is-paused .c-tab.is-active::after {
	animation-play-state: paused;
}
@keyframes colina-tab {
	to { transform: scaleX(1); }
}
.c-tabs .c-tab .elementor-heading-title {
	transition: color .4s ease;
}
.c-tabs .c-tab:not(.is-active) .c-tab__name .elementor-heading-title {
	color: rgba(255, 255, 255, .55) !important;
}
.colina-js .c-tabs .c-tab-panel {
	display: none !important;
}
.colina-js .c-tabs .c-tab-panel.is-active {
	display: flex !important;
}
.elementor-editor-active .c-tabs .c-tab-panel {
	display: flex !important;
}

/* ------------------------------------------------------------------ Header */

/* Header: al bajar, la barra se vuelve una píldora flotante de vidrio oscuro y el logo se encoge.
   El vidrio va en un ::before para que el megamenú (hijo de la barra) pueda tener su propio vidrio. */
.c-header { transition: transform .5s var(--c-ease); }
.c-header .c-topbar {
	overflow: hidden;
	max-height: 60px;
	transition: max-height .5s var(--c-ease), opacity .35s ease, padding .5s var(--c-ease);
}
.c-header.is-scrolled { background: transparent !important; }
.c-header.is-scrolled .c-topbar {
	max-height: 0;
	opacity: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	border-color: transparent !important;
}
.c-header .c-header__bar {
	position: relative;
	transition: padding .6s var(--c-ease), margin .6s var(--c-ease), max-width .6s var(--c-ease);
}
.c-header .c-header__bar > .e-con-inner { position: relative; }
.c-header .c-header__bar > .e-con-inner::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: 0;
	border: 1px solid transparent;
	background: transparent;
	transition: background-color .5s ease, border-color .5s ease, border-radius .6s var(--c-ease), box-shadow .5s ease, inset .6s var(--c-ease);
	pointer-events: none;
}
.c-header.is-scrolled .c-header__bar {
	padding-top: 6px !important;
	padding-bottom: 6px !important;
	margin-top: 16px;
}
.c-header.is-scrolled .c-header__bar > .e-con-inner::before {
	inset: -5px -12px;
	border-radius: 999px;
	border-color: rgba(255, 255, 255, .1);
	background: rgba(18, 18, 18, .62);
	-webkit-backdrop-filter: blur(20px) saturate(160%);
	backdrop-filter: blur(20px) saturate(160%);
	box-shadow: 0 18px 40px -28px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.c-header .c-logo img, .c-header .elementor-widget-image img { transition: width .6s var(--c-ease), max-width .6s var(--c-ease), transform .6s var(--c-ease); transform-origin: left center; }
.c-header.is-scrolled .c-header__bar .elementor-widget-image img { transform: scale(.84); }
.c-header.is-scrolled .c-header__bar .elementor-widget-image { margin-left: 14px; }
/* Con la barra de WordPress (sesión iniciada) el header baja para no quedar debajo */
body.admin-bar .c-header { top: var(--wp-admin--admin-bar--height, 32px) !important; }
@media (max-width: 600px) { body.admin-bar .c-header { top: 0 !important; } }
.c-header .c-topbar { border: 0 !important; }
.c-header.is-hidden { transform: translateY(-110%); }
@media (max-width: 1024px) {
	.c-header.is-scrolled .c-header__bar { margin-top: 12px; }
	.c-header.is-scrolled .c-header__bar > .e-con-inner::before { inset: -4px -6px; border-radius: 22px; -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(18, 18, 18, .96); }
	.c-header.is-scrolled .c-header__bar .elementor-widget-image { margin-left: 10px; }
}

/* Vidrio esmerilado (el color de fondo lo pone el contenedor) */
.c-glass {
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
}

/* Menú ElementsKit: subrayado carmesí y megamenú centrado bajo el header.
   El megamenú lo abre colina-efectos.js (retraso 150 ms, tolerancia diagonal y teclado). */
@media (min-width: 1025px) {
	.c-header__bar { position: relative; }
	.c-header__bar > .c-nav,
	.c-nav .elementskit-menu-container,
	.c-nav .elementskit-navbar-nav,
	.c-nav .elementor-widget-container,
	.c-nav .ekit-wid-con,
	.c-nav .elementskit-navbar-nav > li { position: static !important; }
	.c-nav .elementskit-navbar-nav { justify-content: center; flex-wrap: nowrap !important; }
	.c-nav .elementskit-navbar-nav > li > a { position: relative; white-space: nowrap; }
	.c-nav .elementskit-navbar-nav > li > a::after {
		content: "";
		position: absolute;
		left: 15px;
		right: 15px;
		bottom: 4px;
		height: 2px;
		border-radius: 2px;
		background: var(--c-carmesi);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .4s var(--c-ease);
	}
	.c-nav .elementskit-navbar-nav > li:hover > a::after,
	.c-nav .elementskit-navbar-nav > li.current-menu-item > a::after,
	.c-nav .elementskit-navbar-nav > li.current-menu-ancestor > a::after,
	.c-nav .elementskit-navbar-nav > li.colina-open > a::after { transform: scaleX(1); }
	.c-nav .elementskit-megamenu-panel {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		margin: 0 auto !important;
		width: min(1180px, calc(100vw - 48px)) !important;
		max-width: none !important;
		background: transparent !important;
		box-shadow: none !important;
	}
	.colina-js .c-nav .elementskit-megamenu-has > .elementskit-megamenu-panel {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: none !important;
		transition: none !important;
	}
	.colina-js .c-nav .elementskit-megamenu-has.colina-open > .elementskit-megamenu-panel {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}
@media (max-width: 1240px) and (min-width: 1025px) {
	.c-nav .elementskit-navbar-nav > li > a { padding-left: 10px !important; padding-right: 10px !important; }
}

/* ------------------------------------------------------------------ Varios */

/* Fondo con foto que hace zoom lento (hero) */
.c-kenburns {
	background-size: 108% auto;
	animation: colina-kb 18s ease-in-out infinite alternate;
}
@keyframes colina-kb {
	from { background-size: 108% auto; }
	to { background-size: 116% auto; }
}
@media (max-width: 1024px) {
	.c-kenburns {
		animation: none;
		background-size: cover;
	}
}

/* Imagen que flota suave */
.c-float img {
	animation: colina-float 7s ease-in-out infinite;
}
@keyframes colina-float {
	50% { transform: translateY(-10px); }
}

/* Marquee: palabras llenas y en contorno, alternadas */
.gsap-marquee {
	overflow: hidden;
}
.gsap-marquee .elementor-heading-title {
	white-space: nowrap;
}
.c-marquee-track {
	display: inline-flex;
	will-change: transform;
}
.c-marquee-track > span {
	display: inline-flex;
	align-items: center;
	padding-right: .4em;
}
.c-marquee-track > span:nth-child(even) {
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .55);
}
.c-marquee-track .sep {
	display: inline-block;
	width: .32em;
	height: .32em;
	margin-left: .45em;
	border-radius: 50%;
	background: var(--c-carmesi);
	font-size: inherit;
	color: transparent;
	-webkit-text-stroke: 0;
	overflow: hidden;
	vertical-align: middle;
}

/* Estados iniciales de las animaciones (solo con JS activo y fuera del editor) */
.colina-js body:not(.elementor-editor-active) .gsap-fade:not(.is-in),
.colina-js body:not(.elementor-editor-active) .gsap-hero:not(.is-in) .gsap-hero-item {
	opacity: 0;
}
.colina-js body:not(.elementor-editor-active) .gsap-stagger:not(.is-in) > .e-con-inner > *,
.colina-js body:not(.elementor-editor-active) .gsap-stagger:not(.is-in) > :not(.e-con-inner) {
	opacity: 0;
}
.gsap-split .c-line {
	padding-bottom: .1em;
	margin-bottom: -.1em;
}

/* Texto que se ilumina con el scroll: las palabras pasan de tenues a blancas */
.c-highlight .c-word {
	transition: none;
}

/* Popups: botón de cerrar en círculo y esquinas recortadas */
.c-popup .dialog-message { overflow: hidden; }
.c-popup .dialog-close-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 50% !important;
	background: rgba(14, 14, 14, .6) !important;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #FFFFFF !important;
	box-shadow: 0 8px 24px -10px rgba(0, 0, 0, .45);
	transition: transform .3s ease;
}
.c-popup .dialog-close-button:hover { transform: rotate(90deg); background: #AE063B !important; border-color: #AE063B !important; }
.c-popup .dialog-close-button:focus { outline: none; }
.c-popup .dialog-close-button:focus-visible { box-shadow: 0 0 0 3px rgba(174, 6, 59, .5); }
.c-popup .dialog-close-button svg,
.c-popup .dialog-close-button i { fill: #FFFFFF !important; color: #FFFFFF !important; width: 16px; height: 16px; font-size: 16px; }

/* Mapa: colores reales un poco apagados (v2.6.1: el invertido se veía casi negro) */
.c-map iframe {
	filter: saturate(.55) contrast(1.02) !important;
}

/* Barra de progreso de lectura */
.c-progress {
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	pointer-events: none;
}
.c-progress span {
	display: block;
	height: 100%;
	background: var(--c-carmesi);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

/* Foco visible accesible */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible {
	outline: 2px solid #FFFFFF;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}
}

/* Proceso en tablet y móvil: lista vertical con el nodo a la izquierda */
@media (max-width: 1024px) {
	.c-process__step .c-process__node {
		position: absolute !important;
		top: 0;
		left: 0;
	}
}

/* Índice de documentos legales */
.c-index-link { transition: padding-left .35s var(--c-ease), border-color .35s ease; }
.c-index-link:hover { padding-left: 8px !important; border-color: rgba(174,6,59,.7) !important; }
.c-index-link:hover .elementor-heading-title { color: #FFFFFF !important; }
.c-prose code { font-size: .85em; background: rgba(255,255,255,.08); padding: 2px 6px; border-radius: 6px; }
html { scroll-padding-top: 130px; }
.c-prose table, .c-prose table td, .c-prose table th { border: 0 !important; background: transparent !important; }
.c-prose table td, .c-prose table th { border-bottom: 1px solid rgba(255,255,255,.12) !important; padding: 14px 12px !important; vertical-align: top; }
.c-prose table thead th { color: #9AA6B4; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; }
.c-prose table td:first-child { color: #FFFFFF; font-weight: 500; }
@media (max-width: 767px) { .c-prose table { display: block; overflow-x: auto; white-space: normal; } .c-prose table td, .c-prose table th { min-width: 140px; } }

/* ==================================================================== v2.5 · ronda de diseño de Cami */

/* ------------------------------------------------------------------ Flechas de la marca (SVG de Cami) */
.e-fas-arrow-right, .e-fas-long-arrow-alt-right, .e-fas-arrow-up {
	background-color: currentColor;
	-webkit-mask: url(../img/ui/arrow-right.svg) center / contain no-repeat;
	mask: url(../img/ui/arrow-right.svg) center / contain no-repeat;
}
.e-fas-arrow-up { -webkit-mask-image: url(../img/ui/arrow-up.svg); mask-image: url(../img/ui/arrow-up.svg); }
.e-fas-arrow-right path, .e-fas-long-arrow-alt-right path, .e-fas-arrow-up path { opacity: 0; }
/* Calendario de la marca (SVG de Cami, 2.6.1) en «Agenda tu valoración» */
.e-far-calendar-check, .e-fas-calendar-check, .e-far-calendar-alt, .e-fas-calendar-alt {
	background-color: currentColor;
	-webkit-mask: url(../img/ui/calendar.svg) center / contain no-repeat;
	mask: url(../img/ui/calendar.svg) center / contain no-repeat;
}
.e-far-calendar-check path, .e-fas-calendar-check path, .e-far-calendar-alt path, .e-fas-calendar-alt path { opacity: 0; }

/* ------------------------------------------------------------------ Botones: hovers que sí se ven */
/* Elementor pinta el ícono con el color de hover del texto: aquí se fija para cada variante */
.c-btn--primary .elementor-button .elementor-button-icon svg,
.c-btn--primary .elementor-button:hover .elementor-button-icon svg,
.c-btn--primary .elementor-button:focus .elementor-button-icon svg { fill: var(--c-carmesi) !important; color: var(--c-carmesi) !important; }
.c-btn--primary .elementor-button .elementor-button-icon { overflow: hidden; position: relative; }
.c-btn--primary .elementor-button:hover .elementor-button-icon { transform: none; }
/* El ícono sale por la derecha y entra por la izquierda */
.c-btn .elementor-button-icon svg { transition: transform .5s var(--c-ease), opacity .3s ease; }
.c-btn--primary .elementor-button:hover .elementor-button-icon svg { animation: c-ico-through .7s var(--c-ease); }
@keyframes c-ico-through {
	0% { transform: translateX(0); opacity: 1; }
	45% { transform: translateX(160%); opacity: 0; }
	46% { transform: translateX(-160%); opacity: 0; }
	100% { transform: translateX(0); opacity: 1; }
}
/* Íconos que no son flecha: un pequeño gesto propio */
.c-btn .elementor-button:hover .e-far-calendar-check,
.c-btn .elementor-button:hover .e-far-bell { animation: c-ico-ring .7s var(--c-ease) !important; }
@keyframes c-ico-ring { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-14deg); } 60% { transform: rotate(10deg); } }
.c-btn .elementor-button:hover .e-fas-download { animation: c-ico-drop .7s var(--c-ease) !important; }
@keyframes c-ico-drop { 0% { transform: translateY(0); } 45% { transform: translateY(5px); } 100% { transform: translateY(0); } }
.c-btn .elementor-button:hover .e-fas-paw { animation: c-ico-paw .8s var(--c-ease) !important; }
@keyframes c-ico-paw { 0%, 100% { transform: rotate(0) scale(1); } 40% { transform: rotate(-18deg) scale(1.15); } }
.c-btn .elementor-button:hover .e-fas-play { animation: c-ico-pop .6s var(--c-ease) !important; }
@keyframes c-ico-pop { 50% { transform: scale(1.3); } }
/* Contorno: se llena de blanco desde abajo */
.c-btn--ghost .elementor-button, .c-btn--outline .elementor-button { background-image: linear-gradient(#fff, #fff); background-repeat: no-repeat; background-size: 100% 0%; background-position: 50% 100%; transition: background-size .55s var(--c-ease), color .35s ease, border-color .35s ease !important; }
.c-btn--outline .elementor-button { background-image: linear-gradient(#121212, #121212); }
.c-btn--ghost .elementor-button:hover, .c-btn--outline .elementor-button:hover { background-size: 100% 100%; }
.c-btn--ghost .elementor-button::before, .c-btn--outline .elementor-button::before { display: none; }
.c-btn--ghost .elementor-button:hover .elementor-button-icon, .c-btn--outline .elementor-button:hover .elementor-button-icon { transform: translateX(5px); }
.c-btn--dark .elementor-button:hover .elementor-button-icon { transform: translateX(5px); }
/* Toque al hacer clic */
.c-btn .elementor-button:active { transform: scale(.97); }

/* ------------------------------------------------------------------ Volver arriba */
/* (estilos en colina-wa.css; el botón lo crea colina-efectos.js) */

/* ------------------------------------------------------------------ Secciones claras (descanso visual) */
.c-light { --c-light-text: #272727; }
.c-light .c-outline .elementor-heading-title { -webkit-text-stroke-color: rgba(18, 18, 18, .14) !important; }
.c-light .c-eyebrow-pill, .c-light .c-dot { color: #121212; }
.c-light .elementor-accordion .elementor-tab-title, .c-light .e-n-accordion-item-title { color: #121212; }
.c-light .e-n-accordion-item-title-text { color: var(--n-accordion-title-normal-color, #121212); transition: color .3s ease; }
.c-light .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--n-accordion-title-hover-color, #AE063B); }
.c-light .elementor-widget-text-editor a { color: #121212; }
.c-light .c-keep-dark .elementor-widget-text-editor a { color: #FFFFFF; }
.c-light .c-lift:hover { box-shadow: 0 30px 60px -34px rgba(18, 18, 18, .35); }
.c-light .c-form input, .c-light .c-form textarea, .c-light .c-form select { background-color: #fff !important; }
.c-torn-gris { --c-torn: url(../img/tex/borde-gris.png); }
.c-torn-blanco { --c-torn: url(../img/tex/borde-blanco.png); }

/* ------------------------------------------------------------------ Texturas: solo un detalle */
/* Cami (v2.6): las imágenes de textura al 10 % de opacidad. La foto va en una capa propia (::before)
   y el fondo de la sección queda solo con su color. */
.c-tex, .c-tex-g { background-image: none !important; }
.c-tex::before, .c-tex-g::before {
	background-repeat: repeat; background-position: center top; mix-blend-mode: normal; opacity: .1;
	-webkit-mask-image: none; mask-image: none;
}
.c-tex::before { background-image: url(../img/tex/fondo-muro.jpg); background-size: 1600px auto; }
.c-tex-g::before { background-image: url(../img/tex/fondo-tela.jpg); background-size: 1100px auto; }
@media (max-width: 767px) { .c-tex::before { background-size: 900px auto; } .c-tex-g::before { background-size: 600px auto; } }
.c-grain::before { opacity: .035; }

/* ------------------------------------------------------------------ Megamenú: vidrio oscuro */
.c-mega-glass {
	background-color: rgba(18, 18, 18, .72) !important;
	-webkit-backdrop-filter: blur(24px) saturate(160%) !important;
	backdrop-filter: blur(24px) saturate(160%) !important;
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .07) !important;
}
.c-nav .elementskit-megamenu-panel, .c-nav .elementskit-submenu-panel { background: transparent !important; box-shadow: none !important; }

/* ------------------------------------------------------------------ Footer: llamado final con fichas */
.c-footer-cta { isolation: isolate; }
.c-tile { transition: transform .5s var(--c-ease), border-color .35s ease, background-color .35s ease !important; }
.c-tile:hover { transform: translateY(-3px); border-color: rgba(255, 255, 255, .28) !important; background-color: rgba(255, 255, 255, .09) !important; }
.c-tile:hover .elementor-icon { background-color: var(--c-carmesi) !important; border-color: var(--c-carmesi) !important; }
.c-tile .elementor-icon { transition: background-color .35s ease, border-color .35s ease; }

/* ------------------------------------------------------------------ Formularios: pastillas, pasos y autocompletar */
.c-form .elementor-field-type-radio .elementor-field-subgroup,
.c-form .elementor-field-type-checkbox .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 8px; }
.c-form .elementor-field-type-radio .elementor-field-option,
.c-form .elementor-field-type-checkbox .elementor-field-option { position: relative; margin: 0 !important; padding: 0 !important; }
.c-form .elementor-field-option input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 2; }
.c-form .elementor-field-option label {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 9px 16px; border-radius: 999px; cursor: pointer;
	border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .04); color: rgba(255, 255, 255, .86);
	font-size: 14px; font-weight: 500; line-height: 1.2; transition: background-color .3s ease, border-color .3s ease, color .3s ease, transform .35s var(--c-ease);
}
.c-form .elementor-field-option:hover label { border-color: rgba(255, 255, 255, .4); }
.c-form .elementor-field-option input:checked + label { background: var(--c-carmesi); border-color: var(--c-carmesi); color: #fff; }
.c-form .elementor-field-option input:focus-visible + label { outline: 2px solid #fff; outline-offset: 2px; }
.c-form .elementor-field-option input:active + label { transform: scale(.96); }
.c-form--light .elementor-field-option label, .c-light .c-form .elementor-field-option label { border-color: #12121224; background: #fff; color: #272727; }
.c-form--light .elementor-field-option:hover label, .c-light .c-form .elementor-field-option:hover label { border-color: #12121266; }
.c-form--light .elementor-field-option input:checked + label, .c-light .c-form .elementor-field-option input:checked + label { background: #121212; border-color: #121212; color: #fff; }
.c-form .elementor-field-type-acceptance .elementor-field-option label { display: inline; min-height: 0; padding: 0; border: 0; background: none; border-radius: 0; font-weight: 400; }
.c-form .elementor-field-type-acceptance .elementor-field-option input { position: static; opacity: 1; width: auto; height: auto; margin-right: 8px !important; accent-color: var(--c-carmesi); }
/* Pasos (formulario de valoración) */
.c-form .e-form__indicators { gap: 10px; margin-bottom: 22px; }
.c-form .e-form__indicators__indicator { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }
.c-form .e-form__indicators__indicator__number { width: 30px; height: 30px; border-radius: 50%; font-weight: 600; transition: all .4s var(--c-ease); }
.c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number { background: var(--c-carmesi) !important; border-color: var(--c-carmesi) !important; color: #fff !important; box-shadow: 0 0 0 5px rgba(174, 6, 59, .18); }
.c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: #121212 !important; border-color: #121212 !important; color: #fff !important; }
.c-form .e-form__indicators__indicator__separator { height: 2px; border-radius: 2px; background: rgba(18, 18, 18, .12); }
.c-form .e-form__buttons { gap: 10px; }
.c-form .e-form__buttons__wrapper__button { border-radius: 999px !important; padding: 16px 26px !important; font-weight: 500 !important; transition: transform .35s var(--c-ease), background-color .3s ease !important; }
.c-form .e-form__buttons__wrapper__button-next { background: var(--c-carmesi) !important; color: #fff !important; }
.c-form .e-form__buttons__wrapper__button-next:hover { background: var(--c-profundo, #9D0C3C) !important; transform: translateY(-1px); }
.c-form .e-form__buttons__wrapper__button-previous { background: transparent !important; color: inherit !important; border: 1px solid rgba(18, 18, 18, .2) !important; }
.c-form .elementor-field-group.e-form__step { animation: c-step-in .55s var(--c-ease); }
@keyframes c-step-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
/* Autocompletar del navegador sin el azul claro */
.c-form input:-webkit-autofill, .c-form textarea:-webkit-autofill, .c-form select:-webkit-autofill {
	-webkit-text-fill-color: #FFFFFF !important;
	caret-color: #FFFFFF;
	box-shadow: 0 0 0 1000px #222222 inset !important;
	transition: background-color 9999s ease-out 0s;
}
.c-light .c-form input:-webkit-autofill { box-shadow: 0 0 0 1000px #F6F6F6 inset !important; -webkit-text-fill-color: #121212 !important; }
.c-form .elementor-message { font-size: 14px; border-radius: 12px; padding: 10px 14px; margin-top: 12px; }
.c-form .elementor-message.elementor-message-danger { background: rgba(174, 6, 59, .1); }
.c-form .elementor-message::before { display: none; }
.c-form .elementor-error .elementor-field { border-color: var(--c-carmesi) !important; }
.c-form .elementor-field:focus { border-color: var(--c-carmesi) !important; box-shadow: 0 0 0 4px rgba(174, 6, 59, .14) !important; outline: none; }

/* ------------------------------------------------------------------ Popup de valoración (oscuro, dos columnas, ordenado · v2.6) */
.c-popup--val .dialog-widget-content { overflow: hidden; }
.c-popup--val .c-val-side { position: relative; }
.c-popup--val .c-val-chip { animation: c-float 5s ease-in-out infinite; }
@keyframes c-float { 50% { transform: translateY(-8px); } }
.c-popup--val .dialog-widget-content { border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 50px 120px -30px rgba(0, 0, 0, .85) !important; }
.c-popup--val .dialog-close-button { background: rgba(255, 255, 255, .08) !important; border: 1px solid rgba(255, 255, 255, .18) !important; }
.c-popup--val .dialog-close-button i, .c-popup--val .dialog-close-button svg { color: #fff !important; fill: #fff !important; }
.c-popup--val .dialog-close-button:hover { background: #AE063B !important; border-color: #AE063B !important; }
/* Pasos en una sola línea: número y nombre juntos (todos los formularios de dos pasos) */
.c-form .e-form__indicators { margin-bottom: 18px; align-items: center; flex-wrap: nowrap; }
.c-form .e-form__indicators__indicator { flex-direction: row; gap: 10px; white-space: nowrap; flex: none; letter-spacing: .12em; }
.c-form .e-form__indicators__indicator__number { width: 28px; height: 28px; margin: 0 !important; border: 1px solid rgba(255, 255, 255, .25) !important; background: transparent; color: #fff; }
.c-form .e-form__indicators__indicator__separator { flex: 1 1 auto; margin: 0 6px; min-width: 24px; }
@media (max-width: 400px) { .c-form .e-form__indicators__indicator { font-size: 11px; letter-spacing: .08em; } }
/* Pastillas más compactas y parejas */
.c-popup--val .c-form .elementor-field-subgroup { gap: 6px !important; }
.c-popup--val .c-form .elementor-field-option label { padding: 8px 14px !important; font-size: 13.5px !important; min-height: 0 !important; line-height: 1.2 !important; }
.c-popup--val .c-form .elementor-field-group { margin-bottom: 0; }
.c-popup--val .c-form .elementor-field-textual { min-height: 46px; padding-top: 10px; padding-bottom: 10px; font-size: 15px; }
.c-popup--val .c-form textarea.elementor-field-textual { min-height: 84px; }
.c-popup--val .c-form > .elementor-form-fields-wrapper > .elementor-field-group > label,
.c-popup--val .c-form .elementor-field-label { font-size: 12px !important; letter-spacing: .1em; text-transform: uppercase; color: #9AA6B4 !important; }
.c-popup--val .c-form .e-form__buttons__wrapper__button-previous { border-color: rgba(255, 255, 255, .24) !important; color: #fff !important; }
@media (max-width: 1024px) {
	.c-popup--val .dialog-widget-content { max-height: 92vh; overflow-y: auto !important; }
}

/* ------------------------------------------------------------------ Reseñas de Google */
.c-rv { --c-rv-gap: 18px; }
.c-rv__summary { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 34px; }
.c-rv__g svg { width: 46px; height: 46px; display: block; }
.c-rv__line { display: flex; align-items: center; gap: 12px; }
.c-rv__score { font-family: Geomanist, sans-serif; font-size: 44px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.c-rv__stars { display: inline-flex; gap: 2px; color: #F5B301; }
.c-rv__stars svg { width: 20px; height: 20px; }
.c-rv__card .c-rv__stars svg { width: 16px; height: 16px; }
.c-rv__total { margin: 6px 0 0; font-size: 14px; }
.c-rv__links { display: flex; gap: 10px; margin-left: auto; flex-wrap: wrap; }
.c-rv__link { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; border: 1px solid rgba(18, 18, 18, .2); color: #121212; font-weight: 500; font-size: 15px; text-decoration: none; transition: all .35s var(--c-ease); }
.c-rv__link:hover { background: #121212; color: #fff; border-color: #121212; }
.c-rv__link--solid { background: #121212; color: #fff; border-color: #121212; }
.c-rv__link--solid:hover { background: var(--c-carmesi); border-color: var(--c-carmesi); }
.c-rv__viewport { overflow: hidden; margin: 0 calc(50% - 50vw); padding: 10px 0 30px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.c-rv__track { display: flex; gap: var(--c-rv-gap); width: max-content; animation: c-rv-scroll var(--c-rv-speed, 60s) linear infinite; }
.c-rv__viewport:hover .c-rv__track { animation-play-state: paused; }
@keyframes c-rv-scroll { to { transform: translateX(calc(-50% - var(--c-rv-gap) / 2)); } }
.c-rv__card { flex: none; width: 360px; margin: 0; padding: 26px; border: 1px solid #1212121A; background: #fff; border-radius: 24px; display: flex; flex-direction: column; gap: 14px; transition: transform .5s var(--c-ease), box-shadow .5s var(--c-ease); }
.c-rv__card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -36px rgba(18, 18, 18, .45); }
.c-rv__head { display: flex; align-items: center; gap: 12px; }
.c-rv__head figcaption { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.c-rv__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; }
.c-rv__avatar--ini { display: inline-flex; align-items: center; justify-content: center; background: #121212; color: #fff; font-weight: 600; }
.c-rv__name { font-weight: 500; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-rv__when { font-size: 13px; }
.c-rv__gmini svg { width: 20px; height: 20px; display: block; }
.c-rv__text { margin: 0; padding: 0; border: 0; font-size: 15px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; font-style: normal; }
.c-rv__empty { padding: 24px; border: 1px dashed #9AA6B4; border-radius: 16px; font-size: 14px; color: #5B636D; }
@media (max-width: 767px) { .c-rv__card { width: 290px; padding: 22px; } .c-rv__links { margin-left: 0; } .c-rv__score { font-size: 38px; } }
@media (prefers-reduced-motion: reduce) { .c-rv__track { animation: none; } .c-rv__viewport { overflow-x: auto; } }

/* ------------------------------------------------------------------ Vida: tarjetas, fotos y entradas */
/* Tarjetas con luz que sigue al mouse */
.c-spot { position: relative; overflow: hidden; }
.c-spot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .4s ease; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .09), transparent 45%); }
.c-light .c-spot::after { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(174, 6, 59, .07), transparent 45%); }
.c-spot:hover::after { opacity: 1; }
/* Inclinación 3D suave (la pone colina-efectos.js) */
.c-tilt { transform-style: preserve-3d; will-change: transform; transition: transform .6s var(--c-ease); }
/* Foto que se descubre con cortina */
.c-curtain { overflow: hidden; }
.colina-js .c-curtain img { clip-path: inset(0 0 0 100%); transform: scale(1.12); transition: clip-path 1.3s var(--c-ease), transform 1.8s var(--c-ease); }
.colina-js .c-curtain.is-in img { clip-path: inset(0 0 0 0); transform: scale(1); }
/* Íconos que flotan */
.c-bob .elementor-icon { animation: c-float 4.5s ease-in-out infinite; }
/* Línea que se dibuja bajo un título */
.c-underline .elementor-heading-title { background: linear-gradient(var(--c-carmesi), var(--c-carmesi)) 0 100% / 0 3px no-repeat; transition: background-size 1.2s var(--c-ease); padding-bottom: 8px; }
.c-underline.is-in .elementor-heading-title { background-size: 72px 3px; }
/* Chips flotantes sobre fotos */
.c-chip { animation: c-float 6s ease-in-out infinite; }
.c-chip:nth-child(2n) { animation-delay: -3s; }
/* Bento: tarjeta con foto que crece al pasar */
.c-bento { overflow: hidden; }
.c-bento .c-bento__bg { transition: transform 1.4s var(--c-ease); }
.c-bento:hover .c-bento__bg { transform: scale(1.06); }
.c-bento.e-con { background-size: 100% auto; transition: background-size 1.4s var(--c-ease); }
.c-bento.e-con:hover { background-size: 108% auto; }
@media (prefers-reduced-motion: reduce) {
	.c-chip, .c-bob .elementor-icon, .c-popup--val .c-val-chip { animation: none !important; }
	.colina-js .c-curtain img { clip-path: none; transform: none; }
}

.c-form .e-form__indicators__indicator__label { color: #9AA6B4; font-weight: 500; }
.c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: #FFFFFF; }
.c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: #FFFFFF !important; border-color: #FFFFFF !important; color: #121212 !important; }
.c-form .e-form__indicators__indicator__separator { background: rgba(255, 255, 255, .14); }
.c-light .c-form .e-form__indicators__indicator__label { color: #5B636D; }
.c-light .c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: #121212; }
.c-light .c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: #121212 !important; border-color: #121212 !important; color: #fff !important; }
.c-light .c-form .e-form__indicators__indicator__separator { background: rgba(18, 18, 18, .12); }

/* ------------------------------------------------------------------ Diagramación v2.5 */
/* Marquee recto, sin fondo de color (v2.6) */
.c-band-wrap .gsap-marquee .c-marquee-track > span:nth-child(even) { -webkit-text-stroke-color: rgba(255, 255, 255, .4); }
/* Hero: cifras en vidrio e indicador de scroll */
.c-hero-stats > .e-con:first-child, .c-hero-stats > .e-con-inner > .e-con:first-child { border-left-color: transparent !important; }
@media (max-width: 767px) { .c-hero-stats > .e-con, .c-hero-stats > .e-con-inner > .e-con { border-left: 0 !important; } }
.c-scroll .elementor-heading-title { writing-mode: vertical-rl; display: flex; align-items: center; gap: 14px; }
.c-scroll__line { position: relative; display: block; width: 1px; height: 64px; background: rgba(255, 255, 255, .18); overflow: hidden; }
.c-scroll__line::after { content: ""; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: #fff; animation: c-scroll-line 2.2s var(--c-ease) infinite; }
@keyframes c-scroll-line { to { top: 100%; } }
/* VS entre tarjetas comparativas */
.c-vs { position: absolute !important; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 3; width: 56px !important; }
.c-vs .elementor-heading-title { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #AE063B; box-shadow: 0 0 0 8px #F6F6F6; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 1024px) { .c-vs { display: none; } }
/* Reseñas: la sección no aparece hasta que lleguen reseñas reales */
.c-reviews:not(:has(.c-rv)) { display: none !important; }
.elementor-editor-active .c-reviews:not(:has(.c-rv)) { display: flex !important; }
body:not(.elementor-editor-active) [class*="c-torn-"]:has(+ .c-reviews:not(:has(.c-rv)))::after { display: none; }
/* Mapa con borde suave */
.c-map-wrap iframe { border-radius: 32px; }
/* Bento */
.c-bento .c-card-arrow .elementor-icon { transition: transform .5s var(--c-ease), background-color .35s ease; }
.c-bento:hover .c-card-arrow .elementor-icon { background-color: #AE063B !important; }
.c-bento { transition: transform .6s var(--c-ease), border-color .4s ease, box-shadow .6s var(--c-ease), background-size 1.4s var(--c-ease) !important; }
.c-bento:hover { border-color: rgba(255, 255, 255, .26) !important; }
.c-bento-col > .e-con, .c-bento-col > .e-con-inner > .e-con { flex: 1 1 auto; }

@keyframes c-dot-pulse { 70% { box-shadow: 0 0 0 9px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } }
.c-outline--abs { position: absolute !important; right: -2%; bottom: 4%; z-index: 0; pointer-events: none; width: auto !important; }
.c-outline--tl { top: 2%; left: -1%; right: auto; bottom: auto; }
.c-outline--tr { top: 24px; bottom: auto; right: -1%; }
.c-ico-soft .elementor-icon { box-shadow: 0 10px 22px -14px rgba(174, 6, 59, .55); }
.c-light .c-lift:hover .c-ico-soft .elementor-icon { background-color: #AE063B !important; color: #fff !important; fill: #fff !important; }
.c-light .c-lift:hover .c-ico-soft .elementor-icon svg { fill: #fff !important; }
.c-light .c-lift:hover .c-ico-soft .elementor-icon i { color: #fff !important; }

/* ------------------------------------------------------------------ Header móvil + menú en popup (v2.5) */
@media (max-width: 520px) { .c-hide-sm { display: none !important; } }
.c-burger .elementor-icon { position: relative; transition: background-color .3s ease, border-color .3s ease, transform .45s var(--c-ease); }
.c-burger .elementor-icon i, .c-burger .elementor-icon svg { opacity: 0; }
.c-burger .elementor-icon::before, .c-burger .elementor-icon::after {
	content: ""; position: absolute; left: 50%; height: 1.6px; border-radius: 2px; background: #fff;
	transform: translateX(-50%); transition: width .45s var(--c-ease), transform .45s var(--c-ease);
}
.c-burger .elementor-icon::before { top: calc(50% - 4px); width: 18px; }
.c-burger .elementor-icon::after { top: calc(50% + 3px); width: 12px; transform: translateX(calc(-50% + 3px)); }
.c-burger:hover .elementor-icon::after { width: 18px; transform: translateX(-50%); }
.c-burger:hover .elementor-icon { border-color: #AE063B !important; }
.c-header.is-scrolled .c-header__bar--mob .elementor-widget-image img { transform: scale(.86); }

.c-popup--menu .dialog-widget-content { background: radial-gradient(120% 60% at 100% 0%, rgba(174, 6, 59, .22) 0%, rgba(174, 6, 59, 0) 60%), #0E0E0E !important; }
.c-popup--menu .dialog-close-button {
	width: 46px; height: 46px; border-radius: 50%; display: flex !important; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2); transition: background-color .3s, transform .45s var(--c-ease);
}
.c-popup--menu .dialog-close-button:hover { background: #AE063B; border-color: #AE063B; transform: rotate(90deg); }
.c-popup--menu .c-menu-list .e-n-accordion-item,
.c-popup--menu .c-menu-direct { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.c-popup--menu .c-menu-list .e-n-accordion-item-title { border-width: 0 !important; }
.c-popup--menu .c-menu-direct a { color: #fff; display: flex; justify-content: space-between; align-items: center; transition: color .3s, padding .45s var(--c-ease); }
.c-popup--menu .c-menu-direct a::after { content: ""; width: 16px; height: 16px; background: currentColor; opacity: .6; -webkit-mask: url(../img/ui/arrow-right.svg) center / contain no-repeat; mask: url(../img/ui/arrow-right.svg) center / contain no-repeat; }
.c-popup--menu .c-menu-direct a:hover { padding-left: 6px; }
.c-popup--menu .c-menu-links a { transition: color .25s, padding .4s var(--c-ease); }
.c-popup--menu .c-menu-links a:hover { color: #fff; padding-left: 4px; }
.c-popup--menu .c-btn-full, .c-popup--menu .c-btn-full .elementor-button { width: 100%; }
.c-popup--menu .c-btn-full .elementor-button { justify-content: center; }
/* Entrada en cascada al abrir (las animaciones CSS se reinician cuando el popup se muestra) */
@keyframes c-menu-in { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
.c-popup--menu .c-menu-list .e-n-accordion-item, .c-popup--menu .c-menu-direct, .c-popup--menu .c-btn-full, .c-popup--menu .c-menu-body > .e-con:last-child {
	animation: c-menu-in .7s var(--c-ease) both;
}
.c-popup--menu .c-menu-list .e-n-accordion-item:nth-child(1) { animation-delay: .12s; }
.c-popup--menu .c-menu-list .e-n-accordion-item:nth-child(2) { animation-delay: .17s; }
.c-popup--menu .c-menu-list .e-n-accordion-item:nth-child(3) { animation-delay: .22s; }
.c-popup--menu .c-menu-list .e-n-accordion-item:nth-child(4) { animation-delay: .27s; }
.c-popup--menu .c-menu-direct:nth-child(1) { animation-delay: .32s; }
.c-popup--menu .c-menu-direct:nth-child(2) { animation-delay: .37s; }
.c-popup--menu .c-btn-full { animation-delay: .42s; }
.c-popup--menu .c-menu-body > .e-con:last-child { animation-delay: .5s; }
@media (prefers-reduced-motion: reduce) { .c-popup--menu * { animation: none !important; } }
.c-vivalco-logo img { filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .45)); }

/* ------------------------------------------------------------------ v2.6 */
/* Megamenú: íconos con detalle carmesí y brillo rojo; al pasar, carmesí lleno */
.c-mega-ico .elementor-icon {
	border: 1px solid rgba(174, 6, 59, .75);
	box-shadow: 0 0 0 4px rgba(174, 6, 59, .1), 0 8px 22px -6px rgba(174, 6, 59, .6);
	transition: background-color .3s ease, box-shadow .4s ease, transform .45s var(--c-ease);
}
.c-mega-item:hover .c-mega-ico .elementor-icon {
	background-color: #AE063B !important;
	box-shadow: 0 0 0 5px rgba(174, 6, 59, .18), 0 10px 28px -4px rgba(174, 6, 59, .85);
	transform: scale(1.06);
}
.c-mega-item:hover { background-color: rgba(255, 255, 255, .04); }
/* Ícono con brillo carmesí (cifras del hero) */
.c-ico-glow .elementor-icon { box-shadow: 0 0 0 4px rgba(174, 6, 59, .16), 0 10px 26px -6px rgba(174, 6, 59, .7); }
/* Etiquetas del artículo: píldoras */
.c-tags .elementor-post-info__terms-list { font-size: 0; display: inline-flex; flex-wrap: wrap; gap: 8px; }
.c-tags .elementor-post-info__terms-list-item {
	font-size: 13px !important; line-height: 1 !important; padding: 9px 14px; border-radius: 999px; color: #fff !important; display: inline-block;
	background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
	transition: background-color .3s ease, border-color .3s ease;
}
.c-tags .elementor-post-info__terms-list-item:hover { background: #AE063B; border-color: #AE063B; }
.c-tags .elementor-icon-list-icon { display: none !important; }
/* Header compacto: botón con ícono más pequeño */
.c-header .c-btn--primary .elementor-button-icon { width: 26px; height: 26px; margin-left: 2px; font-size: 11px; }
.c-header .c-btn--primary .elementor-button-icon svg { width: 11px; height: 11px; }
.c-header .c-btn .elementor-button { gap: 10px; }
/* El botón no hereda el alto de línea del contenedor (quedaba un hueco debajo) */
.elementor-widget-button.c-btn { line-height: 0; }
.elementor-widget-button.c-btn .elementor-button { vertical-align: middle; }
/* Píldora del header al bajar: más sólida para que no se lea el contenido detrás */
.c-header.is-scrolled .c-header__bar > .e-con-inner::before { background: rgba(16, 16, 16, .86) !important; }
/* Marquee: la línea fina de abajo ya separa; sin papel rasgado encima de las letras */
.c-band-wrap::after { display: none !important; }
/* Megamenú más sólido: el contenido de atrás ya no se lee a través del vidrio */
.c-mega-glass { background-color: rgba(16, 16, 16, .95) !important; }
/* Popup valoración: todos los campos del mismo alto */
.c-popup--val .c-form input.elementor-field-textual,
.c-popup--val .c-form select.elementor-field-textual { height: 48px; min-height: 48px; padding: 0 16px; font-size: 15px; }
.c-popup--val .c-form textarea.elementor-field-textual { padding: 12px 16px; }
.c-popup--val .c-val-side .elementor-icon-list-item { align-items: center !important; }
.c-popup--val .c-val-side .elementor-icon-list-text { font-size: 15px !important; }
/* Footer sin borde rasgado arriba: entre dos fondos oscuros solo se veía una raya */
[class*="c-torn-"].c-torn-top::after { display: none; }
.c-tags .elementor-post-info__terms-list-item { margin: 0 8px 8px 0; }
.c-tags .elementor-icon-list-text { padding-left: 0 !important; margin-left: 0 !important; }
/* Llamado final (v2.6.1): tarjeta oscura con brillo carmesí suave detrás del texto */
.c-cta-card { position: relative; isolation: isolate; box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .8); }
.c-cta-card::before {
	content: "" !important; position: absolute; z-index: 0; left: -10% !important; top: -30% !important; width: 60% !important; height: 120% !important;
	pointer-events: none; border: 0 !important; border-radius: 0 !important; opacity: 1 !important;
	background: radial-gradient(closest-side, rgba(174, 6, 59, .22), rgba(174, 6, 59, 0)) !important;
}
.c-cta-card > .e-con, .c-cta-card > .e-con-inner > .e-con { position: relative; z-index: 1; }
.c-cta-list .elementor-icon-list-icon { width: 22px; height: 22px; border-radius: 50%; background: #AE063B; display: inline-flex !important; align-items: center; justify-content: center; flex: none; }
.c-cta-list .elementor-icon-list-icon { padding: 0 !important; margin-right: 12px; }
.c-cta-list .elementor-icon-list-icon svg, .c-cta-list .elementor-icon-list-icon i { width: 10px !important; height: 10px !important; font-size: 10px !important; margin: 0 !important; fill: #fff !important; }
.c-cta-list .elementor-icon-list-text { padding-left: 0 !important; }
@media (max-width: 1024px) { .c-cta-photo { background-position: center 30% !important; } }
@media (max-width: 1024px) { .c-cta-photo::before { background-image: linear-gradient(0deg, #141414 0%, rgba(20, 20, 20, 0) 65%) !important; } }

/* Autorización de datos: casilla y texto alineados */
.c-form .elementor-field-type-acceptance .elementor-field-subgroup { display: block !important; }
.c-form .elementor-field-type-acceptance .elementor-field-option { display: flex !important; align-items: flex-start; gap: 10px; }
.c-form .elementor-field-type-acceptance .elementor-field-option input { flex: none; width: 18px !important; height: 18px !important; margin: 3px 0 0 !important; }
.c-form .elementor-field-type-acceptance .elementor-field-option label { font-size: 13.5px; line-height: 1.5; color: rgba(255, 255, 255, .75); }
/* Botones del paso 2 en una fila: Atrás pequeño y Agendar ancho */
.c-form .e-form__buttons { display: flex !important; flex-wrap: nowrap !important; gap: 10px; }
.c-form .e-form__buttons__wrapper:has(.e-form__buttons__wrapper__button-previous) { flex: 0 0 auto !important; width: auto !important; }
.c-form .e-form__buttons__wrapper:not(:has(.e-form__buttons__wrapper__button-previous)) { flex: 1 1 auto !important; width: auto !important; }
.c-form .e-form__buttons__wrapper__button-previous { padding-left: 22px !important; padding-right: 22px !important; }
/* Nota hacia la lista de espera de Casa Vivalco */
.c-form .c-form-note { margin: 0; padding: 10px 14px; border-radius: 12px; background: rgba(255, 255, 255, .04); border: 1px dashed rgba(255, 255, 255, .16); font-size: 13px; line-height: 1.45; color: rgba(255, 255, 255, .72); }
.c-form .c-form-note a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
/* Blog: la foto de cada tarjeta llega hasta el borde de arriba */
.c-posts .elementor-post__card { padding-top: 0 !important; overflow: hidden; }
.c-posts .elementor-post__thumbnail__link { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
.c-posts .elementor-post__badge { top: 14px !important; }


/* 2.6.1 · Botones en móvil: todos iguales, centrados al 90 % */
@media (max-width: 767px) {
	.elementor-widget-button { width: 90% !important; max-width: 90% !important; margin-left: auto !important; margin-right: auto !important; align-self: center !important; }
	.elementor-widget-button .elementor-button-wrapper { width: 100%; }
	.elementor-widget-button .elementor-button { width: 100%; justify-content: center; }
	.c-header .elementor-widget-button, .c-mbar .elementor-widget-button, .c-wa .elementor-widget-button { width: auto !important; max-width: none !important; margin: 0 !important; align-self: auto !important; }
	.c-header .elementor-widget-button .elementor-button { width: auto; }
}

/* 2.6.1 · Scroll bar de la marca */
html { scrollbar-width: thin; scrollbar-color: #4a4a4a #0e0e0e; }
html:hover { scrollbar-color: #5a5a5a #0e0e0e; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #0e0e0e; }
::-webkit-scrollbar-thumb { background: #3a3a3a; border-radius: 999px; border: 2px solid #0e0e0e; }
::-webkit-scrollbar-thumb:hover { background: #AE063B; }
::-webkit-scrollbar-corner { background: #0e0e0e; }

/* 2.7 · Contacto del footer: íconos en el mismo cuadro redondeado del sitio, pequeños y alineados a la primera línea */
.c-foot-ico .elementor-icon-list-item { align-items: flex-start !important; }
.c-foot-ico .elementor-icon-list-icon {
	flex: 0 0 30px; width: 30px; height: 30px; border-radius: 10px; display: inline-flex !important; align-items: center; justify-content: center;
	background: linear-gradient(145deg, rgba(174, 6, 59, .3), rgba(174, 6, 59, .08)); border: 1px solid rgba(174, 6, 59, .5);
	transition: background .3s ease, transform .45s var(--c-ease); margin-top: -3px;
}
.c-foot-ico .elementor-icon-list-icon svg, .c-foot-ico .elementor-icon-list-icon i { fill: #fff; color: #fff; width: 12px !important; height: 12px !important; font-size: 12px !important; }
.c-foot-ico .elementor-icon-list-item:hover .elementor-icon-list-icon { background: #AE063B; transform: translateY(-2px); }
.c-foot-ico .elementor-icon-list-text { line-height: 1.45; font-size: 15px !important; overflow-wrap: anywhere; }
.c-foot-ico a:hover .elementor-icon-list-text { color: #fff !important; }
.c-footer .e-con, footer .e-con { min-width: 0; }
.c-ico-tile--sm .elementor-icon { border-radius: 14px !important; }
/* 2.6.1 · Tarjetas de contacto del footer con el ícono del megamenú */
.c-tile:hover .c-mega-ico .elementor-icon { background-color: #AE063B !important; box-shadow: 0 0 0 5px rgba(174, 6, 59, .18), 0 10px 28px -4px rgba(174, 6, 59, .85); transform: scale(1.06); }
/* 2.6.1 · Título más cerca de su pill */
.e-con > .c-eyebrow + .elementor-widget-heading, .e-con > .c-eyebrow + .elementor-widget-text-editor { margin-top: -8px !important; }

/* 2.6.1 · Header: el círculo de WhatsApp queda centrado con el botón (sin la línea de texto que lo subía) */
.c-iconbtn { align-self: center !important; line-height: 0 !important; }
.c-iconbtn .elementor-icon-wrapper { display: flex; line-height: 0; }
.c-iconbtn .elementor-icon { display: inline-flex; align-items: center; justify-content: center; }
.c-header .c-btn .elementor-button { min-height: 44px; display: inline-flex; align-items: center; }

/* 2.6.1 · Botón secundario junto al principal: texto con subrayado animado e ícono animado (sin borde) */
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button {
	background-color: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	padding: 12px 2px !important;
	background-image: linear-gradient(currentColor, currentColor), linear-gradient(rgba(255, 255, 255, .28), rgba(255, 255, 255, .28)) !important;
	background-repeat: no-repeat !important; background-position: 0 calc(100% - 6px), 0 calc(100% - 6px) !important;
	background-size: 0% 1px, 100% 1px !important;
	transition: background-size .55s var(--c-ease), color .3s ease !important;
}
.c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--ghost .elementor-button, .c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--outline .elementor-button {
	background-image: linear-gradient(currentColor, currentColor), linear-gradient(rgba(18, 18, 18, .22), rgba(18, 18, 18, .22)) !important;
}
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover { background-size: 100% 1px, 100% 1px !important; color: inherit; }
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover .elementor-button-icon, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover .elementor-button-icon { animation: c-ico-nudge .9s var(--c-ease) infinite; transform: none !important; }
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover .elementor-button-text, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover .elementor-button-text { color: inherit; }
@keyframes c-ico-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@media (max-width: 767px) {
	.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline { width: auto !important; max-width: 90% !important; }
	.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button { width: auto !important; }
}
@media (prefers-reduced-motion: reduce) { .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover .elementor-button-icon, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover .elementor-button-icon { animation: none; } }

.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:focus, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:focus { color: #fff !important; }
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button:hover svg, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button:hover svg { fill: #fff !important; }
.c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--ghost .elementor-button:hover, .c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--outline .elementor-button:hover, .c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--ghost .elementor-button:focus, .c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--outline .elementor-button:focus { color: #121212 !important; }
.c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--ghost .elementor-button:hover svg, .c-light .e-con:has(> .c-btn--primary, .c-light > .c-btn--wa) > .c-btn--outline .elementor-button:hover svg { fill: #121212 !important; }

/* 2.6.1 · Flecha de tarjetas: gira una vuelta, se llena de carmesí y brilla (que se entienda que lleva a otra página) */
.c-card-arrow .elementor-icon { transition: transform .8s var(--c-ease), background-color .35s ease, box-shadow .4s ease !important; }
.c-lift:hover .c-card-arrow .elementor-icon, .c-stack-card:hover .c-card-arrow .elementor-icon, .c-bento:hover .c-card-arrow .elementor-icon, a.e-con:hover .c-card-arrow .elementor-icon, .c-glow:hover .c-card-arrow .elementor-icon, .c-card-arrow:hover .c-card-arrow .elementor-icon { transform: none !important; background-color: #AE063B !important;
	box-shadow: 0 0 0 5px rgba(174, 6, 59, .18), 0 10px 28px -4px rgba(174, 6, 59, .85); }
.c-lift:hover .c-card-arrow .elementor-icon svg, .c-stack-card:hover .c-card-arrow .elementor-icon svg, .c-bento:hover .c-card-arrow .elementor-icon svg, a.e-con:hover .c-card-arrow .elementor-icon svg, .c-glow:hover .c-card-arrow .elementor-icon svg, .c-card-arrow:hover .c-card-arrow .elementor-icon svg { fill: #fff !important; color: #fff !important; }
@media (prefers-reduced-motion: reduce) { .c-card-arrow .elementor-icon { transition: background-color .3s ease !important; } }
.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline { margin-left: 10px; }
@media (max-width: 767px) { .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline { margin-left: auto !important; } }

/* 2.6.1 · Pestañas de programas: la activa se nota (glow rojo, número en círculo carmesí, barra de avance) */
.c-tabs .c-tab { transition: background .45s ease, border-color .45s ease, box-shadow .45s ease, opacity .35s ease, transform .45s var(--c-ease) !important; }
.c-tabs .c-tab:not(.is-active) { opacity: .62; }
.c-tabs .c-tab:not(.is-active):hover { opacity: 1; transform: translateX(4px); }
.c-tabs .c-tab.is-active {
	opacity: 1;
	background: linear-gradient(120deg, rgba(174, 6, 59, .22), rgba(174, 6, 59, .04) 60%), #181818 !important;
	border-color: rgba(174, 6, 59, .7) !important;
	box-shadow: 0 0 0 1px rgba(174, 6, 59, .25), 0 18px 46px -18px rgba(174, 6, 59, .75);
	transform: translateX(8px);
}
.c-tabs .c-tab::after { height: 3px; background: linear-gradient(90deg, #AE063B, #ff2a6a); box-shadow: 0 0 12px rgba(174, 6, 59, .9); }
.c-tab__num { flex: 0 0 auto; }
.c-tab__num .elementor-heading-title {
	width: 34px; height: 34px; border-radius: 12px; display: inline-flex !important; align-items: center; justify-content: center;
	border: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .7) !important; transition: all .45s ease;
}
.c-tabs .c-tab.is-active .c-tab__num .elementor-heading-title {
	background: #AE063B; border-color: #AE063B; color: #fff !important;
	box-shadow: 0 0 0 4px rgba(174, 6, 59, .18), 0 8px 22px -6px rgba(174, 6, 59, .9);
}
.c-tabs .c-tab.is-active .c-tab__name .elementor-heading-title { color: #fff !important; }
@media (max-width: 1024px) { .c-tabs .c-tab.is-active, .c-tabs .c-tab:not(.is-active):hover { transform: none; } }

/* 2.6.1 · Reseñas visibles: la sección de arriba termina en borde rasgado blanco sobre las reseñas */
body .e-con.e-parent:has(+ .c-reviews .c-rv)::after {
	content: "" !important; display: block !important; position: absolute; z-index: 4; left: 0; right: 0; bottom: -1px; top: auto;
	height: clamp(18px, 1.9vw, 34px); transform: none;
	background: url(../img/tex/borde-blanco.png) repeat-x left bottom / auto 100% !important; pointer-events: none;
}
.c-rv--ti:not(:has(*)) { display: none; }

/* 2.6.1 · Pasos del formulario: dos tarjetas con barra de avance y glow (Cami: los círculos se veían genéricos) */
.c-form .e-form__indicators { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; margin-bottom: 24px !important; }
.c-form .e-form__indicators__indicator__separator { display: none !important; }
.c-form .e-form__indicators__indicator {
	position: relative; overflow: hidden; flex-direction: row !important; align-items: center; gap: 12px !important;
	padding: 12px 14px 18px; border-radius: 14px; background: rgba(255, 255, 255, .035); border: 1px solid rgba(255, 255, 255, .08);
	text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; white-space: nowrap;
	transition: background .45s ease, border-color .45s ease, box-shadow .45s ease;
}
.c-form .e-form__indicators__indicator::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 8px; height: 3px; border-radius: 3px;
	background: rgba(255, 255, 255, .1); transition: background .45s ease, box-shadow .45s ease;
}
.c-form .e-form__indicators__indicator__number {
	width: 28px !important; height: 28px !important; font-size: 12px; border: 1px solid rgba(255, 255, 255, .2) !important;
	background: rgba(255, 255, 255, .06) !important; color: rgba(255, 255, 255, .75) !important; box-shadow: none !important;
	display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.c-form .e-form__indicators__indicator__label { font-weight: 500; color: rgba(255, 255, 255, .55) !important; }
.c-form .e-form__indicators__indicator--state-active {
	background: linear-gradient(135deg, rgba(174, 6, 59, .24), rgba(174, 6, 59, .05) 70%); border-color: rgba(174, 6, 59, .6);
	box-shadow: 0 14px 34px -18px rgba(174, 6, 59, .9);
}
.c-form .e-form__indicators__indicator--state-active::after { background: linear-gradient(90deg, #AE063B, #ff2a6a); box-shadow: 0 0 12px rgba(174, 6, 59, .9); }
.c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
	background: #AE063B !important; border-color: #AE063B !important; color: #fff !important; box-shadow: 0 0 0 4px rgba(174, 6, 59, .2) !important;
}
.c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: #fff !important; }
.c-form .e-form__indicators__indicator--state-completed::after { background: rgba(255, 255, 255, .55); }
.c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number {
	font-size: 0 !important; background: #fff !important; border-color: #fff !important; color: #121212 !important;
}
.c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number::after { content: "✓"; font-size: 13px; font-weight: 700; }
.c-form .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label { color: rgba(255, 255, 255, .8) !important; }
.c-light .c-form .e-form__indicators__indicator { background: rgba(18, 18, 18, .03); border-color: rgba(18, 18, 18, .1); }
.c-light .c-form .e-form__indicators__indicator::after { background: rgba(18, 18, 18, .1); }
.c-light .c-form .e-form__indicators__indicator__label { color: #5B636D !important; }
.c-light .c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label { color: #121212 !important; }
.c-light .c-form .e-form__indicators__indicator__number { color: #121212 !important; border-color: rgba(18, 18, 18, .2) !important; }
.c-light .c-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number { color: #fff !important; }

/* 2.6.1 · Artículo del blog con más diseño */
.c-post-hero .elementor-widget-theme-post-title .elementor-heading-title { max-width: 18ch; text-wrap: balance; }
.c-post-cat .elementor-icon-list-item a, .c-post-cat .elementor-icon-list-text { display: inline-block; }
.c-post-cat .elementor-icon-list-text { padding: 7px 14px; border-radius: 999px; background: rgba(174, 6, 59, .85); color: #fff !important; text-transform: uppercase; }
.c-post-cat .elementor-icon-list-icon { display: none !important; }
.c-post-main { min-width: 0; max-width: 760px; }
.c-prose > p:first-of-type, .c-prose .elementor-widget-container > p:first-of-type { font-size: 1.18em; color: #fff; font-weight: 300; line-height: 1.5; }
.c-prose h2 { position: relative; padding-top: 22px; }
.c-prose h2::before { content: ""; position: absolute; top: 0; left: 0; width: 44px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #AE063B, #ff2a6a); box-shadow: 0 0 12px rgba(174, 6, 59, .7); }
.c-prose ul { list-style: none; padding: 22px 24px 10px; border-radius: 20px; background: rgba(255, 255, 255, .035); border: 1px solid rgba(255, 255, 255, .08); }
.c-prose ul li { position: relative; padding-left: 26px; }
.c-prose ul li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: #AE063B; box-shadow: 0 0 0 4px rgba(174, 6, 59, .18); }
.c-post-side .c-bw img { width: 72px !important; height: 72px !important; }
@media (max-width: 1024px) { .c-post-side { width: 100% !important; position: static !important; } .c-post-main { max-width: none; } }

/* 2.7 · Pastillas del formulario: cada una ocupa su alto real (antes se montaban entre filas) */
.c-form .elementor-field-type-radio .elementor-field-option, .c-form .elementor-field-type-checkbox .elementor-field-option { display: inline-flex !important; }
.c-form .elementor-field-type-radio .elementor-field-option label, .c-form .elementor-field-type-checkbox .elementor-field-option label { display: inline-flex !important; align-items: center; white-space: nowrap; }
.c-form .elementor-field-type-radio .elementor-field-subgroup, .c-form .elementor-field-type-checkbox .elementor-field-subgroup { row-gap: 8px !important; column-gap: 8px !important; }

/* 2.8 · Una sola caja para todos los íconos: cuadro redondeado, ícono lineal (blanco sobre oscuro, carmesí sobre claro) */
.c-ico-tile .elementor-icon {
	border-radius: 18px !important; color: #fff !important; fill: #fff !important;
	background: linear-gradient(145deg, rgba(174, 6, 59, .34), rgba(174, 6, 59, .1)) !important;
	border: 1px solid rgba(174, 6, 59, .55) !important;
	box-shadow: 0 0 0 4px rgba(174, 6, 59, .08), 0 12px 28px -12px rgba(174, 6, 59, .75);
	transition: transform .5s var(--c-ease), box-shadow .45s ease, background .45s ease;
}
.c-ico-tile--sm .elementor-icon { border-radius: 12px !important; box-shadow: 0 8px 18px -10px rgba(174, 6, 59, .7); }
.c-ico-tile .elementor-icon svg { width: 1em; height: 1em; fill: currentColor; display: block; }
.c-light .c-ico-tile .elementor-icon, .c-lighten .c-ico-tile .elementor-icon {
	color: #AE063B !important; fill: #AE063B !important;
	background: linear-gradient(145deg, #FBEFF3, #FFFFFF) !important;
	border-color: rgba(174, 6, 59, .24) !important; box-shadow: 0 12px 26px -16px rgba(174, 6, 59, .6);
}
.c-light .c-keep-dark .c-ico-tile .elementor-icon { color: #fff !important; fill: #fff !important; background: linear-gradient(145deg, rgba(174, 6, 59, .34), rgba(174, 6, 59, .1)) !important; border-color: rgba(174, 6, 59, .55) !important; }
.c-lift:hover .c-ico-tile .elementor-icon, .c-stack-card:hover .c-ico-tile .elementor-icon, a.e-con:hover .c-ico-tile .elementor-icon,
.c-ico-tile:hover .elementor-icon { transform: translateY(-2px); box-shadow: 0 0 0 5px rgba(174, 6, 59, .16), 0 16px 34px -10px rgba(174, 6, 59, .9); }
.c-ico-tile.c-bob .elementor-icon { animation: none; }
.elementor-icon-list-icon svg { fill: currentColor; }

/* 2.7 · Reseñas sin conectar: tarjeta que lleva al perfil de Google */
.c-rv--empty .c-rv__cardg { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding: 34px 36px; border-radius: 28px;
	background: #fff; border: 1px solid rgba(18, 18, 18, .08); box-shadow: 0 30px 60px -40px rgba(18, 18, 18, .35); }
.c-rv__g--lg svg { width: 56px; height: 56px; display: block; }
.c-rv__cardg-copy { flex: 1 1 320px; }
.c-rv__cardg-title { margin: 0 0 6px; font-family: Geomanist, sans-serif; font-size: 24px; font-weight: 500; color: #121212; line-height: 1.2; }
.c-rv__cardg-text { margin: 0; font-size: 15px; line-height: 1.5; color: #5B636D; }
.c-rv--empty .c-rv__links { display: flex; gap: 10px; flex-wrap: wrap; }
.c-rv--empty .c-rv__link { color: #121212 !important; font-weight: 600; }
.c-rv--empty .c-rv__link--solid, .c-rv--empty .c-rv__link:hover { color: #fff !important; }
@media (max-width: 767px) { .c-rv--empty .c-rv__cardg { padding: 26px 22px; gap: 18px; } .c-rv--empty .c-rv__links { width: 100%; } }

/* 2.7 · Redes: cuadrícula de fotos que abre Instagram; si Smash Balloon está conectado, se ve el feed real */
.c-social:has(.c-feed--on) .c-social-grid { display: none !important; }
.c-social-item { position: relative; overflow: hidden; border-radius: 20px; }
.c-social-item a { display: block; position: relative; }
.c-social-item img { transition: transform .8s var(--c-ease), filter .5s ease; filter: grayscale(.25); }
.c-social-item a::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; opacity: 0; transition: opacity .45s ease;
	background: radial-gradient(circle at 50% 50%, rgba(174, 6, 59, .55), rgba(14, 14, 14, .65)) ;
}
.c-social-item a::before {
	content: ""; position: absolute; z-index: 2; left: 50%; top: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; opacity: 0;
	transform: scale(.6); transition: opacity .45s ease, transform .5s var(--c-ease); background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' x2='17.51' y1='6.5' y2='6.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' x2='17.51' y1='6.5' y2='6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.c-social-item a:hover::after { opacity: 1; }
.c-social-item a:hover::before { opacity: 1; transform: scale(1); }
.c-social-item a:hover img { transform: scale(1.06); filter: none; }
.c-feed { border-radius: 20px; overflow: hidden; }

/* ==========================================================================
   2.8 · Ajustes de Cami: números, tarjetas de pilares, títulos, negrillas, footer y redes
   ========================================================================== */
/* Un solo estilo de número en todo el sitio: pequeño, espaciado y con una línea corta */
.c-num .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; font-variant-numeric: tabular-nums; }
.c-num .elementor-heading-title::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .45; }

/* Pilares del enfoque: tarjeta horizontal compacta (ícono + texto), sin espacio vacío */
.c-pilar { transition: transform .5s var(--c-ease), box-shadow .5s ease, border-color .4s ease; }
.c-pilar:hover { transform: translateY(-4px); box-shadow: 0 28px 50px -30px rgba(174, 6, 59, .45); border-color: rgba(174, 6, 59, .22) !important; }
.c-pilar > .c-grow, .c-pilar .c-grow { flex: 1 1 0; min-width: 0; }
.c-pilar .c-ico-tile { flex: none; }

/* Títulos: que la máscara de la animación no corte la g, la y ni la j */
.c-line-mask, .gsap-split .c-line { padding-bottom: .14em; margin-bottom: -.14em; }
.elementor-heading-title { padding-bottom: .02em; }

/* Negrillas en los textos (todo el cuerpo va en light) */
.elementor-widget-text-editor strong, .elementor-widget-text-editor b { font-weight: 600; }
.c-light .elementor-widget-text-editor strong { color: #121212; }
.elementor-widget-text-editor strong { color: inherit; }

/* Botones: siempre en negrilla */
.c-btn .elementor-button, .c-btn .elementor-button-text, .elementor-form .elementor-button { font-weight: 600 !important; }

/* Footer: cada enlace muestra que se puede pulsar */
.c-flink .elementor-heading-title a { position: relative; display: inline-flex; align-items: center; gap: 0; transition: color .3s ease, gap .35s var(--c-ease); }
.c-flink .elementor-heading-title a::before { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px; background: #AE063B; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--c-ease); }
.c-flink .elementor-heading-title a::after { content: "→"; font-size: .85em; opacity: 0; width: 0; overflow: hidden; transition: opacity .3s ease, width .35s var(--c-ease); }
.c-flink .elementor-heading-title a:hover, .c-flink .elementor-heading-title a:focus-visible { color: #fff !important; gap: 8px; }
.c-flink .elementor-heading-title a:hover::before, .c-flink .elementor-heading-title a:focus-visible::before { transform: scaleX(1); }
.c-flink .elementor-heading-title a:hover::after, .c-flink .elementor-heading-title a:focus-visible::after { opacity: 1; width: 1em; }
.c-flink--sm .elementor-heading-title a::after { display: none; }
.c-foot-row--link { cursor: pointer; }
.c-foot-row--link:hover .c-ico-tile .elementor-icon { background: #AE063B !important; transform: translateY(-2px); }
.c-foot-row .c-ico-tile { flex: none; }
.c-foot-txt { min-width: 0; }
.c-foot-txt .elementor-heading-title { overflow-wrap: anywhere; }
@media (min-width: 1025px) { .c-legal-row { flex-wrap: nowrap !important; } .c-legal-row .elementor-heading-title { white-space: nowrap; font-size: 12.5px !important; } }

/* Redes: hover visible (fondo carmesí, ícono blanco) y la misma forma redondeada del sitio */
.c-social-ico .elementor-social-icon { border-radius: 12px !important; transition: background-color .35s ease, border-color .35s ease, transform .4s var(--c-ease); }
.c-social-ico .elementor-social-icon:hover { background-color: #AE063B !important; border-color: #AE063B !important; }
.c-social-ico .elementor-social-icon:hover i, .c-social-ico .elementor-social-icon:hover svg { color: #fff !important; fill: #fff !important; }
.c-tab__num .elementor-heading-title::after { display: none; }

/* 2.8 · Menú del celular */
.c-menu-prog { transition: background .3s ease, border-color .3s ease, transform .4s var(--c-ease); }
.c-menu-prog:hover, .c-menu-prog:active { background: rgba(174, 6, 59, .16) !important; border-color: rgba(174, 6, 59, .5) !important; transform: translateY(-2px); }
.c-menu-row .c-grow { flex: 1 1 0; min-width: 0; }
.c-menu-arrow .elementor-icon { background: transparent !important; border: 0 !important; color: rgba(255, 255, 255, .45) !important; fill: rgba(255, 255, 255, .45) !important; padding: 0 !important; transition: transform .35s var(--c-ease), color .3s ease; }
.c-menu-row:hover .c-menu-arrow .elementor-icon, .c-menu-row:active .c-menu-arrow .elementor-icon { transform: translateX(4px); color: #fff !important; fill: #fff !important; }
.c-menu-row:hover .elementor-heading-title { color: #fff; }
.c-menu-body > .e-con { width: 100%; }

/* 2.8 · Guía del etólogo: portada en 3D, lista de temas y tarjeta del blog */
.c-book { perspective: 1400px; }
.c-book .c-book__img { transform: rotateY(-18deg) rotateX(4deg) rotateZ(-1.5deg); transform-style: preserve-3d; transition: transform .9s var(--c-ease); }
.c-book .c-book__img img { border-radius: 4px 12px 12px 4px !important; box-shadow: -2px 0 0 rgba(255, 255, 255, .25) inset, 14px 22px 0 -6px rgba(0, 0, 0, .35), 30px 40px 70px -20px rgba(0, 0, 0, .8), 0 0 80px -10px rgba(174, 6, 59, .55); width: auto !important; max-width: 100%; aspect-ratio: 636 / 900; object-fit: cover; }
.c-book:hover .c-book__img, .c-guia-band:hover .c-book__img { transform: rotateY(-6deg) rotateX(2deg) rotateZ(0deg) translateY(-6px); }
.c-book .elementor-widget-image { text-align: center; }
.c-guia-list .elementor-icon-list-icon { width: 22px; height: 22px; flex: 0 0 22px; border-radius: 7px; background: rgba(174, 6, 59, .35); display: inline-flex !important; align-items: center; justify-content: center; }
.c-guia-list .elementor-icon-list-item { align-items: center !important; }
.c-guia-list .elementor-icon-list-icon svg { width: 12px !important; height: 12px !important; fill: #fff !important; display: block; margin: 0 !important; top: 0 !important; }
.c-guia-list .elementor-icon-list-text { padding-left: 10px !important; }
.c-guia-band .c-guia-list .elementor-icon-list-icon { background: rgba(255, 255, 255, .18); }
@media (min-width: 768px) { .c-guia-list--2 .elementor-icon-list-items { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 18px; row-gap: 8px; } .c-guia-list--2 .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; } }
.c-guia-side { position: relative; }
.c-popup--guia .dialog-widget-content { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .c-book .c-book__img { transform: none; } }

/* 2.8 · Blog: botón «Cargar más artículos» */
.c-posts .e-load-more-anchor + .elementor-button-wrapper .elementor-button, .c-posts .elementor-button-wrapper .elementor-button { font-weight: 600; box-shadow: 0 16px 34px -14px rgba(174, 6, 59, .8); transition: transform .4s var(--c-ease), background-color .3s ease; }
.c-posts .elementor-button-wrapper .elementor-button:hover { transform: translateY(-2px); }
.c-book, .c-book > .e-con-inner { width: 100%; align-items: center; }
.c-book .elementor-widget-image { width: 100%; }
.c-book .elementor-widget-image img { margin: 0 auto; display: block; }

/* 2.8 · Artículos: texto corrido a tamaño de lectura (Cami: "está inmenso") */
.c-prose, .c-prose p, .c-prose li { font-size: 17px; font-weight: 300; line-height: 1.75; }
@media (max-width: 767px) { .c-prose, .c-prose p, .c-prose li { font-size: 16px; } }
.c-prose h2 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 500; }
.c-prose h3 { font-size: clamp(19px, 1.8vw, 22px); font-weight: 500; }
.c-prose strong { font-weight: 600; }
.c-prose blockquote { font-size: 1.05em; }
@media (max-width: 1024px) { .c-legal-row { justify-content: flex-start !important; column-gap: 16px !important; row-gap: 10px !important; } }

/* 2.8.1 · Flechas de tarjetas: hover sutil (la caja no gira; solo la flecha se desliza un poco) */
.c-card-arrow .elementor-icon svg { transition: transform .45s var(--c-ease) !important; }
.c-lift:hover .c-card-arrow .elementor-icon svg, .c-stack-card:hover .c-card-arrow .elementor-icon svg, .c-bento:hover .c-card-arrow .elementor-icon svg, a.e-con:hover .c-card-arrow .elementor-icon svg, .c-glow:hover .c-card-arrow .elementor-icon svg { transform: translate(2px, -2px) !important; animation: none !important; }
.c-card-arrow .elementor-icon { box-shadow: none !important; }
.c-lift:hover .c-card-arrow .elementor-icon, .c-stack-card:hover .c-card-arrow .elementor-icon, .c-bento:hover .c-card-arrow .elementor-icon, a.e-con:hover .c-card-arrow .elementor-icon, .c-glow:hover .c-card-arrow .elementor-icon { box-shadow: 0 8px 20px -10px rgba(174, 6, 59, .9) !important; }

/* 2.8.1 · Textos en negrilla con aire entre letras (se veían pegados) */
.elementor-heading-title mark, .elementor-heading-title strong, .elementor-heading-title b { letter-spacing: -0.01em; }

/* 2.8.1 · Popup de valoración: nunca más alto que la pantalla y el botón siempre a la vista */
@media (min-width: 1025px) {
	.c-popup--val .dialog-widget-content { max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); }
	.admin-bar .c-popup--val .dialog-widget-content { max-height: calc(100vh - 72px); max-height: calc(100dvh - 72px); }
	.c-popup--val .dialog-message { max-height: inherit; }
	.c-popup--val .dialog-message > .elementor > .e-con, .c-popup--val .dialog-message > .elementor { max-height: inherit; }
	.c-popup--val .c-form--steps { }
	.c-popup--val .e-con:has(> .elementor-widget-form) { max-height: inherit; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
}
.c-popup--val .c-form .e-form__buttons, .c-popup--val .c-form .elementor-field-type-submit { position: sticky; bottom: 0; z-index: 3; background: linear-gradient(180deg, rgba(20, 20, 20, 0), #141414 30%); padding-top: 14px !important; padding-bottom: 4px; }

/* 2.8.1 · Página de gracias: tiquete con lo enviado */
.c-ticket{position:relative;box-shadow:0 30px 80px -30px rgba(0,0,0,.6);}
.c-ticket .elementor-divider-separator{border-block-start-style:dashed!important;}
.c-ticket .c-tk-ref .elementor-heading-title{font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.c-ticket .c-tk-row .elementor-heading-title{margin:0;}
.c-ticket .c-tk-foot{border-top:1px solid rgba(255,255,255,.12);}
.c-ticket .c-tk-call a{white-space:nowrap;color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.c-ticket .c-tk-call a:hover{color:#F0A3B9;}
.c-ticket--noref .c-tk-head,.c-ticket--noref .c-tk-cut:first-of-type{display:none!important;}
.c-ticket--norows .c-tk-rows-end{display:none!important;}
.c-ticket::before,.c-ticket::after{content:"";position:absolute;top:129px;width:22px;height:22px;border-radius:50%;background:#0E0E0E;}
.c-ticket::before{left:-11px;}.c-ticket::after{right:-11px;}
.c-ticket--noref::before,.c-ticket--noref::after{display:none;}
@media (max-width:1024px){.c-ticket::before,.c-ticket::after{display:none;}}
/* 2.8.1 · Credenciales del etólogo y "tu parte del plan" en lista con filetes */
.c-cred-grid{column-gap:36px!important;}
.c-cred-grid>.c-cred:nth-last-child(-n+2){border-bottom:1px solid rgba(18,18,18,.1)!important;}
@media (max-width:767px){.c-cred-grid>.c-cred:nth-last-child(2){border-bottom:0!important;}}
.c-expect-row{transition:padding .35s ease,background .35s ease;}
.c-expect-row:hover{padding-left:10px!important;}
.c-expect-row .c-num{min-width:58px;}
/* Los íconos en fila nunca se encogen ni se montan sobre el texto */
.e-con>.elementor-widget-icon,.e-con>.e-con-inner>.elementor-widget-icon{flex-shrink:0!important;}
.elementor-widget-icon.c-ico-tile .elementor-icon-wrapper{line-height:0;}
/* 2.8.1 · Tarjetas informativas con más presencia: ícono grande de fondo + filete carmesí */
.c-info{position:relative;overflow:hidden;}
.c-info::before{content:"";position:absolute;left:28px;top:0;height:3px;width:44px;border-radius:0 0 3px 3px;background:#AE063B;transition:width .5s cubic-bezier(.2,.7,.2,1);z-index:2;}
.c-info:hover::before{width:calc(100% - 56px);}
.elementor-widget.c-info-mark{position:absolute!important;right:-22px;bottom:-30px;width:auto!important;max-width:none!important;margin:0!important;opacity:.07;pointer-events:none;z-index:0;transition:transform .6s ease,opacity .6s ease;}
.c-info:hover .c-info-mark{transform:rotate(-8deg) scale(1.06);opacity:.11;}
.c-info-mark svg{fill:#FFFFFF!important;}
.c-light .c-info-mark svg,.c-lighten .c-info-mark svg{fill:#AE063B!important;}
.c-info>.elementor-element:not(.c-info-mark){position:relative;z-index:1;}
/* Tarjetas con foto */
.c-photo-card{background-size:cover!important;transition:transform .5s ease,box-shadow .5s ease;}
.c-photo-card:hover{box-shadow:0 30px 60px -30px rgba(0,0,0,.7);}
.elementor-widget-icon.elementor-view-stacked:not(.c-ico-tile) .elementor-icon{border-radius:16px!important;}
/* 2.8.2 · Asterisco en los campos obligatorios (rosa claro sobre oscuro, carmesí sobre claro) */
.elementor-form .elementor-field-required .elementor-field-label:after{content:" *";color:#F0A3B9;font-weight:600;padding-left:2px;}
.c-light .elementor-form .elementor-field-required .elementor-field-label:after,.c-lighten .elementor-form .elementor-field-required .elementor-field-label:after{color:#AE063B;}
/* 2.9 · Popup de la guía: compacto y SIN scroll interno */
.c-popup--guia .dialog-widget-content { max-height: none !important; overflow: hidden !important; }
.c-popup--guia .c-guia-form { max-height: none !important; overflow: visible !important; }
.c-popup--guia .elementor-field-group:not(.elementor-field-type-acceptance) .elementor-field { min-height: 48px !important; padding-top: 10px !important; padding-bottom: 10px !important; }
.c-popup--guia .elementor-field-group { margin-bottom: 12px !important; }
.c-popup--guia .elementor-field-type-acceptance label { font-size: 13px !important; line-height: 1.45 !important; }
.c-popup--guia .c-guia-list .elementor-icon-list-text { font-size: 14px !important; }
@media (max-width: 1024px) { .c-popup--guia .dialog-widget-content { max-height: 94vh !important; overflow-y: auto !important; } }
/* Chulitos de la lista: alineados con la primera línea del texto, también cuando el texto ocupa dos líneas */
.c-guia-list .elementor-icon-list-item { align-items: flex-start !important; }
.c-guia-list .elementor-icon-list-icon { margin-top: 0 !important; }
.c-guia-list .elementor-icon-list-text { line-height: 22px !important; padding-top: 0 !important; }
.c-guia-list .elementor-icon-list-text,.c-guia-list .elementor-icon-list-icon{align-self:flex-start!important;margin-top:0!important;margin-bottom:0!important;}
/* 2.9 · Chulito centrado en su caja (Elementor le sumaba padding a la derecha del ícono) */
.c-guia-list .elementor-icon-list-icon,.c-cta-list .elementor-icon-list-icon{padding:0!important;box-sizing:border-box;}
.c-guia-list .elementor-icon-list-icon svg{width:12px!important;height:12px!important;flex:none;}
.c-cta-list .elementor-icon-list-icon{border-radius:7px!important;}
/* Chulitos sobre fondo claro: caja rosada con check carmesí */
.c-light .c-guia-list .elementor-icon-list-icon,.c-lighten .c-guia-list .elementor-icon-list-icon{background:#F9ECF0!important;border:1px solid #AE063B38;}
.c-light .c-guia-list .elementor-icon-list-icon svg,.c-lighten .c-guia-list .elementor-icon-list-icon svg{fill:#AE063B!important;}
.c-keep-dark .c-guia-list .elementor-icon-list-icon{background:rgba(174,6,59,.35)!important;border:0;}
.c-keep-dark .c-guia-list .elementor-icon-list-icon svg{fill:#fff!important;}
.c-guia-band .c-guia-list .elementor-icon-list-icon,.c-felipe-band .c-guia-list .elementor-icon-list-icon{background:rgba(255,255,255,.18)!important;}
/* 2.9 · Franja superior con fondo propio: no se pierde sobre las fotos del banner */
.c-header .c-topbar{background:#0A0A0A!important;border-bottom:1px solid rgba(255,255,255,.08)!important;}
.c-header .c-topbar .elementor-heading-title,.c-header .c-topbar .elementor-icon-list-text{color:#FFFFFFD9!important;}
/* 2.9 · Megamenú: cada opción se ilumina, el ícono se llena y aparece una flecha; entra en cascada al abrir */
.c-mega-item{position:relative;transition:background-color .3s ease,transform .35s var(--c-ease);cursor:pointer;}
.c-mega-item:hover{background-color:rgba(255,255,255,.07)!important;transform:translateX(4px);}
.c-mega-item::after{content:"";position:absolute;right:16px;top:50%;width:18px;height:18px;margin-top:-9px;opacity:0;transform:translateX(-8px);transition:opacity .3s ease,transform .35s var(--c-ease);
	background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;}
.c-mega-item:hover::after{opacity:1;transform:none;}
.c-mega-item .elementor-icon-box-description{color:rgba(255,255,255,.62)!important;transition:color .3s ease;}
.c-mega-item:hover .elementor-icon-box-description{color:rgba(255,255,255,.85)!important;}
.c-mega-ico .elementor-icon{border-radius:12px!important;}
@keyframes c-mega-in{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.elementskit-megamenu-has:hover .c-mega-glass>.e-con,.elementskit-megamenu-has:hover .c-mega-glass>.e-con-inner>.e-con,.elementskit-megamenu-has:hover .c-mega-item{animation:c-mega-in .5s var(--c-ease) both;}
.elementskit-megamenu-has:hover .c-mega-item:nth-child(2){animation-delay:.05s}.elementskit-megamenu-has:hover .c-mega-item:nth-child(3){animation-delay:.1s}.elementskit-megamenu-has:hover .c-mega-item:nth-child(4){animation-delay:.15s}.elementskit-megamenu-has:hover .c-mega-item:nth-child(5){animation-delay:.2s}.elementskit-megamenu-has:hover .c-mega-item:nth-child(6){animation-delay:.25s}.elementskit-megamenu-has:hover .c-mega-item:nth-child(7){animation-delay:.3s}
/* 2.9 · Celular: TODOS los botones iguales — centrados, al 90 % de la pantalla (sin pasarse de su caja) y con la misma altura.
   El secundario deja de ser un enlace subrayado y pasa a píldora con borde, del mismo tamaño que el principal. */
@media (max-width: 767px) {
	.c-rv__links { flex-direction: column !important; width: 100%; align-items: stretch !important; }
	.c-rv__link { width: min(90vw, 100%) !important; margin: 0 auto !important; min-height: 54px; display: flex !important; align-items: center; justify-content: center; box-sizing: border-box; }
	.elementor-widget-button:not(.c-header .elementor-widget-button):not(.c-wa .elementor-widget-button) { width: min(90vw, 100%) !important; max-width: min(90vw, 100%) !important; margin-left: auto !important; margin-right: auto !important; align-self: center !important; }
	.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline { width: min(90vw, 100%) !important; max-width: min(90vw, 100%) !important; }
	.elementor-widget-button:not(.c-header .elementor-widget-button) .elementor-button { width: 100% !important; justify-content: center; min-height: 54px; padding-top: 0 !important; padding-bottom: 0 !important; display: inline-flex !important; align-items: center; }
	.e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button, .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button {
		width: 100% !important; background-image: none !important; border: 1px solid rgba(255, 255, 255, .35) !important; border-radius: 999px !important; padding-left: 24px !important; padding-right: 24px !important; }
	.c-light .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button, .c-light .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button,
	.c-lighten .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--ghost .elementor-button, .c-lighten .e-con:has(> .c-btn--primary, > .c-btn--wa) > .c-btn--outline .elementor-button { border-color: rgba(18, 18, 18, .3) !important; }
	.e-con:has(> .elementor-widget-button) { align-items: center; }
}
/* 2.9.1 · Megamenú: toda la opción es clicable y el brillo del hover es carmesí */
.c-mega-item .elementor-widget, .c-mega-item .elementor-widget-container, .c-mega-item .elementor-icon-box-wrapper, .c-mega-item .elementor-icon-box-content { position: static !important; }
.c-mega-item .elementor-icon-box-title a::before, .c-mega-item .elementor-icon-box-icon a::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: 16px; }
.c-mega-item { border: 1px solid transparent; }
.c-mega-item:hover { background-color: rgba(174, 6, 59, .16) !important; border-color: rgba(174, 6, 59, .55); box-shadow: 0 0 0 4px rgba(174, 6, 59, .08), 0 18px 40px -18px rgba(174, 6, 59, .75); }
.c-mega-item:hover::after { background: #fff; }
:root { --c-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E"); }
