/* =========================================================
   ServiTotal — Librería de bloques (equivalentes a Elementor)
   Cargada después de sections.css: aquí sólo viven las clases
   .st-* de los bloques de inc/blocks/.
   ========================================================= */

:root {
	--st-radio: 14px;
	--st-borde: var(--wp--preset--color--border, #E4E4E7);
	--st-sombra: 0 14px 30px rgba(8, 21, 52, .10);
}

/* ---------------------------------------------------------
   Pestaña «Avanzado»: animación, sticky y visibilidad
   --------------------------------------------------------- */
.st-anim {
	--st-anim-duration: 700ms;
	--st-anim-delay: 0ms;
	opacity: 0;
	transition: opacity var(--st-anim-duration) ease var(--st-anim-delay),
		transform var(--st-anim-duration) cubic-bezier(.22, .61, .36, 1) var(--st-anim-delay),
		filter var(--st-anim-duration) ease var(--st-anim-delay);
	will-change: opacity, transform;
}
.st-anim--fade-up    { transform: translateY(28px); }
.st-anim--fade-down  { transform: translateY(-28px); }
.st-anim--fade-left  { transform: translateX(-32px); }
.st-anim--fade-right { transform: translateX(32px); }
.st-anim--zoom-in    { transform: scale(.92); }
.st-anim--zoom-out   { transform: scale(1.08); }
.st-anim--flip-x     { transform: perspective(900px) rotateX(24deg); }
.st-anim--blur-in    { filter: blur(10px); }

.st-anim--in {
	opacity: 1;
	transform: none;
	filter: none;
}

.st-sticky {
	position: sticky;
	top: var(--st-sticky-top, 0px);
	z-index: 5;
}

@media (max-width: 767.98px)  { .st-hide-mobile  { display: none !important; } }
@media (min-width: 768px) and (max-width: 1023.98px) { .st-hide-tablet { display: none !important; } }
@media (min-width: 1024px)    { .st-hide-desktop { display: none !important; } }

/* ---------------------------------------------------------
   Botón compartido por los bloques con llamada a la acción
   --------------------------------------------------------- */
.st-btn-wrap { margin-top: 6px; }
.st-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-weight: 700; border-radius: 10px; padding: 13px 26px; text-decoration: none;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.st-btn--fill {
	background: var(--wp--preset--color--primary, #EA2B27); color: #fff; border: 2px solid transparent;
}
.st-btn--fill:hover { background: var(--wp--preset--color--primary-dark, #C21F1B); color: #fff; }
.st-btn--outline {
	background: transparent; color: currentColor;
	border: 2px solid currentColor;
}
.st-btn--outline:hover {
	background: var(--wp--preset--color--primary, #EA2B27); color: #fff;
	border-color: var(--wp--preset--color--primary, #EA2B27);
}

/* ---------------------------------------------------------
   Acordeón
   --------------------------------------------------------- */
.st-accordion { display: flex; flex-direction: column; }
.st-accordion--boxed {
	border: 1px solid var(--st-borde); border-radius: var(--st-radio); overflow: hidden; background: #fff;
}
.st-accordion--boxed .st-accordion__item + .st-accordion__item { border-top: 1px solid var(--st-borde); }
.st-accordion--separated { gap: 12px; }
.st-accordion--separated .st-accordion__item {
	border: 1px solid var(--st-borde); border-radius: var(--st-radio); background: #fff;
}
.st-accordion--flat .st-accordion__item { border-bottom: 1px solid var(--st-borde); }

.st-accordion__head {
	display: flex; align-items: center; gap: 14px; cursor: pointer; list-style: none;
	padding: 18px 22px; font-weight: 700; color: var(--wp--preset--color--navy, #081534);
	transition: color .18s ease;
}
.st-accordion__head::-webkit-details-marker { display: none; }
.st-accordion__head:hover { color: var(--wp--preset--color--primary, #EA2B27); }
.st-accordion__head:focus-visible { outline: 2px solid var(--wp--preset--color--primary, #EA2B27); outline-offset: -2px; }
.st-accordion__title { flex: 1; }
.st-accordion__heading { flex: 1; margin: 0; font-size: inherit; font-weight: inherit; }
.st-accordion__ico {
	--st-ico: 18px; flex: 0 0 auto; color: var(--wp--preset--color--primary, #EA2B27);
	transition: transform .25s ease;
}
.st-accordion__item[open] > .st-accordion__head .st-accordion__ico { transform: rotate(90deg); }
.st-accordion__item--ico-left .st-accordion__head { flex-direction: row-reverse; justify-content: flex-end; }
.st-accordion__item--ico-left .st-accordion__title,
.st-accordion__item--ico-left .st-accordion__heading { flex: 1; }
.st-accordion__panel { padding: 0 22px 20px; }
.st-accordion__panel > *:first-child { margin-top: 0; }
.st-accordion__panel > *:last-child { margin-bottom: 0; }

/* En el editor los ítems se muestran siempre abiertos. */
.st-accordion.is-editing .st-accordion__item { border-bottom: 1px solid var(--st-borde); }

/* ---------------------------------------------------------
   Caja con icono
   --------------------------------------------------------- */
.st-iconbox {
	display: flex; gap: 16px; padding: 28px 24px; background: #fff;
	border: 1px solid var(--st-borde); border-radius: var(--st-radio); height: 100%;
	text-decoration: none; color: inherit;
}
.st-iconbox--top   { flex-direction: column; align-items: flex-start; }
.st-iconbox--left  { flex-direction: row; align-items: flex-start; }
.st-iconbox--right { flex-direction: row-reverse; align-items: flex-start; }
.st-iconbox.has-text-align-center { text-align: center; align-items: center; }
.st-iconbox.has-text-align-right  { text-align: right; align-items: flex-end; }
.st-iconbox--link { transition: transform .18s ease, box-shadow .18s ease; }
.st-iconbox--link:hover { transform: translateY(-4px); box-shadow: var(--st-sombra); }
.st-iconbox__ico {
	--st-ico: 32px; flex: 0 0 auto; color: var(--wp--preset--color--primary, #EA2B27);
	display: inline-flex; align-items: center; justify-content: center;
}
.st-iconbox__ico--circle,
.st-iconbox__ico--square,
.st-iconbox__ico--rounded {
	width: calc(var(--st-ico) * 2); height: calc(var(--st-ico) * 2);
	background: color-mix(in srgb, var(--wp--preset--color--primary, #EA2B27) 12%, #fff);
}
.st-iconbox__ico--circle  { border-radius: 50%; }
.st-iconbox__ico--rounded { border-radius: 14px; }
.st-iconbox__body { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.st-iconbox__title { margin: 0; }
.st-iconbox__text  { margin: 0; }
.st-iconbox__link {
	margin-top: 4px; font-weight: 700; color: var(--wp--preset--color--primary, #EA2B27); text-decoration: none;
}
.st-iconbox__link:hover { text-decoration: underline; }

/* ---------------------------------------------------------
   Caja con imagen
   --------------------------------------------------------- */
.st-imagebox {
	display: flex; gap: 18px; background: #fff; border: 1px solid var(--st-borde);
	border-radius: var(--st-radio); overflow: hidden; height: 100%;
}
.st-imagebox--top   { flex-direction: column; }
.st-imagebox--left  { flex-direction: row; align-items: stretch; }
.st-imagebox--right { flex-direction: row-reverse; align-items: stretch; }
.st-imagebox--left, .st-imagebox--right { gap: 0; }
.st-imagebox--left .st-imagebox__media,
.st-imagebox--right .st-imagebox__media { flex: 0 0 40%; }
.st-imagebox__medialink { display: block; }
.st-imagebox__media { margin: 0; overflow: hidden; background: var(--wp--preset--color--surface, #F5F5F7); }
.st-imagebox__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.st-imagebox__ph { display: block; width: 100%; min-height: 160px; background: var(--wp--preset--color--surface, #F5F5F7); }
.st-imagebox__body { display: flex; flex-direction: column; gap: 10px; padding: 22px; flex: 1; }
.st-imagebox--top .st-imagebox__body { padding-top: 20px; }
.st-imagebox__title { margin: 0; }
.st-imagebox__text  { margin: 0; flex: 1; }
.st-imagebox.has-text-align-center .st-imagebox__body { align-items: center; text-align: center; }

/* ---------------------------------------------------------
   Llamada a la acción
   --------------------------------------------------------- */
.st-cta {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; flex-direction: column; gap: 18px; justify-content: center;
	padding: 56px 40px; border-radius: var(--st-radio);
	background: var(--wp--preset--color--surface, #F5F5F7);
}
.st-cta--con-imagen { color: #fff; }
.st-cta--con-imagen .st-cta__title, .st-cta--con-imagen .st-cta__text { color: inherit; }
.st-cta__bg {
	position: absolute; inset: 0; z-index: -2;
	background-size: cover; background-position: center;
}
.st-cta__overlay { position: absolute; inset: 0; z-index: -1; }
.st-cta__body { display: flex; flex-direction: column; gap: 10px; }
.st-cta__title { margin: 0; }
.st-cta__text  { margin: 0; }
.st-cta__botones { display: flex; flex-wrap: wrap; gap: 12px; }
.st-cta.has-text-align-center .st-cta__botones { justify-content: center; }
.st-cta.has-text-align-right  .st-cta__botones { justify-content: flex-end; }
.st-cta--inline { flex-direction: row; align-items: center; justify-content: space-between; }
.st-cta--inline .st-cta__botones { flex: 0 0 auto; }
@media (max-width: 767.98px) {
	.st-cta { padding: 36px 22px; }
	.st-cta--inline { flex-direction: column; align-items: stretch; }
}

/* ---------------------------------------------------------
   Tarjeta que gira
   --------------------------------------------------------- */
.st-flip { --st-flip-h: 320px; perspective: 1200px; height: var(--st-flip-h); }
.st-flip:focus-visible { outline: 2px solid var(--wp--preset--color--primary, #EA2B27); outline-offset: 4px; }
.st-flip__inner {
	position: relative; width: 100%; height: 100%;
	transition: transform .6s cubic-bezier(.22, .61, .36, 1); transform-style: preserve-3d;
}
.st-flip:hover .st-flip__inner,
.st-flip:focus-within .st-flip__inner,
.st-flip.is-girada .st-flip__inner { transform: var(--st-flip-giro); }
.st-flip--left  { --st-flip-giro: rotateY(-180deg); }
.st-flip--right { --st-flip-giro: rotateY(180deg); }
.st-flip--up    { --st-flip-giro: rotateX(180deg); }
.st-flip--down  { --st-flip-giro: rotateX(-180deg); }
.st-flip__face {
	position: absolute; inset: 0; display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 12px; text-align: center;
	padding: 28px; border-radius: var(--st-radio); backface-visibility: hidden;
	background: var(--wp--preset--color--surface, #F5F5F7);
}
.st-flip__face--back { background: var(--wp--preset--color--navy, #081534); color: #fff; }
.st-flip--left  .st-flip__face--back { transform: rotateY(180deg); }
.st-flip--right .st-flip__face--back { transform: rotateY(-180deg); }
.st-flip--up    .st-flip__face--back { transform: rotateX(180deg); }
.st-flip--down  .st-flip__face--back { transform: rotateX(-180deg); }
.st-flip__ico   { --st-ico: 44px; }
.st-flip__title { margin: 0; }
.st-flip__text  { margin: 0; }
/* En el editor no se gira: se muestra la cara elegida en la barra. */
.st-flip.is-editing { perspective: none; }
.st-flip.is-editing .st-flip__inner { transform: none !important; }
.st-flip.is-editing .st-flip__face  { position: relative; transform: none !important; height: 100%; }

/* ---------------------------------------------------------
   Lista con iconos
   --------------------------------------------------------- */
.st-iconlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.st-iconlist--inline { flex-direction: row; flex-wrap: wrap; gap: 10px 26px; }
.st-iconlist--sep .st-iconlist__item + .st-iconlist__item {
	border-top: 1px solid var(--st-borde); padding-top: 10px;
}
.st-iconlist--sep.st-iconlist--inline .st-iconlist__item + .st-iconlist__item { border-top: 0; padding-top: 0; }
.st-iconlist__item { display: flex; align-items: flex-start; gap: 10px; }
.st-iconlist__ico { --st-ico: 20px; flex: 0 0 auto; color: var(--wp--preset--color--primary, #EA2B27); margin-top: 2px; }
.st-iconlist__link { display: inline-flex; gap: 10px; color: inherit; text-decoration: none; }
.st-iconlist__link:hover { color: var(--wp--preset--color--primary, #EA2B27); }

/* ---------------------------------------------------------
   Línea de tiempo
   --------------------------------------------------------- */
.st-timeline {
	list-style: none; margin: 0; padding: 0; position: relative;
	display: flex; flex-direction: column; gap: 26px; counter-reset: sthito;
}
.st-timeline__item { position: relative; padding-left: 54px; counter-increment: sthito; }
.st-timeline__item::before {
	content: ""; position: absolute; left: 17px; top: 34px; bottom: -26px; width: 2px;
	background: var(--st-borde);
}
.st-timeline__item:last-child::before { display: none; }
.st-timeline__punto {
	position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--primary, #EA2B27); color: #fff;
	font-weight: 700; font-size: 14px;
}
.st-timeline--num .st-timeline__punto::before { content: counter(sthito); }
.st-timeline__ico { --st-ico: 18px; }
.st-timeline__card { display: flex; flex-direction: column; gap: 6px; }
.st-timeline__fecha {
	font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--wp--preset--color--gray, #868686);
}
.st-timeline__title { margin: 0; }
.st-timeline__card > *:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
	.st-timeline--center .st-timeline__item,
	.st-timeline--alternate .st-timeline__item {
		width: 50%; padding-left: 0; padding-right: 54px; text-align: right;
	}
	.st-timeline--center .st-timeline__item::before,
	.st-timeline--alternate .st-timeline__item::before { left: auto; right: 17px; }
	.st-timeline--center .st-timeline__punto,
	.st-timeline--alternate .st-timeline__punto { left: auto; right: 0; }
	.st-timeline--alternate .st-timeline__item:nth-child(even) {
		margin-left: 50%; padding-left: 54px; padding-right: 0; text-align: left;
	}
	.st-timeline--alternate .st-timeline__item:nth-child(even)::before { left: 17px; right: auto; }
	.st-timeline--alternate .st-timeline__item:nth-child(even) .st-timeline__punto { left: 0; right: auto; }
	.st-timeline--center .st-timeline__item:nth-child(even) {
		margin-left: 50%; padding-left: 54px; padding-right: 0; text-align: left;
	}
	.st-timeline--center .st-timeline__item:nth-child(even)::before { left: 17px; right: auto; }
	.st-timeline--center .st-timeline__item:nth-child(even) .st-timeline__punto { left: 0; right: auto; }
}

/* ---------------------------------------------------------
   Contador
   --------------------------------------------------------- */
/* El color se declara con `:where()` (especificidad 0) y las partes lo heredan:
   así el contador se puede poner sobre una banda oscura con el control de color
   del propio bloque, sin que el CSS del tema gane la partida. */
:where(.st-counter) { color: var(--wp--preset--color--navy, #081534); }
.st-counter { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.st-counter.has-text-align-left  { align-items: flex-start; }
.st-counter.has-text-align-right { align-items: flex-end; }
.st-counter__ico { --st-ico: 36px; color: var(--wp--preset--color--primary, #EA2B27); }
.st-counter__num {
	display: inline-flex; align-items: baseline; gap: 2px;
	font-size: clamp(32px, 5vw, 48px); font-weight: 800; line-height: 1;
	color: inherit;
}
.st-counter__pre, .st-counter__suf { font-size: .6em; color: var(--wp--preset--color--primary, #EA2B27); }
.st-counter__title { margin: 0; font-size: 15px; color: inherit; opacity: .7; }

/* ---------------------------------------------------------
   Barra de progreso
   --------------------------------------------------------- */
.st-progress { --st-progress: 0%; --st-progress-h: 12px; display: flex; flex-direction: column; gap: 8px; }
.st-progress__head { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; font-size: 15px; }
.st-progress__val { color: var(--wp--preset--color--primary, #EA2B27); font-weight: 700; }
.st-progress__track {
	height: var(--st-progress-h); border-radius: 999px; overflow: hidden;
	background: var(--st-progress-bg, var(--wp--preset--color--surface, #F5F5F7));
}
.st-progress__bar {
	display: block; height: 100%; width: 0; border-radius: inherit;
	background: var(--st-progress-fg, var(--wp--preset--color--primary, #EA2B27));
	transition: width 1.2s cubic-bezier(.22, .61, .36, 1);
}
.st-progress.is-llena .st-progress__bar { width: var(--st-progress); }
.st-progress--rayado .st-progress__bar {
	background-image: linear-gradient(45deg, rgba(255, 255, 255, .25) 25%, transparent 25%,
		transparent 50%, rgba(255, 255, 255, .25) 50%, rgba(255, 255, 255, .25) 75%, transparent 75%, transparent);
	background-size: 22px 22px;
}
/* En el editor la barra se muestra ya llena (no hay scroll que la dispare). */
.editor-styles-wrapper .st-progress__bar { width: var(--st-progress); }

/* ---------------------------------------------------------
   Cuenta regresiva
   --------------------------------------------------------- */
.st-countdown__cajas { display: flex; flex-wrap: wrap; gap: 12px; }
.st-countdown.has-text-align-center .st-countdown__cajas { justify-content: center; }
.st-countdown.has-text-align-right  .st-countdown__cajas { justify-content: flex-end; }
.st-countdown__box {
	display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 86px;
	padding: 16px 12px; border-radius: 12px;
	background: var(--wp--preset--color--navy, #081534); color: #fff;
}
.st-countdown--plano .st-countdown__box { background: transparent; color: inherit; padding: 0; }
.st-countdown__num { font-size: 34px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.st-countdown__label { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; opacity: .8; }
.st-countdown__msg { margin: 0; font-weight: 700; }

/* ---------------------------------------------------------
   Tabla de precios
   --------------------------------------------------------- */
.st-pricing {
	position: relative; display: flex; flex-direction: column; gap: 16px; height: 100%;
	padding: 32px 26px; background: #fff; border: 1px solid var(--st-borde);
	border-radius: var(--st-radio); text-align: center;
	/* La cinta va girada y asomando por la esquina: sin recorte se sale de la tarjeta. */
	overflow: hidden;
}
.st-pricing--destacado {
	border-color: var(--wp--preset--color--primary, #EA2B27); box-shadow: var(--st-sombra);
}
.st-pricing__ribbon {
	position: absolute; top: 16px; right: -34px; transform: rotate(45deg);
	background: var(--wp--preset--color--primary, #EA2B27); color: #fff;
	font-size: 12px; font-weight: 700; letter-spacing: .04em; padding: 6px 40px;
}
.st-pricing__head { display: flex; flex-direction: column; gap: 4px; }
.st-pricing__title { margin: 0; }
.st-pricing__subtitle { margin: 0; color: var(--wp--preset--color--gray, #868686); font-size: 15px; }
.st-pricing__price { display: flex; align-items: baseline; justify-content: center; gap: 4px; flex-wrap: wrap; }
.st-pricing__before { color: var(--wp--preset--color--gray, #868686); font-size: 18px; width: 100%; }
.st-pricing__currency { font-size: 22px; font-weight: 700; color: var(--wp--preset--color--primary, #EA2B27); }
.st-pricing__amount { font-size: clamp(36px, 5vw, 52px); font-weight: 800; line-height: 1; color: var(--wp--preset--color--navy, #081534); }
.st-pricing__period { color: var(--wp--preset--color--gray, #868686); font-size: 15px; }
.st-pricing__features { flex: 1; text-align: left; }
.st-pricing__features .st-iconlist { gap: 8px; }
.st-pricing__btn { width: 100%; }
.st-pricing .st-btn-wrap, .st-pricing .wp-block-button { width: 100%; }
.st-pricing__foot { margin: 0; font-size: 13px; color: var(--wp--preset--color--gray, #868686); }

/* ---------------------------------------------------------
   Lista de precios
   --------------------------------------------------------- */
.st-pricelist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.st-pricelist__item { display: block; }
.st-pricelist__link,
.st-pricelist__item > .st-pricelist__media,
.st-pricelist__item { color: inherit; text-decoration: none; }
.st-pricelist__item,
.st-pricelist__link { display: flex; align-items: center; gap: 14px; }
.st-pricelist__media { flex: 0 0 auto; }
.st-pricelist__img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; display: block; }
.st-pricelist__body { display: flex; flex-direction: column; gap: 2px; flex: 0 1 auto; }
.st-pricelist__name { font-weight: 700; color: var(--wp--preset--color--navy, #081534); }
.st-pricelist__desc { font-size: 14px; color: var(--wp--preset--color--gray, #868686); }
.st-pricelist__dots { flex: 1 1 auto; min-width: 18px; align-self: flex-end; margin-bottom: 6px; }
.st-pricelist--puntos .st-pricelist__dots {
	border-bottom: 2px dotted var(--st-borde);
}
.st-pricelist__price { font-weight: 800; color: var(--wp--preset--color--primary, #EA2B27); white-space: nowrap; }

/* ---------------------------------------------------------
   Testimonio y estrellas
   --------------------------------------------------------- */
.st-stars { display: inline-flex; gap: 2px; }
.st-stars__ico { --st-ico: 18px; color: var(--st-borde); }
.st-stars__ico.is-on { color: var(--wp--preset--color--yellow, #FCD61A); }
.st-stars__ico.is-half {
	color: var(--wp--preset--color--yellow, #FCD61A);
	clip-path: inset(0 50% 0 0);
}
.st-testimonial {
	display: flex; flex-direction: column; gap: 14px; margin: 0; height: 100%;
}
.st-testimonial--card {
	padding: 28px 26px; background: #fff; border: 1px solid var(--st-borde); border-radius: var(--st-radio);
}
.st-testimonial__cita { margin: 0; border: 0; padding: 0; font-size: 17px; line-height: 1.6; }
.st-testimonial--comillas .st-testimonial__cita::before {
	content: "\201C"; display: block; font-size: 46px; line-height: .8;
	color: var(--wp--preset--color--primary, #EA2B27); font-family: Georgia, serif;
}
.st-testimonial__pie { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.st-testimonial.has-text-align-center .st-testimonial__pie { justify-content: center; }
.st-testimonial__foto { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; display: block; }
.st-testimonial__quien { display: flex; flex-direction: column; }
.st-testimonial__autor { font-weight: 700; color: var(--wp--preset--color--navy, #081534); }
.st-testimonial__cargo { font-size: 14px; color: var(--wp--preset--color--gray, #868686); }

/* ---------------------------------------------------------
   Aviso
   --------------------------------------------------------- */
.st-alert {
	display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px;
	border-radius: 12px; border-left: 4px solid currentColor;
	background: var(--wp--preset--color--surface, #F5F5F7);
}
.st-alert__ico { --st-ico: 22px; flex: 0 0 auto; margin-top: 1px; }
.st-alert__body { flex: 1; display: flex; flex-direction: column; gap: 3px; color: var(--wp--preset--color--contrast, #111); }
.st-alert__title { margin: 0; font-weight: 700; }
.st-alert__text  { margin: 0; font-size: 15px; }
.st-alert__close {
	flex: 0 0 auto; background: none; border: 0; padding: 2px; cursor: pointer;
	color: inherit; opacity: .6; line-height: 0;
}
.st-alert__close:hover { opacity: 1; }
.st-alert__close-ico { --st-ico: 16px; }
.st-alert--info  { color: #1D4ED8; background: #EFF4FF; }
.st-alert--exito { color: #15803D; background: #ECFDF3; }
.st-alert--aviso { color: #B45309; background: #FFF7E6; }
.st-alert--error { color: var(--wp--preset--color--primary-dark, #C21F1B); background: #FEF1F1; }

/* ---------------------------------------------------------
   Separadores
   --------------------------------------------------------- */
.st-divider {
	--st-div-color: var(--st-borde); --st-div-grosor: 1px; --st-div-ancho: 100%; --st-div-hueco: 24px;
	display: flex; align-items: center; gap: 14px;
	width: var(--st-div-ancho); margin-top: var(--st-div-hueco); margin-bottom: var(--st-div-hueco);
}
.st-divider--center { margin-left: auto; margin-right: auto; }
.st-divider--right  { margin-left: auto; }
.st-divider__line {
	flex: 1; height: 0; border: 0;
	border-top: var(--st-div-grosor) solid var(--st-div-color); margin: 0;
}
.st-divider--dashed .st-divider__line { border-top-style: dashed; }
.st-divider--dotted .st-divider__line { border-top-style: dotted; }
.st-divider--double .st-divider__line { border-top-style: double; border-top-width: calc(var(--st-div-grosor) * 3); }
.st-divider__mid {
	flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px;
	font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	color: var(--wp--preset--color--gray, #868686);
}
.st-divider__ico { --st-ico: 20px; color: var(--wp--preset--color--primary, #EA2B27); }
.st-divider:not(.st-divider--con-centro) .st-divider__mid { display: none; }

.st-shape { --st-shape-h: 80px; line-height: 0; color: var(--wp--preset--color--base, #fff); }
.st-shape__svg { display: block; width: 100%; height: var(--st-shape-h); }
.st-shape--invertida .st-shape__svg { transform: rotate(180deg); }
.st-shape--espejo .st-shape__svg { transform: scaleX(-1); }
.st-shape--invertida.st-shape--espejo .st-shape__svg { transform: rotate(180deg) scaleX(-1); }

/* ---------------------------------------------------------
   Titular animado
   --------------------------------------------------------- */
.st-headline { position: relative; }
.st-headline__anim {
	display: inline-block; color: var(--wp--preset--color--primary, #EA2B27);
	transition: opacity .35s ease, transform .35s ease;
}
.st-headline__anim.is-saliendo  { opacity: 0; transform: translateY(-12px); }
.st-headline__anim.is-entrando  { animation: st-headline-entra .4s ease; }
.st-headline__anim.is-cursor::after {
	content: ""; display: inline-block; width: 2px; height: 1em; margin-left: 3px;
	background: currentColor; vertical-align: -.12em; animation: st-cursor 1s steps(2) infinite;
}
@keyframes st-headline-entra {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: none; }
}
@keyframes st-cursor { 50% { opacity: 0; } }
.st-headline--subrayar .st-headline__anim { color: inherit; }
.st-headline__linea {
	display: block; width: 100%; max-width: 320px; height: 12px; margin-top: -4px;
	color: var(--wp--preset--color--yellow, #FCD61A);
}
.st-headline__linea path { stroke-dasharray: 320; stroke-dashoffset: 320; }
.st-headline__anim.is-trazada + .st-headline__linea path,
.st-headline.is-trazada .st-headline__linea path { animation: st-trazo 1s ease forwards; }
@keyframes st-trazo { to { stroke-dashoffset: 0; } }

/* ---------------------------------------------------------
   Tabla de contenidos
   --------------------------------------------------------- */
.st-toc {
	padding: 22px 24px; background: var(--wp--preset--color--surface, #F5F5F7);
	border-radius: var(--st-radio); border: 1px solid var(--st-borde);
}
.st-toc__title { margin: 0 0 10px; font-size: 16px; }
.st-toc__list, .st-toc__sub { list-style: none; margin: 0; padding: 0; }
.st-toc__sub { padding-left: 18px; }
.st-toc--num .st-toc__list { counter-reset: sttoc; }
.st-toc--num .st-toc__item { counter-increment: sttoc; }
.st-toc--num .st-toc__link::before { content: counter(sttoc) ". "; color: var(--wp--preset--color--gray, #868686); }
.st-toc__item { margin: 4px 0; }
.st-toc__link {
	color: var(--wp--preset--color--navy, #081534); text-decoration: none; font-size: 15px;
	border-left: 2px solid transparent; padding-left: 8px; display: inline-block;
	transition: color .18s ease, border-color .18s ease;
}
.st-toc__link:hover { color: var(--wp--preset--color--primary, #EA2B27); }
.st-toc__link.is-activo {
	color: var(--wp--preset--color--primary, #EA2B27); font-weight: 700;
	border-left-color: var(--wp--preset--color--primary, #EA2B27);
}
.st-toc--vacia { color: var(--wp--preset--color--gray, #868686); font-style: italic; }

/* ---------------------------------------------------------
   Migas de pan
   --------------------------------------------------------- */
.st-migas__list {
	list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
	font-size: 14px;
}
.st-migas__item { display: inline-flex; align-items: center; gap: 6px; }
.st-migas__link { color: var(--wp--preset--color--gray, #868686); text-decoration: none; }
.st-migas__link:hover { color: var(--wp--preset--color--primary, #EA2B27); text-decoration: underline; }
.st-migas__sep { --st-ico: 14px; color: var(--wp--preset--color--gray, #868686); }
.st-migas__actual { color: var(--wp--preset--color--navy, #081534); font-weight: 600; }

/* ---------------------------------------------------------
   Preferencia de movimiento reducido
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.st-anim { opacity: 1; transform: none; filter: none; transition: none; }
	.st-flip__inner,
	.st-progress__bar,
	.st-headline__anim { transition: none; }
	.st-headline__anim.is-cursor::after,
	.st-headline__linea path { animation: none; }
	.st-headline__linea path { stroke-dashoffset: 0; }
}
