.header__dates{
    display: block!important;
    padding: .25rem 1rem!important;
    position: relative;
}

.header__date{
    text-align: center;
}

.header__dates .date-swiper{
    padding: .5rem 3rem;
    position: static;
    width: 99%;
}

.header__dates .swiper-button-prev:after,
.header__dates .swiper-button-next:after{
    content: unset;
}

.header__dates .swiper-button-prev,
.header__dates .swiper-button-next{
    transition: .3s all;
}

.header__dates .swiper-button-prev:hover,
.header__dates .swiper-button-next:hover{
    background-color: #fff;
}
.header__dates .swiper-button-prev:hover svg path,
.header__dates .swiper-button-next:hover svg path{
    stroke: #000;
    fill: #000;
}
.header__dates .swiper-button-prev{
    left: 16px;
}

.header__dates .swiper-button-next{
    right: 16px;
}

.header__dates .swiper-button-prev,
.header__dates .swiper-button-next{
    width: 44px;
    height: 44px;
    background: #000000;
    border-radius: 50%;
    padding: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
}
#confetti-animation,
#confetti-animation-footer{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
#confetti-animation-footer{
    bottom: -30%;
    left: 50%;
}
.formulaire__tab-content {
    z-index: 2;
    position: relative;
}
.kid__photo {
    left: 25%!important;
    height: 100%!important;
}
.kid__map {
    right: -20%!important;
    height: calc(100% - 1.5rem)!important;
}
.kid__ticket{
    right: 20%;
    left: auto !important;
    top: 22%;
    z-index: 0 !important;
    height: 58% !important;
}
#adult-products,
#adult-products::before{
    transition: 2s all;
}
#adult-products.expanded{
    padding-bottom: 41rem;
}
#adult-products.expanded::before {
    height: 53rem;
}
#adult-products.expanded::after{
    content: '';
    display: block;
    opacity: 0;
    width: 220px;
    height: 220px;
    position: absolute;
    background-position: center;
    background-size: contain;
    bottom: -34px;
    right: 50%;
    transform: translate(50%, 0);
    transition: .7s opacity;
    background-image: url(../images/flag.gif);
    filter: brightness(0);
}
#adult-products.expanded.show::after{
    opacity: 1;
}
.body-no-scroll {
    overflow: hidden;
    height: 100vh;
}
.btn-stop-motion__icon.map_button{
    width: 2.5rem;
}
.finale__text, .finale__emoji-text{
    font-size: 1.25rem !important;
}
.about__heading strong:last-child,
.car-text__heading strong:nth-child(2),
.tour__heading strong:last-child,
.finale__heading strong:last-child,
.brand__heading strong:nth-child(2){
    color: #fff !important;
    position: relative;
}
.about__heading strong:last-child::before,
.finale__heading strong:last-child::before,
.brand__heading strong:nth-child(2):before{
    color: #345704;
    -webkit-text-stroke: 0;
    position: absolute;
    width: 0%;
    overflow: hidden;
    content: 'DÉFIE\00a0 LE\00a0 CHRONO';
    left: 0;
}
.car-text__heading strong:nth-child(2)::before,
.tour__heading strong:last-child::before{
    color: #7eb830;
    -webkit-text-stroke: 0;
    position: absolute;
    width: 0%;
    overflow: hidden;
    content: 'POUR\00a0 LA\00a0 GRANDE\00a0 FINALE\00a0 !';
    left: 0;
}
.tour__heading strong:last-child::before{
    content: 'LES\00a0 ÉTAPES\00a0 DU\00a0 GP\00a0 EXOST\00a0 ';
}
.finale__heading strong:last-child::before{
    content: 'LA\00a0 FINALE\00a0';
}
.brand__heading strong:last-child:before{
    content: 'DÉCOUVREZ\00a0 EXOST\00a0';
}

.about__heading.show strong:last-child::before,
.car-text__heading.show strong:nth-child(2)::before,
.tour__heading.show strong:last-child::before,
.finale__heading.show strong:last-child::before,
.brand__heading.show strong:nth-child(2):before {
    animation: textReveal 2s linear forwards;
}

.map__image svg {
    max-width: 400px;
}

#needle {
    stroke: #7EB830;
    stroke-width: 8;
    stroke-linecap: round;
}

#car-1,
#car-2 {
    will-change: transform;
    pointer-events: none;
}

html, body {
    touch-action: manipulation;
    overscroll-behavior: none;
}

.product__image {
    position: relative;
    overflow: visible !important;
}

.car-ride {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: contain;
    transform-origin: center center;
    pointer-events: none;
    z-index: 10;
    transition: transform 0.1s ease-out;
}

[data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-animate].animate-in {
    opacity: 1;
    transform: translateY(0);
}

@keyframes carEntrance {
    0% {
        opacity: 0;
        transform: translate(100%, -100%) scale(0.3);
    }
    100% {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }
}

.formulaire__car {
    opacity: 0;
    transform: translate(100%, -100%) scale(0.3);
}

.formulaire__car.visible {
    animation: carEntrance 0.8s ease forwards;
}

.formulaire__car-image {
    display: none;
    position: absolute;
    top: 50%;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.4s ease, left 0.6s ease, right 0.6s ease;
    pointer-events: none;
}

.formulaire__car-image--left {
    left: 40%;
    transform: translateY(-50%) rotate(5deg) translateX(-160%);
}

.formulaire__car-image--right {
    right: 40%;
    transform: translateY(-50%) rotate(-5deg) translateX(160%);
}

.formulaire_visible .formulaire__car-image--left {
    left: 50%;
    opacity: 1;
}

.formulaire_visible .formulaire__car-image--right {
    right: 50%;
    opacity: 1;
}

.formulaire__content {
    z-index: 2;
}

.dates__item_old {
    opacity: 0.5;
}

.press-logo-link {
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.press-logo-link:hover .press-logo-img {
    opacity: 0.8;
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.hero__video--desktop {
    display: inline-block;
}
.hero__video--mobile {
    display: none;
}

.finalistes {
    padding-top: 7.5rem;
    position: relative;
    text-align: center;
}

.finalistes__heading {
    margin-top: .25rem;
    color: #7bb624;
}

.finalistes__block-icon img, .finalistes__block-icon svg {
    width: 5rem;
    height: auto;
}

.finalistes__row {
    display: flex;
    flex-direction: column;
    margin-top: 2.5rem;
    gap: 1.5rem;
}

.video {
    position: relative;
    height: 100vh;
    overflow: hidden;
    clip-path: inset(10% round 20px);
    transition: clip-path 0.5s ease;
    will-change: clip-path;
}

.video.video--active {
    clip-path: inset(0% round 0);
}

.video__container {
    width: 100%;
    height: 100%;
    object-fit: cover;
    flex-grow: 1;
}

.video__section-toggle {
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: rgba(0, 0, 0, 0.6);
    border: none;
    width: 55px;
    height: 55px;
    background-size: 30px 30px;
    background-repeat: no-repeat;
    background-position: center;
    cursor: pointer;
    border-radius: 50%;
}

.video__section-toggle.muted {
    background-image: url("data:image/svg+xml,%3Csvg width='32' height='25' viewBox='0 0 32 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.17188 1.02637L30.7188 23.5264C31 23.7607 31.0938 24.2764 30.8125 24.5576C30.5781 24.8857 30.1094 24.9795 29.7812 24.6982L1.28125 2.19824C0.953125 1.96387 0.859375 1.44824 1.14062 1.16699C1.375 0.838867 1.89062 0.745117 2.17188 1.02637ZM28 12.8389C28 14.5732 27.5312 16.1201 26.6875 17.4795L25.5156 16.542C26.125 15.4639 26.5 14.1982 26.5 12.8389C26.5 10.542 25.4219 8.43262 23.7344 7.07324C23.4531 6.79199 23.4062 6.32324 23.6406 5.99512C23.9219 5.71387 24.3906 5.66699 24.7188 5.90137C26.6875 7.58887 28 10.0732 28 12.8389ZM23.125 14.667L21.8594 13.6826C21.9531 13.4014 22 13.167 22 12.8389C22 11.9014 21.5312 11.0107 20.7812 10.4482C20.4531 10.2139 20.3594 9.74512 20.6406 9.41699C20.875 9.08887 21.3438 8.99512 21.6719 9.27637C22.75 10.0732 23.5 11.3857 23.5 12.8389C23.5 13.4951 23.3594 14.1045 23.125 14.667ZM17.5 3.74512V10.2139L16 9.04199V3.97949L12.9531 6.65137L11.7812 5.71387L15.1562 2.71387C15.3906 2.47949 15.7188 2.33887 16.0938 2.33887C16.8438 2.33887 17.5 2.99512 17.5 3.74512ZM5.125 9.83887C4.46875 9.83887 4 10.3545 4 10.9639V14.7139C4 15.3701 4.46875 15.8389 5.125 15.8389H9.10938C9.25 15.8389 9.4375 15.9326 9.57812 16.0264L16 21.7451V16.6826L17.5 17.8545V21.9795C17.5 22.7295 16.8438 23.3389 16.0938 23.3389C15.7188 23.3389 15.3906 23.2451 15.1562 23.0107L15.6719 22.4482L15.1562 23.0107L8.78125 17.3389H5.125C3.67188 17.3389 2.5 16.167 2.5 14.7139V10.9639C2.5 9.55762 3.67188 8.33887 5.125 8.33887H5.45312L7.32812 9.83887H5.125Z' fill='white'/%3E%3C/svg%3E");
}

.video__section-toggle.unmuted {
    background-image: url("data:image/svg+xml,%3Csvg fill='white' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 10v4h4l5 5V5L7 10H3zm13.5 2c0-1.77-1.02-3.29-2.5-4.03v8.06c1.48-.74 2.5-2.26 2.5-4.03zM14 3.23v2.06c3.39.49 6 3.39 6 6.71s-2.61 6.22-6 6.71v2.06c4.45-.52 8-4.27 8-8.77s-3.55-8.25-8-8.77z'/%3E%3C/svg%3E");
}

.finalistes .racers__table tr:nth-child(odd) td {
    background: #101B1F;
}

.finalistes .racers__categories {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.finalistes .racers__category {
    display: flex;
    align-items: center;
    gap: 20px;
}

.finalistes .racers__category:nth-child(1) {
    flex-direction: row;
}

.finalistes .racers__category:nth-child(2) {
    flex-direction: row-reverse;
}

.finalistes .racers__image {
    max-width: 300px;
    height: auto;
    flex-shrink: 0;
}

.moments__heading {
    color: #7bb624;
}

@media (max-width: 768px) {
    .finalistes .racers__category {
        flex-direction: column !important;
        text-align: center !important;
    }
}

@media (min-width: 640px) {
    .finalistes {
        padding-top: 10rem;
    }
}

@media (min-width: 960px) {
    .finalistes__row {
        gap: 1rem;
    }
}

@media (min-width: 1280px) {
    .finalistes {
        padding-top: 12.5rem;
    }
    .finalistes__row {
        margin-top: 3.75rem;
    }
}

@media (max-width: 767.98px) {
    .hero__video--desktop {
        display: none !important;
    }
    .hero__video--mobile {
        display: inline-block !important;
    }
}

@media (min-width: 641px) {
    .formulaire {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2rem;
    }

    .formulaire__car-image {
        display: block;
        max-height: 180px;
        flex-shrink: 0;
    }

    .formulaire form {
        flex-grow: 1;
    }

    .formulaire__car--pc {
        display: none;
    }
}

@keyframes textReveal {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}
@media(max-width: 768px){
    .header__dates{
        padding: 2px 8px !important;
    }
    .header__dates .swiper-button-prev{
        left: 8px;
    }

    .header__dates .swiper-button-next{
        right: 8px;
    }
    .header__dates .date-swiper{
        width: 71%;
        padding: .5rem 0;
    }
    .header__dates .header__date_const{
        color: #fff !important;
    }
    .kid__photo {
        left: 18%!important;
    }
    .kid__ticket{
        right: 3%;
        left: auto !important;
        top: 2%;
        height: 100% !important;
    }
    .about__heading,
    .car-text__heading,
    .tour__heading,
    .finale__heading {
        font-size: 1.8rem !important;
    }
    
    .tour__press-logos{
        justify-content: flex-start !important;
        gap: 1rem !important;
        flex-wrap: wrap;
    }
    .tour__press-logos img {
        height: 2.65rem !important;
    }
    .tour__heading.show>div strong:last-child::before{
        content: unset;
    }
    .tour__heading.show>div:first-child strong:last-child::before{
        content: 'LES\00a0 ÉTAPES\00a0 DU\00a0 GP\00a0 EXOST\00a0 ';
    }

    .car-text__heading.show>div strong:last-child::before{
        content: unset;
    }
    .car-text__heading.show>div:nth-child(2) strong:nth-child(2)::before{
        content: 'POUR\00a0 LA\00a0 GRANDE\00a0 FINALE\00a0 !';
    }

    .brand__heading.show>div strong:last-child::before{
        content: unset;
    }
    .brand__heading.show>div:first-child strong:nth-child(2)::before{
        content: 'DÉCOUVREZ\00a0 EXOST\00a0';
    }
    .map__image svg {
        max-width: 250px;
    }
    #car-1 {
        width: 180px;
        height: 180px;
    }
    .btn-stop-motion {
        width: 100%;
    }
    .stack-card img {
        max-height: 6rem !important;
    }
    .formulaire {
        background: transparent !important;
    }
    .racers__cards-button {
        width: 100%;
    }
}

@media (min-width: 640px) {
    .racers__path-container {
        top: calc(100% - 14.5rem) !important;
    }
    .product__image {
        height: 10.75rem !important;
    }
    .formulaire.formulaire_visible {
        background: #000000bd !important;
        -webkit-backdrop-filter: blur(10px) !important;
        backdrop-filter: blur(10px) !important;
    }
}

@media (max-width: 639.98px) {
    .brand {
        overflow: initial !important;
    }

    .product__image {
        height: 8rem !important;
    }

    .formulaire__content {
        background: #000000bd !important;
    }
}

@media (hover: none) {
    .press-logo-link:active .press-logo-img {
        opacity: 0.8;
        transform: scale(1.05);
        transition: transform 0.2s ease, opacity 0.2s ease;
    }
}