/* =====================================================
   FONDATION WEBSITE
   Main stylesheet
===================================================== */


/* ================= VARIABLES ================= */

:root {

    --primary-color: #0d2666;

    --secondary-color: #d99e16;

    --tertiary-color: #10aaea;

    --white-color: #ffffff;

    --dark-color: #111827;

    --gray-color: #6b7280;

    --light-color: #f8fafc;

    --transition: all 0.3s ease;

    --shadow:
        0 10px 30px rgba(0,0,0,0.08);

    --radius: 20px;

}




/* ================= RESET ================= */


* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

    font-family: 'Poppins', sans-serif;

    color: var(--dark-color);

    overflow-x: hidden;

}



img {

    max-width: 100%;

    height: auto;

}



a {

    text-decoration: none;

    transition: var(--transition);

}



ul {

    list-style: none;

    padding: 0;

    margin: 0;

}





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


.section-subtitle {


    display: inline-block;

    color: var(--secondary-color);

    font-size: 45px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 2px;

}



.section-title {


    font-size: 30px;

    font-weight: 700;

    color: var(--primary-color);

    line-height: 1.3;

}



.section-description {


    max-width: 700px;

    color: var(--gray-color);

    line-height: 1.8;

}






/* ================= BUTTONS ================= */



.btn {

    border-radius: 50px;

    padding: 12px 30px;

    font-weight: 600;

    transition: var(--transition);

}




/* Bouton principal */


.btn-primary-custom {


    background: var(--primary-color);

    color: var(--white-color);

    border: 2px solid var(--primary-color);

}



.btn-primary-custom:hover {


    background: transparent;

    color: var(--primary-color);

    transform: translateY(-3px);

}




/* Bouton secondaire */


.btn-secondary-custom {


    background: var(--secondary-color);

    color: var(--white-color);

    border: 2px solid var(--secondary-color);

}



.btn-secondary-custom:hover {


    background: transparent;

    color: var(--secondary-color);

    transform: translateY(-3px);

}


/* =====================================================
   NAVBAR
===================================================== */


.custom-navbar {

    padding: 20px 0;

    transition: var(--transition);

    background: transparent;

    z-index: 999;

}



.custom-navbar.scrolled {

    background: var(--primary-color);

    padding: 12px 0;

    box-shadow: var(--shadow);

}




.logo-text {


    color: var(--white-color);

    font-size: 26px;

    font-weight: 800;

    letter-spacing: 1px;

    margin-left: 5px;

}



.navbar-nav .nav-link {


    color: var(--white-color);

    font-weight: 500;

    margin-left: 25px;

    position: relative;

}



.navbar-nav .nav-link::after {


    content: "";

    position: absolute;

    left: 0;

    bottom: -5px;

    width: 0;

    height: 2px;

    background: var(--secondary-color);

    transition: var(--transition);

}



.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {


    width: 100%;

}




.navbar-nav .nav-link:hover {


    color: var(--secondary-color);

}




.navbar-toggler {


    border: none;

}



.navbar-toggler:focus {


    box-shadow: none;

}







/* =====================================================
   HERO SECTION
===================================================== */


.hero-section {


    min-height: 100vh;

    background-image:
    url("../images/hero.jpg");

    background-size: cover;

    background-position: center;

    position: relative;

    display: flex;

    align-items: center;

}



.hero-overlay {


    position: absolute;

    inset: 0;


    background:

    linear-gradient(

        90deg,

        rgba(13,38,102,0.95),

        rgba(13,38,102,0.55)

    );


}



.hero-section .container {


    position: relative;

    z-index: 2;

}




.hero-section h1 {


    font-size: 65px;

    line-height: 1.2;

    font-weight: 800;

}



.hero-section .highlight {


    color: var(--secondary-color);

}




.hero-section p {


    font-size: 19px;

    max-width: 650px;

    line-height: 1.8;

    color: rgba(255,255,255,0.9);

}






/* Hero buttons */


.hero-section .btn {


    padding: 15px 35px;

}



.hero-section .btn-outline-light:hover {


    background: var(--white-color);

    color: var(--primary-color);

    transform: translateY(-3px);

}


/* =====================================================
   ABOUT PREVIEW SECTION
===================================================== */


.about-preview {

    background: var(--white-color);

}




/* Image container */


.about-image-wrapper {

    position: relative;

    display: inline-block;

}



.about-image-wrapper img {


    width: 100%;

    border-radius: var(--radius);

    object-fit: cover;

    min-height: 500px;

}





/* Badge expérience */


.about-experience {


    position: absolute;

    bottom: 30px;

    right: -20px;


    background: var(--primary-color);

    color: var(--white-color);


    width: 150px;

    height: 150px;


    border-radius: 50%;


    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;


    box-shadow: var(--shadow);


}




.about-experience h3 {


    font-size: 40px;

    font-weight: 800;

    color: var(--secondary-color);

    margin-bottom: 0;

}



.about-experience p {


    font-size: 14px;

    text-align: center;

    margin: 0;

}






/* Texte */


.about-preview p {


    color: var(--gray-color);

    line-height: 1.8;

}





.about-preview .section-title {


    margin-bottom: 20px;

}






/* Statistiques */


.about-stat {


    padding: 15px;

    border-left: 3px solid var(--secondary-color);

}



.about-stat h3 {


    color: var(--primary-color);

    font-size: 35px;

    font-weight: 800;

    margin-bottom: 5px;

}



.about-stat p {


    margin: 0;

    font-size: 14px;

    font-weight: 500;

}


/* =====================================================
   SERVICES SECTION
===================================================== */


.services-section {

    background: var(--light-color);

}




.service-card {


    background: var(--white-color);

    padding: 40px 30px;

    border-radius: var(--radius);

    height: 100%;


    box-shadow: 0 10px 25px rgba(0,0,0,0.05);


    transition: var(--transition);


    position: relative;

    overflow: hidden;


}





/* Effet de couleur au survol */


.service-card::before {


    content: "";

    position: absolute;

    top: 0;

    left: 0;


    width: 100%;

    height: 5px;


    background: var(--secondary-color);


    transform: scaleX(0);

    transform-origin: left;


    transition: var(--transition);


}




.service-card:hover::before {


    transform: scaleX(1);

}





.service-card:hover {


    transform: translateY(-10px);

    box-shadow:

    0 20px 40px rgba(0,0,0,0.12);


}






/* Icone service */


.service-icon {


    width: 80px;

    height: 80px;


    border-radius: 50%;


    background:

    rgba(16,170,234,0.12);


    display:flex;

    align-items:center;

    justify-content:center;


    margin-bottom:25px;


    transition: var(--transition);


}



.service-icon i {


    font-size: 38px;


    color: var(--tertiary-color);


}





.service-card:hover .service-icon {


    background: var(--primary-color);


    transform: rotateY(360deg);


}



.service-card:hover .service-icon i {


    color: var(--white-color);

}





/* Titre */


.service-card h4 {


    font-size: 22px;

    font-weight: 700;


    color: var(--primary-color);


    margin-bottom: 15px;


}




/* Description */


.service-card p {


    color: var(--gray-color);


    line-height: 1.8;

}





/* Lien */


.service-link {


    display:inline-flex;


    align-items:center;


    gap:8px;


    margin-top:15px;


    color: var(--secondary-color);


    font-weight:600;


}



.service-link:hover {


    color:var(--primary-color);

    gap:12px;


}


/* =====================================================
   ACTIVITIES SECTION
===================================================== */


.activities-preview {


    background: var(--white-color);


}




/* Carte activité */


.activity-card {


    background: var(--white-color);


    border-radius: var(--radius);


    overflow: hidden;


    box-shadow: 

    0 10px 30px rgba(0,0,0,0.08);


    transition: var(--transition);


    height:100%;


}





.activity-card:hover {


    transform: translateY(-10px);


    box-shadow:

    0 20px 45px rgba(0,0,0,0.15);


}





/* Image */


.activity-image {


    position:relative;


    overflow:hidden;


}



.activity-image img {


    width:100%;


    height:260px;


    object-fit:cover;


    transition: transform .5s ease;


}



.activity-card:hover .activity-image img {


    transform:scale(1.1);


}






/* Date badge */


.activity-date {


    position:absolute;


    bottom:20px;


    left:20px;


    background:var(--secondary-color);


    color:white;


    padding:8px 15px;


    border-radius:50px;


    font-size:13px;


    font-weight:600;


}





.activity-date i {


    margin-right:5px;


}






/* Contenu */


.activity-content {


    padding:30px;


}




.activity-content h4 {


    color:var(--primary-color);


    font-size:22px;


    font-weight:700;


    margin-bottom:15px;


}





.activity-content p {


    color:var(--gray-color);


    line-height:1.8;


}






/* Bouton détail */


.activity-link {


    display:inline-flex;


    align-items:center;


    gap:8px;


    color:var(--tertiary-color);


    font-weight:600;


    margin-top:10px;


}




.activity-link:hover {


    color:var(--primary-color);


    gap:14px;


}


/* =====================================================
   CTA SECTION
===================================================== */


.cta-section {

    padding: 80px 0;

    background: var(--white-color);

}



.cta-box {


    background:

    linear-gradient(

        135deg,

        var(--primary-color),

        #163d91

    );


    border-radius: 30px;


    padding: 60px;


    color: var(--white-color);


    position: relative;


    overflow: hidden;


}





/* décoration */

.cta-box::before {


    content:"";


    position:absolute;


    width:300px;

    height:300px;


    background:

    rgba(255,255,255,0.08);


    border-radius:50%;


    top:-100px;


    right:-80px;


}



.cta-box::after {


    content:"";


    position:absolute;


    width:200px;

    height:200px;


    background:

    rgba(217,158,22,0.15);


    border-radius:50%;


    bottom:-80px;


    left:-50px;


}





.cta-box .row {


    position:relative;

    z-index:2;


}



.cta-box h2 {


    font-size:38px;

    font-weight:800;


    margin-bottom:15px;


}



.cta-box p {


    font-size:17px;


    color:rgba(255,255,255,0.85);


    line-height:1.8;


}





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



.footer-section {


    background:#081a45;


    color:rgba(255,255,255,0.75);


}





.footer-logo {


    color:white;


    font-size:28px;


    font-weight:800;


}





.footer-logo:hover {


    color:var(--secondary-color);


}





.footer-section p {


    line-height:1.8;


}





.footer-section h5 {


    color:white;


    font-size:20px;


    font-weight:700;


    margin-bottom:25px;


    position:relative;


}





.footer-section h5::after {


    content:"";


    display:block;


    width:40px;


    height:3px;


    background:var(--secondary-color);


    margin-top:10px;


}





/* Liens footer */


.footer-links li {


    margin-bottom:12px;


}



.footer-links a {


    color:rgba(255,255,255,0.75);


}



.footer-links a:hover {


    color:var(--secondary-color);


    padding-left:5px;


}






/* Contact footer */


.footer-contact li {


    display:flex;


    gap:12px;


    margin-bottom:15px;


    align-items:center;


}





.footer-contact i {


    color:var(--secondary-color);


    font-size:18px;


}






/* Réseaux sociaux */


.social-links {


    display:flex;


    gap:12px;


    margin-top:25px;


}





.social-links a {


    width:42px;


    height:42px;


    display:flex;


    align-items:center;


    justify-content:center;


    border-radius:50%;


    background:

    rgba(255,255,255,0.1);


    color:white;


}





.social-links a:hover {


    background:var(--secondary-color);


    transform:translateY(-5px);


}






/* Copyright */


.footer-bottom {


    border-top:

    1px solid rgba(255,255,255,0.1);


    padding:20px 0;


}



.footer-bottom p {


    font-size:14px;


}

/* =====================================================
   BACK TO TOP BUTTON
===================================================== */


.back-to-top {


    position:fixed;


    right:25px;


    bottom:25px;


    width:45px;


    height:45px;


    border-radius:50%;


    border:none;


    background:var(--secondary-color);


    color:white;


    font-size:20px;


    display:flex;


    align-items:center;


    justify-content:center;


    cursor:pointer;


    opacity:0;


    visibility:hidden;


    transition:var(--transition);


    z-index:9999;


}



.back-to-top.show {


    opacity:1;


    visibility:visible;


}



.back-to-top:hover {


    background:var(--primary-color);


    transform:translateY(-5px);


}




/* SECTION ABOUTS */

/* =====================================================
   INNER PAGE HERO
===================================================== */


.page-hero {


    height:420px;


    background-image:

    url("../images/about-banner.jpg");


    background-size:cover;


    background-position:center;


    position:relative;


    display:flex;


    align-items:center;


    justify-content:center;


}



.page-hero-overlay {


    position:absolute;


    inset:0;


    background:

    linear-gradient(

        rgba(13,38,102,0.9),

        rgba(13,38,102,0.75)

    );


}



.page-hero .container {


    position:relative;


    z-index:2;


}



.page-hero h1 {


    font-size:55px;


    font-weight:800;


    margin-bottom:20px;


}




.page-hero .breadcrumb a {


    color:var(--secondary-color);


}



.page-hero .breadcrumb-item {


    font-size:16px;


}

/* =====================================================
   ABOUT DETAILS
===================================================== */


.about-details-image img {


    width:100%;


    min-height:450px;


    object-fit:cover;


}





.info-box {


    background:white;


    padding:35px 30px;


    border-radius:var(--radius);


    height:100%;


    box-shadow:

    0 10px 30px rgba(0,0,0,0.07);


    transition:var(--transition);


}



.info-box:hover {


    transform:translateY(-10px);


    box-shadow:

    0 20px 40px rgba(0,0,0,0.12);


}



.info-icon {


    width:70px;


    height:70px;


    display:flex;


    align-items:center;


    justify-content:center;


    border-radius:50%;


    background:

    rgba(16,170,234,0.12);


    margin-bottom:20px;


}



.info-icon i {


    color:var(--tertiary-color);


    font-size:32px;


}



.info-box h4 {


    color:var(--primary-color);


    font-weight:700;


    margin-bottom:15px;


}



.info-box p {


    color:var(--gray-color);


    line-height:1.8;


}



/* =====================================================
   LEADERS SECTION
===================================================== */


.leaders-section {


    background:var(--light-color);


}




.leader-card {


    background:white;


    border-radius:var(--radius);


    overflow:hidden;


    box-shadow:

    0 10px 30px rgba(0,0,0,0.08);


    transition:var(--transition);


    text-align:center;


}



.leader-card:hover {


    transform:translateY(-10px);


}




.leader-image {


    overflow:hidden;


}



.leader-image img {


    width:100%;


    height:350px;


    object-fit:cover;


    transition:.5s;


}



.leader-card:hover img {


    transform:scale(1.1);


}





.leader-content {


    padding:30px;


}



.leader-content h4 {


    color:var(--primary-color);


    font-weight:700;


    margin-bottom:8px;


}



.leader-content span {


    color:var(--gray-color);


    font-size:14px;


}






.leader-social {


    display:flex;


    justify-content:center;


    gap:10px;


    margin-top:20px;


}



.leader-social a {


    width:38px;


    height:38px;


    border-radius:50%;


    background:

    rgba(16,170,234,.15);


    display:flex;


    align-items:center;


    justify-content:center;


    color:var(--tertiary-color);


}



.leader-social a:hover {


    background:var(--primary-color);


    color:white;


}


/* =====================================================
   ACTIVITIES PAGE HERO
===================================================== */


.activities-hero {


    background-image:

    url("../images/activity-banner.jpg");


}


/* =====================================================
   ACTIVITIES INTRO
===================================================== */


.activities-intro p {


    color:var(--gray-color);


    line-height:1.8;


}





.impact-card {


    background:white;


    padding:30px 20px;


    border-radius:var(--radius);


    text-align:center;


    box-shadow:

    0 10px 25px rgba(0,0,0,.07);


    transition:var(--transition);


}





.impact-card:hover {


    transform:translateY(-8px);


}



.impact-card h3 {


    color:var(--secondary-color);


    font-size:38px;


    font-weight:800;


}



.impact-card p {


    margin:0;


    color:var(--primary-color);


    font-weight:600;


}


/* =====================================================
   ACTIVITY SERVICE BADGE
===================================================== */


.activity-service {


    display:inline-block;


    color:var(--tertiary-color);


    font-size:14px;


    font-weight:600;


    margin-bottom:10px;


}



.activity-card .activity-link {


    color:var(--secondary-color);


}



.activity-card .activity-link:hover {


    color:var(--primary-color);


}


/* =====================================================
   ACTIVITY DETAIL HERO
===================================================== */


.activity-detail-hero {


    min-height:520px;


    background-image:

    url("../images/activity-cover.jpg");


    background-size:cover;


    background-position:center;


    display:flex;


    align-items:center;


    position:relative;


}





.activity-detail-overlay {


    position:absolute;


    inset:0;


    background:

    linear-gradient(

        rgba(13,38,102,.85),

        rgba(8,26,69,.85)

    );


}




.activity-detail-hero .container {


    position:relative;


    z-index:2;


}





.activity-detail-hero h1 {


    font-size:55px;


    font-weight:800;


    line-height:1.3;


    margin:20px 0;


}




.activity-category {


    display:inline-block;


    background:var(--secondary-color);


    padding:8px 20px;


    border-radius:50px;


    font-weight:600;


    font-size:14px;


}





.activity-detail-hero .breadcrumb a {


    color:var(--secondary-color);


}


/* =====================================================
   ACTIVITY DETAIL CONTENT
===================================================== */


.detail-image-wrapper img {


    width:100%;


    min-height:500px;


    object-fit:cover;


}





.activity-content-section p {


    color:var(--gray-color);


    line-height:1.9;


}






.activity-info-box {


    background:var(--light-color);


    padding:25px;


    border-radius:var(--radius);


}





.info-item {


    display:flex;


    align-items:center;


    gap:20px;


    padding:15px 0;


    border-bottom:

    1px solid rgba(0,0,0,.08);


}



.info-item:last-child {


    border-bottom:none;


}





.info-item i {


    width:50px;


    height:50px;


    border-radius:50%;


    background:var(--primary-color);


    color:white;


    display:flex;


    align-items:center;


    justify-content:center;


    font-size:22px;


}





.info-item h5 {


    margin:0;


    color:var(--primary-color);


    font-weight:700;


}





.info-item p {


    margin:5px 0 0;


}


/* =====================================================
   ACTIVITY GALLERY
===================================================== */


.activity-gallery {


    background:var(--light-color);


}




.gallery-item {


    height:300px;


    border-radius:var(--radius);


    overflow:hidden;


    cursor:pointer;


}



.gallery-item img {


    width:100%;


    height:100%;


    object-fit:cover;


    transition:.5s;


}




.gallery-item:hover img {


    transform:scale(1.1);


}


/* =====================================================
   CTA SECTION
===================================================== */


.cta-section {


    background:white;


}



.cta-box {


    background:

    linear-gradient(

        135deg,

        var(--primary-color),

        #102f80

    );


    padding:60px 30px;


    border-radius:25px;


    color:white;


}



.cta-box h2 {


    font-size:40px;


    font-weight:800;


}



.cta-box p {


    max-width:700px;


    margin:20px auto 35px;


    color:rgba(255,255,255,.85);


}


/* =====================================================
   CONTACT HERO
===================================================== */


.contact-hero {


    background-image:

    url("../images/contact-banner.jpg");


}


/* =====================================================
   CONTACT SECTION
===================================================== */


.contact-form-box,
.contact-info-box {


    background:white;


    padding:40px;


    border-radius:25px;


    box-shadow:

    0 15px 35px rgba(0,0,0,.08);


}





.form-control {


    border-radius:12px;


    padding:14px 18px;


    border:1px solid #ddd;


}



.form-control:focus {


    border-color:var(--tertiary-color);


    box-shadow:

    0 0 0 .2rem rgba(16,170,234,.15);


}





.contact-list {


    list-style:none;


    padding:0;


}



.contact-list li {


    display:flex;


    gap:20px;


    margin-bottom:25px;


    align-items:center;


}



.contact-list i {


    width:50px;


    height:50px;


    background:var(--primary-color);


    color:white;


    display:flex;


    align-items:center;


    justify-content:center;


    border-radius:50%;


    font-size:22px;


}





.contact-list strong {


    display:block;


    color:var(--primary-color);


}



.contact-list span {


    color:var(--gray-color);


}






.contact-social {


    display:flex;


    gap:12px;


}



.contact-social a {


    width:42px;


    height:42px;


    display:flex;


    justify-content:center;


    align-items:center;


    border-radius:50%;


    background:rgba(16,170,234,.15);


    color:var(--tertiary-color);


    transition:.3s;


}



.contact-social a:hover {


    background:var(--primary-color);


    color:white;


}





/* =====================================================
   WHATSAPP BUTTON
===================================================== */


.btn-whatsapp {


    background:#25D366;


    color:white;


    padding:12px 28px;


    border-radius:50px;


    font-weight:600;


    display:inline-flex;


    align-items:center;


    justify-content:center;


    transition:var(--transition);


    border:none;


}





.btn-whatsapp i {


    font-size:20px;


}





.btn-whatsapp:hover {


    background:#128C7E;


    color:white;


    transform:translateY(-3px);


}



.logo-image {


    width: 65px;


    height: 65px;


    object-fit:contain;

    border-radius: 15px;


}