:root {
    --bg-default: #ffffff;
    --bg-inverse: #010101;
    --bg-neutral-subtle: #f4f6f8;
    --bg-neutral-medium: #e7ebee;
    --bg-neutral-strong: #ced6de;
    --bg-neutral-dark: #3e4854;
    --bg-primary-strong: #8051ff;
    --bg-primary-subtle: #ece8ff;
    --bg-secondary-strong: #4d3293;
    --primary-strong: #8051ff;
    --secondary-strong: #4d3293;
    --primary-subtle: #ece8ff;
    --lavender-300: #a685ff;
    --lavender-500: #8051ff;
    --lavender-800: #5318bf;
    --grey-950: #010101;
    --title-default: #010101;
    --title-inverse: #ffffff;
    --title-neutral: #8b9eb3;
    --title-primary-strong: #5318bf;
    --title-primary-subtle: #f4f2ff;
    --body-default: #3e4854;
    --body-inverse: #ffffff;
    --border-white: #ffffff;
    --border-neutral-subtle: #ced6de;
    --border-neutral-strong: #8b9eb3;
    --border-primary-strong: #5318bf;
    --icon-default: #3e4854;
    --icon-inverse: #ffffff;
    --icon-brand-strong: #5318bf;
    --font-sans: "TP Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --fw-thin: 100;
    --fw-ultralight: 200;
    --fw-extralight: 275;
    --fw-light: 300;
    --fw-regular: 400;
    --fw-medium: 500;
    --fw-bold: 700;
    --letter-spacing: 0;
    --fs-16: 16px;
    --fs-18: 18px;
    --fs-20: 20px;
    --fs-24: 24px;
    --fs-32: 32px;
    --fs-40: 40px;
    --fs-56: 56px;
    --fs-64: 64px;
    --fs-80: 80px;
    --fs-96: 96px;
    --fs-120: 120px;
    --fs-144: 144px;
    --lh-24: 24px;
    --lh-32: 32px;
    --lh-40: 40px;
    --lh-56: 56px;
    --lh-64: 64px;
    --lh-80: 80px;
    --gutter: 40px;
    --t-fast: 180ms;
    --t-base: 260ms;
    --ease: cubic-bezier(0.41, 0, 0.08, 1);
    --site-max: 1920px;
    --page-width: 1440px;
    --content-max: 1360px;
    --section-horizontal: var(--fs-20);
    --section-vertical: var(--fs-40);
    --spacer-arrow: 50px;
    --horizontal-spacer-menu: 3.2rem;
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 100;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Thin.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-UltraLight.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 275;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-ExtraLight.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Light.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Bold.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-ExtraBold.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Black.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: italic;
    font-weight: 275;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-ExtraLightItalic.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: italic;
    font-weight: 300;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-LightItalic.woff2") format("woff2");
}

@font-face {
    font-family: "TP Sans";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../../webfonts/tpsans/TPSans-Italic.woff2") format("woff2");
}

html, body {
    touch-action: manipulation;
}

.page-content section:not(.headlineFullColumns) {
    max-width: var(--site-max);
    margin: 0 auto;
}

/*.page-content section:not(.section-nopadding) > div {
    max-width: var(--site-max);
    margin: 0 auto;
}*/

.themeV2 .text-color-theme,
.themeV2 .text-color-theme p,
.themeV2 p.text-color-theme,
.themeV2 .text-color-theme-active-hover:hover label
.themeV2 .text-color-theme sup,
.themeV2 .dsc-color-theme,
.themeV2 .dsc-color-theme p,
.themeV2 p.dsc-color-theme {
    background: var(--color-gradient) !important;
    color: rgba(0, 0, 0, 0) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    display: inline-block !important; /*??????????*/
}

.themeV2 .bg-color-theme {
    background: var(--color-gradient) !important;
}

/*display*/
.small-txt-display, /*NOVO*/
.small-txt-display .txt-title, /*NOVO*/
.small.text-display,
.small .text-display {
    font-size: 40px;
    line-height: 40px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.medium-txt-display, /*NOVO*/
.medium-txt-display .txt-title, /*NOVO*/
.medium.text-display,
.medium .text-display {
    font-size: 56px;
    line-height: 56px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.large-txt-display, /*NOVO*/
.large-txt-display .txt-title, /*NOVO*/
.large.text-display,
.large .text-display {
    font-size: 64px;
    line-height: 64px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.very-large-txt-display, /*NOVO*/
.very-large-txt-display .txt-title, /*NOVO*/
.very-large.text-display .text-title,
.very-large.text-display .text-titleV2,
.very-large.text-display,
.very-large .text-display {
    font-size: 72px;
    line-height: 72px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

/*title*/
.small-txt-title, /*NOVO*/
.small-txt-title .txt-title, /*NOVO*/
.small.text-title,
.small .text-title,
.title-containerV2.small .text-titleV2 {
    font-size: 24px;
    line-height: 24px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.medium-txt-title, /*NOVO*/
.medium.text-title,
.medium .text-title,
.title-containerV2.medium .text-titleV2 {
    font-size: 40px;
    line-height: 40px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.large-txt-title, /*NOVO*/
.large.text-title,
.large .text-title,
.title-containerV2.large .text-titleV2 {
    font-size: 48px;
    line-height: 48px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.very-large-txt-title, /*NOVO*/
.very-large.text-title,
.very-large .text-title,
.title-containerV2.very-large .text-titleV2 {
    font-size: 56px;
    line-height: 56px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

/*body - description*/
.small-txt-body, /*NOVO*/
.small-txt-body p, /*NOVO*/
.small.text-description,
.small.text-description p,
.small .text-description,
.small .text-description p,
.title-containerV2.small .text-description-titleV2,
.title-containerV2.small .text-description-titleV2 p {
    font-size: 16px;
    line-height: 24px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.medium-txt-body, /*NOVO*/
.medium-txt-body p, /*NOVO*/
.medium.text-description,
.medium.text-description p,
.medium .text-description,
.medium .text-description p,
.title-containerV2.medium .text-description-titleV2,
.title-containerV2.medium .text-description-titleV2 p {
    font-size: 16px;
    line-height: 24px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.large-txt-body, /*NOVO*/
.large-txt-body p, /*NOVO*/
.large.text-description,
.large.text-description p,
.large .text-description,
.large .text-description p,
.title-containerV2.large .text-description-titleV2,
.title-containerV2.large .text-description-titleV2 p {
    font-size: 16px;
    line-height: 24px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.very-large-txt-body, /*NOVO*/
.very-large-txt-body p, /*NOVO*/
.very-large.text-description,
.very-large.text-description p,
.very-large .text-description,
.very-large .text-description p,
.title-containerV2.very-large .text-description-titleV2,
.title-containerV2.very-large .text-description-titleV2 p {
    font-size: 16px;
    line-height: 24px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

/*caption - uppertitle*/
.small-txt-caption, /*NOVO*/
.small .text-caption,
.small.text-caption,
.small .text-upper-titleV2,
.title-containerV2.small .text-upper-titleV2 {
    font-size: 12px;
    line-height: 14px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.medium-txt-caption, /*NOVO*/
.medium .text-caption,
.medium.text-caption,
.medium .text-upper-titleV2,
.title-containerV2.medium .text-upper-titleV2 {
    font-size: 12px;
    line-height: 14px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.large-txt-caption, /*NOVO*/
.large .text-caption,
.large.text-caption,
.large .text-upper-titleV2,
.title-containerV2.large .text-upper-titleV2 {
    font-size: 14px;
    line-height: 16px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}

.very-large-txt-caption, /*NOVO*/
.very-large .text-caption,
.very-large.text-caption,
.very-large .text-upper-titleV2,
.title-containerV2.very-large .text-upper-titleV2 {
    font-size: 14px;
    line-height: 16px;
    margin: 0;
    letter-spacing: var(--letter-spacing);
}



@media (min-width:768px) {

    :root {
        --spacer-arrow: 40px;
    }

    /*display*/
    .small-txt-display, /*NOVO*/
    .small-txt-display .txt-title, /*NOVO*/
    .small.text-display .text-title,
    .small.text-display .text-titleV2,
    .small.text-display,
    .small .text-display {
        font-size: 48px;
        line-height: 48px;
    }

    .medium-txt-display, /*NOVO*/
    .medium-txt-display .txt-title, /*NOVO*/
    .medium.text-display .text-title,
    .medium.text-display .text-titleV2,
    .medium.text-display,
    .medium .text-display {
        font-size: 64px;
        line-height: 64px;
    }

    .large-txt-display, /*NOVO*/
    .large-txt-display .txt-title, /*NOVO*/
    .large.text-display .text-title,
    .large.text-display .text-titleV2,
    .large.text-display,
    .large .text-display {
        font-size: 72px;
        line-height: 72px;
    }

    .very-large-txt-display, /*NOVO*/
    .very-large-txt-display .txt-title, /*NOVO*/
    .very-large.text-display .text-title,
    .very-large.text-display .text-titleV2,
    .very-large.text-display,
    .very-large .text-display {
        font-size: 80px;
        line-height: 80px;
    }

    /*title*/
    .small-txt-title, /*NOVO*/
    .small-txt-title .txt-title, /*NOVO*/
    .small.text-title,
    .small .text-title,
    .title-containerV2.small .text-titleV2 {
        font-size: 32px;
        line-height: 32px;
    }

    .medium-txt-title, /*NOVO*/
    .medium.text-title,
    .medium .text-title,
    .title-containerV2.medium .text-titleV2 {
        font-size: 48px;
        line-height: 48px;
    }

    .large-txt-title, /*NOVO*/
    .large.text-title,
    .large .text-title,
    .title-containerV2.large .text-titleV2 {
        font-size: 56px;
        line-height: 56px;
    }

    .very-large-txt-title, /*NOVO*/
    .very-large.text-title,
    .very-large .text-title,
    .title-containerV2.very-large .text-titleV2 {
        font-size: 64px;
        line-height: 64px;
    }

    /*body - description*/
    .small-txt-body, /*NOVO*/
    .small-txt-body p, /*NOVO*/
    .small.text-description,
    .small.text-description p,
    .small .text-description,
    .small .text-description p,
    .title-containerV2.small .text-description-titleV2,
    .title-containerV2.small .text-description-titleV2 p {
        font-size: 14px;
        line-height: 16px;
    }

    .medium-txt-body, /*NOVO*/
    .medium-txt-body p, /*NOVO*/
    .medium.text-description,
    .medium.text-description p,
    .medium .text-description,
    .medium .text-description p,
    .title-containerV2.medium .text-description-titleV2,
    .title-containerV2.medium .text-description-titleV2 p {
        font-size: 16px;
        line-height: 24px;
    }

    .large-txt-body, /*NOVO*/
    .large-txt-body p, /*NOVO*/
    .large.text-description,
    .large.text-description p,
    .large .text-description,
    .large .text-description p,
    .title-containerV2.large .text-description-titleV2,
    .title-containerV2.large .text-description-titleV2 p {
        font-size: 18px;
        line-height: 24px;
    }

    .very-large-txt-body, /*NOVO*/
    .very-large-txt-body p, /*NOVO*/
    .very-large.text-description,
    .very-large.text-description p,
    .very-large .text-description,
    .very-large .text-description p,
    .title-containerV2.very-large .text-description-titleV2,
    .title-containerV2.very-large .text-description-titleV2 p {
        font-size: 24px;
        line-height: 32px;
    }

    /*caption - uppertitle*/
    .small-txt-caption, /*NOVO*/
    .small .text-caption,
    .small.text-caption,
    .small .text-upper-titleV2,
    .title-containerV2.small .text-upper-titleV2 {
        font-size: 12px;
        line-height: 14px;
    }

    .medium-txt-caption, /*NOVO*/
    .medium .text-caption,
    .medium.text-caption,
    .medium .text-upper-titleV2,
    .title-containerV2.medium .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .large-txt-caption, /*NOVO*/
    .large .text-caption,
    .large.text-caption,
    .large .text-upper-titleV2,
    .title-containerV2.large .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .very-large-txt-caption, /*NOVO*/
    .very-large .text-caption,
    .very-large.text-caption,
    .very-large .text-upper-titleV2,
    .title-containerV2.very-large .text-upper-titleV2 {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (min-width:992px) {
    :root {
        --section-horizontal: var(--fs-40);
        --section-vertical: var(--fs-80);
    }

    /*display*/
    .small-txt-display, /*NOVO*/
    .small-txt-display .txt-title, /*NOVO*/
    .small.text-display .text-title,
    .small.text-display .text-titleV2,
    .small.text-display,
    .small .text-display {
        font-size: 96px;
        line-height: 96px;
    }

    .medium-txt-display, /*NOVO*/
    .medium-txt-display .txt-title, /*NOVO*/
    .medium.text-display .text-title,
    .medium.text-display .text-titleV2,
    .medium.text-display,
    .medium .text-display {
        font-size: 120px;
        line-height: 120px;
    }

    .large-txt-display, /*NOVO*/
    .large-txt-display .txt-title, /*NOVO*/
    .large.text-display .text-title,
    .large.text-display .text-titleV2,
    .large.text-display,
    .large .text-display {
        font-size: 144px;
        line-height: 144px;
    }

    .very-large-txt-display, /*NOVO*/
    .very-large-txt-display .txt-title, /*NOVO*/
    .very-large.text-display .text-title,
    .very-large.text-display .text-titleV2,
    .very-large.text-display,
    .very-large .text-display {
        font-size: 160px;
        line-height: 160px;
    }

    /*title*/
    .small-txt-title, /*NOVO*/
    .small-txt-title .txt-title, /*NOVO*/
    .small.text-title,
    .small .text-title,
    .title-containerV2.small .text-titleV2 {
        font-size: 40px;
        line-height: 40px;
    }

    .medium-txt-title, /*NOVO*/
    .medium.text-title,
    .medium .text-title,
    .title-containerV2.medium .text-titleV2 {
        font-size: 40px;
        line-height: 40px;
    }

    .large-txt-title, /*NOVO*/
    .large.text-title,
    .large .text-title,
    .title-containerV2.large .text-titleV2 {
        font-size: 64px;
        line-height: 64px;
    }

    .very-large-txt-title, /*NOVO*/
    .very-large.text-title,
    .very-large .text-title,
    .title-containerV2.very-large .text-titleV2 {
        font-size: 80px;
        line-height: 80px;
    }

    /*body - description*/
    .small-txt-body, /*NOVO*/
    .small-txt-body p, /*NOVO*/
    .small.text-description,
    .small.text-description p,
    .small .text-description,
    .small .text-description p,
    .title-containerV2.small .text-description-titleV2,
    .title-containerV2.small .text-description-titleV2 p {
        font-size: 18px;
        line-height: 24px;
    }

    .medium-txt-body, /*NOVO*/
    .medium-txt-body p, /*NOVO*/
    .medium.text-description,
    .medium.text-description p,
    .medium .text-description,
    .medium .text-description p,
    .title-containerV2.medium .text-description-titleV2,
    .title-containerV2.medium .text-description-titleV2 p {
        font-size: 16px;
        line-height: 24px;
    }

    .large-txt-body, /*NOVO*/
    .large-txt-body p, /*NOVO*/
    .large.text-description,
    .large.text-description p,
    .large .text-description,
    .large .text-description p,
    .title-containerV2.large .text-description-titleV2,
    .title-containerV2.large .text-description-titleV2 p {
        font-size: 24px;
        line-height: 32px;
    }

    .very-large-txt-body, /*NOVO*/
    .very-large-txt-body p, /*NOVO*/
    .very-large.text-description,
    .very-large.text-description p,
    .very-large .text-description,
    .very-large .text-description p,
    .title-containerV2.very-large .text-description-titleV2,
    .title-containerV2.very-large .text-description-titleV2 p {
        font-size: 24px;
        line-height: 32px;
    }

    /*caption - uppertitle*/
    .small-txt-caption, /*NOVO*/
    .small .text-caption,
    .small.text-caption,
    .small .text-upper-titleV2,
    .title-containerV2.small .text-upper-titleV2 {
        font-size: 12px;
        line-height: 14px;
    }

    .medium-txt-caption, /*NOVO*/
    .medium .text-caption,
    .medium.text-caption,
    .medium .text-upper-titleV2,
    .title-containerV2.medium .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .large-txt-caption, /*NOVO*/
    .large .text-caption,
    .large.text-caption,
    .large .text-upper-titleV2,
    .title-containerV2.large .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .very-large-txt-caption, /*NOVO*/
    .very-large .text-caption,
    .very-large.text-caption,
    .very-large .text-upper-titleV2,
    .title-containerV2.very-large .text-upper-titleV2 {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (min-width:1440px) {
    .medium-txt-title, /*NOVO*/
    .medium.text-title,
    .medium .text-title,
    .title-containerV2.medium .text-titleV2 {
        font-size: 56px;
        line-height: 56px;
    }

    .medium-txt-body, /*NOVO*/
    .medium-txt-body p, /*NOVO*/
    .medium.text-description,
    .medium.text-description p,
    .medium .text-description,
    .medium .text-description p,
    .title-containerV2.medium .text-description-titleV2,
    .title-containerV2.medium .text-description-titleV2 p {
        font-size: 18px;
        line-height: 24px;
    }

    .large-txt-body, /*NOVO*/
    .large-txt-body p, /*NOVO*/
    .large.text-description,
    .large.text-description p,
    .large .text-description,
    .large .text-description p,
    .title-containerV2.large .text-description-titleV2,
    .title-containerV2.large .text-description-titleV2 p {
        font-size: 32px;
        line-height: 42px; /*???*/
    }
}

@media (min-width:1920px) { /*1920 param cima*/
    /*display*/
    .smal-txt-display, /*NOVO*/
    .small-txt-display .txt-title, /*NOVO*/
    .small.text-display .text-title,
    .small.text-display .text-titleV2,
    .small.text-display,
    .small .text-display {
        font-size: 96px;
        line-height: 96px;
    }

    .medium-txt-display, /*NOVO*/
    .medium-txt-display .txt-title, /*NOVO*/
    .medium.text-display .text-title,
    .medium.text-display .text-titleV2,
    .medium.text-display,
    .medium .text-display {
        font-size: 120px;
        line-height: 120px;
    }

    .large-txt-display, /*NOVO*/
    .large-txt-display .txt-title, /*NOVO*/
    .large.text-display .text-title,
    .large.text-display .text-titleV2,
    .large.text-display,
    .large .text-display {
        font-size: 144px;
        line-height: 144px;
    }

    .very-large-txt-display, /*NOVO*/
    .very-large-txt-display .txt-title, /*NOVO*/
    .very-large.text-display .text-title,
    .very-large.text-display .text-titleV2,
    .very-large.text-display,
    .very-large .text-display {
        font-size: 160px;
        font-size: 160px;
    }

    /*title*/
    .small-txt-title, /*NOVO*/
    .small-txt-title .txt-title, /*NOVO*/
    .small.text-title,
    .small .text-title,
    .title-containerV2.small .text-titleV2 {
        font-size: 40px;
        line-height: 40px;
    }

    .medium-txt-title, /*NOVO*/
    .medium.text-title,
    .medium .text-title,
    .title-containerV2.medium .text-titleV2 {
        font-size: 64px;
        line-height: 64px;
    }

    .large-txt-title, /*NOVO*/
    .large.text-title,
    .large .text-title,
    .title-containerV2.large .text-titleV2 {
        font-size: 64px;
        line-height: 64px;
    }

    .very-large-txt-title, /*NOVO*/
    .very-large.text-title,
    .very-large .text-title,
    .title-containerV2.very-large .text-titleV2 {
        font-size: 80px;
        line-height: 80px;
    }

    /*body - description*/
    .small-txt-body, /*NOVO*/
    .small-txt-body p, /*NOVO*/
    .small.text-description,
    .small.text-description p,
    .small .text-description,
    .small .text-description p,
    .title-containerV2.small .text-description-titleV2,
    .title-containerV2.small .text-description-titleV2 p {
        font-size: 18px;
        line-height: 24px;
    }

    .medium-txt-body, /*NOVO*/
    .medium-txt-body p, /*NOVO*/
    .medium.text-description,
    .medium.text-description p,
    .medium .text-description,
    .medium .text-description p,
    .title-containerV2.medium .text-description-titleV2,
    .title-containerV2.medium .text-description-titleV2 p {
        font-size: 24px;
        line-height: 32px;
    }

    .large-txt-body, /*NOVO*/
    .large-txt-body p, /*NOVO*/
    .large.text-description,
    .large.text-description p,
    .large .text-description,
    .large .text-description p,
    .title-containerV2.large .text-description-titleV2,
    .title-containerV2.large .text-description-titleV2 p {
        font-size: 40px;
        line-height: 42px; /*???*/
    }

    .very-large-txt-body, /*NOVO*/
    .very-large-txt-body p, /*NOVO*/
    .very-large.text-description,
    .very-large.text-description p,
    .very-large .text-description,
    .very-large .text-description p,
    .title-containerV2.very-large .text-description-titleV2,
    .title-containerV2.very-large .text-description-titleV2 p {
        font-size: 24px;
        line-height: 32px;
    }

    /*caption - uppertitle*/
    .small-txt-caption, /*NOVO*/
    .small .text-caption,
    .small.text-caption,
    .small .text-upper-titleV2,
    .title-containerV2.small .text-upper-titleV2 {
        font-size: 12px;
        line-height: 14px;
    }

    .medium-txt-caption, /*NOVO*/
    .medium .text-caption,
    .medium.text-caption,
    .medium .text-upper-titleV2,
    .title-containerV2.medium .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .large-txt-caption, /*NOVO*/
    .large .text-caption,
    .large.text-caption,
    .large .text-upper-titleV2,
    .title-containerV2.large .text-upper-titleV2 {
        font-size: 14px;
        line-height: 16px;
    }

    .very-large-txt-caption, /*NOVO*/
    .very-large .text-caption,
    .very-large.text-caption,
    .very-large .text-upper-titleV2,
    .title-containerV2.very-large .text-upper-titleV2 {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (max-width: 1024px) {
    :root {
        --gutter: 28px;
    }
}

@media (max-width: 767px) {
    :root {
        --gutter: 20px;
    }
}

/* ============================================================
   Carrossel — plumbing genérico (trilha translateX), compartilhado entre módulos.
   Estrutura HTML esperada: .ins-viewport > .ins-track > (slides), com .ins-action
   (setas + .ins-progress) fora do viewport. Usa o .kpi-btn já definido acima.
   Cada módulo define só o CSS específico do próprio slide/card no seu .css local.
   ============================================================ */
.ins-viewport {
    overflow: hidden;
    width: 100%;
}

.ins-track {
    display: flex;
    gap: 24px;
    transition: transform 0.55s var(--ease);
    will-change: transform;
}

/* ---------- navegação (setas + barra de progresso) ---------- */
.ins-action {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: center;
    height: 56px;
}

    .ins-action.is-hidden {
        display: none;
    }

    .ins-action .kpi-btn {
        background: var(--bg-neutral-subtle);
        box-shadow: none;
    }

.ins-progress {
    position: relative;
    width: 581px;
    max-width: 46%;
    height: 1px;
    background: var(--bg-neutral-strong);
}

.ins-progress__fill {
    position: absolute;
    left: 0;
    top: -1.5px;
    height: 4px;
    width: 40%;
    background: var(--bg-primary-strong);
    transition: width 0.45s var(--ease);
}

.kpi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    flex: none;
    background: var(--bg-default);
    color: var(--icon-default);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    transition: color var(--t-base) var(--ease), opacity var(--t-base) var(--ease);
    box-shadow: 0 4px 20px rgba(16, 12, 40, 0.06);
}

    .kpi-btn svg {
        width: 24px;
        height: 24px;
        position: relative;
        z-index: 2;
    }

    .kpi-btn::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--bg-primary-strong);
        transform: scaleX(0);
        transform-origin: left center;
        z-index: 1;
        transition: transform var(--t-base) var(--ease);
    }

    .kpi-btn:hover::before,
    .kpi-btn:focus-visible::before {
        transform: scaleX(1);
    }

    .kpi-btn:hover,
    .kpi-btn:focus-visible {
        color: var(--icon-inverse);
    }

.kpi-btn--back svg {
    transform: rotate(180deg);
}

.kpi-btn--back.is-hidden {
    opacity: 0;
    pointer-events: none;
}

.kpi-btn[disabled] {
    opacity: 0.35;
    pointer-events: none;
}


/*scrollbar*/
body *::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

body *::-webkit-scrollbar-track {
    background: transparent;
}

body *::-webkit-scrollbar-thumb {
    background: var(--bg-primary-strong);
    border-radius: 999px;
}

    body *::-webkit-scrollbar-thumb:hover {
        background: var(--bg-secondary-strong);
    }
