/*! ST2 Blocks - bundle elements - 0.8.1 */

/* lib_st2blocks/media/css/st2-blocks.css */
/* ============================================================
   ST2 Blocks - base compartida
   Sin dependencias. Pensada para convivir con cualquier plantilla.
   ============================================================ */

/*
 * Escala de ancho compartida.
 *
 * Los módulos con fondo de borde a borde (topbar, menú y slider) usan el
 * viewport para el fondo y esta misma escala para el contenido interior:
 * 1320 px de ancho máximo y 22 px de padding lateral en escritorio; 16 px
 * en móvil. El menú y la topbar permiten sobrescribir su ancho/padding desde
 * el administrador, pero sus valores por defecto coinciden con estos tokens.
 */
:root {
    --st2-layout-max: 1320px;
    --st2-layout-pad: 22px;
    --st2-layout-pad-mobile: 16px;
}

/* Keep the responsive <picture> wrapper out of the layout box tree. */
.st2-picture {
    display: contents;
}

@media (max-width: 1024px) {
    :root {
        --st2-layout-pad: var(--st2-layout-pad-mobile);
    }
}

.st2-btn,
.st2-btn *,
.st2-heading,
.st2-heading *,
.st2-text,
.st2-text *,
.st2-image,
.st2-image *,
.st2-icon-box,
.st2-icon-box *,
.st2-divider,
.st2-spacer,
.st2-feature-box,
.st2-feature-box *,
.st2-tabs,
.st2-tabs *,
.st2-accordion,
.st2-accordion *,
.st2-testimonials,
.st2-testimonials *,
.st2-pricing,
.st2-pricing *,
.st2-slider,
.st2-slider * {
    box-sizing: border-box;
}

/* Standard spacing controls shared by every ST2 module. Padding and offsets
   are positive; margins may be negative. Values are set inline per module. */
.st2-spacing {
    box-sizing: border-box;
    padding-top: var(--st2-space-pad-top, 0px);
    padding-right: var(--st2-space-pad-right, 0px);
    padding-bottom: var(--st2-space-pad-bottom, 0px);
    padding-left: var(--st2-space-pad-left, 0px);
    margin-top: var(--st2-space-margin-top, 0px);
    margin-right: var(--st2-space-margin-right, 0px);
    margin-bottom: var(--st2-space-margin-bottom, 0px);
    margin-left: var(--st2-space-margin-left, 0px);
    position: relative;
    top: var(--st2-space-offset-y, 0px);
    left: var(--st2-space-offset-x, 0px);
}

.st2-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

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

.st2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45em;
    max-width: 100%;
    border: 1px solid transparent;
    border-radius: var(--st2-btn-radius, 0.55rem);
    font: inherit;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition:
        background-color 180ms ease,
        border-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.st2-btn:hover {
    transform: translateY(-1px);
}

.st2-btn:active {
    transform: translateY(0);
}

.st2-btn:focus-visible {
    outline: 3px solid var(--st2-btn-focus, #f59e0b);
    outline-offset: 3px;
}

.st2-btn--primary {
    background: var(--st2-btn-bg, #0b5fff);
    border-color: var(--st2-btn-bg, #0b5fff);
    color: var(--st2-btn-color, #ffffff);
}

.st2-btn--primary:hover {
    background: var(--st2-btn-bg-hover, #0849c7);
    border-color: var(--st2-btn-bg-hover, #0849c7);
}

.st2-btn--secondary {
    background: var(--st2-btn-secondary-bg, #0f172a);
    border-color: var(--st2-btn-secondary-bg, #0f172a);
    color: var(--st2-btn-secondary-color, #ffffff);
}

.st2-btn--secondary:hover {
    background: var(--st2-btn-secondary-hover, #1e293b);
    border-color: var(--st2-btn-secondary-hover, #1e293b);
}

.st2-btn--outline {
    background: transparent;
    border-color: currentColor;
    color: var(--st2-btn-bg, #0b5fff);
}

.st2-btn--outline:hover {
    background: var(--st2-btn-bg, #0b5fff);
    border-color: var(--st2-btn-bg, #0b5fff);
    color: #ffffff;
}

.st2-btn--ghost {
    background: transparent;
    border-color: transparent;
    color: var(--st2-btn-bg, #0b5fff);
}

.st2-btn--ghost:hover {
    background: color-mix(in srgb, var(--st2-btn-bg, #0b5fff) 10%, transparent);
}

.st2-btn--light {
    background: #ffffff;
    border-color: #ffffff;
    color: #111827;
}

.st2-btn--light:hover {
    background: #f3f4f6;
    border-color: #f3f4f6;
}

.st2-btn--link {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--st2-btn-bg, currentColor);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.st2-btn--link:hover {
    transform: none;
    text-decoration-thickness: 2px;
}

.st2-btn--sm {
    padding: 0.55rem 0.9rem;
    font-size: 0.875rem;
}

.st2-btn--md {
    padding: 0.8rem 1.25rem;
    font-size: 1rem;
}

.st2-btn--lg {
    padding: 1rem 1.65rem;
    font-size: 1.0625rem;
}

.st2-btn--full {
    width: 100%;
}

/* Iconos ----------------------------------------------------- */

.st2-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    vertical-align: -0.125em;
}

/* Visibilidad por dispositivo -------------------------------- */

/* Rangos compartidos por todos los addons:
   web 1025 px o más; tablet 768-1024 px; móvil 767 px o menos. */
@media (min-width: 1025px) {
    .st2-hide-web {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 1024.98px) {
    .st2-hide-tablet {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .st2-hide-mobile {
        display: none !important;
    }
}

/* Utilidades ------------------------------------------------- */

.st2-no-margin-top {
    margin-top: 0 !important;
}

.st2-no-margin-bottom {
    margin-bottom: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    .st2-btn {
        transition: none;
    }

    .st2-btn:hover {
        transform: none;
    }
}

/* mod_st2_accordion/media/css/accordion.css */
.st2-accordion {
    display: flex;
    flex-direction: column;
    gap: var(--st2-accordion-gap, 0.5rem);
    color: var(--st2-accordion-title, #0f172a);
}

.st2-accordion__item {
    min-width: 0;
    border: 1px solid var(--st2-accordion-border, #e5e7eb);
    border-radius: var(--st2-accordion-radius, 14px);
    background: var(--st2-accordion-bg, #ffffff);
    color: var(--st2-accordion-title, #0f172a);
    overflow: hidden;
}

.st2-accordion__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 48px;
    padding: var(--st2-accordion-padding, 1.15rem);
    color: var(--st2-accordion-title, #0f172a);
    font-weight: 600;
    line-height: 1.4;
    list-style: none;
    cursor: pointer;
}

.st2-accordion__summary::-webkit-details-marker {
    display: none;
}

.st2-accordion__summary::marker {
    content: "";
}

.st2-accordion__summary:hover {
    background: rgba(11, 95, 255, 0.04);
    background: color-mix(in srgb, var(--st2-accordion-accent, #0b5fff) 5%, transparent);
}

.st2-accordion__summary:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: -3px;
}

.st2-accordion__title {
    min-width: 0;
    font-size: var(--st2-accordion-title-size, 1rem);
    text-wrap: pretty;
}

.st2-accordion__icon {
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    color: var(--st2-accordion-accent, #0b5fff);
}

.st2-accordion__icon--plus {
    position: relative;
    display: inline-block;
}

.st2-accordion__icon--plus::before,
.st2-accordion__icon--plus::after {
    content: "";
    position: absolute;
    top: 50%;
    inset-inline-start: 0;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: translateY(-50%);
    transition: transform 180ms ease;
}

.st2-accordion__icon--plus::after {
    transform: translateY(-50%) rotate(90deg);
}

.st2-accordion__item[open] .st2-accordion__icon--plus::after {
    transform: translateY(-50%) rotate(0deg);
}

.st2-accordion__icon--chevron {
    transition: transform 180ms ease;
}

.st2-accordion__item[open] .st2-accordion__icon--chevron {
    transform: rotate(90deg);
}

.st2-accordion__content {
    padding: 0 var(--st2-accordion-padding, 1.15rem) var(--st2-accordion-padding, 1.15rem);
    color: var(--st2-accordion-text, #475569);
    line-height: 1.65;
}

.st2-accordion__item[open] .st2-accordion__summary {
    border-bottom: 1px solid var(--st2-accordion-border, #e5e7eb);
}

.st2-accordion__content > :first-child {
    margin-top: 0;
}

.st2-accordion__content > :last-child {
    margin-bottom: 0;
}

.st2-accordion .st2-accordion__content h1,
.st2-accordion .st2-accordion__content h2,
.st2-accordion .st2-accordion__content h3,
.st2-accordion .st2-accordion__content h4,
.st2-accordion .st2-accordion__content h5,
.st2-accordion .st2-accordion__content h6 {
    color: var(--st2-accordion-title, #0f172a);
}

.st2-accordion .st2-accordion__content a {
    color: var(--st2-accordion-accent, #0b5fff);
}

.st2-accordion__content img {
    max-width: 100%;
    height: auto;
}

.st2-accordion__item[open] .st2-accordion__content {
    animation: st2-accordion-reveal 220ms ease-out;
}

@keyframes st2-accordion-reveal {
    from {
        opacity: 0;
        transform: translateY(-0.35rem);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.st2-accordion--joined {
    gap: 0;
}

.st2-accordion--joined .st2-accordion__item {
    border-radius: 0;
}

.st2-accordion--joined .st2-accordion__item:first-child {
    border-start-start-radius: var(--st2-accordion-radius, 14px);
    border-start-end-radius: var(--st2-accordion-radius, 14px);
}

.st2-accordion--joined .st2-accordion__item:last-child {
    border-end-start-radius: var(--st2-accordion-radius, 14px);
    border-end-end-radius: var(--st2-accordion-radius, 14px);
}

.st2-accordion--joined .st2-accordion__item + .st2-accordion__item {
    border-top: 0;
}

@media (prefers-reduced-motion: reduce) {
    .st2-accordion__icon--plus::before,
    .st2-accordion__icon--plus::after,
    .st2-accordion__icon--chevron {
        transition: none;
    }

    .st2-accordion__item[open] .st2-accordion__content {
        animation: none;
    }
}

/* mod_st2_button/media/css/button.css */
.st2-button {
    display: block;
    width: 100%;
    text-align: var(--st2-button-align, start);
}

.st2-button .st2-btn--full {
    display: flex;
}

/* mod_st2_countdown/media/css/countdown.css */
.st2-countdown {
    width: 100%;
    min-width: 0;
    color: var(--st2-countdown-digit, #0f172a);
}

.st2-countdown--card {
    padding: var(--st2-countdown-padding, 1.5rem);
    border: 1px solid var(--st2-countdown-border, #e5e7eb);
    border-radius: var(--st2-countdown-radius, 18px);
    background: var(--st2-countdown-bg, #ffffff);
}

.st2-countdown--plain {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.st2-countdown--shadow-sm {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.st2-countdown--shadow-md {
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14);
}

.st2-countdown--shadow-lg {
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
}

.st2-countdown--plain {
    box-shadow: none;
}

.st2-countdown--align-center {
    text-align: center;
}

.st2-countdown--align-start {
    text-align: start;
}

.st2-countdown__title {
    margin: 0 0 0.35rem;
    color: var(--st2-countdown-digit, #0f172a);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.25;
    text-wrap: balance;
}

.st2-countdown__intro {
    margin: 0 0 1rem;
    color: var(--st2-countdown-label, #64748b);
    font-size: 0.95rem;
    line-height: 1.5;
    text-wrap: pretty;
}

.st2-countdown__timer {
    display: block;
}

.st2-countdown__units {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: var(--st2-countdown-gap, 1rem);
}

.st2-countdown--align-start .st2-countdown__units {
    justify-content: flex-start;
}

.st2-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    min-width: 3.25ch;
}

.st2-countdown__value {
    color: var(--st2-countdown-digit, #0f172a);
    font-size: var(--st2-countdown-digit-size, clamp(2rem, 7vw, 3.25rem));
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
    white-space: nowrap;
}

.st2-countdown__label {
    color: var(--st2-countdown-label, #64748b);
    font-size: var(--st2-countdown-label-size, 0.75rem);
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
}

.st2-countdown__sep {
    align-self: flex-start;
    color: var(--st2-countdown-accent, #0b5fff);
    font-size: calc(var(--st2-countdown-digit-size, 3.25rem) * 0.72);
    font-weight: 700;
    line-height: 1;
    padding-top: calc(var(--st2-countdown-digit-size, 3.25rem) * 0.06);
    user-select: none;
}

.st2-countdown--no-labels .st2-countdown__unit {
    min-width: 2ch;
    gap: 0;
}

.st2-countdown__finished {
    display: none;
    margin: 0;
    color: var(--st2-countdown-digit, #0f172a);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
}

.st2-countdown.is-finished .st2-countdown__units {
    display: none;
}

.st2-countdown.is-finished .st2-countdown__finished {
    display: block;
}

@media (max-width: 480px) {
    .st2-countdown__units {
        gap: calc(var(--st2-countdown-gap, 1rem) * 0.7);
    }

    .st2-countdown__unit {
        min-width: 2.75ch;
    }

    .st2-countdown__sep {
        font-size: calc(var(--st2-countdown-digit-size, 3.25rem) * 0.6);
    }
}

/* mod_st2_divider/media/css/divider.css */
.st2-divider-module {
    display: block;
    width: 100%;
}

.st2-divider-wrap {
    display: flex;
    justify-content: flex-start;
    margin-top: var(--st2-divider-mt, 0);
    margin-bottom: var(--st2-divider-mb, 0);
}

.st2-divider-module[style*="--st2-divider-align:center"] .st2-divider-wrap {
    justify-content: center;
}

.st2-divider-module[style*="--st2-divider-align:end"] .st2-divider-wrap {
    justify-content: flex-end;
}

.st2-divider {
    width: min(var(--st2-divider-width, 100%), 100%);
    margin: 0;
    border: 0;
    border-top: 1px var(--st2-divider-style, solid) var(--st2-divider-color, #d1d5db);
}

.st2-spacer {
    width: 100%;
    height: var(--st2-divider-height, 2rem);
}

/* mod_st2_feature_box/media/css/feature-box.css */
.st2-feature-box {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
    padding: var(--st2-feature-padding, 1.5rem);
    border: 1px solid var(--st2-feature-border, #e5e7eb);
    border-radius: var(--st2-feature-radius, 20px);
    background: var(--st2-feature-bg, #ffffff);
    text-align: start;
}

.st2-feature-box--card {
    color: var(--st2-feature-text, #0f172a);
}

.st2-feature-box--plain {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
}

.st2-feature-box--align-center {
    align-items: center;
    text-align: center;
}

.st2-feature-box--align-end {
    align-items: flex-end;
    text-align: right;
}

.st2-feature-box--shadow-sm {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.st2-feature-box--shadow-md {
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14);
}

.st2-feature-box--shadow-lg {
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
}

.st2-feature-box__media {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    max-width: 100%;
}

.st2-feature-box--align-center .st2-feature-box__media {
    justify-content: center;
}

.st2-feature-box--align-end .st2-feature-box__media {
    justify-content: flex-end;
}

.st2-feature-box__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem;
    border-radius: 0.9rem;
    background: var(--st2-feature-icon-bg, #eef2ff);
    color: var(--st2-feature-icon-color, #0b5fff);
    line-height: 0;
}

.st2-feature-box__icon .st2-icon {
    width: var(--st2-feature-icon-size, 1.5rem);
    height: var(--st2-feature-icon-size, 1.5rem);
}

.st2-feature-box__image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: var(--st2-feature-image-radius, 12px);
}

.st2-feature-box__title {
    margin: 0;
    color: inherit;
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    font-weight: 700;
    line-height: 1.2;
    text-wrap: balance;
}

.st2-feature-box__text {
    margin: 0;
    color: inherit;
    font-size: 0.975rem;
    line-height: 1.65;
    opacity: 0.82;
}

.st2-feature-box a.st2-feature-box__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.35rem;
    color: var(--st2-feature-link, #0b5fff);
    font-size: 0.925rem;
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 0.18em;
}

.st2-feature-box a.st2-feature-box__link:hover {
    text-decoration: underline;
}

.st2-feature-box a.st2-feature-box__link:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

.st2-feature-box a.st2-feature-box__link .st2-icon {
    width: 1em;
    height: 1em;
}

@media (prefers-reduced-motion: reduce) {
    .st2-feature-box a.st2-feature-box__link .st2-icon {
        transition: none;
    }
}

/* mod_st2_flip_box/media/css/flip-box.css */
.st2-flip-box {
    height: 100%;
    min-width: 0;
    perspective: 1200px;
    touch-action: manipulation;
}

.st2-flip-box__inner {
    display: grid;
    height: 100%;
    min-height: var(--st2-flip-min-height, 0);
    transform-style: preserve-3d;
    transition: transform var(--st2-flip-duration, 650ms) cubic-bezier(0.2, 0.7, 0.2, 1);
}

.st2-flip-box__face {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
    padding: var(--st2-flip-padding, 1.5rem);
    border: 1px solid var(--st2-flip-border, #e5e7eb);
    border-radius: var(--st2-flip-radius, 20px);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.st2-flip-box__face--front {
    background: var(--st2-flip-front-bg, #ffffff);
    color: var(--st2-flip-front-text, #0f172a);
}

.st2-flip-box__face--back {
    background: var(--st2-flip-back-bg, #0b5fff);
    color: var(--st2-flip-back-text, #ffffff);
    pointer-events: none;
    transform: rotateY(180deg);
}

.st2-flip-box--align-center .st2-flip-box__face {
    align-items: center;
    text-align: center;
}

.st2-flip-box--align-end .st2-flip-box__face {
    align-items: flex-end;
    text-align: end;
}

.st2-flip-box--shadow-sm .st2-flip-box__face {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.st2-flip-box--shadow-md .st2-flip-box__face {
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14);
}

.st2-flip-box--shadow-lg .st2-flip-box__face {
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
}

.st2-flip-box--static .st2-flip-box__inner {
    transform: none !important;
}

.st2-flip-box__media {
    width: 100%;
}

.st2-flip-box__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--st2-flip-image-ratio, 16 / 10);
    object-fit: cover;
    border-radius: max(8px, calc(var(--st2-flip-radius, 20px) - 8px));
}

.st2-flip-box__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem;
    border-radius: 0.9rem;
    background: var(--st2-flip-icon-bg, #eef2ff);
    color: var(--st2-flip-accent, #0b5fff);
    line-height: 0;
}

.st2-flip-box__icon .st2-icon {
    width: var(--st2-flip-icon-size, 1.75rem);
    height: var(--st2-flip-icon-size, 1.75rem);
}

.st2-flip-box__title {
    margin: 0;
    color: inherit;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 700;
    line-height: 1.2;
    text-wrap: balance;
}

.st2-flip-box__text {
    margin: 0;
    color: inherit;
    font-size: 0.975rem;
    line-height: 1.65;
    opacity: 0.85;
}

.st2-flip-box a.st2-flip-box__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.5rem;
    color: var(--st2-flip-link, currentColor);
    font-size: 0.925rem;
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 0.18em;
}

.st2-flip-box a.st2-flip-box__link:hover {
    text-decoration: underline;
}

.st2-flip-box a.st2-flip-box__link:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

.st2-flip-box a.st2-flip-box__link .st2-icon {
    width: 1em;
    height: 1em;
}

.st2-flip-box:focus-within .st2-flip-box__inner,
.st2-flip-box.is-flipped .st2-flip-box__inner {
    transform: rotateY(180deg);
}

.st2-flip-box:focus-within .st2-flip-box__face--front,
.st2-flip-box.is-flipped .st2-flip-box__face--front {
    pointer-events: none;
}

.st2-flip-box:focus-within .st2-flip-box__face--back,
.st2-flip-box.is-flipped .st2-flip-box__face--back {
    pointer-events: auto;
}

@media (hover: hover) and (pointer: fine) {
    .st2-flip-box:hover .st2-flip-box__inner {
        transform: rotateY(180deg);
    }

    .st2-flip-box:hover .st2-flip-box__face--front {
        pointer-events: none;
    }

    .st2-flip-box:hover .st2-flip-box__face--back {
        pointer-events: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-flip-box__inner {
        transform: none;
        transition: none;
    }

    .st2-flip-box__face {
        backface-visibility: visible;
        transform: none;
        transition: none;
    }

    .st2-flip-box__face--front {
        opacity: 1;
    }

    .st2-flip-box__face--back {
        opacity: 0;
    }

    .st2-flip-box:focus-within .st2-flip-box__inner,
    .st2-flip-box.is-flipped .st2-flip-box__inner {
        transform: none;
    }

    .st2-flip-box:focus-within .st2-flip-box__face--front,
    .st2-flip-box.is-flipped .st2-flip-box__face--front {
        opacity: 0;
    }

    .st2-flip-box:focus-within .st2-flip-box__face--back,
    .st2-flip-box.is-flipped .st2-flip-box__face--back {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) and (hover: hover) and (pointer: fine) {
    .st2-flip-box:hover .st2-flip-box__inner {
        transform: none;
    }

    .st2-flip-box:hover .st2-flip-box__face--front {
        opacity: 0;
    }

    .st2-flip-box:hover .st2-flip-box__face--back {
        opacity: 1;
    }
}

/* mod_st2_footer/media/css/footer.css */
/* The module replaces the template footer band, so the parent surface is removed. */
.footer:has(.st2-footer),
.container-footer:has(.st2-footer) {
    background: transparent !important;
    background-image: none !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

.footer:has(.st2-footer) > .grid-child,
.container-footer:has(.st2-footer) > .grid-child {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.st2-footer {
    box-sizing: border-box;
    background: var(--st2-footer-bg, #112855);
    color: var(--st2-footer-color, #fff);
    font-size: var(--st2-footer-font, 1rem);
}

.st2-footer--fluid {
    width: 100%;
}

.st2-footer--boxed {
    width: min(calc(100% - 2rem), var(--st2-footer-max, 1320px));
    margin-inline: auto;
}

.st2-footer__inner {
    box-sizing: border-box;
    width: min(calc(100% - 2rem), var(--st2-footer-max, 1320px));
    margin-inline: auto;
    padding: var(--st2-footer-pad-block, 2.5rem) var(--st2-footer-pad-inline, 0);
}

/*
 * El pie fluido comparte la escala de la topbar, el menú y el slider: fondo
 * de borde a borde y contenido a 1320 px con un mínimo de 22 px/16 px de
 * padding lateral. Si el usuario configura más padding, se respeta.
 */
.st2-footer--fluid .st2-footer__inner {
    width: 100%;
    max-width: var(--st2-footer-max, 1320px);
    padding-inline: max(var(--st2-footer-pad-inline, 0px), var(--st2-layout-pad, 22px));
}

.st2-footer--boxed .st2-footer__inner {
    width: 100%;
}

.st2-footer__content {
    width: 100%;
}

.st2-footer__content--split {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}

.st2-footer__content--stack {
    display: block;
}

.st2-footer__text {
    min-width: 0;
    text-align: var(--st2-footer-align, start);
}

.st2-footer__copyright,
.st2-footer__secondary {
    margin: 0;
    line-height: 1.6;
}

.st2-footer__secondary {
    margin-top: 0.35rem;
    opacity: 0.9;
}

.st2-footer__nav {
    flex: 0 1 auto;
}

.st2-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-footer__link {
    color: var(--st2-footer-link, currentColor);
    text-decoration: none;
    text-underline-offset: 0.18em;
}

.st2-footer__link:hover,
.st2-footer__link:focus-visible {
    text-decoration: underline;
}

.st2-footer__link:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

@media (max-width: 767.98px) {
    .st2-footer__content--split {
        display: block;
    }

    .st2-footer__nav {
        margin-top: 1rem;
    }
}

/* mod_st2_heading/media/css/heading.css */
.st2-heading {
    display: block;
    width: 100%;
}

.st2-heading__text {
    max-width: var(--st2-heading-max, none);
    margin: 0 0 var(--st2-heading-mb, 0);
    color: var(--st2-heading-color, inherit);
    font-size: var(--st2-heading-size, clamp(1.75rem, 3vw, 2.5rem));
    font-weight: 700;
    line-height: var(--st2-heading-lh, 1.15);
    letter-spacing: var(--st2-heading-ls, normal);
    text-align: var(--st2-heading-align, start);
    text-wrap: balance;
}

/* mod_st2_icon/media/css/icon.css */
.st2-icon-module {
    display: block;
    width: 100%;
    text-align: var(--st2-icon-align, start);
}

.st2-icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: var(--st2-icon-padding, 0.75rem);
    border-radius: var(--st2-icon-radius, 14px);
    background: var(--st2-icon-bg, #eef2ff);
    color: var(--st2-icon-color, #0b5fff);
    line-height: 0;
    text-decoration: none;
    transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

.st2-icon-box:hover {
    transform: translateY(-1px);
}

.st2-icon-box:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

.st2-icon-box--none {
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.st2-icon-box--circle {
    border-radius: 50%;
}

.st2-icon-box--square {
    border-radius: var(--st2-icon-radius, 14px);
}

.st2-icon-box .st2-icon {
    width: var(--st2-icon-width, var(--st2-icon-size, 1.5rem));
    height: var(--st2-icon-height, var(--st2-icon-size, 1.5rem));
}

.st2-icon-box .st2-icon-custom {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--st2-icon-width, var(--st2-icon-size, 1.5rem));
    height: var(--st2-icon-height, var(--st2-icon-size, 1.5rem));
    max-width: 100%;
    line-height: 1;
}

.st2-icon-box .st2-icon-custom > svg,
.st2-icon-box .st2-icon-custom svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.st2-icon-box .st2-icon-custom > i,
.st2-icon-box .st2-icon-custom i {
    font-size: var(--st2-icon-height, var(--st2-icon-size, 1.5rem));
    font-style: normal;
    line-height: 1;
}

.st2-icon-box .st2-icon-custom > i::before,
.st2-icon-box .st2-icon-custom i::before {
    line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
    .st2-icon-box {
        transition: none;
    }

    .st2-icon-box:hover {
        transform: none;
    }
}

/* mod_st2_image/media/css/image.css */
.st2-image {
    display: block;
    width: 100%;
    max-width: var(--st2-image-max, 100%);
    margin: 0;
}

.st2-image--align-center {
    margin-inline: auto;
    text-align: center;
}

.st2-image--align-end {
    margin-inline-start: auto;
    text-align: end;
}

.st2-image__link {
    display: block;
    max-width: 100%;
    text-decoration: none;
}

.st2-image__media {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: var(--st2-image-radius, 0);
}

.st2-image--shadow-sm .st2-image__media,
.st2-image--shadow-sm .st2-image__link {
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
}

.st2-image--shadow-md .st2-image__media,
.st2-image--shadow-md .st2-image__link {
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16);
}

.st2-image--shadow-lg .st2-image__media,
.st2-image--shadow-lg .st2-image__link {
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.22);
}

.st2-image__caption {
    margin-top: 0.7rem;
    color: inherit;
    font-size: 0.875rem;
    line-height: 1.5;
    opacity: 0.78;
    text-align: inherit;
}

/* mod_st2_pricing/media/css/pricing.css */
.st2-pricing {
    width: 100%;
    min-width: 0;
    color: var(--st2-pricing-text, #475569);
    container-type: inline-size;
}

.st2-pricing__grid {
    display: grid;
    grid-template-columns: repeat(var(--st2-pricing-cols, 3), minmax(0, 1fr));
    gap: var(--st2-pricing-gap, 1.25rem);
    align-items: stretch;
}

.st2-pricing__plan {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    padding: var(--st2-pricing-padding, 1.75rem);
    border: 1px solid var(--st2-pricing-border, #e5e7eb);
    border-radius: var(--st2-pricing-radius, 18px);
    background: var(--st2-pricing-bg, #ffffff);
    color: var(--st2-pricing-text, #475569);
}

.st2-pricing--shadow-sm .st2-pricing__plan {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.st2-pricing--shadow-md .st2-pricing__plan {
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14);
}

.st2-pricing__plan.is-featured {
    border-width: 2px;
    border-color: var(--st2-pricing-accent, #0b5fff);
    background: #f8fbff;
    background: color-mix(in srgb, var(--st2-pricing-accent, #0b5fff) 4%, var(--st2-pricing-bg, #ffffff));
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.14);
}

.st2-pricing__badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: var(--st2-pricing-accent, #0b5fff);
    color: var(--st2-pricing-badge-text, #ffffff);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.st2-pricing--align-center .st2-pricing__plan {
    align-items: center;
    text-align: center;
}

.st2-pricing--align-center .st2-pricing__badge {
    align-self: center;
}

.st2-pricing__header {
    min-width: 0;
}

.st2-pricing__name {
    margin: 0;
    color: var(--st2-pricing-title, #0f172a);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.25;
}

.st2-pricing__description {
    margin: 0.4rem 0 0;
    color: var(--st2-pricing-muted, #64748b);
    font-size: 0.9rem;
    line-height: 1.5;
    text-wrap: pretty;
}

.st2-pricing__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.15rem;
    color: var(--st2-pricing-title, #0f172a);
    line-height: 1.1;
}

.st2-pricing__amount {
    color: var(--st2-pricing-title, #0f172a);
    font-size: var(--st2-pricing-price-size, 2.5rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}

.st2-pricing__currency,
.st2-pricing__period {
    color: var(--st2-pricing-muted, #64748b);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0;
}

.st2-pricing__price-note {
    margin: -0.55rem 0 0;
    color: var(--st2-pricing-muted, #64748b);
    font-size: 0.8rem;
    line-height: 1.4;
}

.st2-pricing__features {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-pricing--align-center .st2-pricing__features {
    width: 100%;
    text-align: start;
}

.st2-pricing__feature {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: var(--st2-pricing-text, #475569);
    font-size: 0.9rem;
    line-height: 1.45;
}

.st2-pricing__check {
    width: 1.1em;
    height: 1.1em;
    flex: 0 0 auto;
    margin-top: 0.15em;
    color: var(--st2-pricing-accent, #0b5fff);
}

.st2-pricing__feature.is-excluded {
    color: var(--st2-pricing-muted, #64748b);
}

.st2-pricing__x {
    width: 1.1em;
    flex: 0 0 auto;
    color: var(--st2-pricing-muted, #64748b);
    font-size: 1.1em;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

.st2-pricing__cta {
    margin-top: auto;
    padding-top: 0.25rem;
}

.st2-pricing__cta .st2-pricing__button {
    border-radius: 10px;
}

.st2-pricing .st2-pricing__cta .st2-btn--primary {
    background: var(--st2-pricing-accent, #0b5fff);
    border-color: var(--st2-pricing-accent, #0b5fff);
    color: #ffffff;
}

.st2-pricing .st2-pricing__cta .st2-btn--primary:hover {
    background: color-mix(in srgb, var(--st2-pricing-accent, #0b5fff) 82%, #000000);
    border-color: color-mix(in srgb, var(--st2-pricing-accent, #0b5fff) 82%, #000000);
    color: #ffffff;
}

.st2-pricing .st2-pricing__cta .st2-btn--outline {
    border-color: var(--st2-pricing-accent, #0b5fff);
    color: var(--st2-pricing-accent, #0b5fff);
}

.st2-pricing .st2-pricing__cta .st2-btn--outline:hover {
    background: var(--st2-pricing-accent, #0b5fff);
    border-color: var(--st2-pricing-accent, #0b5fff);
    color: #ffffff;
}

@media (max-width: 991px) {
    .st2-pricing--cols-3 .st2-pricing__grid,
    .st2-pricing--cols-4 .st2-pricing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 56rem) {
    .st2-pricing--cols-3 .st2-pricing__grid,
    .st2-pricing--cols-4 .st2-pricing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 32rem) {
    .st2-pricing .st2-pricing__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .st2-pricing .st2-pricing__grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-pricing__cta .st2-btn {
        transition: none;
    }
}

/* mod_st2_progress/media/css/progress.css */
.st2-progress {
    width: 100%;
    min-width: 0;
    container-type: inline-size;
}

.st2-progress__grid {
    display: grid;
    grid-template-columns: repeat(var(--st2-progress-cols, 1), minmax(0, 1fr));
    gap: var(--st2-progress-gap, 1.25rem);
    align-items: start;
}

.st2-progress__item {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-width: 0;
}

.st2-progress__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
}

.st2-progress__label {
    color: var(--st2-progress-label, #0f172a);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
    text-wrap: pretty;
}

.st2-progress__number {
    flex: 0 0 auto;
    color: var(--st2-progress-item-accent, var(--st2-progress-accent, #0b5fff));
    font-size: var(--st2-progress-number-size, 2rem);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    white-space: nowrap;
}

.st2-progress--display-both .st2-progress__number {
    font-size: clamp(1rem, calc(var(--st2-progress-number-size, 2rem) * 0.65), 1.5rem);
    letter-spacing: -0.01em;
}

.st2-progress--display-number .st2-progress__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.st2-progress--display-number .st2-progress__number {
    order: -1;
}

.st2-progress--display-number .st2-progress__label {
    color: var(--st2-progress-text, #475569);
    font-size: 0.95rem;
    font-weight: 500;
}

.st2-progress__bar {
    position: relative;
    width: 100%;
    height: var(--st2-progress-bar-height, 0.65rem);
    overflow: hidden;
    border-radius: var(--st2-progress-bar-radius, 999px);
    background: var(--st2-progress-track, #e5e7eb);
}

.st2-progress__fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--st2-progress-item-accent, var(--st2-progress-accent, #0b5fff));
    transition: width var(--st2-progress-duration, 1200ms) cubic-bezier(0.22, 1, 0.36, 1);
}

.st2-progress__description {
    margin: 0;
    color: var(--st2-progress-text, #475569);
    font-size: 0.85rem;
    line-height: 1.5;
    text-wrap: pretty;
}

.st2-progress--display-number .st2-progress__description {
    margin-top: 0.15rem;
}

@media (max-width: 991px) {
    .st2-progress--cols-3 .st2-progress__grid,
    .st2-progress--cols-4 .st2-progress__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 48rem) {
    .st2-progress--cols-3 .st2-progress__grid,
    .st2-progress--cols-4 .st2-progress__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 28rem) {
    .st2-progress .st2-progress__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .st2-progress .st2-progress__grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-progress__fill {
        transition: none;
    }
}

/* mod_st2_tabs/media/css/tabs.css */
.st2-tabs {
    min-width: 0;
    color: var(--st2-tabs-text, #334155);
}

.st2-tabs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--st2-tabs-gap, 0.35rem);
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.st2-tabs--align-center .st2-tabs__list {
    justify-content: center;
}

.st2-tabs--align-end .st2-tabs__list {
    justify-content: flex-end;
}

.st2-tabs__tab {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    min-height: 44px;
    padding: 0.65rem 1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--st2-tabs-tab-text, #334155);
    font: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: start;
    cursor: pointer;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease;
}

.st2-tabs__tab:hover {
    background: rgba(11, 95, 255, 0.08);
    background: color-mix(in srgb, var(--st2-tabs-accent, #0b5fff) 9%, transparent);
}

.st2-tabs__tab:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

.st2-tabs__tab-icon {
    width: 1.15em;
    height: 1.15em;
}

.st2-tabs--pills .st2-tabs__tab.is-active {
    background: var(--st2-tabs-accent, #0b5fff);
    border-color: var(--st2-tabs-accent, #0b5fff);
    color: var(--st2-tabs-active-text, #ffffff);
}

.st2-tabs--underline .st2-tabs__list {
    gap: 0.25rem;
    margin-bottom: 0;
    border-bottom: 1px solid var(--st2-tabs-border, #e5e7eb);
}

.st2-tabs--underline .st2-tabs__tab {
    padding: 0.75rem 0.9rem;
    border: 0;
    border-bottom: 3px solid transparent;
    border-radius: 0;
}

.st2-tabs--underline .st2-tabs__tab.is-active {
    border-bottom-color: var(--st2-tabs-accent, #0b5fff);
    background: transparent;
    color: var(--st2-tabs-accent, #0b5fff);
}

.st2-tabs--underline:not(.st2-tabs--vertical) .st2-tabs__panel {
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.st2-tabs__panels {
    min-width: 0;
}

.st2-tabs__panel {
    min-width: 0;
    padding: var(--st2-tabs-padding, 1.5rem);
    border: 1px solid var(--st2-tabs-border, #e5e7eb);
    border-radius: var(--st2-tabs-radius, 16px);
    background: var(--st2-tabs-bg, #ffffff);
    color: var(--st2-tabs-text, #334155);
}

.st2-tabs__panel:not(.is-active) {
    display: none;
}

.st2-tabs__panel[hidden] {
    display: none;
}

.st2-tabs__panel:focus-visible {
    outline: 3px solid var(--st2-tabs-accent, #0b5fff);
    outline-offset: 3px;
}

.st2-tabs__panel > :first-child {
    margin-top: 0;
}

.st2-tabs__panel > :last-child {
    margin-bottom: 0;
}

.st2-tabs .st2-tabs__panel a {
    color: var(--st2-tabs-accent, #0b5fff);
}

.st2-tabs .st2-tabs__panel h1,
.st2-tabs .st2-tabs__panel h2,
.st2-tabs .st2-tabs__panel h3,
.st2-tabs .st2-tabs__panel h4,
.st2-tabs .st2-tabs__panel h5,
.st2-tabs .st2-tabs__panel h6 {
    color: inherit;
}

.st2-tabs__panel img {
    max-width: 100%;
    height: auto;
}

.st2-tabs--vertical {
    display: grid;
    grid-template-columns: minmax(12rem, 0.36fr) minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
}

.st2-tabs--vertical .st2-tabs__list {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    margin: 0;
}

.st2-tabs--vertical .st2-tabs__tab {
    width: 100%;
    justify-content: flex-start;
}

.st2-tabs--vertical.st2-tabs--underline .st2-tabs__list {
    border-bottom: 0;
    border-inline-end: 1px solid var(--st2-tabs-border, #e5e7eb);
    padding-inline-end: 0.5rem;
}

.st2-tabs--vertical.st2-tabs--underline .st2-tabs__tab {
    border-bottom: 0;
    border-inline-start: 3px solid transparent;
    border-radius: 0;
}

.st2-tabs--vertical.st2-tabs--underline .st2-tabs__tab.is-active {
    border-inline-start-color: var(--st2-tabs-accent, #0b5fff);
}

@media (max-width: 767px) {
    .st2-tabs--vertical {
        display: block;
    }

    .st2-tabs--vertical .st2-tabs__list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        margin-bottom: 1rem;
    }

    .st2-tabs--vertical .st2-tabs__tab {
        width: auto;
    }

    .st2-tabs--vertical.st2-tabs--underline .st2-tabs__list {
        border-inline-end: 0;
        border-bottom: 1px solid var(--st2-tabs-border, #e5e7eb);
        padding-inline-end: 0;
    }

    .st2-tabs--vertical.st2-tabs--underline .st2-tabs__tab {
        border-inline-start: 0;
        border-bottom: 3px solid transparent;
    }

    .st2-tabs--vertical.st2-tabs--underline .st2-tabs__tab.is-active {
        border-bottom-color: var(--st2-tabs-accent, #0b5fff);
    }

    .st2-tabs--vertical.st2-tabs--underline .st2-tabs__panel {
        border-top: 0;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
}

/* Sin JavaScript: mostrar todo el contenido y ocultar los controles. */
@media (scripting: none) {
    .st2-tabs__list {
        display: none;
    }

    .st2-tabs__panel {
        display: block !important;
    }

    .st2-tabs__panel + .st2-tabs__panel {
        margin-top: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-tabs__tab {
        transition: none;
    }
}

/* mod_st2_text/media/css/text.css */
.st2-text {
    display: block;
    width: 100%;
}

.st2-text__content {
    max-width: var(--st2-text-max, none);
    margin-inline: auto;
    color: var(--st2-text-color, inherit);
    font-size: var(--st2-text-size, 1rem);
    line-height: 1.7;
    text-align: var(--st2-text-align, start);
}

.st2-text__content > :first-child {
    margin-top: 0;
}

.st2-text__content > :last-child {
    margin-bottom: 0;
}

.st2-text__content a {
    color: inherit;
    text-underline-offset: 0.18em;
}

.st2-text__content img {
    max-width: 100%;
    height: auto;
}

.st2-text--dropcap .st2-text__content > p:first-of-type::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--st2-text-color, inherit);
    font-size: 3.4em;
    font-weight: 700;
    line-height: 0.8;
}

/* mod_st2_video/media/css/video.css */
.st2-video {
    position: relative;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--st2-video-border, #e5e7eb);
    border-radius: var(--st2-video-radius, 18px);
    background: var(--st2-video-bg, #0f172a);
    color: var(--st2-video-text, #ffffff);
}

.st2-video--shadow-sm {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.14);
}

.st2-video--shadow-md {
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.2);
}

.st2-video--shadow-lg {
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.st2-video__facade {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: var(--st2-video-aspect, 16 / 9);
    overflow: hidden;
    color: var(--st2-video-text, #ffffff);
    text-decoration: none;
    touch-action: manipulation;
}

.st2-video--no-poster .st2-video__facade {
    background:
        radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--st2-video-accent, #0b5fff) 48%, transparent), transparent 45%),
        linear-gradient(135deg, color-mix(in srgb, var(--st2-video-accent, #0b5fff) 24%, var(--st2-video-bg, #0f172a)), var(--st2-video-bg, #0f172a));
}

.st2-video__poster,
.st2-video__overlay,
.st2-video__content {
    position: absolute;
    inset: 0;
}

.st2-video__poster {
    display: block;
}

.st2-video__poster > picture,
.st2-video__poster-img {
    display: block;
    width: 100%;
    height: 100%;
}

.st2-video__poster-img {
    object-fit: cover;
}

.st2-video__overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), var(--st2-video-overlay, rgba(0, 0, 0, 0.45)));
}

.st2-video__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.25rem;
    text-align: center;
}

.st2-video__play {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--st2-video-play-size, clamp(3.25rem, 8vw, 4.25rem));
    height: var(--st2-video-play-size, clamp(3.25rem, 8vw, 4.25rem));
    border-radius: 50%;
    background: var(--st2-video-accent, #0b5fff);
    color: #ffffff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.st2-video__play .st2-icon {
    width: 38%;
    height: 38%;
    margin-left: 7%;
}

.st2-video__facade:hover .st2-video__play {
    transform: scale(1.06);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.42);
}

.st2-video__facade:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: -3px;
}

.st2-video__title {
    max-width: 32ch;
    color: var(--st2-video-text, #ffffff);
    font-size: var(--st2-video-title-size, clamp(1rem, 2.5vw, 1.35rem));
    font-weight: 700;
    line-height: 1.25;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
    text-wrap: balance;
}

.st2-video__iframe,
.st2-video__player {
    display: block;
    width: 100%;
    aspect-ratio: var(--st2-video-aspect, 16 / 9);
    border: 0;
    background: #000000;
}

.st2-video__player {
    object-fit: contain;
}

.st2-video__note {
    margin: 0;
    padding: 0.7rem 1rem;
    color: var(--st2-video-text, #ffffff);
    font-size: 0.8rem;
    line-height: 1.45;
}

@media (prefers-reduced-motion: reduce) {
    .st2-video__play {
        transition: none;
    }

    .st2-video__facade:hover .st2-video__play {
        transform: none;
    }
}
