/*! ST2 Blocks - bundle home - 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_menu/media/css/menu.css */
/* ============================================================
   ST2 Menu - self-contained Cassiopeia-compatible menu
   Defaults reproduce the current green/orange menu.
   ============================================================ */

.st2-menu {
    --st2-menu-bar-bg: rgba(2, 78, 51, 0.85);
    --st2-menu-bar-text: #ffffff;
    --st2-menu-bar-text-hover: #ffffff;
    --st2-menu-bar-hover-bg: #026842;
    --st2-menu-bar-active-bg: #014d31;
    --st2-menu-bar-active-text: #ffffff;
    --st2-menu-bar-current-bg: #014d31;
    --st2-menu-bar-current-text: #ffffff;
    --st2-menu-bar-accent: #f4a261;
    --st2-menu-focus: #f4a261;
    --st2-menu-drop-bg: #ffffff;
    --st2-menu-drop-text: #2c3e50;
    --st2-menu-drop-text-hover: #b84a0a;
    --st2-menu-drop-hover-bg: #fff4ec;
    --st2-menu-drop-active-bg: #fff4ec;
    --st2-menu-drop-active-text: #b84a0a;
    --st2-menu-drop-current-bg: #fff4ec;
    --st2-menu-drop-current-text: #b84a0a;
    --st2-menu-drop-heading: #2c3e50;
    --st2-menu-drop-border: #b84a0a;
    --st2-menu-mobile-bg: #024e33;
    --st2-menu-mobile-text: #ffffff;
    --st2-menu-mobile-text-hover: #ffffff;
    --st2-menu-mobile-hover-bg: rgba(255, 255, 255, 0.12);
    --st2-menu-mobile-active-bg: #014d31;
    --st2-menu-mobile-active-text: #ffffff;
    --st2-menu-mobile-current-bg: #014d31;
    --st2-menu-mobile-current-text: #ffffff;
    --st2-menu-mobile-overlay: rgba(0, 0, 0, 0.55);
    --st2-menu-mobile-border: rgba(255, 255, 255, 0.16);
    --st2-menu-max: 1320px;
    --st2-menu-min-height: 0px;
    --st2-menu-sticky-top: 0px;
    --st2-menu-mobile-width: 360px;
    --st2-menu-item-pad-y: 14px;
    --st2-menu-item-pad-x: 22px;
    --st2-menu-brand-pad-y: 0px;
    --st2-menu-brand-pad-x: 22px;
    --st2-menu-panel-pad-y: 28px;
    --st2-menu-panel-pad-x: 36px;
    --st2-menu-column-min: 240px;
    --st2-menu-column-max: 340px;
    --st2-menu-panel-radius: 8px;
    --st2-menu-item-radius: 0px;
    --st2-menu-font-size: 0.95rem;
    --st2-menu-font-weight: 600;
    --st2-menu-letter-spacing: normal;
    --st2-menu-text-transform: none;
    --st2-menu-logo-width: 40px;
    --st2-menu-logo-height: auto;
    --st2-menu-mobile-logo-width: 40px;
    --st2-menu-sticky-logo-width: 40px;
    --st2-menu-logo-bg: #ffffff;
    --st2-menu-logo-radius: 50%;
    --st2-menu-brand-text: #ffffff;
    --st2-menu-brand-size: 1rem;
    --st2-menu-z: 900;
    position: relative;
    z-index: var(--st2-menu-z, 900);
    font-family: inherit;
    line-height: 1.4;
}

.st2-menu,
.st2-menu *,
.st2-menu *::before,
.st2-menu *::after {
    box-sizing: border-box;
}

.st2-menu a {
    text-decoration: none;
}

.st2-menu__bar {
    position: relative;
    min-height: var(--st2-menu-min-height, 0px);
    background: var(--st2-menu-bar-bg, rgba(2, 78, 51, 0.85));
}

.st2-menu--sticky,
.st2-menu-sticky-host {
    position: sticky;
    top: var(--st2-menu-sticky-top, 0px);
    z-index: calc(var(--st2-menu-z, 900) + 1);
}

.st2-menu--sticky .st2-menu__bar {
    position: relative;
    z-index: calc(var(--st2-menu-z, 900) + 1);
}

.st2-menu--transparent .st2-menu__bar {
    background: transparent;
}

.st2-menu--transparent.st2-menu--sticky.is-stuck .st2-menu__bar {
    background: var(--st2-menu-bar-bg, rgba(2, 78, 51, 0.85));
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

.st2-menu--boxed .st2-menu__bar {
    max-width: var(--st2-menu-max, 1320px);
    margin-inline: auto;
}

.st2-menu--fluid {
    max-width: none;
}

.st2-menu--fluid .st2-menu__bar {
    width: auto;
    margin-inline: calc(50% - var(--st2-menu-fluid-width, 100vw) / 2);
}

/*
 * La barra fluida ocupa todo el viewport. El contenido interior se centra a
 * 1320 px y la marca/enlaces aportan el padding lateral (22 px escritorio,
 * 16 px móvil), por lo que queda alineado con la topbar. No añadimos una
 * holgura extra aquí: el padding de marca ya es el margen interior.
 */
.st2-menu--fluid .st2-menu__inner {
    width: 100%;
    max-width: var(--st2-menu-max, var(--st2-layout-max, 1320px));
    margin-inline: auto;
}

.st2-menu__inner {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
    min-height: inherit;
}

.st2-menu__brand {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    max-width: none;
    padding: var(--st2-menu-brand-pad-y, 0px) var(--st2-menu-brand-pad-x, 22px);
}

.st2-menu__brand-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: var(--st2-menu-brand-text, #ffffff);
    text-decoration: none;
}

.st2-menu__brand-link:focus-visible {
    outline: 3px solid var(--st2-menu-focus, #e8721c);
    outline-offset: 3px;
}

.st2-menu__logo {
    display: block;
    width: var(--st2-menu-logo-width, 40px);
    height: var(--st2-menu-logo-height, auto);
    max-width: none;
    max-height: none;
    border-radius: var(--st2-menu-logo-radius, 50%);
    background: var(--st2-menu-logo-bg, #ffffff);
    object-fit: contain;
}

.st2-menu__logo--sticky {
    display: none;
}

.st2-menu--has-sticky-logo.st2-menu--sticky.is-stuck .st2-menu__logo--desktop {
    display: none;
}

.st2-menu--has-sticky-logo.st2-menu--sticky.is-stuck .st2-menu__logo--sticky {
    display: block;
    width: var(--st2-menu-sticky-logo-width, 40px);
}

.st2-menu__brand-text {
    display: inline-block;
    max-width: 18rem;
    overflow: hidden;
    color: var(--st2-menu-brand-text, #ffffff);
    font-size: var(--st2-menu-brand-size, 1rem);
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.st2-menu__burger {
    display: none;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 48px;
    height: 48px;
    margin: 6px 10px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--st2-menu-bar-text, #ffffff);
    cursor: pointer;
}

.st2-menu__burger:hover {
    background: var(--st2-menu-bar-hover-bg, #026842);
}

.st2-menu__burger:focus-visible {
    outline: 3px solid var(--st2-menu-focus, #e8721c);
    outline-offset: 2px;
}

.st2-menu.is-open .st2-menu__burger {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.st2-menu__burger-line {
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}

.st2-menu.is-open .st2-menu__burger-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.st2-menu.is-open .st2-menu__burger-line:nth-child(2) {
    opacity: 0;
}

.st2-menu.is-open .st2-menu__burger-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.st2-menu__desktop {
    flex: 1 1 auto;
    min-width: 0;
}

.st2-menu__nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-menu--align-start .st2-menu__nav {
    justify-content: flex-start;
}

.st2-menu--align-center .st2-menu__nav {
    justify-content: center;
}

.st2-menu--align-end .st2-menu__nav {
    justify-content: flex-end;
}

.st2-menu__nav-item {
    position: relative;
    display: flex;
    align-items: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-menu__nav-item > .st2-menu__link {
    min-height: 100%;
}

.st2-menu__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    max-width: 100%;
    padding: var(--st2-menu-item-pad-y, 14px) var(--st2-menu-item-pad-x, 22px);
    border: 0;
    border-radius: var(--st2-menu-item-radius, 0px);
    background: transparent;
    color: var(--st2-menu-bar-text, #ffffff);
    font-family: inherit;
    font-size: var(--st2-menu-font-size, 0.95rem);
    font-weight: var(--st2-menu-font-weight, 600);
    letter-spacing: var(--st2-menu-letter-spacing, normal);
    text-transform: var(--st2-menu-text-transform, none);
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    appearance: none;
    transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.st2-menu__nav-item > .st2-menu__link:hover,
.st2-menu__nav-item:hover > .st2-menu__link {
    background: var(--st2-menu-bar-hover-bg, #026842);
    color: var(--st2-menu-bar-text-hover, #ffffff);
}

.st2-menu__nav-item.is-active > .st2-menu__link,
.st2-menu__nav-item > .st2-menu__link.is-active {
    background: var(--st2-menu-bar-active-bg, #014d31);
    color: var(--st2-menu-bar-active-text, #ffffff);
}

.st2-menu__nav-item.is-current > .st2-menu__link,
.st2-menu__nav-item > .st2-menu__link.is-current {
    background: var(--st2-menu-bar-current-bg, #014d31);
    color: var(--st2-menu-bar-current-text, #ffffff);
    box-shadow: inset 0 -3px 0 0 var(--st2-menu-bar-accent, #e8721c);
    font-weight: 700;
}

.st2-menu__nav-item.is-current > .st2-menu__link:hover,
.st2-menu__nav-item > .st2-menu__link.is-current:hover {
    background: var(--st2-menu-bar-current-bg, #014d31);
    color: var(--st2-menu-bar-current-text, #ffffff);
    box-shadow: inset 0 -3px 0 0 var(--st2-menu-bar-accent, #e8721c);
}

.st2-menu__link:focus-visible,
.st2-menu__toggle:focus-visible,
.st2-menu__close:focus-visible {
    outline: 3px solid var(--st2-menu-focus, #e8721c);
    outline-offset: -3px;
}

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

.st2-menu__badge {
    flex: 0 0 auto;
    color: currentColor;
    font-size: 0.78em;
    font-weight: 500;
    opacity: 0.82;
    white-space: nowrap;
}

.st2-menu__caret {
    display: inline-block;
    flex: 0 0 auto;
    width: 0;
    height: 0;
    border-top: 5px solid currentColor;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    transition: transform 180ms ease;
}

.st2-menu__toggle {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    min-width: 48px;
    min-height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--st2-menu-bar-text, #ffffff);
    cursor: pointer;
}

/* Touch-only desktop menus need an explicit disclosure control. */
@media (hover: none) {
    .st2-menu:not(.is-mobile) .st2-menu__nav-item.has-children > .st2-menu__toggle,
    .st2-menu:not(.is-mobile) .st2-menu__panel .st2-menu__item.has-children > .st2-menu__toggle {
        display: flex;
    }
}

.st2-menu__panel .st2-menu__toggle {
    color: var(--st2-menu-drop-text, #2c3e50);
}

.st2-menu__nav-item.is-open > .st2-menu__toggle .st2-menu__caret,
.st2-menu__item.is-open > .st2-menu__toggle .st2-menu__caret {
    transform: rotate(180deg);
}

.st2-menu__panel {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    width: max-content;
    min-width: 280px;
    max-width: min(95vw, 900px);
    padding: var(--st2-menu-panel-pad-y, 28px) var(--st2-menu-panel-pad-x, 36px);
    border-top: 3px solid var(--st2-menu-drop-border, #e8721c);
    border-radius: 0 0 var(--st2-menu-panel-radius, 8px) var(--st2-menu-panel-radius, 8px);
    background: var(--st2-menu-drop-bg, #ffffff);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.st2-menu__nav-item:nth-last-child(-n + 2) > .st2-menu__panel {
    right: 0;
    left: auto;
}

.st2-menu__nav-item.is-open > .st2-menu__panel {
    display: flex;
}

@media (hover: hover) {
    .st2-menu:not(.is-mobile) .st2-menu__nav-item.has-children:not(.is-panel-closed):hover > .st2-menu__panel,
    .st2-menu:not(.is-mobile) .st2-menu__nav-item.has-children:not(.is-panel-closed):focus-within > .st2-menu__panel {
        display: flex;
    }
}

.st2-menu__col {
    flex: 0 0 auto;
    min-width: var(--st2-menu-column-min, 240px);
    max-width: var(--st2-menu-column-max, 340px);
    margin: 0;
    padding: 0 20px;
    list-style: none;
}

.st2-menu__col:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 1px;
    height: 50%;
    background: var(--st2-menu-drop-border, #e8721c);
    transform: translateY(-50%);
}

.st2-menu__col {
    position: relative;
}

.st2-menu__col-title {
    margin: 0 0 16px;
    padding: 0 0 10px;
    border-bottom: 3px solid var(--st2-menu-drop-border, #e8721c);
    color: var(--st2-menu-drop-heading, #2c3e50);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

.st2-menu__list,
.st2-menu__sublist {
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-menu__panel .st2-menu__item {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

.st2-menu__panel .st2-menu__item > .st2-menu__sublist {
    flex: 1 1 100%;
}

.st2-menu__panel .st2-menu__link {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: auto;
    padding: 10px 8px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--st2-menu-drop-text, #2c3e50);
    font-size: 0.92rem;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    white-space: normal;
    transition: background-color 150ms ease, color 150ms ease, padding-left 150ms ease;
}

.st2-menu__panel .st2-menu__link:hover {
    padding-left: 14px;
    background: var(--st2-menu-drop-hover-bg, #fff4ec);
    color: var(--st2-menu-drop-text-hover, #e8721c);
}

.st2-menu__panel .st2-menu__item.is-active > .st2-menu__link,
.st2-menu__panel .st2-menu__link.is-active {
    background: var(--st2-menu-drop-active-bg, #fff4ec);
    color: var(--st2-menu-drop-active-text, #e8721c);
}

.st2-menu__panel .st2-menu__item.is-current > .st2-menu__link,
.st2-menu__panel .st2-menu__link.is-current {
    background: var(--st2-menu-drop-current-bg, #fff4ec);
    color: var(--st2-menu-drop-current-text, #e8721c);
    font-weight: 700;
}

.st2-menu__panel .st2-menu__item.is-current > .st2-menu__link:hover,
.st2-menu__panel .st2-menu__link.is-current:hover {
    background: var(--st2-menu-drop-current-bg, #fff4ec);
    color: var(--st2-menu-drop-current-text, #e8721c);
}

.st2-menu__panel .st2-menu__badge {
    color: #7a8699;
    font-size: 0.85rem;
    font-weight: 500;
}

.st2-menu__panel .st2-menu__link:hover .st2-menu__badge {
    color: var(--st2-menu-drop-text-hover, #e8721c);
    font-weight: 600;
}

.st2-menu__panel .st2-menu__label {
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
}

.st2-menu__sublist {
    display: none;
    padding: 4px 0 6px 12px;
}

.st2-menu__item.is-open > .st2-menu__sublist {
    display: block;
}

@media (hover: hover) {
    .st2-menu:not(.is-mobile) .st2-menu__panel .st2-menu__item.has-children:not(.is-panel-closed):hover > .st2-menu__sublist,
    .st2-menu:not(.is-mobile) .st2-menu__panel .st2-menu__item.has-children:not(.is-panel-closed):focus-within > .st2-menu__sublist {
        display: block;
    }
}

.st2-menu__panel .st2-menu__item.is-group > .st2-menu__link {
    margin-top: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
    color: var(--st2-menu-drop-heading, #2c3e50);
    font-weight: 700;
    text-transform: uppercase;
}

.st2-menu__group-label {
    display: block;
    margin: 8px 0 6px;
    padding: 0 8px 6px;
    border-bottom: 1px solid var(--st2-menu-drop-border, #e8721c);
    color: var(--st2-menu-drop-heading, #2c3e50);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-menu--normal .st2-menu__panel {
    flex-direction: column;
    width: 280px;
    max-width: min(92vw, 340px);
}

.st2-menu--normal .st2-menu__col {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: 0;
}

.st2-menu--normal .st2-menu__col:not(:last-child)::after {
    display: none;
}

/* Offcanvas / mobile ------------------------------------------------ */

.st2-menu__overlay {
    position: fixed;
    inset: 0;
    z-index: calc(var(--st2-menu-z, 900) + 8);
    background: var(--st2-menu-mobile-overlay, rgba(0, 0, 0, 0.55));
    opacity: 0;
    transition: opacity 200ms ease;
}

.st2-menu__overlay[hidden] {
    display: none !important;
}

.st2-menu.is-open .st2-menu__overlay {
    opacity: 1;
}

.st2-menu__drawer {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: calc(var(--st2-menu-z, 900) + 9);
    display: none;
    flex-direction: column;
    width: min(var(--st2-menu-mobile-width, 360px), 92vw);
    max-width: 92vw;
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--st2-menu-mobile-bg, #024e33);
    color: var(--st2-menu-mobile-text, #ffffff);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    visibility: hidden;
    transition: transform 220ms ease, opacity 220ms ease, visibility 220ms ease;
}

.st2-menu__drawer[inert] {
    pointer-events: none;
}

.st2-menu--mobile-left .st2-menu__drawer {
    left: 0;
    transform: translateX(-100%);
}

.st2-menu--mobile-right .st2-menu__drawer {
    right: 0;
    transform: translateX(100%);
}

.st2-menu--mobile-center .st2-menu__drawer {
    left: 50%;
    transform: translateX(-50%) translateY(-12px);
    opacity: 0;
}

.st2-menu.is-open .st2-menu__drawer {
    visibility: visible;
    transform: translateX(0);
    opacity: 1;
}

.st2-menu--mobile-center.is-open .st2-menu__drawer {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

.st2-menu--mobile-fade .st2-menu__drawer {
    opacity: 0;
    transform: none;
}

.st2-menu--mobile-fade.st2-menu--mobile-center .st2-menu__drawer {
    transform: translateX(-50%);
}

.st2-menu--mobile-fade.is-open .st2-menu__drawer {
    opacity: 1;
    transform: none;
}

.st2-menu--mobile-fade.st2-menu--mobile-center.is-open .st2-menu__drawer {
    opacity: 1;
    transform: translateX(-50%);
}

.st2-menu__drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 64px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
}

.st2-menu__drawer-head .st2-menu__brand {
    min-width: 0;
    padding: 0;
}

.st2-menu__drawer-head .st2-menu__logo {
    width: var(--st2-menu-mobile-logo-width, 40px);
}

.st2-menu__close {
    display: inline-flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
    border-radius: 50%;
    background: transparent;
    color: var(--st2-menu-mobile-text, #ffffff);
    font-size: 1.65rem;
    line-height: 1;
    cursor: pointer;
}

.st2-menu__close:hover {
    background: var(--st2-menu-mobile-hover-bg, rgba(255, 255, 255, 0.12));
}

.st2-menu__drawer-body {
    padding: 12px 14px 28px;
}

.st2-menu__nav--mobile {
    display: block;
    height: auto;
}

.st2-menu__nav--mobile > .st2-menu__nav-item {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    border-bottom: 1px solid var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
}

.st2-menu__nav--mobile > .st2-menu__nav-item > .st2-menu__link {
    flex: 1 1 auto;
    justify-content: space-between;
    width: auto;
    min-height: 48px;
    padding: 12px 8px;
    color: var(--st2-menu-mobile-text, #ffffff);
    font-size: 1rem;
    font-weight: 600;
    white-space: normal;
}

.st2-menu__nav--mobile > .st2-menu__nav-item > .st2-menu__link:hover,
.st2-menu__nav--mobile > .st2-menu__nav-item:hover > .st2-menu__link {
    background: var(--st2-menu-mobile-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-menu-mobile-text-hover, #ffffff);
}

.st2-menu__nav--mobile > .st2-menu__nav-item.is-active > .st2-menu__link {
    background: var(--st2-menu-mobile-active-bg, #014d31);
    color: var(--st2-menu-mobile-active-text, #ffffff);
}

.st2-menu__nav--mobile > .st2-menu__nav-item.is-current > .st2-menu__link {
    background: var(--st2-menu-mobile-current-bg, #014d31);
    color: var(--st2-menu-mobile-current-text, #ffffff);
    box-shadow: inset 3px 0 0 0 var(--st2-menu-bar-accent, #e8721c);
}

.st2-menu__nav--mobile > .st2-menu__nav-item.is-current > .st2-menu__link:hover {
    background: var(--st2-menu-mobile-current-bg, #014d31);
    color: var(--st2-menu-mobile-current-text, #ffffff);
}

.st2-menu__nav--mobile .st2-menu__toggle {
    display: flex;
    flex: 0 0 52px;
    min-height: 48px;
    color: var(--st2-menu-mobile-text, #ffffff);
    border-left: 1px solid var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
}

.st2-menu__nav--mobile .st2-menu__caret--link {
    display: none;
}

.st2-menu__nav--mobile .st2-menu__panel {
    position: static;
    display: none;
    flex: 1 1 100%;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 10px;
    padding: 8px 0 10px 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.st2-menu__nav--mobile .st2-menu__nav-item.is-open > .st2-menu__panel {
    display: flex;
}

.st2-menu__nav--mobile .st2-menu__col {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0;
}

.st2-menu__nav--mobile .st2-menu__col:not(:last-child)::after {
    display: none;
}

.st2-menu__nav--mobile .st2-menu__col-title {
    margin: 8px 0 6px;
    padding: 0 0 6px;
    border-bottom-color: var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
    color: var(--st2-menu-mobile-text, #ffffff);
    font-size: 0.78rem;
    text-align: left;
    white-space: normal;
}

.st2-menu__nav--mobile .st2-menu__item {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.st2-menu__nav--mobile .st2-menu__panel .st2-menu__link {
    flex: 1 1 auto;
    width: auto;
    min-height: 44px;
    padding: 10px 8px;
    color: var(--st2-menu-mobile-text, #ffffff);
    font-size: 0.95rem;
    white-space: normal;
}

.st2-menu__nav--mobile .st2-menu__item > .st2-menu__sublist {
    flex: 1 1 100%;
}

.st2-menu__nav--mobile .st2-menu__panel .st2-menu__link:hover {
    background: var(--st2-menu-mobile-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-menu-mobile-text-hover, #ffffff);
}

.st2-menu__nav--mobile .st2-menu__panel .st2-menu__item.is-active > .st2-menu__link {
    background: var(--st2-menu-mobile-active-bg, #014d31);
    color: var(--st2-menu-mobile-active-text, #ffffff);
}

.st2-menu__nav--mobile .st2-menu__panel .st2-menu__item.is-current > .st2-menu__link {
    background: var(--st2-menu-mobile-current-bg, #014d31);
    color: var(--st2-menu-mobile-current-text, #ffffff);
    font-weight: 700;
}

.st2-menu__nav--mobile .st2-menu__panel .st2-menu__item.is-current > .st2-menu__link:hover {
    background: var(--st2-menu-mobile-current-bg, #014d31);
    color: var(--st2-menu-mobile-current-text, #ffffff);
}

.st2-menu__nav--mobile .st2-menu__sublist {
    padding-left: 10px;
}

.st2-menu__nav--mobile .st2-menu__item.is-group > .st2-menu__link {
    border-bottom-color: var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
    color: var(--st2-menu-mobile-text, #ffffff);
}

.st2-menu__nav--mobile .st2-menu__group-label {
    border-bottom-color: var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.16));
    color: var(--st2-menu-mobile-text, #ffffff);
}

/* Mobile activation: JavaScript adds is-mobile; the media query is a
   no-JS fallback for the default 992px breakpoint. */
@media (max-width: 991.98px) {
    .st2-menu:not(.st2-menu--bp-custom) .st2-menu__desktop {
        display: none;
    }

    .st2-menu:not(.st2-menu--bp-custom) .st2-menu__burger {
        display: inline-flex;
    }

    .st2-menu:not(.st2-menu--bp-custom) .st2-menu__drawer {
        display: flex;
    }

    .st2-menu:not(.st2-menu--bp-custom).st2-menu--boxed {
        max-width: none;
    }
}

.st2-menu.is-mobile .st2-menu__desktop {
    display: none;
}

.st2-menu.is-mobile .st2-menu__burger {
    display: inline-flex;
}

.st2-menu.is-mobile .st2-menu__drawer {
    display: flex;
}

.st2-menu.is-mobile .st2-menu__inner {
    min-height: 64px;
}

.st2-menu.is-mobile .st2-menu__brand {
    flex: 1 1 auto;
    padding: 10px 16px;
}

.st2-menu.is-mobile .st2-menu__burger {
    margin-inline: 6px 16px;
}

.st2-menu.is-mobile.st2-menu--boxed {
    max-width: none;
}

body.st2-menu-lock {
    overflow: hidden;
}

/* Neutralise the Cassiopeia card around the menu without touching other
   cards. */
.card:has(.st2-menu),
.card:has(> .card-body > .st2-menu),
.card-body:has(.st2-menu) {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.card:has(.st2-menu) > .card-header {
    display: none !important;
}

@media (min-width: 1025px) and (max-width: 1199px) {
    .st2-menu:not(.is-mobile) .st2-menu__link {
        padding-inline: 18px;
    }
}

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

/* mod_st2_sections/media/css/sections.css */
/* ============================================================
   ST2 Sections
   Hero, benefits, testimonials heading, stats CTA, newsletter
   and footer. Scoped, responsive, no dependencies.
   ============================================================ */

.st2-section {
    --st2-section-bg: #ffffff;
    --st2-section-text: #0f2e1d;
    --st2-section-heading: #0f2e1d;
    --st2-section-eyebrow: #b84a0a;
    --st2-section-muted: #5b6b60;
    --st2-section-accent: #e8721c;
    --st2-section-accent-text: #b84a0a;
    --st2-section-accent-ink: #0f2e1d;
    --st2-section-max: 1320px;
    --st2-section-pad-inline: 22px;
    box-sizing: border-box;
    width: 100%;
    background: var(--st2-section-bg);
    color: var(--st2-section-text);
}

.st2-section *,
.st2-section *::before,
.st2-section *::after {
    box-sizing: border-box;
}

.st2-section__inner {
    width: min(100%, var(--st2-section-max));
    margin-inline: auto;
    padding-inline: var(--st2-section-pad-inline);
}

/* ============================================================
   Hero
   ============================================================ */

.st2-section--hero {
    background: transparent;
    color: #ffffff;
}

.st2-hero__media {
    position: relative;
    display: flex;
    min-height: var(--st2-hero-min-height, 640px);
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    background: #0b3d24;
}

.st2-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--st2-hero-image-position, center);
}

.st2-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: var(--st2-hero-tint, rgba(3, 28, 18, 0.28));
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.03) 34%, rgba(0, 0, 0, 0.58) 100%),
        linear-gradient(90deg, rgba(0, 0, 0, 0.58) 0%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0) 100%);
}

.st2-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100%, var(--st2-section-max, 1320px));
    margin-inline: auto;
    padding: 4.5rem var(--st2-section-pad-inline, 22px) 6.5rem;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
}

.st2-hero__content {
    width: 100%;
    max-width: var(--st2-hero-content-max, 44rem);
}

.st2-hero__title {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.6rem, 5.2vw, 4.8rem);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.02;
    text-shadow: 0 3px 24px rgba(0, 0, 0, 0.28);
}

.st2-hero__title-accent {
    display: inline-block;
    margin-left: 0.12em;
    color: var(--st2-section-accent, #f4a261);
    font-family: "Segoe Script", "Brush Script MT", "Lucida Handwriting", cursive;
    font-size: 1.08em;
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.9;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.24);
    transform: rotate(-2deg);
    transform-origin: left bottom;
}

.st2-hero__text {
    max-width: 38rem;
    margin: 1.3rem 0 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.08rem;
    line-height: 1.65;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.2);
}

.st2-hero__features {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.8rem;
    margin: 1.8rem 0 0;
    padding: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.9rem;
    line-height: 1.4;
    list-style: none;
}

.st2-hero__feature {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.st2-hero__feature-icon {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    color: #d7e8dc;
}

.st2-hero__badge {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    width: 9.5rem;
    height: 9.5rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background: rgba(0, 0, 0, 0.16);
    box-shadow: inset 0 0 0 6px rgba(255, 255, 255, 0.08);
    color: #ffffff;
    text-align: center;
    transform: rotate(6deg);
}

.st2-hero__badge::before {
    position: absolute;
    inset: -8px;
    border: 1px dashed rgba(255, 255, 255, 0.42);
    border-radius: 50%;
    content: "";
}

.st2-hero__badge-title {
    font-family: "Segoe Script", "Brush Script MT", "Lucida Handwriting", cursive;
    font-size: 1.85rem;
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1;
}

.st2-hero__badge-text {
    max-width: 7rem;
    margin-top: 0.4rem;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-hero__badge-stars {
    display: flex;
    gap: 0.12rem;
    margin-top: 0.45rem;
    color: #f4a261;
}

.st2-hero__badge-star {
    width: 0.78rem;
    height: 0.78rem;
    fill: currentColor;
}

.st2-hero__search-wrap {
    position: relative;
    z-index: 3;
    margin-top: -3.25rem;
}

.st2-hero__search-wrap .st2-hero__inner {
    display: block;
    padding-top: 0;
    padding-bottom: 2.5rem;
}

.st2-hero__search {
    display: grid;
    width: 100%;
    max-width: 1100px;
    margin-inline: auto;
    padding: 0.55rem;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    grid-template-columns: 1.25fr 1fr 1fr auto;
    align-items: stretch;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
}

.st2-hero__search-field {
    display: flex;
    min-width: 0;
    padding: 0.6rem 1rem;
    border-right: 1px solid #e5e7eb;
    align-items: center;
    gap: 0.7rem;
}

.st2-hero__search-icon {
    display: inline-flex;
    flex: 0 0 auto;
    color: #0b3d24;
}

.st2-hero__search-icon .st2-icon {
    width: 1.2rem;
    height: 1.2rem;
}

.st2-hero__search-control {
    display: flex;
    min-width: 0;
    width: 100%;
    flex-direction: column;
}

.st2-hero__search-control label {
    margin-bottom: 0.12rem;
    color: #5b6b60;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-transform: uppercase;
}

.st2-hero__search-control input,
.st2-hero__search-control select {
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: #0f2e1d;
    font-family: inherit;
    font-size: 0.92rem;
    line-height: 1.35;
}

.st2-hero__search-control input::placeholder {
    color: #8a978f;
    opacity: 1;
}

.st2-hero__search-control input[type="date"] {
    color-scheme: light;
}

.st2-hero__search-control select {
    cursor: pointer;
}

.st2-hero__search-control input:focus-visible,
.st2-hero__search-control select:focus-visible {
    border-radius: 4px;
    outline: 2px solid var(--st2-section-accent, #e8721c);
    outline-offset: 2px;
}

.st2-hero__search-submit {
    display: inline-flex;
    min-height: 3.35rem;
    margin-left: 0.4rem;
    padding: 0.75rem 1.4rem;
    border: 0;
    border-radius: 11px;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--st2-section-accent, #e8721c);
    color: var(--st2-section-accent-ink, #0f2e1d);
    cursor: pointer;
    font-family: inherit;
    font-size: 0.94rem;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
    transition: filter 180ms ease, transform 180ms ease;
}

.st2-hero__search-submit:hover {
    filter: brightness(0.94);
    transform: translateY(-1px);
}

.st2-hero__search-submit:focus-visible {
    outline: 3px solid #0b3d24;
    outline-offset: 3px;
}

.st2-hero__search-submit-icon {
    width: 1.05rem;
    height: 1.05rem;
}

.st2-hero__search-note {
    max-width: 1100px;
    margin: 0.65rem auto 0;
    color: #5b6b60;
    font-size: 0.78rem;
    line-height: 1.4;
    text-align: center;
}

/* ============================================================
   Features
   ============================================================ */

.st2-section--features {
    background: var(--st2-section-bg);
    color: var(--st2-section-text);
}

.st2-features__head {
    max-width: 48rem;
    margin-bottom: 1.75rem;
}

.st2-features__title {
    margin: 0;
    color: var(--st2-section-heading);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.12;
}

.st2-features__intro {
    max-width: 42rem;
    margin: 0.8rem 0 0;
    color: var(--st2-section-muted);
    font-size: 0.98rem;
    line-height: 1.6;
}

.st2-features__grid {
    display: grid;
    grid-template-columns: repeat(var(--st2-features-cols, 4), minmax(0, 1fr));
    align-items: stretch;
}

.st2-feature {
    display: flex;
    min-width: 0;
    padding: 0.25rem 1.6rem;
    border-left: 1px solid var(--st2-features-separator, #e5e7eb);
    align-items: flex-start;
    gap: 1rem;
}

.st2-feature:first-child {
    border-left: 0;
    padding-left: 0;
}

.st2-feature:last-child {
    padding-right: 0;
}

.st2-features--no-separator .st2-feature {
    border-left: 0;
}

.st2-feature__icon {
    flex: 0 0 auto;
    width: var(--st2-features-icon-size, 2.25rem);
    height: var(--st2-features-icon-size, 2.25rem);
    margin-top: 0.12rem;
    color: var(--st2-features-icon, #0b3d24);
}

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

.st2-feature__title {
    margin: 0 0 0.28rem;
    color: var(--st2-features-title, #0f2e1d);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.3;
}

.st2-feature__text {
    margin: 0;
    color: var(--st2-features-text, #5b6b60);
    font-size: 0.88rem;
    line-height: 1.55;
}

.st2-feature__link {
    display: inline-flex;
    margin-top: 0.4rem;
    border-bottom: 1px solid currentColor;
    color: var(--st2-features-link, #b84a0a);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
}

.st2-feature__link:hover,
.st2-feature__link:focus-visible {
    color: var(--st2-features-title, #0f2e1d);
}

.st2-features--center .st2-feature {
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.st2-features--center .st2-feature__icon {
    margin-top: 0;
}

/* ============================================================
   Testimonials heading
   ============================================================ */

.st2-section--testimonials {
    background: var(--st2-section-bg);
    color: var(--st2-section-text);
}

.st2-testimonials-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}

.st2-testimonials-head__copy {
    max-width: 46rem;
}

.st2-testimonials-head__eyebrow {
    margin: 0 0 0.7rem;
    color: var(--st2-section-eyebrow, #b84a0a);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-testimonials-head__title {
    margin: 0;
    color: var(--st2-section-heading);
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.1;
}

.st2-testimonials-head__intro {
    max-width: 40rem;
    margin: 0.8rem 0 0;
    color: var(--st2-section-muted);
    font-size: 0.98rem;
    line-height: 1.6;
}

.st2-testimonials-head__link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid currentColor;
    color: var(--st2-section-accent-text, #b84a0a);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
    transition: color 180ms ease, gap 180ms ease;
}

.st2-testimonials-head__link:hover,
.st2-testimonials-head__link:focus-visible {
    color: var(--st2-section-heading);
    gap: 0.62rem;
}

.st2-testimonials-head__link .st2-icon {
    width: 1.1em;
    height: 1.1em;
}

/* ============================================================
   Stats / CTA
   ============================================================ */

.st2-section--stats {
    position: relative;
    display: flex;
    min-height: var(--st2-stats-min-height, 420px);
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    background: #0b3d24;
    color: #ffffff;
}

.st2-stats__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-position: var(--st2-stats-image-position, center);
    background-repeat: no-repeat;
    background-size: cover;
}

.st2-stats__bg-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--st2-stats-image-position, center);
}

.st2-stats__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: var(--st2-stats-overlay, rgba(3, 28, 18, 0.38));
    background-image: linear-gradient(90deg, rgba(3, 28, 18, 0.72) 0%, rgba(3, 28, 18, 0.35) 58%, rgba(3, 28, 18, 0.12) 100%);
}

.st2-stats__inner {
    position: relative;
    z-index: 2;
    display: grid;
    width: min(100%, var(--st2-section-max, 1320px));
    margin-inline: auto;
    padding: 4rem var(--st2-section-pad-inline, 22px);
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.4fr);
    align-items: center;
    gap: 3rem;
}

.st2-stats__eyebrow {
    margin: 0 0 0.7rem;
    color: var(--st2-stats-accent, #f4a261);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-stats__title {
    margin: 0;
    color: var(--st2-stats-text, #ffffff);
    font-size: clamp(2rem, 3.3vw, 3.15rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.08;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.3);
}

.st2-stats__text {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: var(--st2-stats-muted, #d7e8dc);
    font-size: 0.98rem;
    line-height: 1.65;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
}

.st2-stats__button {
    display: inline-flex;
    margin-top: 1.5rem;
    padding: 0.85rem 1.4rem;
    border: 0;
    border-radius: 10px;
    align-items: center;
    gap: 0.5rem;
    background: var(--st2-stats-accent, #e8721c);
    color: var(--st2-stats-accent-ink, #0f2e1d);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: filter 180ms ease, transform 180ms ease;
}

.st2-stats__button:hover {
    filter: brightness(0.94);
    transform: translateY(-1px);
}

.st2-stats__button:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.st2-stats__button .st2-icon {
    width: 1.05rem;
    height: 1.05rem;
}

.st2-stats__items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
}

.st2-stat {
    display: flex;
    min-width: 0;
    padding: 0.35rem 1rem;
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    align-items: center;
    flex-direction: column;
    text-align: center;
    gap: 0.3rem;
}

.st2-stat:first-child {
    border-left: 0;
}

.st2-stat__icon {
    width: 1.65rem;
    height: 1.65rem;
    margin-bottom: 0.15rem;
    color: var(--st2-stats-accent, #f4a261);
}

.st2-stat__value {
    color: var(--st2-stats-text, #ffffff);
    font-size: clamp(1.55rem, 2.4vw, 2.2rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.st2-stat__label {
    color: var(--st2-stats-muted, #d7e8dc);
    font-size: 0.76rem;
    line-height: 1.35;
}

/* ============================================================
   Newsletter
   ============================================================ */

.st2-section--newsletter {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: #0b3d24;
    color: #ffffff;
}

.st2-newsletter__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

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

.st2-newsletter__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: var(--st2-newsletter-overlay, rgba(3, 44, 27, 0.84));
}

.st2-newsletter__inner {
    position: relative;
    z-index: 2;
    display: grid;
    width: min(100%, var(--st2-section-max, 1320px));
    margin-inline: auto;
    padding: 2.5rem var(--st2-section-pad-inline, 22px);
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 1.75rem;
}

.st2-newsletter__icon {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    place-items: center;
}

.st2-newsletter__icon .st2-icon {
    width: 1.5rem;
    height: 1.5rem;
}

.st2-newsletter__title {
    margin: 0 0 0.3rem;
    color: var(--st2-newsletter-text, #ffffff);
    font-size: clamp(1.35rem, 2.2vw, 1.9rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.st2-newsletter__text {
    margin: 0;
    color: var(--st2-newsletter-muted, #d7e8dc);
    font-size: 0.9rem;
    line-height: 1.55;
}

.st2-newsletter__copy,
.st2-newsletter__form-wrap {
    min-width: 0;
}

.st2-newsletter__form {
    display: flex;
    padding: 0.35rem;
    border-radius: 12px;
    align-items: stretch;
    gap: 0.35rem;
    background: var(--st2-newsletter-input-bg, #ffffff);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.16);
}

.st2-newsletter__input {
    flex: 1;
    min-width: 0;
    padding: 0.72rem 0.9rem;
    border: 0;
    border-radius: 8px;
    outline: none;
    background: transparent;
    color: var(--st2-newsletter-input-text, #0f2e1d);
    font-family: inherit;
    font-size: 0.92rem;
    line-height: 1.3;
}

.st2-newsletter__input::placeholder {
    color: #5b6b60;
    opacity: 1;
}

.st2-newsletter__input:focus-visible {
    outline: 2px solid var(--st2-newsletter-accent, #e8721c);
    outline-offset: 1px;
}

.st2-newsletter__button {
    flex: 0 0 auto;
    padding: 0.72rem 1.15rem;
    border: 0;
    border-radius: 9px;
    background: var(--st2-newsletter-accent, #e8721c);
    color: var(--st2-newsletter-accent-ink, #0f2e1d);
    cursor: pointer;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
    transition: filter 180ms ease;
}

.st2-newsletter__button:hover {
    filter: brightness(0.94);
}

.st2-newsletter__button:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.st2-newsletter__note {
    margin: 0.45rem 0 0;
    color: var(--st2-newsletter-muted, #d7e8dc);
    font-size: 0.7rem;
    line-height: 1.4;
}

/* ============================================================
   Footer
   ============================================================ */

.st2-section--footer {
    scroll-margin-top: 90px;
    --st2-footer-bg: #0b3d24;
    --st2-footer-text: #ffffff;
    --st2-footer-muted: #c9ddd1;
    --st2-footer-heading: #ffffff;
    --st2-footer-link: #d7e8dc;
    --st2-footer-link-hover: #f4a261;
    --st2-footer-border: rgba(255, 255, 255, 0.16);
    --st2-footer-accent: #e8721c;
    background: var(--st2-footer-bg);
    color: var(--st2-footer-text);
}

.st2-footer__inner {
    width: min(100%, var(--st2-section-max, 1320px));
    margin-inline: auto;
    padding: 4rem var(--st2-section-pad-inline, 22px) 1.5rem;
}

.st2-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 2.4fr) minmax(0, 1.2fr);
    gap: 3rem;
}

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

.st2-footer__logo {
    display: block;
    width: var(--st2-footer-logo-width, 72px);
    height: auto;
    margin-bottom: 1rem;
    padding: 4px;
    border-radius: 50%;
    background: #ffffff;
}

.st2-footer__brand-name {
    margin: 0 0 0.65rem;
    color: var(--st2-footer-heading);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.st2-footer__description {
    max-width: 26rem;
    margin: 0;
    color: var(--st2-footer-muted);
    font-size: 0.88rem;
    line-height: 1.65;
}

.st2-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 1.2rem 0 0;
    padding: 0;
    list-style: none;
}

.st2-footer__social-link {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid var(--st2-footer-border);
    border-radius: 50%;
    color: var(--st2-footer-link);
    place-items: center;
    text-decoration: none;
    transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.st2-footer__social-link:hover,
.st2-footer__social-link:focus-visible {
    border-color: var(--st2-footer-accent);
    background: var(--st2-footer-accent);
    color: var(--st2-footer-accent-ink, #0f2e1d);
}

.st2-footer__social-link .st2-icon {
    width: 1.05rem;
    height: 1.05rem;
}

.st2-footer__links {
    display: grid;
    grid-template-columns: repeat(var(--st2-footer-link-cols, 3), minmax(0, 1fr));
    gap: 2rem;
}

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

.st2-footer__column-title {
    margin: 0 0 0.9rem;
    color: var(--st2-footer-heading);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-footer__list {
    display: flex;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 0.55rem;
    list-style: none;
}

.st2-footer__link {
    color: var(--st2-footer-link);
    font-size: 0.88rem;
    line-height: 1.4;
    text-decoration: none;
    transition: color 180ms ease;
}

.st2-footer__link:hover,
.st2-footer__link:focus-visible {
    color: var(--st2-footer-link-hover);
}

.st2-footer__contact-list {
    display: flex;
    margin: 0;
    padding: 0;
    flex-direction: column;
    gap: 0.75rem;
    list-style: none;
}

.st2-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: var(--st2-footer-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.st2-footer__contact-item .st2-icon {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    margin-top: 0.12rem;
    color: var(--st2-footer-accent);
}

.st2-footer__contact-item a {
    color: var(--st2-footer-link);
    text-decoration: none;
}

.st2-footer__contact-item a:hover,
.st2-footer__contact-item a:focus-visible {
    color: var(--st2-footer-link-hover);
}

.st2-footer__bottom {
    display: flex;
    margin-top: 3rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--st2-footer-border);
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--st2-footer-muted);
    font-size: 0.76rem;
    line-height: 1.45;
}

.st2-footer__bottom p {
    margin: 0;
}

.st2-footer__credit {
    text-align: right;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 1199px) {
    .st2-hero__badge {
        width: 8.5rem;
        height: 8.5rem;
    }

    .st2-hero__badge-title {
        font-size: 1.6rem;
    }

    .st2-hero__search {
        grid-template-columns: 1.1fr 0.9fr 0.9fr auto;
    }
}

@media (max-width: 1024px) {
    .st2-hero__media {
        min-height: 560px;
    }

    .st2-hero__inner {
        padding-top: 3.8rem;
        padding-bottom: 5.8rem;
        gap: 1.5rem;
    }

    .st2-hero__badge {
        width: 7.5rem;
        height: 7.5rem;
        padding: 0.75rem;
    }

    .st2-hero__badge-title {
        font-size: 1.4rem;
    }

    .st2-hero__badge-text {
        font-size: 0.55rem;
    }

    .st2-hero__search {
        grid-template-columns: 1fr 1fr;
    }

    .st2-hero__search-field {
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .st2-hero__search-field:nth-child(3) {
        border-bottom: 0;
    }

    .st2-hero__search-submit {
        grid-column: 1 / -1;
        margin: 0.5rem 0 0;
    }

    .st2-features__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem 0;
    }

    .st2-feature {
        padding-inline: 1.25rem;
    }

    .st2-feature:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .st2-feature:nth-child(even) {
        padding-right: 0;
    }

    .st2-stats__inner {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }

    .st2-stats__copy {
        max-width: 42rem;
    }

    .st2-newsletter__inner {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 1.25rem;
    }

    .st2-newsletter__form-wrap {
        grid-column: 1 / -1;
    }

    .st2-footer__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    }

    .st2-footer__contact {
        grid-column: 1 / -1;
    }

    .st2-home .container-header .st2-menu__drawer .st2-menu__link.st2-menu__cta {
        margin: 0.75rem 1rem 0;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .st2-section__inner,
    .st2-hero__inner,
    .st2-stats__inner,
    .st2-newsletter__inner,
    .st2-footer__inner {
        padding-inline: 16px;
    }

    .st2-hero__media {
        min-height: 520px;
    }

    .st2-hero__inner {
        padding-top: 7.25rem;
        padding-bottom: 5.2rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .st2-hero__badge {
        display: none;
    }

    .st2-hero__title {
        font-size: clamp(2.25rem, 11.5vw, 3.4rem);
    }

    .st2-hero__text {
        margin-top: 1rem;
        font-size: 1rem;
    }

    .st2-hero__features {
        flex-direction: column;
        gap: 0.55rem;
        margin-top: 1.35rem;
        font-size: 0.9rem;
    }

    .st2-hero__search-wrap {
        margin-top: -2.4rem;
    }

    .st2-hero__search {
        grid-template-columns: 1fr;
        padding: 0.45rem;
        border-radius: 14px;
    }

    .st2-hero__search-field {
        padding: 0.65rem 0.8rem;
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .st2-hero__search-field:nth-child(3) {
        border-bottom: 1px solid #e5e7eb;
    }

    .st2-hero__search-submit {
        min-height: 3rem;
        margin: 0.35rem 0 0;
        padding: 0.7rem 1rem;
    }

    .st2-hero__search-note {
        font-size: 0.72rem;
    }

    .st2-features__grid {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }

    .st2-feature {
        padding: 0 0 1.25rem;
        border-bottom: 1px solid var(--st2-features-separator, #e5e7eb);
        border-left: 0;
    }

    .st2-feature:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }

    .st2-feature:nth-child(odd),
    .st2-feature:nth-child(even) {
        padding-inline: 0;
    }

    .st2-features--center .st2-feature {
        align-items: flex-start;
        text-align: left;
    }

    .st2-testimonials-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.9rem;
    }

    .st2-testimonials-head__title {
        font-size: clamp(1.85rem, 8vw, 2.45rem);
    }

    .st2-stats__inner {
        padding-block: 3rem;
    }

    .st2-stats__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.35rem 0;
    }

    .st2-stat {
        padding: 0.3rem 0.65rem;
    }

    .st2-stat:nth-child(odd) {
        border-left: 0;
    }

    .st2-newsletter__inner {
        grid-template-columns: 1fr;
        padding-block: 2rem;
        gap: 1rem;
    }

    .st2-newsletter__icon {
        width: 3rem;
        height: 3rem;
    }

    .st2-newsletter__form {
        flex-direction: column;
    }

    .st2-newsletter__button {
        width: 100%;
        padding-block: 0.8rem;
    }

    .st2-footer__inner {
        padding-top: 3rem;
    }

    .st2-footer__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .st2-footer__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem;
    }

    .st2-footer__contact {
        grid-column: auto;
    }

    .st2-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.35rem;
        margin-top: 2rem;
    }

    .st2-footer__credit {
        text-align: left;
    }
}

@media (max-width: 380px) {
    .st2-footer__links {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-hero__search-submit,
    .st2-feature__link,
    .st2-testimonials-head__link,
    .st2-stats__button,
    .st2-newsletter__button,
    .st2-footer__link,
    .st2-footer__social-link {
        transition: none;
    }
}

/* ============================================================
   Cassiopeia home integration
   The homepage sections live in the banner position. Remove the
   template chrome around the empty component and the footer band.
   ============================================================ */

.st2-home .container-header {
    position: absolute;
    z-index: 900;
    inset: 0 0 auto;
    width: 100%;
    padding: 0;
    background: transparent;
}

.st2-home .container-topbar,
.st2-home .container-nav {
    padding: 0;
    background: transparent;
}

/* Header CTA: a real menu item marked with .st2-menu__cta. */
.st2-home .container-header .st2-menu__link.st2-menu__cta {
    margin-inline-start: 0.75rem;
    padding: 0.62rem 1.1rem;
    border-radius: 6px;
    align-self: center;
    background: #e8721c;
    color: #0f2e1d;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}

.st2-home .container-header .st2-menu__link.st2-menu__cta:hover,
.st2-home .container-header .st2-menu__link.st2-menu__cta:focus-visible {
    background: #cf5f12;
    color: #0f2e1d;
}

.st2-home .container-header .st2-menu__link.st2-menu__cta:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.st2-home .container-nav {
    display: block;
    width: 100%;
    max-width: none;
}

.st2-home .site-grid {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.st2-home .container-banner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.st2-home .container-component,
.st2-home .container-sidebar-left,
.st2-home .container-sidebar-right,
.st2-home .container-top-a,
.st2-home .container-top-b,
.st2-home .container-bottom-a,
.st2-home .container-bottom-b {
    display: none;
}

.st2-home .footer:has(.st2-section--footer),
.st2-home .container-footer:has(.st2-section--footer) {
    margin: 0;
    padding: 0;
    background: transparent;
    background-image: none;
}

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

/* Testimonial cards sit between the heading section and the newsletter. */
.st2-home .container-banner > .st2-testimonials {
    width: min(100%, 1320px);
    margin-inline: auto;
    padding: 0 22px 4rem;
}

@media (max-width: 767px) {
    .st2-home .container-banner > .st2-testimonials {
        padding: 0 16px 3rem;
    }
}

/* mod_st2_tours/media/css/tours.css */
/* ============================================================
   ST2 Tours
   Carrusel de tours y experiencias con scroll nativo.
   ============================================================ */

.st2-tours {
    --st2-tours-bg: #ffffff;
    --st2-tours-text: #0f2e1d;
    --st2-tours-heading: #0f2e1d;
    --st2-tours-eyebrow: #b84a0a;
    --st2-tours-muted: #5b6b60;
    --st2-tours-accent: #e8721c;
    --st2-tours-accent-text: #b84a0a;
    --st2-tours-card-accent-text: #b84a0a;
    --st2-tours-on-accent: #0f2e1d;
    --st2-tours-card-bg: #ffffff;
    --st2-tours-card-text: #0f2e1d;
    --st2-tours-card-muted: #5b6b60;
    --st2-tours-card-border: #e5e7eb;
    --st2-tours-card-shadow: rgba(15, 23, 42, 0.08);
    --st2-tours-nav-bg: #ffffff;
    --st2-tours-nav-text: #0f2e1d;
    --st2-tours-nav-border: #e5e7eb;
    --st2-tours-gap: 1.25rem;
    --st2-tours-visible-desktop: 5;
    --st2-tours-visible-tablet: 3;
    --st2-tours-visible-mobile: 1.15;
    --st2-tours-visible: var(--st2-tours-visible-desktop);
    --st2-tours-radius: 18px;
    --st2-tours-card-padding: 1.35rem;
    --st2-tours-max: 1320px;
    --st2-tours-pad-inline: 22px;
    --st2-tours-title-size: clamp(2rem, 3.6vw, 3.25rem);
    --st2-tours-image-ratio: 4 / 3;
    box-sizing: border-box;
    width: 100%;
    background: var(--st2-tours-bg);
    color: var(--st2-tours-text);
}

.st2-tours *,
.st2-tours *::before,
.st2-tours *::after {
    box-sizing: border-box;
}

.st2-tours--green {
    --st2-tours-bg: #0b3d24;
    --st2-tours-text: #ffffff;
    --st2-tours-heading: #ffffff;
    --st2-tours-eyebrow: #a7d7b8;
    --st2-tours-muted: #d7e8dc;
    --st2-tours-accent: #f4a261;
}

.st2-tours--has-bg {
    background-image:
        linear-gradient(var(--st2-tours-bg-overlay), var(--st2-tours-bg-overlay)),
        var(--st2-tours-bg-image);
    background-position: center, var(--st2-tours-bg-position);
    background-repeat: no-repeat;
    background-size: cover;
}

.st2-tours__inner {
    width: min(100%, var(--st2-tours-max));
    margin-inline: auto;
    padding-inline: var(--st2-tours-pad-inline);
}

.st2-tours__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.75rem;
}

.st2-tours__head-copy {
    max-width: 48rem;
}

.st2-tours__eyebrow {
    margin: 0 0 0.7rem;
    color: var(--st2-tours-eyebrow);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-tours__title {
    margin: 0;
    color: var(--st2-tours-heading);
    font-size: var(--st2-tours-title-size);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.08;
}

.st2-tours__intro {
    max-width: 42rem;
    margin: 0.9rem 0 0;
    color: var(--st2-tours-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.st2-tours__view-all {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid currentColor;
    color: var(--st2-tours-accent-text, #b84a0a);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
    transition: color 180ms ease, gap 180ms ease;
}

.st2-tours__view-all:hover,
.st2-tours__view-all:focus-visible {
    color: var(--st2-tours-heading);
    gap: 0.65rem;
}

.st2-tours__view-all-icon {
    width: 1.1em;
    height: 1.1em;
}

.st2-tours__viewport {
    position: relative;
    min-width: 0;
}

.st2-tours__track {
    display: grid;
    grid-auto-columns: calc((100% + var(--st2-tours-gap)) / var(--st2-tours-visible) - var(--st2-tours-gap));
    grid-auto-flow: column;
    gap: var(--st2-tours-gap);
    margin: 0;
    padding: 0.35rem 0.15rem 1.1rem;
    overflow-x: auto;
    overflow-y: hidden;
    list-style: none;
    scroll-behavior: smooth;
    scroll-padding-inline: 0.15rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior-x: contain;
}

.st2-tours__track::-webkit-scrollbar {
    display: none;
}

.st2-tours__track:focus-visible {
    outline: 3px solid var(--st2-tours-accent);
    outline-offset: 4px;
    border-radius: calc(var(--st2-tours-radius) + 4px);
}

.st2-tours__item {
    min-width: 0;
    scroll-snap-align: start;
}

.st2-tour-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: visible;
    border: 1px solid var(--st2-tours-card-border);
    border-radius: var(--st2-tours-radius);
    background: var(--st2-tours-card-bg);
    color: var(--st2-tours-card-text);
    box-shadow: 0 12px 30px var(--st2-tours-card-shadow);
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.st2-tour-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 38px var(--st2-tours-card-shadow);
}

.st2-tour-card__media {
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none;
}

.st2-tour-card__image-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: var(--st2-tours-image-ratio);
    border-radius: calc(var(--st2-tours-radius) - 1px) calc(var(--st2-tours-radius) - 1px) 0 0;
    background: #e7efe9;
}

.st2-tour-card__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 550ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.st2-tour-card:hover .st2-tour-card__img {
    transform: scale(1.045);
}

.st2-tour-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background: linear-gradient(135deg, #dcebe0, #b9d5c2);
    color: #2e7d32;
}

.st2-tour-card__placeholder-icon {
    width: 2.6rem;
    height: 2.6rem;
}

.st2-tour-card__flag {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 1;
    padding: 0.3rem 0.62rem;
    border-radius: 999px;
    background: var(--st2-tours-accent);
    color: var(--st2-tours-on-accent, #0f2e1d);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.st2-tour-card__badge {
    position: absolute;
    bottom: -1.35rem;
    left: 1rem;
    z-index: 2;
    display: grid;
    width: 3rem;
    height: 3rem;
    border: 4px solid var(--st2-tours-card-bg);
    border-radius: 50%;
    background: var(--st2-tour-badge, #2e7d32);
    color: var(--st2-tour-badge-ink, #ffffff);
    place-items: center;
    box-shadow: 0 7px 16px rgba(15, 23, 42, 0.2);
}

.st2-tour-card__badge-icon {
    width: 1.35rem;
    height: 1.35rem;
}

.st2-tour-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.55rem;
    padding: calc(var(--st2-tours-card-padding) + 0.8rem) var(--st2-tours-card-padding) var(--st2-tours-card-padding);
    border-radius: 0 0 var(--st2-tours-radius) var(--st2-tours-radius);
    background: var(--st2-tours-card-bg);
    color: var(--st2-tours-card-text);
}

.st2-tour-card__category {
    margin: 0;
    color: var(--st2-tours-card-accent-text, #b84a0a);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    line-height: 1.3;
    text-transform: uppercase;
}

.st2-tour-card__title {
    margin: 0;
    color: var(--st2-tours-card-text);
    font-size: 1.17rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.25;
}

.st2-tour-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 180ms ease;
}

.st2-tour-card__title a:hover,
.st2-tour-card__title a:focus-visible {
    color: var(--st2-tours-card-accent-text, #b84a0a);
}

.st2-tour-card__description {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--st2-tours-card-muted);
    font-size: 0.9rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.st2-tour-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.5rem;
    color: var(--st2-tours-card-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.st2-tour-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem;
    color: var(--st2-tours-card-text);
    font-size: 1.16rem;
    line-height: 1.2;
}

.st2-tour-card__price strong {
    font-weight: 800;
}

.st2-tour-card__price-prefix,
.st2-tour-card__price-note {
    color: var(--st2-tours-card-muted);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.st2-tour-card__price-prefix {
    text-transform: uppercase;
}

.st2-tour-card__meta-item {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
}

.st2-tour-card__meta-icon {
    flex: 0 0 auto;
    width: 0.95rem;
    height: 0.95rem;
    margin-top: 0.1rem;
}

.st2-tour-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: max-content;
    max-width: 100%;
    margin-top: 0.45rem;
    color: var(--st2-tours-card-accent-text, #b84a0a);
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.3;
    text-decoration: none;
    transition: gap 180ms ease, color 180ms ease;
}

.st2-tour-card__link:hover,
.st2-tour-card__link:focus-visible {
    gap: 0.62rem;
    color: var(--st2-tours-card-text);
}

.st2-tour-card__link-icon {
    width: 1.05em;
    height: 1.05em;
}

.st2-tours__nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: grid;
    width: 2.9rem;
    height: 2.9rem;
    border: 1px solid var(--st2-tours-nav-border);
    border-radius: 50%;
    background: var(--st2-tours-nav-bg);
    color: var(--st2-tours-nav-text);
    cursor: pointer;
    place-items: center;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
    transform: translateY(-50%);
    transition: opacity 180ms ease, transform 180ms ease, background 180ms ease, color 180ms ease;
}

.st2-tours__nav:hover,
.st2-tours__nav:focus-visible {
    background: var(--st2-tours-accent);
    color: var(--st2-tours-on-accent, #0f2e1d);
    transform: translateY(-50%) scale(1.05);
}

.st2-tours__nav:focus-visible {
    outline: 3px solid var(--st2-tours-accent);
    outline-offset: 3px;
}

.st2-tours__nav[disabled] {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.st2-tours__nav--prev {
    left: -1.05rem;
}

.st2-tours__nav--next {
    right: -1.05rem;
}

.st2-tours__nav-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.st2-tours__view-all .st2-icon,
.st2-tour-card__link .st2-icon {
    flex: 0 0 auto;
}

@media (max-width: 1199px) and (min-width: 1025px) {
    .st2-tours {
        --st2-tours-visible: min(var(--st2-tours-visible-desktop), 4);
    }
}

@media (max-width: 1024px) {
    .st2-tours {
        --st2-tours-visible: var(--st2-tours-visible-tablet);
    }

    .st2-tours__head {
        align-items: flex-start;
        gap: 1.25rem;
    }

    .st2-tours__nav--prev {
        left: -0.65rem;
    }

    .st2-tours__nav--next {
        right: -0.65rem;
    }
}

@media (max-width: 767px) {
    .st2-tours {
        --st2-tours-visible: var(--st2-tours-visible-mobile);
        --st2-tours-title-size: clamp(1.85rem, 8vw, 2.45rem);
    }

    .st2-tours__inner {
        padding-inline: 16px;
    }

    .st2-tours__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.9rem;
        margin-bottom: 1.25rem;
    }

    .st2-tours__view-all {
        margin-top: 0.1rem;
    }

    .st2-tours__track {
        padding-bottom: 0.75rem;
    }

    .st2-tours__nav {
        display: none;
    }

    .st2-tour-card__title {
        font-size: 1.1rem;
    }

    .st2-tour-card__description {
        -webkit-line-clamp: 4;
    }
}

@media (max-width: 380px) {
    .st2-tours {
        --st2-tours-visible-mobile: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-tours__track {
        scroll-behavior: auto;
    }

    .st2-tour-card,
    .st2-tour-card__img,
    .st2-tours__nav,
    .st2-tours__view-all,
    .st2-tour-card__link {
        transition: none;
    }
}

/* mod_st2_testimonial/media/css/testimonial.css */
.st2-testimonials {
    width: 100%;
    min-width: 0;
    color: inherit;
    container-type: inline-size;
}

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

.st2-testimonial {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    min-width: 0;
    height: 100%;
    margin: 0;
}

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

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

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

.st2-testimonials--plain .st2-testimonial {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
}

.st2-testimonials--align-center .st2-testimonial {
    align-items: center;
    text-align: center;
}

.st2-testimonials--align-end .st2-testimonial {
    align-items: flex-end;
    text-align: end;
}

.st2-testimonial__mark {
    display: block;
    margin-bottom: -0.2rem;
    color: var(--st2-testimonial-accent, #0b5fff);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3rem;
    line-height: 0.8;
}

.st2-testimonial__rating {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
    color: var(--st2-testimonial-star, #f59e0b);
}

.st2-testimonial__star {
    width: 1.05em;
    height: 1.05em;
    flex: 0 0 auto;
    fill: transparent;
}

.st2-testimonial__star.is-filled {
    fill: currentColor;
}

.st2-testimonial__quote {
    margin: 0;
    color: inherit;
    font-size: var(--st2-testimonial-quote-size, 1rem);
    line-height: 1.65;
}

.st2-testimonial__quote p {
    margin: 0;
}

.st2-testimonial__author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: auto;
    padding-top: 1rem;
}

.st2-testimonials--card .st2-testimonial__author {
    border-top: 1px solid var(--st2-testimonial-border, #e5e7eb);
}

.st2-testimonials--align-center .st2-testimonial__author {
    justify-content: center;
    text-align: start;
}

.st2-testimonials--align-end .st2-testimonial__author {
    flex-direction: row-reverse;
    text-align: end;
}

.st2-testimonial__avatar {
    display: grid;
    place-items: center;
    width: var(--st2-testimonial-avatar-size, 3.5rem);
    height: var(--st2-testimonial-avatar-size, 3.5rem);
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 50%;
    background: #eef4ff;
    background: color-mix(in srgb, var(--st2-testimonial-accent, #0b5fff) 12%, var(--st2-testimonial-bg, #ffffff));
    color: var(--st2-testimonial-accent, #0b5fff);
    font-weight: 700;
}

.st2-testimonials--avatar-rounded .st2-testimonial__avatar {
    border-radius: 14px;
}

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

.st2-testimonial__initials {
    font-size: 1.15rem;
    line-height: 1;
}

.st2-testimonial__author-info {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.st2-testimonial__name {
    color: var(--st2-testimonial-author, #0f172a);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.3;
}

.st2-testimonial__role {
    color: var(--st2-testimonial-muted, #64748b);
    font-size: 0.875rem;
    line-height: 1.4;
    text-wrap: pretty;
}

.st2-testimonials .st2-testimonial .st2-testimonial__link {
    width: fit-content;
    margin-top: 0.15rem;
    color: var(--st2-testimonial-accent, #0b5fff);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.st2-testimonials .st2-testimonial .st2-testimonial__link:focus-visible {
    outline: 3px solid var(--st2-testimonial-accent, #0b5fff);
    outline-offset: 3px;
    border-radius: 2px;
}

.st2-testimonials--plain .st2-testimonial__name {
    color: inherit;
}

.st2-testimonials--plain .st2-testimonial__role {
    color: currentColor;
    opacity: 0.72;
}

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

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

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

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

/* mod_st2_topbar/media/css/topbar.css */
/**
 * ST2 Topbar
 * Scoped styles for the site topbar module. No external fonts or icon packs.
 */

.st2-topbar {
    --st2-topbar-bg: rgba(2, 78, 51, 0.95);
    --st2-topbar-text: #ffffff;
    --st2-topbar-text-hover: #ffffff;
    --st2-topbar-hover-bg: rgba(255, 255, 255, 0.12);
    --st2-topbar-active-bg: rgba(255, 255, 255, 0.18);
    --st2-topbar-accent: #f4a261;
    --st2-topbar-border: rgba(255, 255, 255, 0.16);
    --st2-topbar-search-bg: rgba(255, 255, 255, 0.1);
    --st2-topbar-search-border: rgba(255, 255, 255, 0.22);
    --st2-topbar-search-text: #ffffff;
    --st2-topbar-panel-bg: rgba(255, 255, 255, 0.98);
    --st2-topbar-panel-text: #2c3e50;
    --st2-topbar-panel-text-hover: #b84a0a;
    --st2-topbar-panel-hover-bg: rgba(232, 114, 28, 0.1);
    --st2-topbar-panel-border: rgba(0, 0, 0, 0.08);
    --st2-topbar-focus: #f4a261;
    --st2-topbar-max: 1320px;
    --st2-topbar-gap: 16px;
    --st2-topbar-min-height: 44px;
    --st2-topbar-pad-y: 0px;
    --st2-topbar-pad-x: 22px;
    --st2-topbar-font-size: 0.875rem;
    --st2-topbar-mobile-min-height: 44px;
    --st2-topbar-mobile-pad-y: 0px;
    --st2-topbar-mobile-pad-x: 16px;
    --st2-topbar-mobile-font-size: 0.875rem;
    --st2-topbar-span-utility: 4;
    --st2-topbar-span-search: 2;
    --st2-topbar-span-social: 4;
    --st2-topbar-span-language: 2;
    --st2-topbar-social-size: clamp(28px, 2.7vw, 38px);
    --st2-topbar-z: 950;

    position: relative;
    z-index: var(--st2-topbar-z, 950);
    width: 100%;
    margin: 0;
    background: var(--st2-topbar-bg, rgba(2, 78, 51, 0.95));
    color: var(--st2-topbar-text, #ffffff);
    box-shadow: inset 0 -1px 0 var(--st2-topbar-border, rgba(255, 255, 255, 0.16));
    font-size: var(--st2-topbar-font-size, 0.875rem);
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
}

.st2-topbar,
.st2-topbar *,
.st2-topbar *::before,
.st2-topbar *::after {
    box-sizing: border-box;
}

.st2-topbar a {
    color: inherit;
    text-decoration: none;
}

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

.st2-topbar button,
.st2-topbar input,
.st2-topbar summary {
    font: inherit;
}

.st2-topbar__inner {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--st2-topbar-gap, 16px);
    align-items: center;
    width: 100%;
    max-width: var(--st2-topbar-max, 1320px);
    min-height: var(--st2-topbar-min-height, 44px);
    margin-inline: auto;
    padding: var(--st2-topbar-pad-y, 0px) var(--st2-topbar-pad-x, 22px);
}

.st2-topbar__zone {
    display: flex;
    align-items: center;
    min-width: 0;
}

.st2-topbar__zone--utility {
    grid-column: span var(--st2-topbar-span-utility, 4);
    justify-content: flex-start;
}

.st2-topbar__zone--search {
    grid-column: span var(--st2-topbar-span-search, 2);
    justify-content: center;
}

.st2-topbar__zone--social {
    grid-column: span var(--st2-topbar-span-social, 4);
    justify-content: flex-end;
    overflow: hidden;
}

.st2-topbar__zone--language {
    grid-column: span var(--st2-topbar-span-language, 2);
    justify-content: flex-end;
}

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

.st2-topbar__utility {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
    min-width: 0;
}

.st2-topbar__utility-item {
    min-width: 0;
}

.st2-topbar__link {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 10px;
    border-radius: 6px;
    color: var(--st2-topbar-text, #ffffff);
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.st2-topbar__link:hover,
.st2-topbar__link:focus-visible {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__link.is-active {
    background: var(--st2-topbar-active-bg, rgba(255, 255, 255, 0.18));
    color: var(--st2-topbar-text-hover, #ffffff);
    box-shadow: inset 0 -2px 0 var(--st2-topbar-accent, #e8721c);
}

.st2-topbar__icon {
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.st2-topbar__search-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--st2-topbar-search-border, rgba(255, 255, 255, 0.22));
    border-radius: 999px;
    background: var(--st2-topbar-search-bg, rgba(255, 255, 255, 0.1));
    color: var(--st2-topbar-search-text, #ffffff);
    font-size: inherit;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.st2-topbar__search-trigger:hover,
.st2-topbar__search-trigger:focus-visible {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    border-color: var(--st2-topbar-accent, #e8721c);
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__search-trigger .st2-topbar__icon {
    width: 18px;
    height: 18px;
}

.st2-topbar__search-label {
    display: inline;
}

.st2-topbar__social {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 2px;
    min-width: 0;
    max-width: 100%;
    margin-inline-start: auto;
    padding-block: 2px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.st2-topbar__social::-webkit-scrollbar {
    display: none;
}

.st2-topbar__social-item {
    min-width: 0;
}

.st2-topbar__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--st2-topbar-social-size, 38px);
    height: var(--st2-topbar-social-size, 38px);
    flex: 0 0 auto;
    border-radius: 50%;
    color: var(--st2-topbar-text, #ffffff);
    line-height: 1;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.st2-topbar__social .st2-topbar__social-link:focus-visible {
    outline-offset: 0;
}

.st2-topbar__social-link:hover,
.st2-topbar__social-link:focus-visible {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-topbar-accent, #e8721c);
}

.st2-topbar__social-link .st2-topbar__icon {
    width: 19px;
    height: 19px;
}

.st2-topbar__social-label {
    display: none;
}

.st2-topbar__lang {
    position: relative;
}

.st2-topbar__lang-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 8px;
    border-radius: 6px;
    color: var(--st2-topbar-text, #ffffff);
    cursor: pointer;
    list-style: none;
    transition: background-color 0.18s ease, color 0.18s ease;
}

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

.st2-topbar__lang-toggle:hover,
.st2-topbar__lang-toggle:focus-visible,
.st2-topbar__lang[open] > .st2-topbar__lang-toggle {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__lang-current {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 8px;
    color: var(--st2-topbar-text, #ffffff);
}

.st2-topbar__chevron {
    display: block;
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    transition: transform 0.2s ease;
}

.st2-topbar__lang[open] .st2-topbar__chevron,
.st2-topbar__more[open] .st2-topbar__chevron {
    transform: rotate(180deg);
}

.st2-topbar__lang-list {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + 6px);
    z-index: 30;
    min-width: 180px;
    max-width: min(92vw, 280px);
    margin: 0;
    padding: 6px;
    border: 1px solid var(--st2-topbar-panel-border, rgba(0, 0, 0, 0.08));
    border-radius: 10px;
    background: var(--st2-topbar-panel-bg, rgba(255, 255, 255, 0.98));
    color: var(--st2-topbar-panel-text, #2c3e50);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}

.st2-topbar__lang-item {
    min-width: 0;
}

.st2-topbar__lang-link {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 10px;
    border-radius: 6px;
    color: var(--st2-topbar-panel-text, #2c3e50);
    white-space: nowrap;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.st2-topbar__lang-link:hover,
.st2-topbar__lang-link:focus-visible {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
}

.st2-topbar__lang-link.is-active {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
    font-weight: 600;
}

.st2-topbar__lang-list--inline {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
    min-width: 0;
    max-width: none;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--st2-topbar-text, #ffffff);
}

.st2-topbar__lang-list--inline .st2-topbar__lang-link {
    min-height: 38px;
    padding: 0 6px;
    color: var(--st2-topbar-text, #ffffff);
    white-space: nowrap;
}

.st2-topbar__lang-list--inline .st2-topbar__lang-link:hover,
.st2-topbar__lang-list--inline .st2-topbar__lang-link:focus-visible {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__lang-list--inline .st2-topbar__lang-link.is-active {
    background: var(--st2-topbar-active-bg, rgba(255, 255, 255, 0.18));
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__flag {
    display: block;
    width: 24px;
    height: 16px;
    flex: 0 0 auto;
    border-radius: 2px;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.st2-topbar__lang-code {
    font-weight: 600;
    letter-spacing: 0.02em;
}

.st2-topbar__lang-name {
    min-width: 0;
}

/*
 * Modo "solo bandera": oculta el código y reduce ligeramente la bandera y la
 * separación para que varias banderas quepan en la misma zona, también en móvil.
 */
.st2-topbar--lang-flag .st2-topbar__flag {
    width: 22px;
    height: 15px;
}

.st2-topbar--lang-flag .st2-topbar__lang-list--inline {
    gap: 0;
}

.st2-topbar--lang-flag .st2-topbar__lang-list--inline .st2-topbar__lang-link {
    padding-inline: 4px;
}

.st2-topbar__more {
    position: relative;
    display: none;
}

.st2-topbar__more-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 10px;
    border-radius: 6px;
    color: var(--st2-topbar-text, #ffffff);
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    transition: background-color 0.18s ease, color 0.18s ease;
}

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

.st2-topbar__more-toggle:hover,
.st2-topbar__more-toggle:focus-visible,
.st2-topbar__more[open] > .st2-topbar__more-toggle {
    background: var(--st2-topbar-hover-bg, rgba(255, 255, 255, 0.12));
    color: var(--st2-topbar-text-hover, #ffffff);
}

.st2-topbar__more-panel {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + 8px);
    z-index: 40;
    width: min(92vw, 360px);
    max-height: min(70vh, 480px);
    overflow: auto;
    padding: 12px;
    border: 1px solid var(--st2-topbar-panel-border, rgba(0, 0, 0, 0.08));
    border-radius: 12px;
    background: var(--st2-topbar-panel-bg, rgba(255, 255, 255, 0.98));
    color: var(--st2-topbar-panel-text, #2c3e50);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.24);
}

.st2-topbar__more-section + .st2-topbar__more-section {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--st2-topbar-panel-border, rgba(0, 0, 0, 0.08));
}

.st2-topbar__utility--panel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 2px;
}

.st2-topbar__utility--panel .st2-topbar__link {
    min-height: 44px;
    padding: 10px 12px;
    color: var(--st2-topbar-panel-text, #2c3e50);
    white-space: normal;
}

.st2-topbar__utility--panel .st2-topbar__link:hover,
.st2-topbar__utility--panel .st2-topbar__link:focus-visible {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
}

.st2-topbar__utility--panel .st2-topbar__link.is-active {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
    box-shadow: inset 3px 0 0 var(--st2-topbar-accent, #e8721c);
}

.st2-topbar__social--panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    justify-content: stretch;
    width: 100%;
    max-width: none;
    margin: 0;
    padding-block: 0;
    overflow: visible;
}

.st2-topbar__social--panel .st2-topbar__social-link {
    width: 100%;
    height: auto;
    min-height: 44px;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    color: var(--st2-topbar-panel-text, #2c3e50);
}

.st2-topbar__social--panel .st2-topbar__social-link:hover,
.st2-topbar__social--panel .st2-topbar__social-link:focus-visible {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
}

.st2-topbar__social--panel .st2-topbar__social-link .st2-topbar__icon {
    width: 20px;
    height: 20px;
}

.st2-topbar__social--panel .st2-topbar__social-label {
    display: inline;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.85rem;
    font-weight: 500;
}

/*
 * Mobile search inside the menu offcanvas. The topbar renders the form with
 * the active language labels and topbar.js moves it after the last menu item.
 */
.st2-topbar__mobile-search {
    --st2-mobile-search-gap: 24px;
    --st2-mobile-search-accent: var(--st2-topbar-accent, #e8721c);
    margin: 0;
    padding: 0;
}

.st2-topbar__mobile-search,
.st2-topbar__mobile-search *,
.st2-topbar__mobile-search *::before,
.st2-topbar__mobile-search *::after {
    box-sizing: border-box;
}

.st2-topbar__mobile-search[hidden] {
    display: none !important;
}

.st2-topbar__mobile-search--in-menu {
    margin-top: var(--st2-mobile-search-gap, 24px);
}

.st2-topbar__mobile-search-form {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin: 0;
}

.st2-topbar__mobile-search-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid var(--st2-menu-mobile-border, rgba(255, 255, 255, 0.22));
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--st2-menu-mobile-text, #ffffff);
    font: inherit;
}

.st2-topbar__mobile-search-input::placeholder {
    color: currentColor;
    opacity: 0.72;
}

.st2-topbar__mobile-search-input:focus {
    outline: 2px solid var(--st2-mobile-search-accent, #e8721c);
    outline-offset: 1px;
}

.st2-topbar__mobile-search-submit {
    flex: 0 0 auto;
    min-height: 46px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: var(--st2-mobile-search-accent, #e8721c);
    color: #ffffff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: filter 0.18s ease;
}

.st2-topbar__mobile-search-submit:hover,
.st2-topbar__mobile-search-submit:focus-visible {
    filter: brightness(0.95);
}

.st2-topbar__mobile-search .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;
}

@media (max-width: 360px) {
    .st2-topbar__mobile-search-form {
        flex-direction: column;
    }

    .st2-topbar__mobile-search-submit {
        width: 100%;
    }
}

.st2-topbar__search-dialog {
    width: min(92vw, 640px);
    max-width: none;
    margin: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--st2-topbar-panel-text, #2c3e50);
}

.st2-topbar__search-dialog::backdrop {
    background: rgba(0, 0, 0, 0.55);
}

.st2-topbar__search-form {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 56px 22px 22px;
    border: 1px solid var(--st2-topbar-panel-border, rgba(0, 0, 0, 0.08));
    border-radius: 16px;
    background: var(--st2-topbar-panel-bg, rgba(255, 255, 255, 0.98));
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}

.st2-topbar__search-row {
    display: flex;
    gap: 8px;
}

.st2-topbar__search-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid var(--st2-topbar-panel-border, rgba(0, 0, 0, 0.08));
    border-radius: 10px;
    background: #ffffff;
    color: var(--st2-topbar-panel-text, #2c3e50);
}

.st2-topbar__search-input::placeholder {
    color: var(--st2-topbar-panel-text, #2c3e50);
    opacity: 0.65;
}

.st2-topbar__search-input:focus {
    outline: 2px solid var(--st2-topbar-focus, #e8721c);
    outline-offset: 1px;
}

.st2-topbar__search-submit {
    flex: 0 0 auto;
    min-height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    background: var(--st2-topbar-accent, #e8721c);
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
    transition: filter 0.18s ease;
}

.st2-topbar__search-submit:hover {
    filter: brightness(0.95);
}

.st2-topbar__search-close {
    position: absolute;
    top: 8px;
    inset-inline-end: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--st2-topbar-panel-text, #2c3e50);
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.st2-topbar__search-close:hover,
.st2-topbar__search-close:focus-visible {
    background: var(--st2-topbar-panel-hover-bg, rgba(232, 114, 28, 0.1));
    color: var(--st2-topbar-panel-text-hover, #e8721c);
}

.st2-topbar__search-close .st2-topbar__icon {
    width: 18px;
    height: 18px;
}

.st2-topbar a:focus-visible,
.st2-topbar button:focus-visible,
.st2-topbar summary:focus-visible,
.st2-topbar input:focus-visible {
    outline: 2px solid var(--st2-topbar-focus, #e8721c);
    outline-offset: 2px;
}

.st2-topbar .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;
}

/*
 * Cassiopeia and older custom user.css files may turn .container-topbar into
 * a flex row. The module owns the full width, so neutralise that wrapper only
 * when the new topbar is inside it.
 *
 * The header also gets a stacking context above the sticky menu so the
 * language and mobile panels are not covered when they open downwards.
 */
.site > .container-header:has(.st2-topbar) {
    z-index: 1000 !important;
}

.site .container-topbar:has(> .st2-topbar) {
    display: block !important;
    justify-content: initial !important;
    align-items: initial !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.site .container-topbar:has(> .st2-topbar) > .st2-topbar {
    width: 100%;
}

.site .container-topbar .st2-topbar a:not(.st2-topbar__search-submit):hover,
.site .container-topbar .st2-topbar a:not(.st2-topbar__search-submit):focus {
    color: var(--st2-topbar-text-hover, #ffffff);
}

.site .container-topbar .st2-topbar .st2-topbar__social-link:hover,
.site .container-topbar .st2-topbar .st2-topbar__social-link:focus {
    color: var(--st2-topbar-accent, #e8721c);
}

.site .container-topbar .st2-topbar .st2-topbar__utility--panel a:hover,
.site .container-topbar .st2-topbar .st2-topbar__utility--panel a:focus,
.site .container-topbar .st2-topbar .st2-topbar__lang-list a:hover,
.site .container-topbar .st2-topbar .st2-topbar__lang-list a:focus,
.site .container-topbar .st2-topbar .st2-topbar__social--panel a:hover,
.site .container-topbar .st2-topbar .st2-topbar__social--panel a:focus {
    color: var(--st2-topbar-panel-text-hover, #e8721c);
}

@media (max-width: 480px) {
    .st2-topbar__search-row {
        flex-direction: column;
    }

    .st2-topbar__search-submit {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .st2-topbar *,
    .st2-topbar *::before,
    .st2-topbar *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* mod_st2_whatsapp/media/css/whatsapp.css */
/* ============================================================
   ST2 WhatsApp - flotante
   Sin dependencias. El módulo fija el contenedor al viewport y el
   panel se abre por encima del botón.
   ============================================================ */

.st2-wa,
.st2-wa *,
.st2-wa *::before,
.st2-wa *::after {
    box-sizing: border-box;
}

.st2-wa {
    --st2-wa-accent: #0b7a5c;
    --st2-wa-accent-text: #ffffff;
    --st2-wa-panel-bg: #ffffff;
    --st2-wa-panel-text: #173b2d;
    --st2-wa-panel-muted: #5f7268;
    --st2-wa-panel-border: rgba(23, 59, 45, 0.14);
    --st2-wa-panel-soft: rgba(23, 59, 45, 0.045);
    --st2-wa-focus: rgba(11, 122, 92, 0.35);
    --st2-wa-offset-x: 20px;
    --st2-wa-offset-y: 20px;
    --st2-wa-z: 9990;
    position: fixed;
    right: var(--st2-wa-offset-x);
    bottom: calc(var(--st2-wa-offset-y) + env(safe-area-inset-bottom, 0px));
    z-index: var(--st2-wa-z);
    display: block;
    width: auto;
    max-width: calc(100vw - 32px);
    margin: 0;
    color: var(--st2-wa-panel-text);
    font: inherit;
    font-size: 1rem;
    line-height: 1.4;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
}

.st2-wa.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.st2-wa.is-dismissed {
    opacity: 0;
    transform: translateY(8px) scale(0.96);
}

.st2-wa--left {
    right: auto;
    left: var(--st2-wa-offset-x);
}

.st2-wa a {
    text-decoration: none;
}

.st2-wa button,
.st2-wa textarea {
    font: inherit;
}

.st2-wa button {
    margin: 0;
}

.st2-wa svg {
    display: block;
    width: 1em;
    height: 1em;
}

/* Botón flotante ------------------------------------------------ */

.st2-wa__launcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 6px 18px 6px 6px;
    border: 0;
    border-radius: 999px;
    background: var(--st2-wa-accent);
    background: linear-gradient(135deg, var(--st2-wa-accent), color-mix(in srgb, var(--st2-wa-accent) 76%, #062b20));
    color: var(--st2-wa-accent-text);
    box-shadow: 0 14px 34px rgba(6, 43, 32, 0.28), 0 2px 8px rgba(6, 43, 32, 0.16);
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.st2-wa__launcher:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(6, 43, 32, 0.32), 0 3px 10px rgba(6, 43, 32, 0.18);
    filter: brightness(1.04);
}

.st2-wa__launcher:focus-visible {
    outline: 3px solid var(--st2-wa-focus);
    outline-offset: 3px;
}

.st2-wa__launcher--icon-only {
    padding: 6px;
}

.st2-wa__launcher-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}

.st2-wa__launcher-icon svg {
    width: 26px;
    height: 26px;
}

.st2-wa__launcher-label {
    max-width: 220px;
    overflow: hidden;
    color: inherit;
    font-weight: 700;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.st2-wa__launcher-dot {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 10px;
    height: 10px;
    border: 2px solid var(--st2-wa-accent);
    border-radius: 50%;
    background: #22c55e;
}

.st2-wa__launcher-dot.is-offline {
    background: #f59e0b;
}

/* Panel --------------------------------------------------------- */

.st2-wa__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 14px);
    display: flex;
    flex-direction: column;
    width: 370px;
    max-width: calc(100vw - 32px);
    max-height: 620px;
    max-height: min(620px, calc(100vh - 110px));
    max-height: min(620px, calc(100dvh - 110px));
    overflow: hidden;
    border: 1px solid var(--st2-wa-panel-border);
    border-radius: 20px;
    background: var(--st2-wa-panel-bg);
    color: var(--st2-wa-panel-text);
    box-shadow: 0 24px 70px rgba(6, 43, 32, 0.28), 0 4px 16px rgba(6, 43, 32, 0.12);
    transform-origin: bottom right;
    animation: st2-wa-in 0.22s ease both;
}

.st2-wa--left .st2-wa__panel {
    right: auto;
    left: 0;
    transform-origin: bottom left;
}

.st2-wa__panel[hidden] {
    display: none !important;
}

.st2-wa__panel:focus {
    outline: none;
}

@keyframes st2-wa-in {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
    }

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

.st2-wa__header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    background: var(--st2-wa-accent);
    background: linear-gradient(135deg, var(--st2-wa-accent), color-mix(in srgb, var(--st2-wa-accent) 70%, #062b20));
    color: var(--st2-wa-accent-text);
}

.st2-wa__avatar {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}

.st2-wa__avatar svg {
    width: 26px;
    height: 26px;
}

.st2-wa__heading {
    flex: 1;
    min-width: 0;
}

.st2-wa__title {
    margin: 0;
    color: inherit;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
}

.st2-wa__subtitle {
    margin: 2px 0 0;
    color: inherit;
    font-size: 0.82rem;
    line-height: 1.35;
    opacity: 0.86;
}

.st2-wa__status {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 7px 0 0;
    color: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    opacity: 0.96;
}

.st2-wa__status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.18);
}

.st2-wa__status.is-offline .st2-wa__status-dot {
    background: #fbbf24;
    box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}

.st2-wa__close {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 38px;
    height: 38px;
    margin: -4px -4px 0 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: inherit;
    cursor: pointer;
    transition: background-color 0.18s ease;
}

.st2-wa__close:hover {
    background: rgba(255, 255, 255, 0.22);
}

.st2-wa__close:focus-visible {
    outline: 3px solid rgba(255, 255, 255, 0.55);
    outline-offset: 2px;
}

.st2-wa__close svg {
    width: 18px;
    height: 18px;
}

.st2-wa__body {
    min-height: 0;
    padding: 16px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.st2-wa__greeting {
    margin: 0 0 12px;
    color: var(--st2-wa-panel-text);
    font-size: 0.95rem;
    line-height: 1.45;
}

.st2-wa__quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}

.st2-wa__chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid var(--st2-wa-panel-border);
    border-color: color-mix(in srgb, var(--st2-wa-accent) 30%, var(--st2-wa-panel-border));
    border-radius: 999px;
    background: var(--st2-wa-panel-soft);
    background: color-mix(in srgb, var(--st2-wa-accent) 7%, transparent);
    color: var(--st2-wa-accent);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.st2-wa__chip:hover {
    border-color: var(--st2-wa-accent);
    background: color-mix(in srgb, var(--st2-wa-accent) 14%, transparent);
    transform: translateY(-1px);
}

.st2-wa__chip:focus-visible {
    outline: 3px solid var(--st2-wa-focus);
    outline-offset: 2px;
}

.st2-wa__form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.st2-wa__input {
    display: block;
    width: 100%;
    min-height: 92px;
    max-height: 170px;
    padding: 11px 12px;
    resize: vertical;
    border: 1px solid var(--st2-wa-panel-border);
    border-radius: 12px;
    background: var(--st2-wa-panel-bg);
    background: color-mix(in srgb, var(--st2-wa-panel-bg) 94%, var(--st2-wa-panel-text));
    color: var(--st2-wa-panel-text);
    font-size: 1rem;
    line-height: 1.45;
    box-shadow: inset 0 1px 2px rgba(6, 43, 32, 0.04);
}

.st2-wa__input::placeholder {
    color: var(--st2-wa-panel-muted);
    color: color-mix(in srgb, var(--st2-wa-panel-muted) 82%, transparent);
    opacity: 1;
}

.st2-wa__input:focus {
    outline: none;
    border-color: var(--st2-wa-accent);
    box-shadow: 0 0 0 3px var(--st2-wa-focus);
}

.st2-wa__send {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 11px 16px;
    border: 0;
    border-radius: 12px;
    background: var(--st2-wa-accent);
    color: var(--st2-wa-accent-text);
    box-shadow: 0 8px 18px rgba(6, 43, 32, 0.16);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition: filter 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.st2-wa__send:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(6, 43, 32, 0.2);
}

.st2-wa__send:focus-visible {
    outline: 3px solid var(--st2-wa-focus);
    outline-offset: 2px;
}

.st2-wa__send-icon {
    display: inline-flex;
}

.st2-wa__send-icon svg {
    width: 19px;
    height: 19px;
}

.st2-wa__offline {
    margin: 10px 0 0;
    padding: 9px 11px;
    border-radius: 10px;
    background: #fff7e6;
    background: color-mix(in srgb, #f59e0b 12%, var(--st2-wa-panel-bg));
    color: #7a4b00;
    color: color-mix(in srgb, var(--st2-wa-panel-text) 82%, #92400e);
    font-size: 0.8rem;
    line-height: 1.4;
}

.st2-wa__privacy {
    margin: 10px 0 0;
    color: var(--st2-wa-panel-muted);
    font-size: 0.72rem;
    line-height: 1.4;
}

.st2-wa__privacy a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.st2-wa__privacy a:focus-visible {
    outline: 3px solid var(--st2-wa-focus);
    outline-offset: 2px;
    border-radius: 3px;
}

.st2-wa__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    padding: 10px 16px;
    border-top: 1px solid var(--st2-wa-panel-border);
    background: var(--st2-wa-panel-soft);
}

.st2-wa__schedule {
    color: var(--st2-wa-panel-muted);
    font-size: 0.72rem;
    line-height: 1.35;
}

.st2-wa__dismiss {
    margin-left: auto;
    padding: 4px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--st2-wa-panel-muted);
    font-size: 0.72rem;
    line-height: 1.35;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.st2-wa__dismiss:hover {
    color: var(--st2-wa-accent);
}

.st2-wa__dismiss:focus-visible {
    outline: 3px solid var(--st2-wa-focus);
    outline-offset: 2px;
}

/* Móvil --------------------------------------------------------- */

@media (max-width: 767.98px) {
    .st2-wa {
        right: 16px;
        bottom: calc(16px + env(safe-area-inset-bottom, 0px));
        bottom: calc(max(16px, var(--st2-wa-offset-y)) + env(safe-area-inset-bottom, 0px));
    }

    .st2-wa--left {
        right: auto;
        left: 16px;
    }

    .st2-wa__launcher {
        width: 56px;
        height: 56px;
        padding: 6px;
        justify-content: center;
    }

    .st2-wa__launcher-label {
        display: none;
    }

    .st2-wa__panel {
        width: calc(100vw - 32px);
        max-height: calc(100vh - 100px - env(safe-area-inset-bottom, 0px));
        max-height: calc(100dvh - 100px - env(safe-area-inset-bottom, 0px));
        border-radius: 18px;
    }

    .st2-wa__header {
        padding: 14px;
    }

    .st2-wa__body {
        padding: 14px;
    }

    .st2-wa__footer {
        padding: 10px 14px;
    }
}

/* Movimiento reducido ------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
    .st2-wa,
    .st2-wa__launcher,
    .st2-wa__panel,
    .st2-wa__chip,
    .st2-wa__send {
        animation: none !important;
        transition: none !important;
    }
}
