:root {
    /* ___ Tailles ___ */
    --gap: 20px;

    /* ___ Couleurs ___ */
    --fond: #ffffff;
    --primaire: #1972d2;
    --secondaire: #64b5f6;
    --ternaire: #25303b;
    --bouton_hover: #0050aa;
    --desactive: #53606e;
    --gris_clair: #d7e0e9;
    --texte_fond_sombre: #ffffff;
    --texte_fond_clair: var(--ternaire);
}

/* ___ Prendre en compte les marges dans toutes les règles CSS ___ */

.colidfm * {
    box-sizing: border-box;
}

/* ---------- POLICES ---------- */

/* ___ Imports ___ */

@font-face {
    font-family: 'GrandParis';
    src: url('https://www.lsce.ipsl.fr/wp-content/plugins/colidfm/font/GrandParis-Regular.woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'GrandParis';
    src: url('https://www.lsce.ipsl.fr/wp-content/plugins/colidfm/font/GrandParis-Medium.woff');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'GrandParis';
    src: url('https://www.lsce.ipsl.fr/wp-content/plugins/colidfm/font/GrandParis-Bold.woff');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

/* ___ Assignation des polices ___ */

.colidfm p, .colidfm span {
    font-family: 'GrandParis', Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14.4px;
}

.colidfm a {
    font: inherit;
}

/* ___ Marges ___ */

.colidfm p, .colidfm span {
    margin: 0;
}

/* ---------- SPÉCIFIQUE PLUGIN COLIDFM ---------- */

.colidfm p, .colidfm a, .colidfm span {
    color: inherit;
}

.colidfm p:not(.ligne) {
    line-height: 1.6;
}

.colidfm p.ligne {
    line-height: 1.25;
}

.colidfm a {
    height: 100%;
    display: inline-block;
    cursor: pointer;
}

.colidfm a:hover {
    color: var(--secondaire);
    text-decoration: none;
}

.colidfm.flex, .colidfm .flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.colidfm div.texte p + p {
    margin: 15px 0;
}

/*.colidfm div.sauvegarder_transports {
    margin-bottom: 40px;
    justify-content: start;
    flex-wrap: nowrap;
}

.colidfm div.sauvegarder_transports > div {
    cursor: pointer;
}

.colidfm div.sauvegarder_transports svg {
    height: 1rem;
    width: 1rem;
    margin-left: 0.5rem;
    user-select: none;
}

.colidfm h4.retour a, .colidfm p.localiser a, .colidfm div.sauvegarder_transports p {
    color: var(--primaire);
    text-decoration: none;
}

.colidfm h4.retour a:hover, .colidfm p.localiser a:hover, .colidfm div.sauvegarder_transports > div:hover p, .colidfm div.sauvegarder_transports > div:hover svg {
    filter: brightness(0.8);
    text-decoration: underline;
}

.colidfm div.sauvegarder_transports svg {
    text-decoration: none !important;
}

.colidfm h4.retour a::before {
    content: "<";
    margin-right: 0.5rem;
    display: inline-block;
    text-decoration: none !important;
}*/

.colidfm p.localiser a::after {
    content: ">";
    margin-left: 9px;
    display: inline-block;
    text-decoration: none !important;
}

/* ___ AFFICHAGE DES BOUTONS ___ */

.colidfm .selection_lignes {
    margin-bottom: 40px;
    justify-content: flex-start;
    gap: var(--gap);
}

.colidfm .selection_lignes p {
    font-weight: 500;
    text-align: center;
}

.colidfm .selection_lignes .ligne {
    min-height: 18px;
    min-width: 25.2px;
    padding: 3.6px;
    cursor: pointer;
    user-select: none;
}

.colidfm .selection_lignes .ligne.desactive {
    border-color: var(--desactive);
    opacity: 0.2;
}

/* ___ BUS ___ */
.colidfm .selection_lignes .ligne.bus {
    min-width: 50.4px;
    border-radius: 5.4px;
}

/* ___ RER, Transiliens et TER ___ */
.colidfm .selection_lignes .ligne.rer, .colidfm .selection_lignes .ligne.transilien, .colidfm .selection_lignes .ligne.ter {
    border-radius: 5.4px;
}

/* ___ Métro ___ */
.colidfm .selection_lignes .ligne.metro {
    border-radius: 50%;
}

/* ___ TRAM ___ */
.colidfm .selection_lignes .ligne.tram {
    padding: 0;
}
.colidfm .selection_lignes .ligne.tram div {
    height: 3.6px;
    width: 25.2px;
    border-radius: 5.4px;
}
.colidfm .selection_lignes .ligne.tram p {
    height: 18px;
    font-size: 12.6px;
    line-height: 18px;
}

/* ___ AFFICHAGE DES GROS PICTOS (code court "colidfm-picto") ___ */

.colidfm .pictos {
    /*height: 4rem;*/
    gap: var(--gap);
}

/*.colidfm .pictos * {
    max-height: 100%;
}*/

/*.colidfm .pictos p {
    font-size: 2.4rem;
    font-weight: 500;
    text-align: center;
}*/

/*.colidfm .pictos .ligne {
    min-height: 4rem;
    min-width: 4rem;
    padding: 0.5rem;
    user-select: none;
}*/

/* ___ BUS ___ */
/*.colidfm .pictos .ligne.bus {
    min-width: 8rem;
    border-radius: 0.8rem;
}*/

/* ---------- AFFICHAGE DES TRANSPORTS ---------- */

.colidfm div.liste_transports > div:not(:last-child) {
    padding-bottom: 20px;
}