/**
 * ================================================================
 * FICHIER : CGV.css
 * EMPLACEMENT : 2027_B2B/pages/CGV/CGV.css
 * SHORT_DESC : Styles de la page « Conditions générales de vente »
 * DESCRIPTION : En-tête sobre, sommaire collant, colonne de lecture, fiches et listes.
 *               Jetons de theme.css uniquement.
 *
 * SOMMAIRE :
 *   - CGV_ENTETE
 *   - CGV_SOMMAIRE
 *   - CGV_ARTICLES
 *   - RESPONSIVE
 *
 * MODIFICATIONS :
 *   - 06/10/2026 13:44 : Création — A VALIDER PAR JaxX
 *
 * ================================================================
 */

/* CGV_ENTETE ========================================================== */
.cgv_entete
{
    padding: clamp(56px, 9vw, 112px) 0 clamp(32px, 5vw, 56px);
    border-bottom: 1px solid var(--ligne);
}

.cgv_entete h1
{
    font-size: clamp(2rem, 4.5vw, 3.4rem);
}

.cgv_entete_texte
{
    max-width: 68ch;
    color: var(--encre_second);
    margin: 0;
}
/* CGV_ENTETE ========================================================== */

/* CGV_SOMMAIRE ======================================================== */
.cgv_corps
{
    padding: clamp(40px, 6vw, 80px) 0 clamp(64px, 9vw, 120px);
}

.cgv_grille
{
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 8fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: start;
}

.cgv_sommaire
{
    position: sticky;
    top: calc(var(--hauteur_header) + var(--espace_3));
    max-height: calc(100vh - var(--hauteur_header) - var(--espace_4));
    overflow-y: auto;
}

.cgv_sommaire_titre
{
    display: block;
    font-size: var(--texte_xs, 0.75rem);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--encre_attenuee);
    margin-bottom: var(--espace_2);
}

.cgv_sommaire_liste
{
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: cgv_sommaire;
    border-top: 1px solid var(--ligne);
}

.cgv_sommaire_liste li
{
    counter-increment: cgv_sommaire;
    border-bottom: 1px solid var(--ligne);
}

.cgv_sommaire_lien
{
    display: flex;
    gap: 10px;
    align-items: baseline;
    padding: 8px 0;
    min-height: 40px;
    font-size: var(--texte_sm, 0.9rem);
    color: var(--encre_second);
}

.cgv_sommaire_lien::before
{
    content: counter(cgv_sommaire, decimal-leading-zero);
    font-family: var(--police_mono);
    font-size: 0.72rem;
    color: var(--encre_attenuee);
}

.cgv_sommaire_lien:hover
{
    color: var(--accent);
}

.cgv_sommaire_liens
{
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: var(--espace_3);
    font-size: var(--texte_sm, 0.92rem);
}
/* CGV_SOMMAIRE ======================================================== */

/* CGV_ARTICLES ======================================================== */
.cgv_articles
{
    max-width: 76ch;
    min-width: 0;
}

.cgv_article
{
    padding: var(--espace_4) 0;
    border-bottom: 1px solid var(--ligne);
    scroll-margin-top: calc(var(--hauteur_header) + var(--espace_3));
}

/* 14/10/2026 10:48 (Claude, n° 1301, lot 2a) : ancres numérotées. Les anciens ids sont des repères invisibles
   posés en haut de l'article (même point d'arrivée que article-N) ; sous-articles et repères gardent le décalage de l'en-tête fixe */
.cgv_article
{
    position: relative;
}

.cgv_ancre_alias
{
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    overflow: hidden;
    scroll-margin-top: calc(var(--hauteur_header) + var(--espace_3));
}

.cgv_ancre_alias_hors
{
    position: static;
    display: block;
}

.cgv_article h3[id]
{
    scroll-margin-top: calc(var(--hauteur_header) + var(--espace_3));
}

.cgv_article:first-child
{
    padding-top: 0;
}

.cgv_article:last-child
{
    border-bottom: 0;
}

.cgv_article h2
{
    font-size: clamp(1.3rem, 2.2vw, 1.7rem);
    margin-bottom: var(--espace_2);
}

.cgv_article h3
{
    font-size: 1.05rem;
    margin: var(--espace_3) 0 var(--espace_1);
}

.cgv_article p,
.cgv_article li
{
    color: var(--encre_second);
}

.cgv_article p:last-child
{
    margin-bottom: 0;
}

.cgv_article strong
{
    color: var(--encre);
}

.cgv_liste
{
    padding-left: 1.2em;
    margin: 0 0 var(--espace_3);
}

.cgv_liste li + li
{
    margin-top: 6px;
}

.cgv_fiche
{
    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(0, 2fr);
    gap: 0;
    margin: var(--espace_3) 0 0;
    border: 1px solid var(--ligne);
    border-radius: 2px;
    background: var(--surface_carte);
}

.cgv_fiche dt,
.cgv_fiche dd
{
    margin: 0;
    padding: 10px 14px;
    border-bottom: 1px solid var(--ligne);
    font-size: var(--texte_sm, 0.95rem);
}

.cgv_fiche dt
{
    color: var(--encre_attenuee);
}

.cgv_fiche dd
{
    color: var(--encre);
}

.cgv_fiche dt:nth-last-of-type(1),
.cgv_fiche dd:nth-last-of-type(1)
{
    border-bottom: 0;
}
/* CGV_ARTICLES ======================================================== */

/* RESPONSIVE ========================================================== */
@media (max-width: 900px)
{
    .cgv_grille
    {
        grid-template-columns: 1fr;
    }

    .cgv_sommaire
    {
        position: static;
        max-height: none;
        overflow: visible;
    }

    .cgv_sommaire_liste
    {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
        gap: 0 var(--espace_3);
    }
}

@media (max-width: 520px)
{
    .cgv_fiche
    {
        grid-template-columns: 1fr;
    }

    .cgv_fiche dt
    {
        padding-bottom: 2px;
        border-bottom: 0;
    }

    .cgv_fiche dd
    {
        padding-top: 0;
    }
}
/* RESPONSIVE ========================================================== */
