/* --------------------------------------- */
/* ---------- MOBILE XS - 300px ---------- */
@media (min-width:1px) {
    main {
        background: #ffffff;
        overflow-x: hidden;
        max-width: 2400px;
        margin: 0 auto;
    }

    /* -- section geolocalisation -- */ @media screen, print {
        .sec-geoloc {
            position: relative;
            background-color: rgb(128,210,255);
            background-image: url(../img/carte-landing-accueil.png);
            background-size: cover;
            background-repeat: no-repeat;
            background-position: center center;
            display: flex;
            justify-content: center;
            align-items: start;
            --section-height:550px;
            height: var(--section-height);
            padding: 0 30px;
        }

        /* Bloc qui regroupe les icones à placer sur la carte */
        .map-anons-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
        }

        /* fausse annonce placée sur la carte du landing */
        .map-anon {
            position: absolute;
            --size:40px;
            width: var(--size);
            height: var(--size);
            transition: all 0.2s ease-in-out;
        }

        .pulse-ring {
            pointer-events: none;
            z-index: 0;
            position: absolute;
            display: block;
            width: 200px;
            height: 200px;
            box-sizing: border-box;
            left:50%;
            top:50%;
            transform: translate(-50%, -50%);
            border-radius: 10000px;
            background-color: #ffffff;
            opacity: 0;
            animation: pulse-ring 3s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
        }

        @keyframes pulse-ring {
            0% {
            transform: translate(-50%, -50%) scale(0);
                opacity: 0.5;
            }

            70%, 100% {
            opacity: 0;
            }
        }

        /*  */
        .ico-map-anon {
            width: var(--size);
            height: var(--size);
            background-color: #ffffff;
            transform: scale(1);
            transition: all 0.2s ease-in-out;
        }

        /* Fausse annonce visible au survol */
        .desc-map-anon {
            display: flex;
            pointer-events: none;
            --height:105px;
            flex-direction: column;
            position: absolute;
            left: 50%;
            top: calc((-1 * var(--height)) - 15px);
            transform: translateX(-50%);
            width: 200px;
            height: var(--height);
            background-color: #ffffff;
            border-radius: 5px;
            font-family: 'Roboto', sans-serif;
            visibility: hidden;
        }

        .desc-map-anon::after {
            content: "";
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            border-width: 10px;
            border-style: solid;
            border-color: #ffffff transparent transparent transparent;
        }

        /* Barre du haut fausse annonce */
        .dma--topbar {
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--noir-texte);
            border-top-left-radius: inherit;
            border-top-right-radius: inherit;
            padding: 5px;
        }

        /* Texte simulant fausse catégorie */
        .dma--topbar .dma--cat {
            color: #ffffff;
            font-size: 14px;
            font-weight: 500;
            margin: 0;
        }

        /* Bloc d'infos détail de la fausse annonce carte */
        .dma--info {
            padding: 6px 12px;
            display: flex;
            flex-direction: column;
        }

        /* Règles pour tous les textes du bloc */
        .dma--info p {
            margin: 0 0 0 0;
        }

        /* Faux titre d'annonce */
        .dma--ttr {
            font-size: 15px;
            font-weight: 500;
            color: var(--noir-texte);
            line-height: 1.2;
        }

        /* Faux auteur d'annonce */
        .dma--annonceur {
            font-size: 13px;
            font-weight: 400;
            color: var(--noir-texte);
            line-height: 1.3;
        }

        /* Fausse date de publication */
        .dma--date {
            font-size: 12px;
            font-weight: 400;
            color: var(--secondary);
            line-height: 1.3;
        }

        /* Fausse annonce n°1 */
        #Map_anon_1 {
            bottom: 18%;
            left: 8%;
            display: none;
        }

        #Map_anon_1 .pulse-ring {
            animation-delay: 300ms;
        }

        #Map_anon_1 .ico-map-anon {
            -webkit-mask-image: url(../svg/ico-map-bonplan.svg);
            mask-image: url(../svg/ico-map-bonplan.svg);
        }

        #Map_anon_1 .dma--topbar {
            background-color: var(--cat-affaire);
        }

        /* Fausse annonce n°2 */
        #Map_anon_2 {
            top: 80%;
            left: 22%;
        }

        #Map_anon_2 .ico-map-anon {
            -webkit-mask-image: url(../svg/ico-map-emploi.svg);
            mask-image: url(../svg/ico-map-emploi.svg);
        }

        #Map_anon_2 .dma--topbar {
            background-color: var(--cat-emploi);
        }

        /* Fausse annonce n°3 */
        #Map_anon_3 {
            bottom: 22%;
            right: 25%;
            display: none;
        }

        #Map_anon_3 .ico-map-anon {
            -webkit-mask-image: url(../svg/ico-map-sortie.svg);
            mask-image: url(../svg/ico-map-sortie.svg);
        }

        #Map_anon_3 .dma--topbar {
            background-color: var(--cat-event);
        }

        /* Fausse annonce n°4 */
        #Map_anon_4 {
            top: 12%;
            right: 15%;
        }

        #Map_anon_4 .pulse-ring {
            animation-delay: 300ms;
        }

        #Map_anon_4 .ico-map-anon {
            -webkit-mask-image: url(../svg/ico-map-bonplan.svg);
            mask-image: url(../svg/ico-map-bonplan.svg);
        }

        #Map_anon_4 .dma--topbar {
            background-color: var(--cat-affaire);
        }

        .geoloc-container {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 1;
            margin-top: calc((var(--section-height) * 18) / 100);
        }

        .titre-geoloc {
            font-family: 'Teko', sans-serif;
            font-size: 32px;
            font-weight: 500;
            line-height: 1.1;
            color: #ffffff;
            text-align: center;
            margin: 0 0 20px 0;
            text-shadow: rgba(0, 100, 188, 0.8) 0px 4px 0px;
            background-color: rgb(0 99 188 / 30%);
            padding: 12px 18px 8px 18px;
            border-radius: 8px;
        }

        /* bouton synchro bus */
        .sync-bus-box {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background: var(--gris-background);
            border-radius: 5px;
            width: 100%;
            margin: 0;
            padding: 10px 12px 20px 12px;
            border: 2px solid var(--gris-bleu);
        }

        .sync-bus-titre {
            font-family: 'Cabin', sans-serif;
            font-size: 17px;
            font-weight: 700;
            color: var(--primary-light);
            margin: 0;
            text-align: center;
        }

        .sbb--mid-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
        }

        .sync-bus-btn {
            display: flex;
            justify-content: center;
            background: var(--primary-grad2);
            text-decoration: none;
            width: -moz-fit-content;
            width: fit-content;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            flex-shrink: 0; /* Empêche le bouton de rétrécir */
            white-space: nowrap; /* Empêche le texte du bouton de se casser */
            order: 2;
        }

        .sync-bus-btn:hover {
            background: var(--primary);
        }

        .sync-bus-btn .btn-ico {
            --size:18px;
            background-image: url("../svg/ico-bus-blanc.svg");
            background-repeat: no-repeat;
            background-position: center;
            background-size: contain;
            width: var(--size);
            height: var(--size);
            margin: auto 0 auto 0;
        }

        .sync-bus-btn .btn-txt {
            font-family: 'Cabin', sans-serif;
            font-size: 16px;
            font-weight: 700;
            color: #ffffff;
            margin: auto 0 auto 5px;
        }

        /* Phrase qui accompagne */
        .sbb--info-txt {
            font-family: 'Cabin', sans-serif;
            font-size: 15px;
            font-weight: 500;
            color: var(--noir-texte);
            margin: 0;
            line-height: 1.3;
            order: 1;
        }

        /* Styles lorsque la demande de synchro est lancée */
        .sync-bus-btn.sync-btn-loading {
            pointer-events: none;
        }

        .sync-bus-btn.sync-btn-loading .btn-ico {
            background-image: url("../svg/ico-fleche-sync-blanc.svg");
            animation: rotation-infinie 1.5s linear infinite
        }

        /* anim rotation icone fleches */
        @keyframes rotation-infinie {
            from {
            transform: rotate(0deg);
            }
            to {
            transform: rotate(360deg);
            }
        }

        /* barre de recherche de lignes */
        .explo-ligne-box {
            background: #ffffff;
            border-radius: 8px;
            padding: 20px 15px 30px 15px;
            width: 100%;
            max-width: 550px;
            box-shadow: rgba(0, 100, 188, 0.35) 0px 2px 0px 2px;
        }

        /* Barre des options de services voyageur */
        #Voyageur_service_choice_bar {
            display: flex;
            flex-direction: row;
            gap: 25px;
            margin-bottom: 15px;
        }

        /* Règles générales des boutons de service voyageur */
        .vscb--btn {
            position: relative;
            background: none;
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 5px;
            border: none;
            padding: 3px 1px;
        }

        .vscb--btn::after {
            content: '';
            position: absolute;
            bottom: 0px;
            left: 0px;
            width: 100%;
            height: 2px;
            background-color: var(--gris);
            opacity: 0;
        }

        .vscb--btn:hover::after {
            opacity: 1;
        }

        /* Si le bouton est déjà sélectionné */
        .vscb--btn.active {
            pointer-events: none;
        }

        .vscb--btn.active::after {
            opacity: 1;
            background-color: var(--noir-clair);
        }

        /* Icone du bouton */
        .vscb--btn .mask-ico {
            --size:16px;
            width: var(--size);
            height: var(--size);
        }

        /* Texte du bouton */
        .vscb--btn .txt-content {
            font-family: 'Cabin', sans-serif;
            font-weight: 500;
            font-size: 15px;
            margin: 0;
        }

        /* bouton "explorer une ligne" */
        #Btn_service_explo_ligne {

        }

        #Btn_service_explo_ligne .mask-ico {
            -webkit-mask-image: url(../svg/ico-service-explo-ligne.svg);
            mask-image: url(../svg/ico-service-explo-ligne.svg);
            background-color: var(--noir-clair);
        }

        /* bouton "suivi bus" */
        #Btn_service_suivi_bus {

        }

        #Btn_service_suivi_bus .mask-ico {
            -webkit-mask-image: url(../svg/ico-service-suivi-bus.svg);
            mask-image: url(../svg/ico-service-suivi-bus.svg);
            background-color: var(--noir-clair);
        }

        /* Conteneur d'éléments du service "explorer une ligne" */
        #Service_explorer_ligne {
            display: none;
            flex-direction: column;
            margin: 0;
        }

        /* Classe complémentaire nécessaire pour afficher le service */
        #Service_explorer_ligne.show {
            display: flex;
        }

        /* Conteneur d'éléments du service "suivi du bus" */
        #Service_suivi_bus {
            display: none;
        }

        /* Classe complémentaire nécessaire pour afficher le service */
        #Service_suivi_bus.show {
            display: flex;
        }

        .titre-explo-ligne {
            font-family: 'Cabin', sans-serif;
            font-size: 16px;
            font-weight: 500;
            color: var(--noir-texte);
            text-align: center;
            margin: 0 0 15px 0;
        }

        .explo-ligne-box input {
            padding: 12px 10px;
            line-height: 1.2;
            border: 1px solid var(--gris-form);
            border-radius: 8px;
            background-color: #ffffff;
            -webkit-box-shadow: inset 0px 1px 4px 1px rgba(0,0,0,0.12); 
            box-shadow: inset 0px 1px 4px 1px rgba(0,0,0,0.12);
            margin-bottom: 12px;
        }

        .explo-ligne-box input::placeholder {
            font-family: 'Cabin', sans-serif;
            font-size: 16px;
            font-style: normal;
            font-weight: 500;
            color:var(--gris-form);

        }

        .explo-lign-btn {
            display: flex;
            justify-content: center;
            background: var(--secondary);
            text-decoration: none;
            /* width: 100%; */
            width: -moz-fit-content;
            width: fit-content;
            margin: 5px auto 0 auto;
            padding: 6px 13px;
            border-radius: 8px;
            cursor: pointer;
        }

        .explo-lign-btn:hover {
            background: var(--secondary-dark);
        }

        .explo-lign-btn.disabled-btn {
            background: var(--gris-mid);
            pointer-events: none;
        }

        .explo-lign-btn .btn-ico {
            --size:20px;
            background-image: url("../svg/ico-loupe-blanc.svg");
            width: var(--size);
            height: var(--size);
            margin: auto 0 auto 0;
        }

        .explo-lign-btn .btn-txt {
            font-family: 'Cabin', sans-serif;
            font-size: 18px;
            font-weight: 700;
            color: #ffffff;
            margin: auto 0 auto 5px;
        }
    } /* -- FIN section geolocalisation -- */


    /* -- Section teaser d'annonces -- */ @media screen, print {
        #Section_teasing_annonces {
            background-color: var(--noir-clair);
            padding: 12px 0 20px 0;
            display: flex;
            flex-direction: column;
            gap: 15px;
        }

        .sta--ttr-container {
            display: flex;
            gap: 10px;
            flex-direction: row;
            align-items: center;
            padding: 0 15px;
        }

        /* Tirets latéraux qui accompagne le titre */
        .sta--ttr-tiret-visuel {
            background-color: #ffffff;
            flex-grow: 1;
            height: 2px;
        }

        /* titre de la section */
        .sta--ttr-txt {
            font-family: 'Cabin', sans-serif;
            font-size: 15px;
            font-weight: 600;
            color: #ffffff;
            margin: 0;
            text-align: center;
        }

        /* Conteneur carrousel teaser */
        #Carrousel_anons {
            width: 100%;
            height: -moz-fit-content;
            height: fit-content;
            overflow: hidden;
            position: relative;

            --bloc-width:200px;
            --bloc-height:200px;
            --nombre-bloc:8;
            --bloc-gap:20px;
        }

        #Carrousel_anons::before {
            content: '';
            height: 100%;
            width: 0px;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            z-index: 2;
            position: absolute;
            background: linear-gradient(to right, rgb(42, 36, 53) 0%, rgba(42, 36, 53, 0.5) 50%, rgba(255, 255, 255, 0) 100%);
        }

        #Carrousel_anons::after {
            content: '';
            height: 100%;
            width: 0px;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
            z-index: 2;
            position: absolute;
            background: linear-gradient(to left, #2A2435 0%,rgba(255,255,255,0) 100%);
        }

        /* Conteneur coulissant animé */
        #Carr_track {
            display: flex;
            flex-direction: row;
            justify-content: start;
            align-items: center;
            gap: var(--bloc-gap);
            width: calc(var(--bloc-width) * (var(--nombre-bloc)) + (var(--bloc-gap) * (var(--nombre-bloc) - 1)));
            animation: carrousel-scroll 25s linear infinite;
            padding: 0;
            margin: 0;
        }

        /* Animation du carrousel */
        @keyframes carrousel-scroll {
            0% { transform: translateX(0); }
            100% {
                transform: translateX(calc( ((-1 * var(--bloc-width)) * var(--nombre-bloc)) + ( (-1 * var(--bloc-gap)) * var(--nombre-bloc)) ));
            };
        }

        /* Bloc du carrousel */
        .carr--bloc {
            min-width: var(--bloc-width);
            width: var(--bloc-width);
            min-height: var(--bloc-height);
            height: var(--bloc-height);
            border-radius: 10px;
            position: relative;
            overflow: hidden;
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        /* Overlay coloré des blocs du carrousel */
        .carr--color-overlay {
            position: absolute;
            background-color: #ffffff;
            opacity: 60%;
            width: 100%;
            height: 100%;
            z-index: 0;
        }

        /* Couleur pour les blocs de type "bon plan" */
        .carr--bloc[carr-type="bonplan"] .carr--color-overlay {
            background-color: var(--cat-affaire);
        }

        /* Couleur pour les blocs de type "emploi" */
        .carr--bloc[carr-type="emploi"] .carr--color-overlay {
            background-color: var(--cat-emploi);
        }

        /* Couleur pour les blocs de type "sortie" */
        .carr--bloc[carr-type="sortie"] .carr--color-overlay {
            background-color: var(--cat-event);
        }

        /* Couleur pour les blocs de type "info bus" */
        .carr--bloc[carr-type="bus"] .carr--color-overlay {
            background-color: var(--secondary);
        }

        /* Texte des blocs du carrousel */
        .carr--bloc-name {
            font-family: 'Roboto', sans-serif;
            font-size: 18px;
            font-weight: 800;
            color: #000;
            text-align: center;
            background-color: #ffffff;
            padding: 5px 15px;
            border-radius: 5px;
            margin: 0;
            width: -moz-fit-content;
            width: fit-content;
            mix-blend-mode: screen;
        }

        /* Bloc carrousel numéro 1 */
        #Carr_1, #Carr_1b {
            background-image: url(../img/bloc-carrousel-bonplan-01.jpg);
        }

        /* Bloc carrousel numéro 2 */
        #Carr_2, #Carr_2b {
            background-image: url(../img/bloc-carrousel-sortie-02.jpg);
        }

        /* Bloc carrousel numéro 3 */
        #Carr_3, #Carr_3b {
            background-image: url(../img/bloc-carrousel-emploi-01.jpg);
        }

        /* Bloc carrousel numéro 4 */
        #Carr_4, #Carr_4b {
            background-image: url(../img/bloc-carrousel-bus-02.jpg);
        }

        /* Bloc carrousel numéro 5 */
        #Carr_5, #Carr_5b {
            background-image: url(../img/bloc-carrousel-bonplan-02.jpg);
        }

        /* Bloc carrousel numéro 6 */
        #Carr_6, #Carr_6b {
            background-image: url(../img/bloc-carrousel-sortie-01.jpg);
        }

        /* Bloc carrousel numéro 7 */
        #Carr_7, #Carr_7b {
            background-image: url(../img/bloc-carrousel-emploi-02.jpg);
        }

        /* Bloc carrousel numéro 8 */
        #Carr_8, #Carr_8b {
            background-image: url(../img/bloc-carrousel-bus-01.jpg);
        }
    } /* -- FIN Section teaser d'annonces -- */

    /* -- Section "page voyageur" -- */ @media screen, print {
        #Section_page_voyageur {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 20px;
            padding: 50px 30px 100px 30px;
            background: #ffffff;
        }

        /* Bloc contenant l'élément visuel de la section */
        .spv--bloc-visuel {
            order: 1;
            min-width: 260px;
            width: 100%;
            max-width: 500px;
            aspect-ratio: 11 / 7;
        }

        /* Conteneur des calques du visuel parallax de la ville */
        #Ville_parallax {
            background-color: #F3FCFF;
            position: relative;
            width: 100%;
            height: 100%;
            border-radius: 10px;
            overflow: hidden;
        }

        .ville-layer {
            position: absolute!important;
            width: 120%;
            left: -10%!important;
            top: auto!important;
            height: auto;
            bottom: 0%!important;
        }

        #Layer-0 {
            
        }

        #Layer-1 {

        }

        #Layer-2 {
            filter: blur(0.5px);
        }

        #Layer-3 {
            filter: blur(1px);
        }

        #Layer-4 {
            filter: blur(2px);
        }

        .ville-icon {
            position: absolute!important;
            width: 10%;
            height: auto;
        }

        .ville-icon img {
            width: 100%;
            height: auto;
            animation: ville-icon-float 6s linear infinite;
        }

        #Layer-icon-1 {
            top: 24%!important;
            left: 5%!important;
            filter: blur(0.5px);
        } 

        #Layer-icon-1 img {
            animation-delay: 300ms;
            animation-direction: reverse;
        }

        #Layer-icon-2 {
            top: 32%!important;
            left: 27%!important;
        }

        #Layer-icon-2 img {
            animation-delay: 0ms;
        }

        #Layer-icon-3 {
            top: 25%!important;
            right: 32%!important;
            left: auto!important;
        }

        #Layer-icon-3 img {
            animation-delay: 800ms;
        }

        #Layer-icon-4 {
            top: 19%!important;
            right: 4%!important;
            left: auto!important;
            filter: blur(0.5px);
        }

        #Layer-icon-4 img {
            animation-delay: 500ms;
            animation-direction: reverse;
        }

        @keyframes ville-icon-float {
            0% {
                transform: translateY(0);
            }
            50% {
                transform: translateY(-8px);
            }
            100% {
                transform: translateY(0);
            }
        }

        /* Bloc contenant les infos texte/cta de la section */
        .spv--bloc-txt {
            order: 2;
            max-width: 500px;
        }
    } /* -- FIN Section "page voyageur" -- */

    /* -- Section "page annonceur" -- */ @media screen, print {
        #Section_page_annonceur {
            background: var(--primary-dark);
            background: linear-gradient(130deg, rgba(104,11,66,1) 0%, rgba(104,11,66,1) 100%);
            padding: 80px 30px 100px 30px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 20px;
            position: relative;
        }

        /* Bloc contenant l'élément visuel de la section */
        .saa--bloc-visuel {
            width: 100%;
            min-width: 250px;
            max-width: 500px;
            z-index: 1;
        }

        /* Image de la section */
        #Visuel_accroche_anon {
            border-radius: 10px;
            width: 100%;
            height: auto;
        }

        /* Bloc contenant les éléments textuels de la section */
        .saa--bloc-txt {
            max-width: 500px;
            z-index: 1;
        }

        /* Conteneur du titre dynamique */
        .container-msg {
            display: flex;
            flex-direction: row;
        }

        /* Titre de la section */
        .container-msg .wrapper-ttr {
            color: var(--primary-grad1);
            font-family: 'Teko', sans-serif;
            font-size: 50px;
            font-weight: 500;
            text-align: center;
            line-height: 1;
            width: 100%;
            margin: 0;
        }

        /* Retour à la ligne dans le titre */
        .container-msg .wrapper-ttr br {
            display: block;
        }

        /* Partie changeante du titre */
        .container-msg .wrapper-ttr .msg-txt {
            color:#ffffff;
            margin-left: 8px;
        }

        /* Grille décorative de fond */
        .grille-deco-left {
            background: url("../svg/dashgrid02.svg");
            background-size: 850px;
            width: 100%;
            height: 8%;
            position: absolute;
            top: 0px;
            left: 0px;
            z-index: 0;
            transform: rotate(180deg);
        }

        /* Grille décorative de fond */
        .grille-deco-right {
            background: url("../svg/dashgrid02.svg");
            background-size: 850px;
            width: 100%;
            height: 8%;
            position: absolute;
            bottom: 0px;
            left: 0px;
            z-index: 0;
        }

    } /* -- FIN Section "page annonceur" -- */

    /* -- Section "page notre mission" -- */ @media screen, print {
        #Section_page_mission {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 20px;
            padding: 60px 30px 100px 30px;
            background: #ffffff;
        }

        /* Bloc contenant l'élément visuel de la section */
        .spm--bloc-visuel {
            order: 1;
            min-width: 260px;
            width: 100%;
            max-width: 500px;
        }

        /* Animation lottie */
        #lottie-bus {
            width: 100%;
            height: auto;
        }

        /* Bloc des éléments de texte de la section */
        .spm--bloc-txt {
            order: 2;
            max-width: 500px;
        }

    } /* -- FIN Section "page notre mission" -- */

    /* -- section 03 -- */
    .sec-home-03 {
        background: var(--gris-contraste);
        background: linear-gradient(90deg, rgba(249,249,249,1) 0%, rgba(255,255,255,1) 100%);
        padding: 40px 30px 70px 30px;
        position: relative;
    }

    .sec03-title {
        font-family: 'Teko', sans-serif;
        font-size: 50px;
        font-weight: 500;
        color:var(--noir-texte);
        line-height: 1;
        margin-bottom: 20px;
        text-align: center;
    }

    .sec03-col-txt p {
        font-family: 'Cabin', sans-serif;
        font-size: 17px;
        font-weight: 500;
        color: var(--noir-texte);
        margin-bottom: 12px;
        line-height: 1.4;
    }

    .sec03-cta {
        color: var(--primary);
        font-size: 18px;
        font-family: 'Cabin', sans-serif;
        font-weight: 500;
        text-decoration: none;
    }

    .sec03-cta:hover {
        color: var(--primary-grad2);
    }

    .col-accord{
        padding-top: 40px;
    }

    /* Accordéon */
    .accordion {
        border-color: var(--gris);
        --bs-accordion-border-color: var(--gris);
        margin: auto;
    }

    .soonTM {
        margin-left: 4px;
        font-size: 14px;
        font-style: italic;
    }

    .accordion-header, .accordion-header .accordion-button {
        font-family: 'Cabin', sans-serif;
        font-size: 17px;
        font-weight: 500;
        color: var(--noir-texte);
    }

    .accordion-button:hover {
        background: var(--gris-contraste);
    }

    .accordion-button:focus {
        border-color: #ffffff00;
        box-shadow: none;
        background: var(--gris-contraste);
    }

    .accordion-button::after {
        background-image: url("../svg/ico-accordeon-closed.svg");
        background-size: 14px;
        background-position: center;
    }

    .accordion-body {
        color: #ffffff;
        font-family: 'Cabin', sans-serif;
        font-size: 16px;
        font-weight: 500;
    }
    
    .accordion-item:last-of-type .accordion-body {
        border-bottom-right-radius: 5px;
        border-bottom-left-radius: 5px;
    }

    .accord1-open::after, .accord2-open::after, .accord3-open::after {
        background-image: url("../svg/ico-accordeon-open.svg")!important;
        background-size: 22px!important;
    }

    #Accord-1-body {
        background: var(--cat-emploi);
    }

    #Accord-2-body {
        background: var(--cat-affaire);
    }

    #Accord-3-body {
        background: var(--cat-event); 
    }

    .accordion:last-child {
        border-radius: 0 0 5px 5px;
    }

    .icon-accord {
        width: 25px;
        height: 25px;
        margin-right: 7px;
    }

    /* Classes accordéon ouvert */
    .accord1-open {
        background-color: var(--cat-emploi-dark)!important;
        color:#ffffff!important;
    }

    .accord2-open {
        background-color: var(--cat-affaire-dark)!important;
        color:#ffffff!important;
    }

    .accord3-open {
        background-color: var(--cat-event-dark)!important;
        color:#ffffff!important;
    }


    /* boutons switch */
    .col-btn-switch {
        padding-left: 6rem;
    }

    .btn-switch-instruction {
        font-family: 'Cabin', sans-serif;
        font-size: 18px;
        font-weight: 600;
        color: var(--gris);
        text-align: center;
        margin-bottom: 30px;
    }

    .btn-switch-container {
        justify-content: center;
        gap: 40px;
        max-width: 44rem;
        margin: auto;
    }

    .btn-switch-element {
        padding: 15px 10px;
        background: #ffffff;
        box-shadow: 0px 1px 10px rgba(0, 0, 0, .1);
        width: 125px;
        min-height: 115px;
        display: flex;
        flex-wrap: wrap;
        cursor: pointer;
        border-radius: 6px;
    }

    .btn-switch-element p {
        text-align: center;
        font-family: 'Cabin', sans-serif;
        font-size: 16px;
        color: var(--noir-texte);
        margin: 0 auto;
        font-weight: 500;
        line-height: 1.2;
        width: 100%;
    }

    #ico-switch-emploi, #ico-switch-affaire, #ico-switch-event {
        width: 38px;
        height: 38px;
        display: block;
        margin: auto;
    }

    #ico-switch-emploi {
        background: url("../svg/ico-emploi.svg");
    }

    #btn-switch-emploi:hover p {
        color: var(--cat-emploi);
    }

    #btn-switch-emploi:hover #ico-switch-emploi {
        background: url("../svg/ico-emploi-couleur.svg");
    }

    #ico-switch-affaire {
        background: url("../svg/ico-affaire.svg");
    }

    #btn-switch-affaire:hover p {
        color: var(--cat-affaire);
    }

    #btn-switch-affaire:hover #ico-switch-affaire {
        background: url("../svg/ico-affaire-couleur.svg");
    }

    #ico-switch-event {
        background: url("../svg/ico-event.svg");
    }

    #btn-switch-event:hover p {
        color: var(--cat-event);
    }

    #btn-switch-event:hover #ico-switch-event {
        background: url("../svg/ico-event-couleur.svg");
    }

    /* -- section 04 -- */
    .sec-home-04 {
        background: var(--noir-clair);
        background: url("../svg/dashgrid03.svg"), linear-gradient(90deg, rgba(36,36,36,1) 0%, rgba(42,36,53,1) 100%);
        background-size: 250%, 100%;
        position: relative;
        padding: 100px 40px 100px 40px;
    }

    .cta-center-float {
        background: #ffffff;
        padding: 25px 20px;
        margin: auto;
        border-radius: 6px;
        width: 100%;
        max-width: 450px;
        z-index: 5;
    }

    .cta-center-float h2 {
        font-family: 'Teko', sans-serif;
        font-size: 28px;
        font-weight: 500;
        line-height: 1;
        color: var(--primary);
        text-align: center;
        margin-bottom: 10px;
    }

    .cta-center-float img {
        margin-right: 6px;
        width: 25px;
        height: 25px;
    }

    .cta-center-float .ico-plus {
        height: 16px;
        width: 16px;
        margin: auto 6px auto 0;
    }

    .cta-center-float p {
        font-family: 'Cabin', sans-serif;
        font-size: 18px;
        font-weight: 500;
        line-height: 1.4;
        color: var(--noir-texte);
        text-align: center;
    }

    .cta-center-float a {
        width: fit-content;
        margin: auto;
        display: flex;
    }

    #ico-float-01 {
        position: absolute;
        left: 9%;
        top: 42%;
        transform: translate(-9%, -42%);
    }

    #ico-float-02 {
        position: absolute;
        left: 20%;
        top: 82%;
        transform: translate(-20%, -82%);
    }

    #ico-float-03 {
        position: absolute;
        left: 29%;
        top: 22%;
        transform: translate(-29%, -22%);
    }

    #ico-float-04 {
        position: absolute;
        right: 29%;
        top: 47%;
        transform: translate(-29%, -47%);
    }

    #ico-float-05 {
        position: absolute;
        right: 21%;
        top: 84%;
        transform: translate(-21%, -84%);
    }

    #ico-float-06 {
        position: absolute;
        right: 13%;
        top: 24%;
        transform: translate(-13%, -24%);
    }

    #ico-float-07 {
        position: absolute;
        right: 4%;
        top: 66%;
        transform: translate(-4%, -66%);
    }

    /* -- section 05 -- */
    .sec05-col-txt {
        padding: 40px 30px 50px 30px;
        background: #794C99;
        background: linear-gradient(1deg, rgba(152,100,198,1) 0%, rgba(121,76,153,1) 100%);
    }

    .sec05-title {
        font-family: 'Teko', sans-serif;
        font-size: 50px;
        font-weight: 500;
        color: #ffffff;
        text-align: center;
    }

    .sec05-col-txt p {
        font-family: 'Cabin', sans-serif;
        font-size: 17px;
        font-weight: 400;
        color: #ffffff;
    }

    .sec05-cta {
        background: #5B3278;
        padding: 14px 25px;
        font-family: 'Cabin', sans-serif;
        font-size: 18px;
        color: #ffffff;
        text-decoration: none;
        border-radius: 6px;
        margin: 15px auto 0 auto;
        width: -moz-fit-content;
        width: fit-content;
    }

    .sec05-cta:hover {
        background: #341B3F;
        color: #ffffff;
    }

    .sec05-col-lottie {
        background: #F9F9F9;
        position: relative;
    }

    .sec05-clip-path {
        background: var(--gris-contraste);
        clip-path: polygon(0% 100%, 0% 0%, 100% 0%, 3% 100%);
        position: absolute;
        left: 99.7%;
        top: 0;
        height: 100%;
        width: 100px;
    }

    #lottie-double-welwot {
        margin: auto;
        width: 100%;
        max-width: 45rem;
    }

    /* ------------------------- Style modals de la page -------------------------- */
    #Mod_chargement_recherche_bus .ico-enonce-modal {
        width: 30px;
        margin: 0 12px 0 0;
        animation: rotation-infinie 1.5s linear infinite
    }

    #Mod_chargement_recherche_bus .txt-enonce-modal {
        color: var(--secondary);
        font-size: 20px;
    }
    

}



/* ----------------------------------------------- */
/* ---------- PETIT TABLETTE SM - 576px ---------- */
@media (min-width:576px) {

    /* fausse annonce placée sur la carte du landing */
    .map-anon {
        --size:50px;
    }

    /* Fausse annonce n°2 */
    #Map_anon_2 {
        top: 80%;
        left: 8%;
    }

    /* Fausse annonce n°4 */
    #Map_anon_4 {
        top: 45%;
        right: 8%;
    }

    .pulse-ring {
        width: 250px;
        height: 250px;
    }

    .vscb--btn .txt-content {
        font-size: 17px;
    }

    .sync-bus-titre {
        font-size: 18px;
        margin: 0 0 6px 0;
    }

    .sbb--mid-container {
        flex-direction: row;
        gap: 20px;
    }

    .sync-bus-btn {
        padding: 10px 15px;
        order: 1;
    }

    .sync-bus-btn .btn-ico {
        --size:20px;
    }

    .sync-bus-btn .btn-txt {
        font-size: 18px;
    }

    .sbb--info-txt {
        font-size: 16px;
        order: 2;
    }

    /* titre de la section */
    .sta--ttr-txt {
        font-size: 17px;
    }

    #Carrousel_anons::before {
        width: 100px;
    }

    #Carrousel_anons::after {
        width: 100px;
    }

    /* -- Section page annonceur -- */

    /* Titre de la section */
    .container-msg .wrapper-ttr {
        text-align: start;
    }

    /* Retour à la ligne dans le titre */
    .container-msg .wrapper-ttr br {
        display: none;
    }

    

}




/* ----------------------------------------- */
/* ---------- TABLETTE MD - 768px ---------- */
@media (min-width:768px) {

    .sta--ttr-container {
        gap: 30px;
        padding: 0 25px;
    }

    /* Tirets latéraux qui accompagne le titre */
    .sta--ttr-tiret-visuel {
        width: auto;
    }

    /* Masquer le premier tiret sur mobile */
    .sta--ttr-tiret-visuel:first-of-type {
        display: block;
    }

    /* Section "page annonceur" */


    /* -- section 03 -- */
    .sec-home-03 {
        padding: 80px 100px 100px 100px;
    }

    /* -- section 04 -- */
    .sec-home-04 {
        background-size: 150%, 100%;
    }

    /* -- section 05 -- */
    .sec05-col-txt {
        background: linear-gradient(300deg, rgba(152,100,198,1) 0%, rgba(121,76,153,1) 100%);
        padding: 50px 100px 80px 100px;
    }

}



/* -------------------------------------- */
/* ---------- ECRAN LG - 992px ---------- */
@media (min-width:992px) {

    .sec-geoloc {
        --section-height:620px;
    }

    .titre-geoloc {
        line-height: 1.3;
        font-size: 52px;
        margin: 0 0 30px 0;
    }


    /* -- Section teaser d'annonces -- */
    #Section_teasing_annonces {
        padding: 12px 0 25px 0;
    }

    /* titre de la section */
    .sta--ttr-txt {
        font-size: 20px;
    }

    /* Conteneur carrousel teaser */
    #Carrousel_anons {
        --bloc-width:450px;
        --bloc-gap:30px;
    }

    #Carrousel_anons::before {
        width: 250px;
    }

    #Carrousel_anons::after {
        width: 250px;
    }

    #Carr_track {
        animation-duration: 60s;
    }

    .carr--bloc {

    }

    /* Texte des blocs du carrousel */
    .carr--bloc-name {
        font-size: 30px;
    }

    /* -- Section "page voyageur" -- */
    #Section_page_voyageur {
        flex-direction: row;
        padding: 100px 30px 120px 30px;
        gap: 50px;
    }

    /* Bloc contenant l'élément visuel de la section */
    .spv--bloc-visuel {
        order: 2;
        max-width: 400px;
    }

    /* Conteneur des calques parallax du visuel */
    #Ville_parallax {

    }

    /* Bloc contenant les infos texte/cta de la section */
    .spv--bloc-txt {
        order: 1;
        max-width: 600px;
    }

    /* -- section page annonceur -- */
    #Section_page_annonceur {
        flex-direction: row;
        padding: 130px 30px 140px 30px;
        gap: 50px;
    }

    /* Bloc contenant l'élément visuel de la section */
    .saa--bloc-visuel {
        max-width: 400px;
    }

    /* Bloc contenant les éléments textuels de la section */
    .saa--bloc-txt {
        max-width: 600px;
    }

    /* Grille décorative de fond */
    .grille-deco-left {
        width: 8%;
        height: 100%;
        top: 0px;
        right: auto;
        left: -20px;
    }

    /* Grille décorative de fond */
    .grille-deco-right {
        width: 8%;
        height: 100%;
        top: 0px;
        right: -20px;
        left: auto;
    }

    /* -- Section "page notre mission" -- */
    #Section_page_mission {
        flex-direction: row;
        padding: 130px 30px 140px 30px;
        gap: 50px;
    }

    /* Bloc contenant l'élément visuel de la section */
    .spm--bloc-visuel {
        order: 2;
        max-width: 450px;
    }

    /* Bloc des éléments de texte de la section */
    .spm--bloc-txt {
        order: 1;
        max-width: 600px;
    }

    /* ------------------------- Style modals de la page -------------------------- */
    #Mod_choix_sync .modal-row-fullwidth {
        flex-direction: column;
        gap: 15px;
    }

    

}



/* --------------------------------------------- */
/* ---------- ECRAN MOYEN XL - 1200px ---------- */
@media (min-width:1200px) {

    

    /* Landing */

    /* Fausse annonce n°1 */
    #Map_anon_1 {
        display: block;
    }

    /* Fausse annonce n°2 */
    #Map_anon_2 {
        top: 42%;
        left: 22%;
    }

    /* Fausse annonce n°3 */
    #Map_anon_3 {
        display: block;
    }

    /* Fausse annonce n°4 */
    #Map_anon_4 {
        top: 32%;
        right: 12%;
    }

    /* -- Section "page voyageur" -- */
    #Section_page_voyageur {
        gap: 80px;
    }

    /* Bloc contenant l'élément visuel de la section */
    .spv--bloc-visuel {
        max-width: 550px;
    }

    /* -- section page annonceur -- */
    #Section_page_annonceur {
        gap: 80px
    }

    /* Bloc contenant l'élément visuel de la section */
    .saa--bloc-visuel {
        max-width: 500px;
    }

    /* -- Section "page notre mission" -- */
    #Section_page_mission {
        gap: 80px;
    }

    /* Bloc contenant l'élément visuel de la section */
    .spm--bloc-visuel {
        max-width: 600px;
    }
    

}



/* ---------------------------------------------- */
/* ---------- ECRAN LARGE XXL - 1400px ---------- */
@media (min-width:1400px) {

    /* -- Section "page voyageur" -- */
    #Section_page_voyageur {
        gap: 125px;
        padding: 115px 30px 140px 30px;
    }


    /* -- Section "page annonceur" -- */
    #Section_page_annonceur {
        gap: 125px
    }

    /* grille décorative de fond */
    .grille-deco-left {
        width: 10%;
    }

    /* grille décorative de fond */
    .grille-deco-right {
        width: 10%;
    }

    /* -- Section "page notre mission" -- */
    #Section_page_mission {
        gap: 125px;
    }
    

}

/* ---------------------------------------------- */
/* ---------- EXCEPTION XXXL - 1700px ---------- */
@media (min-width:1700px) {

    /* Section landing */

    .ico-map-anon {
        cursor: help;
    }

    .map-anon:hover .ico-shadow-box {
        filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.4));
    }

    .map-anon:hover .ico-map-anon {
        transform: scale(1.05);
        
    }

    /* Afficher les infos factices en cas de hover sur l'icone */
    .map-anon:hover .desc-map-anon {
        visibility: visible;
    }

    /* -- section 03 -- */
    .sec-home-03 {
        padding: 140px 200px 160px 200px;
    }

    .col-btn-switch {
        padding-left: 8rem;
    }

    .btn-switch-container {
        gap: 40px;
    }

    .btn-switch-element {
        padding: 20px 15px;
        width: 150px;
        min-height: 125px;
    }

    .btn-switch-element p {
        font-size: 17px;
    }

    #ico-switch-emploi, #ico-switch-affaire, #ico-switch-event {
        width: 50px;
        height: 50px;
    }

    /* -- section 05 -- */
    .sec05-col-txt {
        padding: 120px 60px 120px 300px;
    }
    
}

/* ---------------------------------------------- */
/* ---------- EXCEPTION - 2400px ---------- */
@media (min-width:2400px) {

    /* -- section 01 -- */
    .sec-home-01 {
        padding: 120px 250px 150px 250px;
    }
    
}
