/* ==========================================================================
   MADRASSA — PAGES LÉGALES PUBLIQUES
   Réutilisable pour CGV, mentions légales, politique, remboursement, livraison.
   Fichier : public/assets/css/public-legal.css
   ========================================================================== */

.public-page-hero--legal {
    min-height: 390px;
    background:
        linear-gradient(
            90deg,
            rgba(6,47,34,.98),
            rgba(6,47,34,.84) 56%,
            rgba(6,47,34,.38)
        ),
        radial-gradient(circle at 82% 30%, rgba(214,164,59,.16), transparent 20rem),
        linear-gradient(145deg, #0a3b2b, #052d21);
}

.public-legal-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.public-legal-summary {
    position: sticky;
    top: calc(var(--nav-height, 78px) + 1.25rem);
}

.public-legal-summary__card {
    padding: 1.25rem;
}

.public-legal-nav {
    display: grid;
    gap: .35rem;
    margin-top: .5rem;
}

.public-legal-nav a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: .65rem .75rem;
    color: var(--public-text-soft);
    background: rgba(255,255,255,.52);
    border: 1px solid transparent;
    border-radius: 11px;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    transition:
        color .22s ease,
        background .22s ease,
        border-color .22s ease,
        transform .22s ease;
}

.public-legal-nav a:hover {
    color: var(--public-green-950);
    background: #fff;
    border-color: rgba(168,108,12,.20);
    transform: translateX(2px);
}

.public-legal-content {
    padding: clamp(1.35rem, 4vw, 3rem);
}

.public-legal-section {
    scroll-margin-top: calc(var(--nav-height, 78px) + 1.5rem);
    padding-block: 1.35rem;
}

.public-legal-section:first-child {
    padding-top: 0;
}

.public-legal-section + .public-legal-section {
    border-top: 1px solid rgba(168,108,12,.13);
}

.public-legal-title {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 0 0 1rem;
    color: var(--public-green-950);
    font-family: "Outfit", sans-serif;
    font-size: clamp(1.05rem, 3vw, 1.15rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.public-legal-title__icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    color: var(--public-gold-700);
    background: rgba(214,164,59,.12);
    border: 1px solid rgba(168,108,12,.20);
    border-radius: 13px;
    font-size: 1rem;
}

.public-notice--info {
    color: var(--public-text);
    background: rgba(52,108,120,.07);
    border: 1px solid rgba(52,108,120,.16);
}

.public-notice--info > i {
    color: var(--public-info);
}

.public-legal-list,
.public-legal-steps {
    display: grid;
    gap: .85rem;
    margin: 0;
    padding-left: 1.2rem;
}

.public-legal-list > li,
.public-legal-steps > li {
    color: #4f6259;
    line-height: 1.85;
}

.public-legal-steps {
    margin-top: .8rem;
    padding-left: 1.4rem;
    counter-reset: legal-step;
    list-style: none;
}

.public-legal-steps > li {
    position: relative;
    padding-left: 2.35rem;
}

.public-legal-steps > li::before {
    counter-increment: legal-step;
    content: counter(legal-step);
    position: absolute;
    top: .05rem;
    left: 0;
    display: grid;
    place-items: center;
    width: 1.65rem;
    height: 1.65rem;
    color: #fffdf7;
    background: var(--public-green-800);
    border: 1px solid rgba(214,164,59,.32);
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 800;
}

.public-legal-content a {
    color: var(--public-gold-700);
    font-weight: 750;
    overflow-wrap: anywhere;
}

.public-legal-content a:hover {
    color: var(--public-green-800);
}

.rtl-page .public-legal-nav a:hover {
    transform: translateX(-2px);
}

.rtl-page .public-legal-list,
.rtl-page .public-legal-steps {
    padding-right: 1.2rem;
    padding-left: 0;
}

.rtl-page .public-legal-steps > li {
    padding-right: 2.35rem;
    padding-left: 0;
}

.rtl-page .public-legal-steps > li::before {
    right: 0;
    left: auto;
}

@media (max-width: 991.98px) {
    .public-legal-layout {
        grid-template-columns: 1fr;
    }

    .public-legal-summary {
        position: static;
    }

    .public-legal-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .public-page-hero--legal {
        min-height: 340px;
    }

    .public-legal-nav {
        grid-template-columns: 1fr;
    }

    .public-legal-title {
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .public-legal-content {
        padding: 1rem;
    }

    .public-legal-title__icon {
        width: 39px;
        height: 39px;
    }

    .public-legal-list,
    .public-legal-steps {
        padding-left: 1rem;
    }
}