:root {
    --padding-section-medium: 5rem;
    --text-sizes-text-tiny: 0.75rem;
    --text-sizes-text-small: 0.875rem;
    --text-sizes-text-regular: 1rem;
    --text-sizes-text-medium: 1.125rem;
    --text-sizes-heading-6: 1.25rem;
    --text-sizes-text-large: 1.25rem;
    --text-sizes-heading-5: 1.5rem;
    --text-sizes-heading-4: 2rem;
    --text-sizes-heading-3: 2.5rem;
    --text-sizes-heading-2: 3rem;
    --text-sizes-heading-1: 3.5rem;
    --spacing-heading: 1.5rem;
    --container-container-small: 48rem;
    --container-container-medium: 64rem;
    --container-container-large: 80rem;
    --max-width-max-width-xxsmall: 20rem;
    --max-width-max-width-xsmall: 25rem;
    --max-width-max-width-small: 30rem;
    --max-width-max-width-medium: 35rem;
    --max-width-max-width-large: 48rem;
    --max-width-max-width-xlarge: 64rem;
    --max-width-max-width-xxlarge: 80rem;
    --page-padding-padding-global: 4rem;
    --section-padding-padding-section-small: 3rem;
    --section-padding-padding-section-medium: 5rem;
    --section-padding-padding-section-large: 7rem;
    --radius-small: 0.5rem;
    --stroke-border-width: 0rem;
    --stroke-divider-width: 0.0625rem;
    --spaicing-buttons: 2rem;

    /* Spacing */
    --spacing-base: 0.125rem;
    --spacing-1x: calc(var(--spacing-base) * 1);
    --spacing-2x: calc(var(--spacing-1x) * 2);
    --spacing-3x: calc(var(--spacing-1x) * 3);
    --spacing-4x: calc(var(--spacing-1x) * 4);
    --spacing-5x: calc(var(--spacing-1x) * 5);
    --spacing-6x: calc(var(--spacing-1x) * 6);
    --spacing-7x: calc(var(--spacing-1x) * 7);
    --spacing-8x: calc(var(--spacing-1x) * 8);
    --spacing-9x: calc(var(--spacing-1x) * 9);
    --spacing-10x: calc(var(--spacing-1x) * 10);
    --spacing-11x: calc(var(--spacing-1x) * 11);
    --spacing-12x: calc(var(--spacing-1x) * 12);
    --spacing-13x: calc(var(--spacing-1x) * 13);
    --spacing-14x: calc(var(--spacing-1x) * 14);
    --spacing-15x: calc(var(--spacing-1x) * 15);
    --spacing-16x: calc(var(--spacing-1x) * 16);
    --spacing-17x: calc(var(--spacing-1x) * 17);
    --spacing-18x: calc(var(--spacing-1x) * 18);
    --spacing-150x: calc(var(--spacing-1x) * 150);
}

@media (max-width: 768px) {
    :root {
        --text-sizes-text-tiny: 0.625rem;
        --text-sizes-text-small: 0.75rem;
        --text-sizes-text-regular: 0.875rem;
        --text-sizes-text-medium: 1rem;
        --text-sizes-heading-6: 1.125rem;
        --text-sizes-text-large: 1.125rem;
        --text-sizes-heading-5: 1.25rem;
        --text-sizes-heading-4: 1.5rem;
        --text-sizes-heading-3: 2rem;
        --text-sizes-heading-2: 2.25rem;
        --text-sizes-heading-1: 2.5rem;
        --spacing-heading: 1.25rem;
        --container-container-small: 48rem;
        --container-container-medium: 64rem;
        --container-container-large: 80rem;
        --max-width-max-width-xxsmall: 20rem;
        --max-width-max-width-xsmall: 25rem;
        --max-width-max-width-small: 30rem;
        --max-width-max-width-medium: 35rem;
        --max-width-max-width-large: 48rem;
        --max-width-max-width-xlarge: 64rem;
        --max-width-max-width-xxlarge: 80rem;
        --page-padding-padding-global: 1.25rem;
        --section-padding-padding-section-small: 2rem;
        --section-padding-padding-section-medium: 3rem;
        --section-padding-padding-section-large: 4rem;

        /* Spacing */
        --spacing-base: 0.109rem;
        --spacing-1x: calc(var(--spacing-base) * 1);
        --spacing-2x: calc(var(--spacing-1x) * 2);
        --spacing-3x: calc(var(--spacing-1x) * 3);
        --spacing-4x: calc(var(--spacing-1x) * 4);
        --spacing-5x: calc(var(--spacing-1x) * 5);
        --spacing-6x: calc(var(--spacing-1x) * 6);
        --spacing-7x: calc(var(--spacing-1x) * 7);
        --spacing-8x: calc(var(--spacing-1x) * 8);
        --spacing-9x: calc(var(--spacing-1x) * 9);
        --spacing-10x: calc(var(--spacing-1x) * 10);
        --spacing-11x: calc(var(--spacing-1x) * 11);
        --spacing-12x: calc(var(--spacing-1x) * 12);
        --spacing-13x: calc(var(--spacing-1x) * 13);
        --spacing-14x: calc(var(--spacing-1x) * 14);
        --spacing-15x: calc(var(--spacing-1x) * 15);
        --spacing-16x: calc(var(--spacing-1x) * 16);
        --spacing-17x: calc(var(--spacing-1x) * 17);
        --spacing-18x: calc(var(--spacing-1x) * 18);
        --spacing-150x: calc(var(--spacing-1x) * 150);

    }
}

body {
    color: inherit !important;
    font-size: var(--text-sizes-text-regular) !important;
}
header[data-elementor-type="header"]{
    z-index: 999;
}
p {
    margin-block-end: 0 !important;
}
p a {
    text-decoration: underline !important;
}
ul {
    padding-left: 0.5rem;
    margin-top: 0;
    margin-bottom: 0;
}

/* ========================================
   WYSIWYG WRAPPERS — Herencia de tipografía
   Cuando render_content() genera un wrapper div para contenido
   WYSIWYG con múltiples párrafos, los hijos deben heredar la
   tipografía y el color configurados en el control de Elementor.
   ======================================== */
[class*="__description"] p,
[class*="__description"] li,
[class*="__description"] span,
[class*="__description"] a,
[class*="__item-text"] p,
[class*="__item-text"] li,
[class*="__item-text"] span,
[class*="__item-text"] a {
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    color: inherit;
}
/* strong, em, b, i: no aplicar font-weight/font-style inherit para preservar negrita/cursiva */

.wb-link-list__list a {
    justify-content: left;
}

/* ========================================
   ICONOS - CENTRADO VERTICAL GLOBAL
   ======================================== */

/* Material Icons - Alineación y centrado completo */
.material-symbols-outlined {
    line-height: 1 !important;
    vertical-align: middle !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Font Awesome - Alineación y centrado completo */
.fa, .fas, .far, .fal, .fab, .fad, .fass, .fasr, .fasl,
i[class*="fa-"],
i[class*="fab-"],
i[class*="fas-"],
i[class*="far-"],
i[class*="fal-"] {
    line-height: 1 !important;
    vertical-align: middle !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Elementor Icons - Alineación y centrado completo */
.elementor-icon,
i[class*="eicon-"] {
    line-height: 1 !important;
    vertical-align: middle !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Elementor Button Icons - Alineación específica */
.elementor-button .elementor-button-icon {
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* SVG Icons - Centrado vertical */
svg {
    vertical-align: middle !important;
}

/* Contenedores de iconos - Centrado vertical */
.wb-button__icon,
.wb-icon 
{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Botones con iconos - Alineación */
.button .wb-button__icon,
.btn .wb-button__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.button.is-link {
    justify-content: left;
}

.wb-accordion-sticky-sections__sticky-top{
    font-size: var(--text-sizes-text-medium);
}
/* Tagline spacing - applies to both headers and cards */
[class*="__tagline"],
[class*="__card-tagline"] {
    justify-content: center;
    align-items: center;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    margin-bottom: var(--spacing-8x) !important;
}

/* Section titles - spacing - applies to both headers and cards */
/* Exclude .wb-sticky__title: sticky bar uses compact horizontal layout, no vertical spacing */
[class*="__title"]:not(.wb-sticky__title),
[class*="__card-title"] {
    margin-bottom: var(--spacing-12x) !important;
}

.wb-accordion-sticky-sections__content-item{
    border-top: var(--stroke-divider-width) solid var(--_primitives---opacity--neutral-darkest-15);
}
img{
    border-radius: var(--radius-medium) !important;
}


a.js-wpml-ls-item-toggle.wpml-ls-item-toggle {
    border-radius: 12px;
    border: 1px solid var(--Opacity-Transparent, rgba(255, 255, 255, 0.00));
    background: var(--Opacity-Neutral-Darkest-5, rgba(11, 0, 6, 0.05));
    display: flex;
    padding: 8px 12px;
    align-items: center;
    gap: 8px;
    align-self: stretch;
}

li .wpml-ls-sub-menu a {
    border: 1px solid var(--Opacity-Transparent, rgba(255, 255, 255, 0.00));
    background: var(--Opacity-Neutral-Darkest-5, rgba(11, 0, 6, 0.05));
}

.wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu {
    margin-top: 0.2rem !important;
    border: none !important;
    border-radius: 12px;
    background: var(--Opacity-Neutral-Darkest-5, rgba(11, 0, 6, 0.05)) !important;
    overflow: hidden;
}

/* Heading spacing */

.wb-heading__spacing + * {
    margin-top: var(--spacing-heading);
}

.wb-heading__spacing > * {
    margin-bottom: 0;
}

/* cookies styles */

.cky-notice-group {
    display: flex;
    gap: 2rem;
}

.cky-notice-group .cky-notice-des {
    flex-shrink: 1;
}

.cky-notice-group .cky-notice-btn-wrapper {
    flex-grow: 1;
    margin-top: 0;
    flex-shrink: 0;
}

.cky-consent-container {
    width: 1024px !important;
    max-width: 80%;
    font-family: "Lato", sans-serif;
}

.cky-btn.cky-btn-preferences,
.cky-btn.cky-btn-preferences:hover {
    background: transparent !important;
    border: unset !important;
    box-shadow: unset !important;
    transform: unset !important;
}

.cky-btn {
    border-radius: 100px !important;
    padding: 10px 24px !important;
}

@media screen and (max-width: 768px) {
    .cky-notice-group {
        flex-direction: column !important;
        gap: 2rem !important;
    }

    .cky-notice-group .cky-notice-des {
        flex-grow: 1 !important;
    }

    .cky-notice-group .cky-notice-btn-wrapper {
        flex-grow: 1 !important;
    }

    .cky-consent-container {
        width: 90% !important;
        max-width: 90% !important;
        left: 50%;
        transform: translateX(-50%);
        bottom: 1rem;
    }
}

/* Animaciones */

[data-wb-animation] {
    transition: all 0.5s;
    transition-timing-function: cubic-bezier(0.075, 0.5, 0.865, 1);
}

/* Editor: show elements in final state — no scroll-triggered animation in Elementor editor */
.elementor-editor-active [data-wb-animation] {
    opacity: 1 !important;
    transform: none !important;
}

/*
 * Preview iframe: body.elementor-editor-active lives on the admin window, not this document.
 * Elementor adds elementor-device-* to the iframe body for responsive preview — use that so
 * [data-wb-animation] resets apply inside the canvas.
 */
body[class*='elementor-device-'] [data-wb-animation] {
    opacity: 1 !important;
    transform: none !important;
}

/* scale aniation*/
[data-wb-animation="scale-up"] {
    transform: scale(0.8);
}

[data-wb-animation="scale-up"].wb-animated {
    transform: scale(1);
}

/* zoom aniation*/
[data-wb-animation="zoom-in"] {
    transform: scale(0.8);
    opacity: 0;
}

[data-wb-animation="zoom-in"].wb-animated {
    transform: scale(1);
    opacity: 1;
}

/* fade animation */
[data-wb-animation="fade-in"] {
    opacity: 0;
}

[data-wb-animation="fade-in"].wb-animated {
    opacity: 1;
}

/* fade-in-up animation */
[data-wb-animation="fade-in-up"] {
    opacity: 0;
    transform: translateY(40px);
}

[data-wb-animation="fade-in-up"].wb-animated {
    opacity: 1;
    transform: translateY(0);
}

/* fade-in-down animation */
[data-wb-animation="fade-in-down"] {
    opacity: 0;
    transform: translateY(-40px);
}

[data-wb-animation="fade-in-down"].wb-animated {
    opacity: 1;
    transform: translateY(0);
}

/* fade-in-left animation */
[data-wb-animation="fade-in-left"] {
    opacity: 0;
    transform: translateX(-40px);
}

[data-wb-animation="fade-in-left"].wb-animated {
    opacity: 1;
    transform: translateX(0);
}

/* fade-in-right animation */
[data-wb-animation="fade-in-right"] {
    opacity: 0;
    transform: translateX(40px);
}

[data-wb-animation="fade-in-right"].wb-animated {
    opacity: 1;
    transform: translateX(0);
}

/* rotate animation */
[data-wb-animation="rotate-in"] {
    transform: rotate(-15deg);
    opacity: 0;
}

[data-wb-animation="rotate-in"].wb-animated {
    transform: rotate(0);
    opacity: 1;
}

/* slide aniation */
[data-wb-animation="slide-in-left"] {
    transform: translateX(-50%);
    opacity: 0;
}

[data-wb-animation="slide-in-left"].wb-animated {
    transform: translateX(0);
    opacity: 1;
}

[data-wb-animation="slide-in-right"] {
    transform: translateX(50%);
    opacity: 0;
}

[data-wb-animation="slide-in-right"].wb-animated {
    transform: translateX(0);
    opacity: 1;
}

[data-wb-animation="slide-in-up"] {
    transform: translateY(50%);
    opacity: 0;
}

[data-wb-animation="slide-in-up"].wb-animated {
    transform: translateY(0);
    opacity: 1;
}

[data-wb-animation="slide-in-down"] {
    transform: translateY(-50%);
    opacity: 0;
}

[data-wb-animation="slide-in-down"].wb-animated {
    transform: translateY(0);
    opacity: 1;
}

/* skew aniation*/
[data-wb-animation="skew-in"] {
    transform: skew(20deg);
    opacity: 0;
}

[data-wb-animation="skew-in"].wb-animated {
    transform: skew(0);
    opacity: 1;
}
/* Button group spacing - Global standard - applies to both headers and cards */
/* Exclude .wb-sticky__buttons: sticky bar uses compact horizontal layout, no vertical spacing */
.button-group:not(.wb-sticky__buttons) {
    margin-top: var(--spacing-16x) !important;
}
/* Widget padding - Global standard */
.elementor-widget:not([data-elementor-type="header"] .elementor-widget):not([class*="wb_modal"]):not(footer .elementor-widget), 
footer {
    padding-top: var(--section-padding-padding-section-large, 7rem);
    padding-bottom: var(--section-padding-padding-section-large, 7rem);
}
