/* =========================================================
   LOVUTOO — CONDITIONS GÉNÉRALES
   Feuille de style dédiée à terms_conditions.php.
   Palette : fond #18171a | cartes #242527 | bordures #343438
             rose #EC2C8E | rose survol #ff3ba0
   Pas de barre latérale : colonne unique centrée.
   ========================================================= */

body {
    background-color: #18171a;
}

* {
    font-family: Caladea, Merriweather, serif;
}


/* ===================== STRUCTURE ===================== */

.terms_page {
    display: block;
    width: 100%;
    overflow-x: hidden;
    background-color: #18171a;
}

.terms_container {
    position: relative;
    max-width: 54rem;
    margin: 0 auto;
    padding: 8rem 2.5rem 2rem 2.5rem;   /* 8rem = espace sous l'en-tête du site */
    text-align: center;
}

/* Utilisateur connecté : le footer n'est pas affiché,
   on dégage l'espace de la barre de navigation du site. */
.terms_page_footer .terms_container {
    padding-bottom: 7rem;
}


/* ===================== BOUTON DE RETOUR ===================== */

/* Croix seule : ni fond, ni bordure, ni ombre, ni effet. */
.terms_close {
    all: unset;
    position: absolute;
    top: 8rem;
    right: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.terms_close_icon {
    display: block;
    width: 3rem;
    height: 3rem;
}

.terms_close:focus-visible {
    outline: .18rem solid white;
    outline-offset: .2rem;
    border-radius: .4rem;
}


/* ===================== CHOIX DE LA LANGUE ===================== */

.box_language {
    appearance: none;
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.language_label {
    display: inline-block;
    margin: 0 .3rem .5rem .3rem;
    padding: .55rem 1.5rem;
    font-size: 1.05rem;
    font-weight: bold;
    color: white;
    background-color: #242527;
    border: .2rem solid #343438;
    border-radius: 4rem;
    user-select: none;
    cursor: pointer;
    transition: all .2s ease-in-out;
}

.language_label:hover {
    border-color: #EC2C8E;
}

#english_terms:checked + .language_label,
#french_terms:checked + .language_label {
    color: white;
    background-color: #242527;
    border-color: #EC2C8E;
}

#english_terms:checked ~ #french_display_terms {
    display: none;
}

#french_terms:checked ~ #english_display_terms {
    display: none;
}


/* ===================== BLOC DE TEXTE ===================== */

#english_display_terms,
#french_display_terms {
    margin-top: 2.5rem;
    text-align: left;
}


/* ===================== TITRES ===================== */

/* Titre principal : CGU / CGV */
.main_title {
    margin: 4rem 0 .6rem 0;
    padding-top: 2.2rem;
    font-size: 1.85rem;
    line-height: 1.3;
    font-weight: bold;
    color: white;
    text-align: center;
    border-top: .2rem solid #343438;
}

#english_display_terms > .main_title:first-child,
#french_display_terms > .main_title:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.date_terms {
    margin: 0 0 2.4rem 0;
    font-size: .95rem;
    font-weight: bold;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: white;
    text-align: center;
}

/* Titre d'article */
.second_title {
    margin: 3rem 0 1rem 0;
    padding-left: 1rem;
    font-size: 1.32rem;
    line-height: 1.4;
    font-weight: bold;
    color: white;
    border-left: .25rem solid #EC2C8E;
}

/* Sous-titre */
.third_title {
    margin: 2rem 0 .8rem 0;
    font-size: 1.15rem;
    font-weight: bold;
    color: white;
}


/* ===================== TEXTE ===================== */

.text {
    margin: 0 0 1.1rem 0;
    font-size: 1.08rem;
    line-height: 1.85;
    color: white;
}

.link {
    color: #EC2C8E;
    text-decoration: none;
    border-bottom: .1rem solid rgba(236, 44, 142, .45);
}

.link:hover {
    color: #ff3ba0;
    border-bottom-color: #ff3ba0;
}


/* ===================== LISTES ===================== */

.ul_list_text {
    margin: 1.4rem 0;
    padding: 0;
    list-style: none;
    counter-reset: terms_counter;
}

.li_list_text {
    position: relative;
    margin-bottom: 1.2rem;
    padding: 1.3rem 1.5rem 1.3rem 1.5rem;
    font-size: 1.05rem;
    line-height: 1.8;
    color: white;
    background-color: #242527;
    border: .2rem solid #343438;
    border-radius: 1.2rem;
}

.li_list_text:last-child {
    margin-bottom: 0;
}

/* Les paragraphes internes créent l'espacement, sans <br> */
.li_list_text .text {
    font-size: 1.05rem;
    line-height: 1.8;
}

.li_list_text .text:last-child {
    margin-bottom: 0;
}


/* ===================== ENCADRÉS D'IDENTITÉ ===================== */

/* Entreprise, hébergeur, médiateur */
.identity_box {
    margin: 0 0 1.1rem 0;
    padding: 1.3rem 1.5rem;
    font-size: 1.05rem;
    line-height: 1.9;
    color: white;
    background-color: #242527;
    border: .2rem solid #343438;
    border-left: .25rem solid #EC2C8E;
    border-radius: 1.2rem;
}


/* ===================== TABLEAU DES FORMULES ===================== */

.plans_scroll {
    margin: 1.4rem 0;
    overflow-x: auto;
    border: .2rem solid #343438;
    border-radius: 1.2rem;
}

.plans_table {
    width: 100%;
    min-width: 34rem;
    border-collapse: collapse;
    background-color: #242527;
}

/* Chaque case est séparée par une bordure, en ligne comme en colonne */
.plans_table th,
.plans_table td {
    padding: .95rem 1rem;
    font-size: 1.05rem;
    line-height: 1.5;
    font-weight: bold;
    color: white;
    text-align: center;
    border-bottom: .2rem solid #343438;
    border-right: .2rem solid #343438;
}

.plans_table th:last-child,
.plans_table td:last-child {
    border-right: none;
}

/* Seule la dernière ligne du corps du tableau perd sa bordure basse.
   Sans "tbody", la règle viserait aussi l'unique ligne de l'en-tête,
   qui est elle aussi une dernière ligne, et effacerait sa bordure. */
.plans_table tbody tr:last-child th,
.plans_table tbody tr:last-child td {
    border-bottom: none;
}

.plans_table thead th {
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
    font-size: 1.12rem;
    background-color: #1d1e20;
    border-bottom: .2rem solid #343438;
}

.plans_table tbody th {
    text-align: left;
    white-space: nowrap;
    background-color: #1d1e20;
}


/* ===================== FOOTER ===================== */

.terms_footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .6rem;
    max-width: 54rem;
    margin: 0 auto;
    padding: 1.1rem 2.5rem 1.2rem 2.5rem;
    border-top: .2rem solid #343438;
}

.terms_footer_text {
    font-size: 1rem;
    color: white;
}

.terms_footer_separator {
    font-size: 1rem;
    color: #4a4a52;
}

.terms_footer_link {
    font-size: 1rem;
    color: white;
    text-decoration: none;
}

.terms_footer_link:hover {
    color: #EC2C8E;
}


/*Tablette*/
@media only screen and (max-width: 1000px) {

    .terms_container {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .terms_close {
        right: 2rem;
    }

    .terms_footer {
        padding-left: 2rem;
        padding-right: 2rem;
    }

}


/*Mobile*/
@media only screen and (max-width: 800px) {

    .terms_container {
        padding-top: 6rem;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .terms_close {
        top: 6rem;
        right: 1.5rem;
    }

    .terms_footer {
        padding: 1rem 1.5rem 1.2rem 1.5rem;
    }

}


/*Mobile*/
@media only screen and (max-width: 600px) {

    /* La croix se place au-dessus des boutons de langue,
       pour éviter tout chevauchement sur écran étroit. */
    .terms_container {
        padding-top: 10.5rem;
    }

    .terms_close {
        top: 6rem;
        right: 1rem;
    }

    #english_display_terms,
    #french_display_terms {
        margin-top: 2rem;
    }

    .language_label {
        padding: .5rem 1.2rem;
        font-size: .98rem;
    }

    .main_title {
        margin-top: 3rem;
        padding-top: 1.8rem;
        font-size: 1.5rem;
    }

    .date_terms {
        margin-bottom: 1.8rem;
        font-size: .88rem;
    }

    .second_title {
        margin: 2.2rem 0 .8rem 0;
        padding-left: .8rem;
        font-size: 1.18rem;
    }

    .third_title {
        margin: 1.6rem 0 .7rem 0;
        font-size: 1.08rem;
    }

    .text {
        font-size: 1rem;
        line-height: 1.8;
    }

    .li_list_text,
    .identity_box {
        padding: 1.1rem 1.2rem;
        font-size: .98rem;
        border-radius: 1rem;
    }

    .plans_table th,
    .plans_table td {
        padding: .75rem .8rem;
        font-size: .98rem;
    }

    .plans_table thead th {
        font-size: 1.02rem;
    }

    .terms_footer_text,
    .terms_footer_separator,
    .terms_footer_link {
        font-size: .92rem;
    }

}


/*Mobile*/
@media only screen and (max-width: 500px) {

    .terms_container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .terms_footer {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .terms_container {
        padding-top: 9.5rem;
    }

    .terms_close {
        right: .8rem;
    }

    .terms_close_icon {
        width: 2.2rem;
        height: 2.2rem;
    }

    .main_title {
        font-size: 1.35rem;
    }

    .second_title {
        font-size: 1.1rem;
    }

}
