/* =========================================================
   GESTION DES COMPTES FOURNISSEURS
   PAGE PRINCIPALE DE LA FORMATION
========================================================= */


/* =========================================================
   1. VARIABLES
========================================================= */

:root {

    --course-paper: #F7F9F5;
    --course-white: #FFFFFF;
    --course-soft: #EEF3EC;

    --course-ink: #16261E;
    --course-muted: #5D6A63;

    --course-forest: #1F4D3B;
    --course-forest-deep: #123328;

    --course-line: #DCE5DE;

    --course-apricot: #F4A261;
    --course-apricot-soft: #FFF1E5;

    --course-shadow:
        0 12px 35px rgba(18, 51, 40, 0.08);

    --course-shadow-hover:
        0 18px 40px rgba(18, 51, 40, 0.12);

}


/* =========================================================
   2. BASE
========================================================= */

.course-overview,
.course-objective,
.course-learning,
.course-modules,
.course-certificate,
.course-cta {

    position: relative;

}


.course-overview,
.course-learning {

    background: var(--course-paper);

}


.course-objective,
.course-certificate {

    background: var(--course-white);

}


/* =========================================================
   3. HERO
========================================================= */

.course-hero {

    position: relative;

    padding: 82px 20px 78px;

    background:
        linear-gradient(
            135deg,
            var(--course-forest-deep),
            var(--course-forest)
        );

    color: var(--course-white);

    overflow: hidden;

}


/* décoration */

.course-hero::before {

    content: "";

    position: absolute;

    width: 430px;
    height: 430px;

    right: -220px;
    top: -220px;

    border: 70px solid rgba(255,255,255,0.035);

    border-radius: 50%;

}


.course-hero::after {

    content: "";

    position: absolute;

    width: 260px;
    height: 260px;

    left: -170px;
    bottom: -190px;

    border: 50px solid rgba(244,162,97,0.035);

    border-radius: 50%;

}


.course-hero-grid {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(360px, 0.95fr);

    align-items: center;

    gap: 65px;

    max-width: 1120px;

    margin: auto;

}


/* =========================================================
   4. HERO — CONTENU
========================================================= */

.course-hero-content {

    max-width: 680px;

}


.course-badge {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 16px;

    padding: 8px 14px;

    border: 1px solid rgba(255,255,255,0.16);

    border-radius: 30px;

    background: rgba(255,255,255,0.09);

    font-size: 0.78rem;

    font-weight: 700;

    letter-spacing: 0.04em;

}


.course-category {

    display: block;

    margin-bottom: 15px;

    color: rgba(255,255,255,0.62);

    font-size: 0.72rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.course-hero h1 {

    margin: 0 0 20px;

    max-width: 700px;

    font-size: clamp(2.4rem, 5vw, 4.1rem);

    line-height: 1.06;

    letter-spacing: -0.04em;

}


.course-hero h1 em {

    font-style: normal;

    color: var(--course-apricot);

}


.course-hero-intro {

    max-width: 650px;

    margin: 0;

    color: rgba(255,255,255,0.82);

    font-size: 1.06rem;

    line-height: 1.75;

}


/* =========================================================
   5. HERO — BOUTON
========================================================= */

.course-hero-actions {

    display: flex;

    margin-top: 30px;

}


.course-btn {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 48px;

    padding: 12px 24px;

    border-radius: 9px;

    text-decoration: none;

    font-weight: 800;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        opacity 0.2s ease;

}


.course-btn-primary {

    background: var(--course-apricot);

    color: var(--course-ink);

    box-shadow:
        0 8px 20px rgba(0,0,0,0.12);

}


.course-btn-primary:hover {

    transform: translateY(-2px);

    box-shadow:
        0 12px 25px rgba(0,0,0,0.16);

    opacity: 0.95;

}


/* =========================================================
   6. HERO — INFORMATIONS RAPIDES
========================================================= */

.course-quick-info {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-top: 28px;

}


.course-quick-info span {

    padding: 8px 12px;

    border: 1px solid rgba(255,255,255,0.12);

    border-radius: 8px;

    background: rgba(255,255,255,0.07);

    color: rgba(255,255,255,0.86);

    font-size: 0.82rem;

}


/* =========================================================
   7. HERO — IMAGE
========================================================= */

.course-hero-visual {

    display: flex;

    justify-content: flex-end;

}


.course-image-frame {

    position: relative;

    width: 100%;

    max-width: 500px;

    overflow: hidden;

    border: 1px solid rgba(255,255,255,0.14);

    border-radius: 20px;

    background: var(--course-white);

    box-shadow:
        0 25px 60px rgba(0,0,0,0.20);

}


.course-image-frame img {

    display: block;

    width: 100%;

    height: 360px;

    object-fit: cover;

}


.course-image-caption {

    display: flex;

    flex-direction: column;

    gap: 4px;

    padding: 18px 20px;

    background: var(--course-white);

    color: var(--course-ink);

}


.course-image-caption strong {

    font-size: 1rem;

}


.course-image-caption span {

    color: var(--course-muted);

    font-size: 0.88rem;

}


/* =========================================================
   8. SECTIONS
========================================================= */

.course-overview,
.course-learning,
.course-modules {

    padding: 82px 20px;

}


.course-objective {

    padding: 72px 20px;

}


.course-section-heading {

    max-width: 760px;

    margin: 0 auto 48px;

    text-align: center;

}


.section-badge {

    display: inline-block;

    margin-bottom: 12px;

    color: var(--course-forest);

    font-size: 0.73rem;

    font-weight: 800;

    letter-spacing: 0.12em;

}


.course-section-heading h2 {

    margin: 0 0 15px;

    color: var(--course-ink);

    font-size: clamp(1.8rem, 3vw, 2.5rem);

    line-height: 1.2;

    letter-spacing: -0.025em;

}


.course-section-heading p {

    margin: 0;

    color: var(--course-muted);

    line-height: 1.75;

}


/* =========================================================
   9. OBJECTIF GÉNÉRAL
========================================================= */

.objective-card {

    display: grid;

    grid-template-columns: 60px minmax(0, 1fr);

    gap: 24px;

    max-width: 900px;

    margin: auto;

    padding: 38px;

    border: 1px solid var(--course-line);

    border-radius: 18px;

    background: var(--course-paper);

    box-shadow: var(--course-shadow);

}


.objective-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 60px;
    height: 60px;

    border-radius: 14px;

    background: var(--course-apricot-soft);

    font-size: 1.65rem;

}


.course-label {

    display: block;

    margin-bottom: 10px;

    color: var(--course-forest);

    font-size: 0.73rem;

    font-weight: 800;

    letter-spacing: 0.1em;

}


.objective-card h2 {

    margin: 0 0 15px;

    color: var(--course-ink);

    font-size: clamp(1.5rem, 3vw, 2.1rem);

    line-height: 1.25;

}


.objective-card p {

    margin: 0;

    color: var(--course-muted);

    line-height: 1.75;

}


/* =========================================================
   10. STATISTIQUES
========================================================= */

.course-stats {

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    max-width: 900px;

    margin: auto;

    border: 1px solid var(--course-line);

    border-radius: 16px;

    overflow: hidden;

    background: var(--course-white);

    box-shadow: var(--course-shadow);

}


.course-stat {

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    min-height: 120px;

    padding: 20px;

    border-right: 1px solid var(--course-line);

    text-align: center;

}


.course-stat:last-child {

    border-right: none;

}


.course-stat strong {

    margin-bottom: 6px;

    color: var(--course-forest);

    font-size: 1.7rem;

}


.course-stat span {

    color: var(--course-muted);

    font-size: 0.85rem;

}


/* =========================================================
   11. OBJECTIFS D'APPRENTISSAGE
========================================================= */

.learning-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;

    max-width: 1000px;

    margin: auto;

}


.learning-item {

    display: grid;

    grid-template-columns: 42px minmax(0, 1fr);

    gap: 18px;

    padding: 25px;

    border: 1px solid var(--course-line);

    border-radius: 14px;

    background: var(--course-white);

    box-shadow: var(--course-shadow);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;

}


.learning-item:hover {

    transform: translateY(-3px);

    box-shadow: var(--course-shadow-hover);

}


.learning-item > span {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 10px;

    background: var(--course-soft);

    color: var(--course-forest);

    font-size: 0.78rem;

    font-weight: 800;

}


.learning-item h3 {

    margin: 0 0 7px;

    color: var(--course-ink);

    font-size: 1.05rem;

}


.learning-item p {

    margin: 0;

    color: var(--course-muted);

    font-size: 0.92rem;

    line-height: 1.65;

}


/* =========================================================
   12. MODULES
========================================================= */

.course-modules {

    background: var(--course-soft);

}


.modules-list {

    display: grid;

    gap: 14px;

    max-width: 1000px;

    margin: auto;

}


.module-card {

    display: grid;

    grid-template-columns: 52px minmax(0, 1fr) 30px;

    align-items: center;

    gap: 20px;

    padding: 23px 25px;

    border: 1px solid var(--course-line);

    border-radius: 14px;

    background: var(--course-white);

    color: inherit;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;

}


.module-card:hover {

    transform: translateY(-2px);

    border-color: rgba(31,77,59,0.25);

    box-shadow: var(--course-shadow-hover);

}


.module-number {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 52px;
    height: 52px;

    border-radius: 12px;

    background: var(--course-forest);

    color: var(--course-white);

    font-size: 0.85rem;

    font-weight: 800;

}


.module-content {

    min-width: 0;

}


.module-content > span {

    display: block;

    margin-bottom: 5px;

    color: var(--course-muted);

    font-size: 0.7rem;

    font-weight: 800;

    letter-spacing: 0.08em;

}


.module-content h3 {

    margin: 0 0 6px;

    color: var(--course-ink);

    font-size: 1.05rem;

    line-height: 1.4;

}


.module-content p {

    margin: 0;

    color: var(--course-muted);

    font-size: 0.9rem;

    line-height: 1.6;

}


.module-arrow {

    color: var(--course-forest);

    font-size: 1.3rem;

    transition:
        transform 0.2s ease;

}


.module-card:hover .module-arrow {

    transform: translateX(4px);

}


/* =========================================================
   13. MODULE FINAL
========================================================= */

.module-final {

    border-color: rgba(244,162,97,0.45);

    background:
        linear-gradient(
            135deg,
            var(--course-white),
            var(--course-apricot-soft)
        );

}


.module-final .module-number {

    background: var(--course-apricot);

    color: var(--course-ink);

}


.module-final .module-content > span {

    color: var(--course-forest);

}


/* =========================================================
   14. CERTIFICAT
========================================================= */

.course-certificate {

    padding: 80px 20px;

}


.certificate-card {

    display: grid;

    grid-template-columns: 75px minmax(0, 1fr);

    align-items: center;

    gap: 28px;

    max-width: 900px;

    margin: auto;

    padding: 40px;

    border: 1px solid var(--course-line);

    border-radius: 20px;

    background:
        linear-gradient(
            135deg,
            var(--course-soft),
            var(--course-white)
        );

    box-shadow: var(--course-shadow);

}


.certificate-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 75px;
    height: 75px;

    border-radius: 16px;

    background: var(--course-apricot-soft);

    font-size: 2rem;

}


.certificate-content h2 {

    margin: 0 0 12px;

    color: var(--course-ink);

    font-size: clamp(1.5rem, 3vw, 2.2rem);

    line-height: 1.25;

}


.certificate-content p {

    max-width: 700px;

    margin: 0;

    color: var(--course-muted);

    line-height: 1.75;

}


/* =========================================================
   15. CTA FINAL
========================================================= */

.course-cta {

    padding: 78px 20px;

    background: var(--course-forest-deep);

    color: var(--course-white);

    text-align: center;

}


.course-cta-content {

    max-width: 720px;

    margin: auto;

}


.course-cta .section-badge {

    color: var(--course-apricot);

}


.course-cta h2 {

    margin: 0 0 15px;

    color: var(--course-white);

    font-size: clamp(1.8rem, 3vw, 2.5rem);

    line-height: 1.2;

}


.course-cta p {

    max-width: 620px;

    margin: 0 auto 28px;

    color: rgba(255,255,255,0.78);

    line-height: 1.7;

}


/* =========================================================
   16. TABLETTE
========================================================= */

@media (max-width: 900px) {

    .course-hero-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }


    .course-hero-content {

        max-width: 760px;

    }


    .course-hero-visual {

        justify-content: flex-start;

    }


    .course-image-frame {

        max-width: 650px;

    }


    .course-stats {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .course-stat:nth-child(2) {

        border-right: none;

    }


    .course-stat:nth-child(-n+2) {

        border-bottom: 1px solid var(--course-line);

    }

}


/* =========================================================
   17. MOBILE
========================================================= */

@media (max-width: 650px) {

    .course-hero {

        padding: 60px 18px;

    }


    .course-overview,
    .course-learning,
    .course-modules {

        padding: 60px 18px;

    }


    .course-objective,
    .course-certificate {

        padding: 60px 18px;

    }


    .course-hero h1 {

        font-size: clamp(2.15rem, 11vw, 3rem);

    }


    .course-hero-intro {

        font-size: 1rem;

    }


    .course-hero-actions {

        width: 100%;

    }


    .course-hero-actions .course-btn {

        width: 100%;

    }


    .course-quick-info {

        flex-direction: column;

        align-items: stretch;

    }


    .course-quick-info span {

        text-align: center;

    }


    .course-image-frame {

        border-radius: 15px;

    }


    .course-image-frame img {

        height: 250px;

    }


    .course-section-heading {

        margin-bottom: 35px;

    }


    .course-stats {

        grid-template-columns: 1fr 1fr;

    }


    .course-stat {

        min-height: 105px;

        padding: 16px 10px;

    }


    .course-stat strong {

        font-size: 1.45rem;

    }


    .learning-grid {

        grid-template-columns: 1fr;

    }


    .objective-card {

        grid-template-columns: 1fr;

        gap: 20px;

        padding: 28px 22px;

    }


    .certificate-card {

        grid-template-columns: 1fr;

        gap: 20px;

        padding: 30px 22px;

        text-align: center;

    }


    .certificate-icon {

        margin: auto;

    }


    .module-card {

        grid-template-columns: 44px minmax(0, 1fr) 20px;

        gap: 14px;

        padding: 20px 18px;

    }


    .module-number {

        width: 44px;
        height: 44px;

        border-radius: 10px;

    }


    .module-content h3 {

        font-size: 0.98rem;

    }


    .module-content p {

        font-size: 0.86rem;

    }


    .module-arrow {

        font-size: 1.1rem;

    }


    .course-cta {

        padding: 60px 18px;

    }


    .course-cta .course-btn {

        width: 100%;

    }

}


/* =========================================================
   18. TRÈS PETITS ÉCRANS
========================================================= */

@media (max-width: 400px) {

    .course-stats {

        grid-template-columns: 1fr;

    }


    .course-stat {

        border-right: none;

        border-bottom: 1px solid var(--course-line);

    }


    .course-stat:last-child {

        border-bottom: none;

    }


    .module-card {

        grid-template-columns: 40px minmax(0, 1fr);

    }


    .module-arrow {

        display: none;

    }

}