:root {
    --color-primary-white: #FFF;
    --color-secondary-white: #F6F6F6;

    --color-primary-black: #313131;
    --color-primary-black-soft: #8A8C8E;
    --color-primary-black-strong: #262626;
    --color-secondary-black: #636466;

    --color-primary-gray: #F1EEEB;
    --color-secondary-gray: #DDD;
    --color-terciary-gray: #F8F7F5;

    --color-primary-red: #ED002F;
    --color-primary-red-strong: #CD0C2E;
    --color-secondary-red: #AB192D;
    --color-terciary-red: #FFC0C0;

    --color-primary-green: #00A37D;

    --color-title: var(--color-primary-black-strong, #262626);
    --color-title-variant: var(--color-primary-red-strong, #CD0C2E);
    --color-title-secondary: var(--color-primary-black, #313131);

    --color-text: var(--color-primary-black-strong, #262626);
    --color-link: var(--color-primary-red, #ED002F);
    --color-text-red: var(--color-secondary-red, #AB192D);
    --color-text-red-primary: var(--color-primary-red, #ED002F);

    --color-background-button: var(--color-primary-red, #636466);
    --color-section-background: var(--color-secondary-white, #F6F6F6);
    --color-background-section-custom: var(--color-primary-white, #FFF);
    --color-card-background: var(--color-primary-white, #FFF);
    --color-slide-background: var(--color-secondary-white, #F6F6F6);
    --color-pagination-background: var(--color-primary-gray. #F1EEEB);
    --color-chip-background: var(--color-primary-green, #00A37D);

    --general-max-width: 1440px;
}

.vs-section {
    background-color: var(--color-background-section-custom);
}

.vs-section.vs-no-space{
    margin-top: 0;
}

.vs-wrapper {
    margin: 48px auto 0;
    padding-inline: 20px;
}

.vs-section.vs-no-space{
    margin-top: 0;
}

.vs-section.vs-no-space .vs-wrapper--fluid{
    margin-top: 0;
}

.vs-section.vs-no-space .vs-wrapper--fluid .vs-component--fluid{
    margin-top: 0;
}

.vs-wrapper .vs-component {
    margin-top: 16px;
}

.vs-wrapper.vs-no-space{
    margin-top: 0;
}

.vs-wrapper.vs-p-block,
.vs-wrapper--fluid.vs-p-block {
    padding-block: 32px 48px;
}

.vs-wrapper--fluid {
    margin: 48px auto 0;
}

.vs-wrapper--fluid .vs-container {
    padding-inline: 20px;
}

.vs-wrapper--fluid .vs-component {
    width: calc(100% - 20px);
    margin-top: 16px;
}

.vs-wrapper--fluid .vs-component--fluid {
    width: 100%;
    margin-top: 16px;
}

.vs-wrapper--fluid .vs-component.left {
    margin-left: 0;
    margin-right: auto;
}

.vs-wrapper--fluid .vs-component.right {
    margin-left: auto;
    margin-right: 0;
}

.vs-heading {
    display: flex;
    justify-content:  space-between;
    align-items: center;
}

.vs-header {
    display: flex;
    flex-direction: column;
    row-gap: 4px;
}

.vs-title-1__regular {
    font-family: "Fira Sans", sans-serif;
    font-size: 36px;
    font-style: normal;
    font-weight: 400;
    line-height: 40px; /* 111.111% */
    letter-spacing: -0.72px;
    color: var(--color-title, #262626);
}

.vs-title-1__medium {
    font-family: "Fira Sans", sans-serif;
    font-size: 36px;
    font-style: normal;
    font-weight: 500;
    line-height: 40px; /* 111.111% */
    letter-spacing: -0.72px;
    color: var(--color-title, #262626);
}

.vs-title-1__regular span,
.vs-title-1__medium span {
    color: var(--color-title-variant, #CD0C2E);
}

.vs-title-2__light {
    font-family: "Fira Sans", sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: 24px; /* 120% */
    color: var(--color-title, #262626);
}

.vs-title-2__regular {
    font-family: "Fira Sans", sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px; /* 120% */
    color: var(--color-title, #262626);
}

.vs-title-2__medium {
    font-family: "Fira Sans", sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px; /* 120% */
    color: var(--color-title, #262626);
}

.vs-title-4__regular {
    font-family: "Fira Sans", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px; /* 125% */
    color: var(--color-title, #262626);
}

.vs-title-4__medium {
    font-family: "Fira Sans", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px; /* 125% */
    color: var(--color-title, #262626);
}

.vs-title-4__light {
    font-family: "Fira Sans", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 20px; /* 125% */
    color: var(--color-title, #262626);
}

.vs-title-5__medium {
    font-family: "Fira Sans", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 18px; /* 128.571% */
    color: var(--color-title-secondary, #313131);
}

.vs-title-5__semibold {
    font-family: "Fira Sans", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 18px; /* 128.571% */
    color: var(--color-title-secondary, #313131);
}

.vs-text {
    font-family: 'Fira Sans', sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 300;
    line-height: 18px;
    letter-spacing: -0.28px;
    color: var(--color-text, #636466);
}

.vs-strong-text {
    font-family: "Fira Sans", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 18px;
    color: var(--color-title-secondary, #313131);
}

.vs-link-text {
    font-family: "Fira Sans", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
    color: var(--color-link, #ED002F);
}

.vs-quotes-text {
    font-family: "Fira Sans", sans-serif;
    font-size: 14px;
    font-style: italic;
    font-weight: 300;
    line-height: 20px;
    color: var(--color-text, #636466);
}

.vs-legal-text {
    font-family: "Fira Sans", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 16px;
    color: var(--color-text, #636466);
}

.vs-legal-text a.vs-legal-text__link {
    cursor: pointer;
    font-family: "Fira Sans", sans-serif;
    font-size: 11px;
    font-style: normal;
    font-weight: 400;
    line-height: 16px;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
    color: var(--color-link);
}

.vs-legend-text {
    font-family: "Fira Sans", sans-serif;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    line-height: 18px;
    color: var(--color-text, #636466);
}

.vs-title-color {
    color: var(--color-title, #262626);
}

.vs-white-text,
.vs-title-1__regular.vs-white-text,
.vs-text.vs-white-text{
    color: var(--color-primary-white, #FFF);
}

.vs-red-text {
    color: var(--color-text-red);
}

.vs-red-primary-text {
    color: var(--color-text-red-primary);
}

.vs-link-arrow {
    display: flex;
    align-items: center;
    column-gap: 4px;
    height: max-content;
    margin-left: auto;
    cursor: pointer;
}

.vs-link-arrow.link-page-mobile {
    justify-content: end;
    margin-top: 32px;
}

.vs-link-arrow.link-page-desktop {
    display: none;
}

.vs-link-arrow__text {
    font-family: "Fira Sans", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    text-align: end;
    line-height: normal;
    color: var(--color-primary-red, #ED002F);
}

.vs-link-arrow__icon{
    display: block;
    width: 16px;
}

.vs-link-arrow__icon img {
    width: 100%;
    height: 100%;
}

.vs-truncate {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.vs-line-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    /* Modify in the CSS Selector*/
    line-clamp: 3;
    -webkit-line-clamp: 3;
}

/* --- Botones --- */
.vs-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 128px;
    max-width: 335px;
    padding: 12px 32px;
    vertical-align: middle;
    border-radius: 24px;
    border: 0;
    background-color: var(--color-background-button);
    transition: all 0.2s ease-in-out;
}

.vs-button:has(.vs-button__append-icon){
    padding: 12px 24px 12px 32px;
}

.vs-button__append-icon {
    margin-left: 8px;
}

.vs-button__text {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    font-size: 20px;
    font-weight: 500;
    line-height: 24px;
    color: var(--color-primary-white);
}

.vs-button__text > sup {
    text-align: center;
    font-feature-settings: 'sups' on;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    font-feature-settings: 'sups' on;
    line-height: 24px;
}

.vs-button:hover {
    background-color: var(--color-secondary-red);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2);
}

.vs-button:focus {
    box-shadow: 0 0 8px 0 rgba(255, 0, 51, 0.5);
    outline: 0;
    background-color: var(--color-secondary-red);
}

.vs-button:active {
    color: var(--color-secondary-red);
    box-shadow: none;
}

/* --- Big --- */
.vs-button.big {
    border-radius: 32px;
}

.vs-button.big .vs-button__text {
    font-size: 26px;
    line-height: 32px;
}

/* --- Common inverted outlined --- */
.vs-button.inverted svg,
.vs-button.outlined svg {
    filter: brightness(0) saturate(100%) invert(17%) sepia(83%) saturate(3598%) hue-rotate(336deg) brightness(90%) contrast(121%);
}

/* --- Inverted --- */
.vs-button.inverted {
    background-color: var(--color-primary-white);
    border: 1px solid var(--color-primary-white);
}

.vs-button.inverted .vs-button__text {
    color: var(--color-primary-red);
}

.vs-button.inverted:hover {
    border: 1px solid var(--color-terciary-red);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2);
    background-color: var(--color-terciary-red);
}

.vs-button.inverted:focus {
    border: 1px solid var(--color-secondary-red);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2);
    background-color: var(--color-terciary-red);
}

.vs-button.inverted:active {
    border: 0;
    color: var(--color-secondary-red);
}

/* --- Outlined --- */
.vs-button.outlined {
    background-color: var(--color-primary-white);
    border: 1px solid var(--color-primary-red);
}

.vs-button.outlined .vs-button__text {
    color: var(--color-primary-red);
}

.vs-button.outlined:hover,
.vs-button.outlined:focus {
    background-color: var(--color-terciary-red);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2);
}

.vs-button.outlined:focus {
    box-shadow: 0 0 8px 0 rgba(255, 0, 51, 0.5);
}

.vs-button.outlined:active {
    border: 1px solid var(--color-secondary-red);
    color: var(--color-secondary-red);
}

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

@media (min-width: 744px) {
    .vs-wrapper {
        margin-top: 96px;
        padding-inline: 40px;
    }

    .vs-wrapper--fluid .vs-container {
        margin-top: 96px;
        padding-inline: 40px;
    }

    .vs-wrapper--fluid .vs-component {
        width: calc(100% - 40px);
    }

    .vs-link-arrow.link-page-mobile {
        display: flex;
    }

    .vs-header {
        display: flex;
        flex-direction: column;
        row-gap: 8px;
        max-width: 821px;
    }
}

@media (min-width: 1025px) {
    .vs-link-arrow.link-page-mobile {
        display: none;
    }
    .vs-link-arrow.link-page-desktop {
        display: flex;
    }

    .vs-title-1__regular {
        font-size: 44px;
        font-style: normal;
        font-weight: 400;
        line-height: 48px; /* 109.091% */
        letter-spacing: -0.88px;
    }

    .vs-title-1__medium {
        font-size: 44px;
        font-style: normal;
        font-weight: 500;
        line-height: 48px; /* 109.091% */
        letter-spacing: -0.88px;
    }

    .vs-title-2__light {
        font-size: 22px;
        font-style: normal;
        font-weight: 300;
        line-height: 26px; /* 118.182% */
    }

    .vs-title-2__regular {
        font-size: 22px;
        font-style: normal;
        font-weight: 400;
        line-height: 26px; /* 118.182% */
    }

    .vs-title-2__medium {
        font-size: 22px;
        font-style: normal;
        font-weight: 500;
        line-height: 26px; /* 118.182% */
    }

    .vs-title-4__regular {
        font-size: 18px;
        font-style: normal;
        font-weight: 400;
        line-height: 22px; /* 122.222% */
    }

    .vs-title-4__medium {
        font-size: 18px;
        font-style: normal;
        font-weight: 500;
        line-height: 22px; /* 122.222% */
    }

    .vs-title-4__light {
        font-size: 18px;
        font-style: normal;
        font-weight: 300;
        line-height: 22px; /* 122.222% */
    }

    .vs-title-5__medium {
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        line-height: 20px; /* 125% */
    }

    .vs-title-5__semibold {
        font-size: 16px;
        font-style: normal;
        font-weight: 600;
        line-height: 20px; /* 125% */
    }

    .vs-text {
        font-size: 16px;
        line-height: 20px;
        letter-spacing: -0.32px;
    }

    .vs-strong-text {
        font-size: 16px;
        line-height: 20px;
    }

    .vs-link-text {
        font-size: 16px;
        line-height: 24px;
    }

    .vs-quotes-text{
        font-size: 16px;
        line-height: 24px;
    }

    .vs-legal-text {
        font-size: 13px;
        line-height: 20px;
    }

    .vs-legal-text a.vs-legal-text__link {
        font-size: 13px;
        line-height: 20px;
    }

    .vs-legend-text {
        font-size: 13px;
        font-weight: 600;
        line-height: 20px;
    }

    .vs-link-arrow__text {
        font-size: 18px;
    }
}

@media (min-width: 1440px) {
    .vs-wrapper {
        max-width: var(--general-max-width);
        padding-inline: 96px;
    }

    .vs-wrapper--fluid {
        max-width: var(--general-max-width);
    }

    .vs-wrapper .vs-component,
    .vs-wrapper--fluid .vs-component,
    .vs-wrapper--fluid .vs-component--fluid {
        margin-top: 32px;
    }

    .vs-wrapper.vs-p-block,
    .vs-wrapper--fluid.vs-p-block {
        padding-block: 64px;
    }

    .vs-wrapper--fluid .vs-container {
        padding-inline: 96px;
    }

    .vs-wrapper--fluid .vs-component {
        width: calc(100% - 192px);
    }

    .vs-wrapper--fluid .vs-component.left,
    .vs-wrapper--fluid .vs-component.right,
    .vs-wrapper--fluid .vs-component--fluid.left,
    .vs-wrapper--fluid .vs-component--fluid.right{
        width: calc(100% - 184px);
    }

    .vs-wrapper.vs-p-block {
        padding-block: 64px;
    }
}
