/* BLOCK: Hero Banner */

.block-hero-banner {
    --pt: 0px !important;
    --pb: 0px !important;
    --height: calc(1vh * var(--height-val, 100) - var(--header-height, 0px));
    --height: calc(1svh * var(--height-val, 100) - var(--header-height, 0px));
    width: 100%; 
    height: var(--height);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.block-hero-banner.with-image {
    --height: min(45rem, calc(1vh * var(--height-val, 100) - var(--header-height, 0px)));
    --height: min(45rem, calc(1svh * var(--height-val, 100) - var(--header-height, 0px)));
}

.block-hero-banner.default {
    background-color: #fff;
}

.block-hero-banner .content-wrapper {
    position: relative;
}

.block-hero-banner .main-curve {
    width: 58rem;
    height: 58rem;
    aspect-ratio: 1 / 1;
    position: absolute;
    bottom: 50%;
    right: 0;
    transform: translate(67%, 95%);
    z-index: -1;
}

.block-hero-banner .main-curve::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -15.625rem;
    padding: 15.625rem;
    border-radius: 50%;
    background: linear-gradient(-100deg, var(--c-gradient-primary));
    mask:
        linear-gradient(#000 0 0) exclude,
        linear-gradient(#000 0 0) content-box;
}

.block-hero-banner .main-curve.wimage {
    width: min(55rem, var(--height));
    height: min(55rem, var(--height));
    bottom: unset;
    top: 0;
    right: 0;
    transform: translate(calc(48% + var(--offset)), calc(-50% + 5rem));
}

.block-hero-banner .main-curve.wimage::before {
    content: '';
    position: absolute;
    top: calc(50% - 5rem);
    right: 50%;
    width: 50%;
    height: calc(50% + 5rem);
    background-image: var(--bg-image);
    background-position: center;
    background-size: cover;
    z-index: -1;
    border-radius: 0 0 0 var(--size);
}

.block-hero-banner .main-curve.wimage::after {
    --size: min(15.625rem, calc(.35 * var(--height)));
    inset: calc(-1 * var(--size));
    padding: var(--size);
    background: linear-gradient(-45deg, var(--c-gradient-primary));
}

.block-hero-banner.with-slider .main-curve {
    transform: translate(60%, 95%);
}

.block-hero-banner .secondary-curve {
    width: 60rem;
    height: 60rem;
    aspect-ratio: 1 / 1;
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-55%, -55%);
    z-index: -1;
}

.block-hero-banner .secondary-curve::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    padding: 10rem;
    border-radius: 50%;
    background: linear-gradient(0deg, var(--c-gradient-secondary));
    mask:
        linear-gradient(#000 0 0) exclude,
        linear-gradient(#000 0 0) content-box;
} 

.block-hero-banner .lined-circle-1 {
    position: absolute;
    width: 12.75rem;
    height: auto;
    bottom: 59%;
    right: 13rem;
    z-index: -2;
}

.block-hero-banner .lined-circle-2 {
    position: absolute;
    width: 19.875rem;
    height: auto;
    bottom: 12%;
    right: -3.625rem;
    z-index: -2;
}

.block-hero-banner .lined-circle-3 {
    position: absolute;
    width: 12.75rem;
    height: auto;
    bottom: 5rem;
    right: calc(min(55rem, var(--height)) * 0.5 - var(--offset));
    z-index: -2;
    transform: rotate(90deg);
}

.block-hero-banner .content-wrapper {
    display: flex;
    align-items: center;
    height: 100%;
    position: relative;
    gap: 3.25rem;
}

.block-hero-banner .content-wrapper .left-side {
    flex-basis: 1px;
    flex-grow: 1;
}

.block-hero-banner .content-wrapper .left-side.bottom {
    align-self: flex-end;
    padding-bottom: 5rem;
}

body.error404 .block-hero-banner .content-wrapper .left-side.bottom {
    padding-bottom: 7.5rem;
}

.block-hero-banner .content-wrapper .left-side.top {
    align-self: flex-start;
    padding-top: 5rem;
}

body.error404 .block-hero-banner .content-wrapper .left-side.bottom {
    padding-top: 7.5rem;
}

.block-hero-banner .content-wrapper .right-side {
    flex-basis: 40%;
    width: 40%;
}

.block-hero-banner .data-cards-slider {
    background: linear-gradient(90deg,var(--c-gradient-primary));
    border-radius: var(--radius-l);
    color: white;
    width: 100%;
    aspect-ratio: 1.1;
}

.block-hero-banner .data-cards-slider :is(.splide__track,.splide__list) {
    height: 100%;
}

.block-hero-banner .data-card {
    /* padding: 12.5% 2.875rem 26.667%; */
    padding: 12.5% 2.875rem 0;
    position: relative;
}

.block-hero-banner .data-card--meta {
    margin-bottom: 2.375rem;
}

.block-hero-banner .data-card--title {
    font-weight: 600;
    font-size: var(--font-17-13);
}

.block-hero-banner .data-card--title::after {
    content: '|';
    font-weight: 400;
    color: rgb(from var(--c-tertiary) r g b / .3);
    margin-inline: 0.5rem;
}

.block-hero-banner .data-card--subtitle {
    font-size: var(--font-17-13);
    color: var(--c-alto);
}

.block-hero-banner .data-card--value {
    font-family: "Museo", sans-serif;
    font-size: var(--font-76-58);
    font-weight: 300;
    line-height: 1;
    margin-bottom: 1.25rem;
}

.block-hero-banner .data-card--value .curr {
    color: var(--c-alto);
    font-size: var(--font-32-24);
    font-weight: 300;
}

.block-hero-banner .data-card--tags {
    display: flex;
    gap: 1rem;
    align-items: center;
    /* margin-top: -1.125rem; */
}

.block-hero-banner .data-card--tags:not(:last-child) {
    margin-bottom: 2.75rem;
}

.block-hero-banner .data-card--tag {
    background-color: rgb(255 255 255 / 0.12);
    padding: 0.5rem 0.875rem;
    border-radius: var(--radius-xl);
    width: max-content;
    color: white;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.block-hero-banner .data-card--date {
    font-size: var(--font-16-13);
    color: var(--c-alto);
}

.block-hero-banner .data-card.type-euroland .data-card--tag {
    background-color: var(--c-tertiary);
    color: #CCEFFF;
}

.block-hero-banner .data-card--tag svg {
    max-width: .75em;
    max-height: .75em;
    width: auto;
    height: auto;
    vertical-align: middle;
}

.block-hero-banner .data-card--link {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    font-size: var(--font-17-13);
    /* margin-top: -1.125rem; */
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    line-height: 1;
}

.block-hero-banner .block-hero-banner svg {
    max-width: 0.8em;
    max-height: 0.8em;
}

@media screen and (hover: hover) {
    .block-hero-banner .data-card--link svg {
        transition: transform 100ms ease;
    }
    .block-hero-banner .data-card--link:is(:hover, :focus, :focus-within) svg {
        transform: translateX(2px);
    }
}

.block-hero-banner .splide__list {
    height: auto;
}

.block-hero-banner .splide__arrows {
    display: flex;
    gap: 0.25rem;
    position: absolute;
    right: 2.375rem;
    bottom: 2.375rem;
}

.block-hero-banner .splide__arrow {
    width: 2.438rem;
    height: 2.438rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid #fff;
    background-color: #fff;
    padding: 0;
}

.block-hero-banner .splide__arrow:disabled {
    background-color: transparent;
    opacity: 1;
    border-color: rgb(from var(--c-gallery) r g b / .5);
}

.block-hero-banner .splide__arrow svg {
    color: var(--c-tertiary);
}

.block-hero-banner .splide__arrow:disabled svg {
    color: white;
}

.block-hero-banner .splide__track--nav>.splide__list>.splide__slide.is-active {
    border: 3px solid transparent;
}

.block-hero-banner .splide__pagination {
    position: absolute;
    inset: unset;
    left: 2.875rem;
    bottom: 2.375rem;
    gap: 0.375rem;
    padding: 0;
}

.block-hero-banner .splide__pagination .splide__pagination__page {
    border-radius: 0;
    box-sizing: content-box;
    height: 2px;
    width: 2.25rem;
    background-color: rgb(from var(--c-alto) r g b / .3);
    background-clip: content-box;
    border: 0;
    margin: 0;
    padding: 0.5rem 0;
}

.block-hero-banner .splide__pagination__page.is-active {
    transform: scale(1);
    background-color: #fff;
    opacity: 1;
}

.block-hero-banner .cta-buttons {
    gap: 0.625rem;
    display: flex;
    flex-wrap: wrap;
    margin-top: 1.6875rem;
}

.block-hero-banner .anchor-links {
    display: flex;
    align-items: center;
    gap: 1rem 2.25rem;
    flex-wrap: wrap;
    color: var(--c-text-dark);
    font-weight: 600;
    margin-top: 2.875rem;
}

.block-hero-banner .anchor-links a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: nowrap;
}

.block-hero-banner .anchor-links a svg {
    width: 1rem;
    height: auto;
}

.block-hero-banner .anchor-links a svg.chevron {
    width: 0.75rem;
}

.block-hero-banner .content > * {
    margin-block: 0 1rem;
}

.block-hero-banner .content > :last-child {
    margin-bottom: 0 !important;
}

.block-hero-banner .content h6 {
    margin-bottom: 1.5rem;
}

.block-hero-banner .content p {
    padding-right: 6.438rem;
}

@media screen and (width <= 1024px) {
    .block-hero-banner {
        --pt: 2.5rem !important;
        --mb: 0rem !important;
        height: auto !important;
    }
    .block-hero-banner.with-image {
        --mb: 5rem !important;
    }
    .block-hero-banner.with-slider {
        --pb: 5rem !important;
    }
    .block-hero-banner .main-curve.wimage {
        width: 50rem;
        height: 50rem;
        top: calc(-1 * var(--pt));
        transform: translate(50%, -50%);
    }
    .block-hero-banner .main-curve.wimage::before {
        inset: unset;
        left: 0;
        bottom: 0;
        width: 50%;
        height: 50%;
        border-bottom-left-radius: 100%;
    }
    .block-hero-banner .main-curve.wimage::after {
        inset: -9rem;
        padding: 9rem;
    }
    .block-hero-banner .lined-circle-3 {
        bottom: unset;
        top: 11rem;
    }
    .block-hero-banner .content-wrapper {
        flex-direction: column;
        align-items: flex-start;
    }
    .block-hero-banner.with-image .content-wrapper {
        flex-direction: column-reverse;
    }
    .block-hero-banner .content-wrapper .left-side {
        padding-block: 0 !important;
        align-self: flex-start !important;
    }
    .block-hero-banner:not(.with-slider) .right-side {
        height: 20rem;
    }
    .block-hero-banner.with-slider .right-side {
        align-self: center;
        height: unset;
    }
    .block-hero-banner.with-slider .main-curve {
        width: 50rem;
        height: 50rem;
        transform: translate(50%, 70%);
    }
    .block-hero-banner .main-curve:not(.wimage) {
        width: 35rem;
        height: 35rem;
        bottom: 0;
        transform: translate(calc(50% + var(--offset)), 50%);
    }
    .block-hero-banner .main-curve:not(.wimage)::after {
        inset: -10rem;
        padding: 10rem;
    }
    .block-hero-banner .lined-circle-1 {
        width: 10rem;
        bottom: 15rem;
    }
    .block-hero-banner .lined-circle-2 {
        width: 15rem;
        bottom: 2rem;
        right: 4rem;
    }
    .block-hero-banner .data-cards-slider {
        aspect-ratio: 1.15;
    }
    .block-hero-banner .data-card {
        /* padding: 10% 2rem 20%; */
        padding: 10% 2rem 0;
    }
    .block-hero-banner .data-card--meta {
        margin-bottom: 1.5rem;
    }
    .block-hero-banner .data-card--value {
        margin-bottom: 1rem;
    }
    .block-hero-banner .data-card--tags:not(:last-child) {
        margin-bottom: 1.75rem
    }
    .block-hero-banner .content-wrapper :is(.right-side,.left-side) {
        flex-basis: unset;
    }
    .block-hero-banner .content-wrapper .left-side {
        padding-block: 0 !important;
        max-width: 100%;
    }
    .block-hero-banner .content-wrapper .right-side {
        width: min(100%, 23rem);
    }
    .block-hero-banner .splide__pagination {
        left: 2rem;
        bottom: 1.5625rem;
    }
    .block-hero-banner .splide__pagination .splide__pagination__page {
        width: 1.8125rem;
    }
    .block-hero-banner .splide__arrows {
        right: 1.5rem;
        bottom: 1.5rem;
    }
    .block-hero-banner .splide__arrow {
        width: 2.125rem;
        height: 2.125rem;
    }
    .block-hero-banner .splide__arrow svg {
        width: 0.625rem;
        height: auto;
    }
    .block-hero-banner .data-card--tags {
        gap: 0.75rem;
    }
    .block-hero-banner .data-card--tag {
        font-size: var(--font-14-11);
    }
    .block-hero-banner .data-card--link {
        margin-top: 0;
    }
    .block-hero-banner .anchor-links {
        text-wrap: nowrap;
        flex-wrap: nowrap;
        overflow: auto;
        margin-inline: calc(-1 * var(--pad, 0px));
        padding-inline: var(--pad, 0px);
        scroll-padding-inline: var(--pad, 0px);
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .block-hero-banner .anchor-links::-webkit-scrollbar {
        display: none;
    }
    .block-hero-banner .anchor-links a,
    .block-hero-banner .anchor-links a svg {
        flex-shrink: 0;
    }
}

@media screen and (width <= 640px) {
    .block-hero-banner .main-curve.wimage {
        width: 30rem;
        height: 30rem;
    }
    .block-hero-banner .main-curve.wimage::before {
        inset: unset;
        left: 0;
        bottom: 0;
        width: 50%;
        height: 50%;
        border-bottom-left-radius: 100%;
    }
    .block-hero-banner .main-curve::after {
        inset: -10rem;
        padding: 10rem;
    }
    .block-hero-banner .main-curve.wimage::after {
        inset: -8rem;
        padding: 8rem;
    }
    .block-hero-banner .main-curve:not(.wimage) {
        width: 32rem;
        height: 32rem;
        transform: translate(62%, 65%);
    }
    .block-hero-banner .secondary-curve {
        width: 43rem;
        height: 43rem;
        transform: translate(-50%, -60%);
    }
    .block-hero-banner .lined-circle-3 {
        width: 5.875rem;
        top: 7rem;
        right: 16rem;
    }
    .block-hero-banner .content-wrapper {
        gap: 3.4375rem;
    }
    .block-hero-banner.with-image .right-side {
        height: 15rem;
    }
    .block-hero-banner .cta-buttons,
    .block-hero-banner .anchor-links {
        margin-top: 1.25rem;
    }
    .block-hero-banner .content > * {
        margin-block: 0 1rem;
    }
    .block-hero-banner .content p {
        padding-right: 0;
    }
    .block-hero-banner .content h6 {
        margin-bottom: 1.25rem;
    }
    .block-hero-banner.with-slider .main-curve {
        width: 32rem;
        height: 32rem;
        transform: translate(62%, 65%);
    }
    .block-hero-banner .main-curve.wimage ~ .secondary-curve {
        display: none;
    }
    .block-hero-banner .secondary-curve::after {
        padding: 9rem;
    }
    .block-hero-banner .lined-circle-1 {
        bottom: 10rem;
        right: 5rem;
    }
    .block-hero-banner .lined-circle-2 {
        width: 13rem;
        bottom: -2rem;
        right: -2rem;
    }
}

@media screen and (width <= 420px) {
    .block-hero-banner .main-curve.wimage {
        width: 23rem;
        height: 23rem;
        transform: translate(45%, -45%);
    }
    .block-hero-banner .main-curve.wimage::before {
        width: 55%;
        height: 55%;
        border-bottom-left-radius: 90%;
    }
    .block-hero-banner .main-curve.wimage::after {
        inset: -6.5rem;
        padding: 6.5rem;
    }
    .block-hero-banner .lined-circle-3 {
        top: 6rem;
        right: 13rem;
    }
    .block-hero-banner.with-image .right-side {
        height: 11.5rem;
    }
}