/* =========================
   RESET
========================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Nunito', Arial, Helvetica, sans-serif;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

h1,
h2,
h3,
.logo-text {
    font-family:'Bree Serif', Georgia, serif;
    font-weight:400;
}


/* =========================
   HEADER
========================= */

header{
    position:fixed;
    top:0;
    left:0;

    width:100%;

  background: rgba(255,255,255,0.88);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(255,255,255,.2);
    display:flex;
    flex-direction:column;

    align-items:center;

    padding: 20px 15px;

    box-shadow:0 2px 10px rgba(0,0,0,.1);

    z-index:1000;
}
.logo{
    display:flex;
    align-items:center;
    gap:15px;
}

.logo img{
    height:90px;
    width:auto;
}

.logo-text{
    display:flex;
    align-items:baseline;
    gap:4px;

    font-family: Georgia, serif;
    font-weight:700;
}

.logo-escale{
    color:#078FA3;
    font-size:2.4rem;
}

.logo-solidaire{
    color:#C2185B;
    font-size:2.4rem;
}

nav ul{
    list-style:none;

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:10px;

    margin-top:10px;
}

nav a{
    text-decoration:none;
    color:#333;
    font-weight:bold;
}


/* =========================
   HERO
========================= */

.hero{

    min-height:100vh;

    background-image:
    linear-gradient(
        rgba(0,0,0,.45),
        rgba(0,0,0,.45)
    ),
    url("../images/hero/hero.png");

    background-size:cover;
    background-position:center;
    background-repeat: no-repeat;
    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    padding:120px 20px 40px;
}

.hero-content{

    max-width:900px;

    color:white;
}

.hero h1{

    font-size:4rem;

    line-height:1.1;

    margin-bottom:20px;
}

.hero p{

    font-size:1rem;

    line-height:1.6;

    margin-bottom:30px;
}
@media(max-width:768px){

    .hero h1{
        font-size:2.2rem;
    }

    .hero p{
        font-size:1rem;
    }

}


/* =========================
   BOUTON
========================= */

.btn{
    background:#E56C2F;

    color:white;

    text-decoration:none;

    padding:15px 25px;

    border-radius:8px;
}


/* =========================
   STATISTIQUES
========================= */

.stats-bar {
    max-width: 1550px;
    margin: -90px auto 45px;
    padding: 35px 50px;
    background: rgba(255,255,255,0.96);
    border-radius: 8px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    box-shadow: 0 10px 35px rgba(0,0,0,.12);
    position: relative;
    z-index: 20;
}

.stats-bar .stat {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 10px 30px;
    border-right: 1px solid #e5e5e5;
    text-align: left;
}

.stats-bar .stat:last-child {
    border-right: none;
}

.stats-bar .stat i {
    width: 62px;
    height: 62px;
    stroke-width: 2.4;
    flex-shrink: 0;
}

.stats-bar .stat h3 {
    font-size: 3rem;
    line-height: 1;
    margin-bottom: 8px;
    font-weight: 800;
}

.stats-bar .stat p {
    font-size: 1rem;
    color: #222;
    line-height: 1.35;
    margin: 0;
}

.stats-bar .stat:nth-child(1) h3,
.stats-bar .stat:nth-child(1) i {
    color: #078FA3;
    stroke: #078FA3;
}

.stats-bar .stat:nth-child(2) h3,
.stats-bar .stat:nth-child(2) i {
    color: #EF7D00;
    stroke: #EF7D00;
}

.stats-bar .stat:nth-child(3) h3,
.stats-bar .stat:nth-child(3) i {
    color: #F0C300;
    stroke: #F0C300;
}

.stats-bar .stat:nth-child(4) h3,
.stats-bar .stat:nth-child(4) i {
    color: #C2185B;
    stroke: #C2185B;
}


/* =========================
   CARTES
========================= */

.cards-grid {
    max-width: 1800px;
    margin: 0 auto 80px;
    padding: 0 30px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
}

.cards-grid .card {
    min-height: 440px;
    border-radius: 6px;
    padding: 35px 28px;
    color: white;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
    transition: transform .3s ease, box-shadow .3s ease;
}

.cards-grid .card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
}

.cards-grid .card h3 {
    font-size: 1.9rem;
    line-height: 1.2;
    margin-bottom: 28px;
    font-weight: 800;
}

.cards-grid .card p {
    font-size: 1.15rem;
    line-height: 1.7;
    flex: 1;
}

.cards-grid .card a {
    color: white;
    text-decoration: none;
    font-weight: 800;
    font-size: 1.1rem;
    margin-top: 25px;
}

.card.teal {
    background: #078FA3;
}

.card.orange {
    background: #EF7D00;
}

.card.pink {
    background: #C2185B;
}

.card.yellow {
    background: #F0C300;
}

.card.blue {
    background: #009688;
}
.card.teal > svg {
    color: #078FA3;
    stroke: #078FA3;
}

.card.orange > svg {
    color: #EF7D00;
    stroke: #EF7D00;
}

.card.pink > svg {
    color: #C2185B;
    stroke: #C2185B;
}

.card.yellow > svg {
    color: #F0C300;
    stroke: #F0C300;
}

.card.blue > svg {
    color: #009688;
    stroke: #009688;
}
.card a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.cards-grid .card > svg {
    width: 170px;
    height: 170px;

    background: #ffffff;

    border-radius: 50%;

    padding: 40px;

    margin-bottom: 35px;

    box-shadow: 0 12px 30px rgba(0,0,0,.15);

    transition: transform .3s ease;

    flex-shrink: 0;
}

.cards-grid .card:hover > svg {
    transform: scale(1.12);
}

/* =========================
   BURGER
========================= */

.burger{

    border:none;
    background:none;

    font-size:2rem;

    cursor:pointer;
}

/* MENU MOBILE */

#nav-menu{

    display:none;

    width:100%;
}

#nav-menu.active{

    display:block;
}

#nav-menu ul{

    display:flex;

    flex-direction:column;

    gap:15px;

    list-style:none;

    padding:20px 0;

    text-align:center;
}
/* =========================
   TITRES DE SECTION
========================= */

.section-title{

    text-align:center;

    
}

.section-title h2{

    font-size:2rem;

    color:#333;

    margin-bottom:15px;
}

.section-title p{

    color:#666;

    max-width:600px;

    margin:auto;
}
.section-title h2{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:15px;
}

.section-title h2 svg{
    width:55px;
    height:55px;

    color:#EF7D00;
    stroke:#EF7D00;

    padding:12px;
    border-radius:50%;

    background:#FFF4E8;

    box-shadow:0 5px 15px rgba(0,0,0,.08);
}
/* =========================
   PARTENAIRES
========================= */

.partners{

    padding:40px 20px 80px;
}

.partners-grid{

    display:grid;

    grid-template-columns:1fr;

    gap:25px;

    max-width:1200px;

    margin:auto;
}

.partner-card{

    background:white;

    border-radius:16px;

    padding:30px;

    box-shadow:0 5px 20px rgba(0,0,0,.08);

    text-align:center;
}

.partner-card h3{

    color:#E56C2F;

    margin-bottom:15px;
}
/* =========================
   ACTUALITES
========================= */

.news{

    background:#f8f8f8;

    padding:40px 20px 80px;
}

.news-grid{

    display:grid;

    grid-template-columns:1fr;

    gap:25px;

    max-width:1200px;

    margin:auto;
}

.news-card{

    background:white;

    border-radius:16px;

    overflow:hidden;

    box-shadow:0 5px 20px rgba(0,0,0,.08);
}

.news-card img{

    width:100%;

    height:220px;

    object-fit:cover;
}

.news-content{

    padding:25px;
}
.news-content a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:15px;
    color:#C2185B;
    font-weight:700;
    text-decoration:none;
    transition:.3s;
}

.news-content a:hover{
    transform:translateX(5px);
}

.news-content a svg{
    width:18px;
    height:18px;
}
/* =========================
   FOOTER
========================= */

.footer{
    background:linear-gradient(135deg, #a10f4e, #c21c5f);
    color:white;
    border-top:5px solid #F0C300;
}

.footer-container{
    max-width:1500px;
    margin:auto;
    padding:60px 40px 35px;

    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:70px;
}
.footer-about{
    max-width:460px;
    flex:1.4;
}

.footer-logo{
    width:100%;
    max-width:460px;
    height:180px;
    object-fit:cover;
    object-position:center;
    border-radius:12px;
    box-shadow:0 8px 20px rgba(0,0,0,.15);
    margin-bottom:20px;
}
.footer-col h3{
    margin-bottom:20px;
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:2px;
}

.footer-col ul{
    list-style:none;
}

.footer-col li{
    margin-bottom:10px;
    line-height:1.5;
}

.footer-col a{
    color:white;
    text-decoration:none;
}

.footer-col a:hover{
    color:#F0C300;
}

.footer-col p{
    line-height:1.7;
}

.social-links{
    display:flex;
    gap:15px;
    margin-top:20px;
}

.social-links a{
    width:40px;
    height:40px;
    border:2px solid white;
    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    color:white;
    text-decoration:none;
    transition:.3s;
}

.social-links a:hover{
    background:white;
    color:#C2185B;
}

.social-links a img{
    width:18px;
    height:18px;
    filter:brightness(0) invert(1);
}

.social-links a:hover img{
    filter:none;
}

.social-links a svg{
    width:18px;
    height:18px;
    color:#fff;
    stroke:#fff;
}

.footer-col ul li{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.footer-col ul li svg{
    width:18px;
    height:18px;
    color:#fff;
    stroke:#fff;
    flex-shrink:0;
    margin-top:3px;
}

.footer-bottom{
    max-width:1300px;
    margin:auto;
    padding:15px 20px 25px;
    font-size:.9rem;
    opacity:.9;
}

/* Responsive */
@media (max-width:900px){
    .footer-container{
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:600px){
    .footer-container{
        grid-template-columns:1fr;
        text-align:left;
    }
}
/* =========================
   BACK TO TOP
========================= */

#backToTop{

    position:fixed;

    right:20px;
    bottom:20px;

    width:50px;
    height:50px;

    border:none;

    border-radius:50%;

    background:#E56C2F;

    color:white;

    font-size:1.5rem;

    cursor:pointer;

    display:none;

    z-index:999;
}
[data-lucide] {
    stroke-width: 2;
    transition: all 0.2s ease;
}

/* Burger */
.burger i {
    width: 28px;
    height: 28px;
    color: #111;
    stroke: #111;
}

/* Flèches dans les cartes */
.cards-grid .card a i {
    width: 20px;
    height: 20px;
    padding: 0;
    margin: 0;
    background: none;
    border-radius: 0;
    color: #fff;
    stroke: #fff;
}

/* Footer */
.footer-col ul li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 8px;
}

.footer-col ul li i {
    width: 18px;
    height: 18px;
    color: #fff;
    stroke: #fff;
    flex-shrink: 0;
}

.footer-col ul li span {
    line-height: 1.5;
    color: #fff;
}
.shield-heart-icon{
    position:relative;
    width:64px;
    height:64px;
    margin:0 auto 20px;
}

.shield-heart-icon svg{
    color:#C2185B;
    stroke:#C2185B;
}

.shield-heart-icon svg:first-child{
    width:64px;
    height:64px;
    stroke-width:2.2;
}

.shield-heart-icon svg:last-child{
    position:absolute;
    width:24px;
    height:24px;
    left:50%;
    top:48%;
    transform:translate(-50%, -50%);
    stroke-width:2.5;
}
/* =========================
   FINITIONS ICONES
========================= */

/* Icônes principales des cartes */
.cards-grid .card > i {
    filter: drop-shadow(0 6px 10px rgba(0,0,0,.12));
}

/* Liens "En savoir plus" */
.cards-grid .card a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* Titres de section avec icône */
.section-title h2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.section-title h2 i {
    width: 28px;
    height: 28px;
    color: #E56C2F;
    stroke: #E56C2F;
}
/* =========================
   CORRECTION LUCIDE SVG
========================= */

[data-lucide],
svg {
    stroke-width: 2;
    transition: all 0.2s ease;
}

/* Stats */
.stats-bar .stat svg {
    width: 62px;
    height: 62px;
    flex-shrink: 0;
}

.stats-bar .stat:nth-child(1) svg {
    color: #078FA3;
    stroke: #078FA3;
}

.stats-bar .stat:nth-child(2) svg {
    color: #EF7D00;
    stroke: #EF7D00;
}

.stats-bar .stat:nth-child(3) svg {
    color: #F0C300;
    stroke: #F0C300;
}

.stats-bar .stat:nth-child(4) svg {
    color: #C2185B;
    stroke: #C2185B;
}

/* Icônes principales des cartes */

.cards-grid .card > svg {
    width: 125px;
    height: 125px;

    background: #fff;
    border-radius: 50%;

    padding: 28px;
    margin-bottom: 35px;
    box-shadow: 0 12px 30px rgba(0,0,0,.15);
    flex-shrink: 0;
}

.cards-grid .card:hover > svg {
    transform: scale(1.12);
}

/* Couleurs icônes des cartes */
.card.teal > svg {
    color: #078FA3;
    stroke: #078FA3;
}

.card.orange > svg {
    color: #EF7D00;
    stroke: #EF7D00;
}

.card.pink > svg {
    color: #C2185B;
    stroke: #C2185B;
}

.card.yellow > svg {
    color: #F0C300;
    stroke: #F0C300;
}

.card.blue > svg {
    color: #009688;
    stroke: #009688;
}

/* Flèches des boutons */
.cards-grid .card a svg {
    width: 20px;
    height: 20px;
    background: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    color: #fff;
    stroke: #fff;
}

/* Burger */
.burger svg {
    width: 28px;
    height: 28px;
    color: #111;
    stroke: #111;
}

/* Footer */
.footer-col ul li svg {
    width: 18px;
    height: 18px;
    color: #fff;
    stroke: #fff;
    flex-shrink: 0;
}
.contact-hours-list{
    list-style:none;
    padding:0;
    margin:0;
}

.contact-hours-list li{
    margin-bottom:8px;
    line-height:1.6;
}

.contact-hours-list strong{
    color:#C2185B;
}
/* =========================
   CORRECTION PAGE QUI SOMMES-NOUS
========================= */

.about-page {
    padding-top: 190px !important;
    background: #fff;
}

.about-hero {
    min-height: 360px;
    background: linear-gradient(135deg, #078FA3, #C2185B);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 20px;
}

.about-hero h1 {
    font-size: 3rem;
    margin: 15px 0;
}

.about-hero p {
    font-size: 1.2rem;
}

.about-intro {
    max-width: 1200px;
    margin: 70px auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 35px;
}

.about-text,
.about-card-highlight,
.about-container,
.about-final,
.mission-card,
.timeline-item {
    background: #fff;
    border-radius: 18px;
    padding: 35px;
    box-shadow: 0 8px 25px rgba(0,0,0,.08);
}

.about-text p,
.about-container p,
.about-final p,
.mission-card p,
.timeline-item p {
    line-height: 1.8;
    color: #555;
    margin-bottom: 15px;
}

.about-card-highlight {
    background: linear-gradient(135deg, #078FA3, #009688);
    color: #fff;
    text-align: center;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.about-card-highlight h3 {
    margin-bottom: 12px;
}

.about-card-highlight p {
    max-width: 280px;
    margin: 0;
    color: #fff;
    line-height: 1.5;
}

.about-card-highlight svg {
    width: 70px;
    height: 70px;
    color: #fff;
    stroke: #fff;
    margin-bottom: 20px;
}

.about-section,
.missions-section,
.timeline-section {
    padding: 70px 20px;
}

.soft-bg,
.missions-section {
    background: #faf7f9;
}

.about-container,
.about-final {
    max-width: 1000px;
    margin: auto;
}

.missions-grid {
    max-width: 1200px;
    margin: 40px auto 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.mission-card {
    text-align: center;
}

.mission-card svg {
    width: 55px;
    height: 55px;
    color: #C2185B;
    stroke: #C2185B;
    margin-bottom: 20px;
}

.timeline {
    max-width: 1300px;
    margin: 50px auto 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
}

.timeline-item {
    text-align: center;
}

.timeline-item span {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 15px;
}

.timeline-item.teal { color: #078FA3; }
.timeline-item.orange { color: #EF7D00; }
.timeline-item.pink { color: #C2185B; }
.timeline-item.yellow { color: #F0C300; }
.timeline-item.blue { color: #009688; }

@media (max-width: 900px) {
    .about-page {
        padding-top: 160px !important;
    }

    .about-intro,
    .missions-grid,
    .timeline {
        grid-template-columns: 1fr;
    }

    .about-hero h1 {
        font-size: 2.2rem;
    }
}
/* =========================
   FRISE CHRONOLOGIQUE PREMIUM
========================= */

.history-timeline {
    padding: 90px 20px;
    background: #f8fbfd;
    overflow: hidden;
}

.timeline-title {
    text-align: center;
    max-width: 850px;
    margin: 0 auto 70px;
}

.timeline-title span {
    color: #078FA3;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-weight: 800;
}

.timeline-title h2 {
    font-size: 3.2rem;
    margin: 15px 0;
    color: #C2185B;
}

.timeline-title p {
    color: #555;
    font-size: 1.1rem;
    line-height: 1.6;
}

.timeline-line {
    max-width: 1500px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 25px;
    position: relative;
}

.timeline-line::before {
    content: "";
    position: absolute;
    top: 88px;
    left: 7%;
    right: 7%;
    border-top: 2px dashed #cfcfcf;
    z-index: 0;
}

.timeline-card {
    position: relative;
    text-align: center;
    z-index: 1;
}

.timeline-card .year {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 15px;
}

.timeline-card .circle {
    width: 105px;
    height: 105px;
    border-radius: 50%;
    background: white;
    margin: 0 auto 65px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid currentColor;
    box-shadow: 0 8px 25px rgba(0,0,0,.08);
}

.timeline-card .circle svg {
    width: 48px;
    height: 48px;
    stroke: currentColor;
}

.timeline-card .content {
    background: white;
    border-radius: 16px;
    padding: 28px 22px;
    min-height: 210px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    border-top: 8px solid currentColor;
}

.timeline-card .content h3 {
    font-size: 1.3rem;
    margin-bottom: 18px;
}

.timeline-card .content p {
    color: #555;
    line-height: 1.6;
}

.timeline-card.teal { color: #078FA3; }
.timeline-card.orange { color: #EF7D00; }
.timeline-card.pink { color: #C2185B; }
.timeline-card.yellow { color: #F0C300; }
.timeline-card.blue { color: #009688; }

/* RESPONSIVE */
@media (max-width: 1100px) {
    .timeline-line {
        grid-template-columns: repeat(2, 1fr);
    }

    .timeline-line::before {
        display: none;
    }
}

@media (max-width: 650px) {
    .timeline-title h2 {
        font-size: 2.2rem;
    }

    .timeline-line {
        grid-template-columns: 1fr;
    }

    .timeline-card .circle {
        margin-bottom: 30px;
    }
}
/* =========================
   PAGE EPICERIE SOLIDAIRE
========================= */

.grocery-page{
    padding-top:190px;
    background:#fff;
}

.grocery-hero{
    min-height:360px;
    background:linear-gradient(135deg, #EF7D00, #F0C300);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.grocery-hero-content{
    max-width:900px;
}

.grocery-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    margin-bottom:15px;
}

.grocery-hero h1{
    font-size:3.2rem;
    margin-bottom:20px;
}

.grocery-hero p{
    font-size:1.2rem;
    line-height:1.6;
}

.grocery-intro{
    max-width:1200px;
    margin:-50px auto 80px;
    padding:0 20px;
    position:relative;
    z-index:2;
}

.grocery-intro-card{
    background:white;
    border-radius:20px;
    padding:40px;
    display:flex;
    gap:30px;
    align-items:flex-start;
    box-shadow:0 10px 35px rgba(0,0,0,.12);
}

.grocery-intro-card svg{
    width:70px;
    height:70px;
    color:#EF7D00;
    stroke:#EF7D00;
    flex-shrink:0;
      margin-top:20px;
}

.grocery-intro-card h2{
    color:#C2185B;
    font-size:2rem;
    margin-bottom:15px;
}

.grocery-intro-card p{
    color:#555;
    line-height:1.8;
}

.conditions-section,
.request-section,
.opening-hours-section,
.grocery-objective{
    padding:70px 20px;
}

.conditions-section,
.opening-hours-section{
    background:#faf7f9;
}

.conditions-grid{
    max-width:1200px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}

.condition-card{
    color:white;
    border-radius:20px;
    padding:35px;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.condition-card svg{
    width:60px;
    height:60px;
    display:block;
    margin:0 auto 25px;
    color:white;
    stroke:white;
}

.condition-card h3{
    font-size:1.5rem;
    margin-bottom:18px;
}

.condition-card p,
.condition-card li{
    line-height:1.7;
}

.condition-card ul{
    margin-top:15px;
    padding-left:20px;
}

.condition-card.teal{
    background:#078FA3;
}

.condition-card.yellow{
    background:#F0C300;
    color:#222;
}

.condition-card.yellow svg{
    color:#222;
    stroke:#222;
}

.condition-card.orange{
    background:#EF7D00;
}

.request-steps{
    max-width:1300px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:25px;
}

.request-step{
    background:white;
    border-radius:20px;
    padding:35px 25px;
    text-align:center;
    box-shadow:0 8px 25px rgba(0,0,0,.08);
    position:relative;
}

.request-step span{
    position:absolute;
    top:-18px;
    left:50%;
    transform:translateX(-50%);
    width:42px;
    height:42px;
    border-radius:50%;
    background:#C2185B;
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
}

.request-step svg{
    width:55px;
    height:55px;
    margin:20px 0;
    color:#EF7D00;
    stroke:#EF7D00;
}

.request-step h3{
    color:#078FA3;
    font-size:1.35rem;
    margin-bottom:15px;
}

.request-step p,
.request-step li{
    color:#555;
    line-height:1.6;
}

.request-step ul{
    text-align:left;
    margin-top:15px;
    padding-left:20px;
}

.hours-card{
    max-width:1000px;
    margin:auto;
    background:linear-gradient(135deg, #078FA3, #009688);
    color:white;
    border-radius:25px;
    padding:45px;
    display:flex;
    align-items:center;
    gap:35px;
    box-shadow:0 12px 35px rgba(0,0,0,.15);
}

.hours-icon svg{
    width:90px;
    height:90px;
    color:white;
    stroke:white;
}

.hours-content span{
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
}

.hours-content h2{
    font-size:2.2rem;
    margin:12px 0 18px;
}

.hours-content p{
    margin-bottom:20px;
    line-height:1.6;
}

.hours-content ul{
    list-style:none;
}

.hours-content li{
    margin-bottom:10px;
    font-size:1.1rem;
}

.objective-card{
    max-width:1000px;
    margin:auto;
    text-align:center;
    background:white;
    border-radius:25px;
    padding:45px;
    box-shadow:0 10px 35px rgba(0,0,0,.10);
}

.objective-card svg{
    width:75px;
    height:75px;
    color:#C2185B;
    stroke:#C2185B;
    margin-bottom:20px;
}

.objective-card h2{
    color:#078FA3;
    font-size:2rem;
    margin-bottom:20px;
}

.objective-card p{
    color:#555;
    line-height:1.8;
}

/* Responsive */
@media (max-width:1000px){
    .conditions-grid,
    .request-steps{
        grid-template-columns:repeat(2, 1fr);
    }

    .hours-card{
        flex-direction:column;
        text-align:center;
    }
}

@media (max-width:650px){
    .grocery-page{
        padding-top:160px;
    }

    .grocery-hero h1{
        font-size:2.2rem;
    }

    .grocery-intro-card{
        flex-direction:column;
        text-align:center;
    }

    .conditions-grid,
    .request-steps{
        grid-template-columns:1fr;
    }
}
@media (max-width:768px){

    .grocery-intro-card{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .grocery-intro-card svg{
        margin:0 auto 20px;
        display:block;
    }

}
/* =========================
   PAGE DROITS FEMMES FAMILLES
========================= */

.rights-page{
    padding-top:190px;
    background:#fff;
}

.rights-hero{
    min-height:360px;
    background:linear-gradient(135deg, #C2185B, #a10f4e);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.rights-hero-content{
    max-width:900px;
}

.rights-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    margin-bottom:15px;
    color:#F0C300;
}

.rights-hero h1{
    font-size:3.2rem;
    margin-bottom:20px;
}

.rights-hero p{
    font-size:1.2rem;
    line-height:1.6;
}

.rights-intro{
    max-width:1200px;
    margin:-50px auto 80px;
    padding:0 20px;
    position:relative;
    z-index:2;
}

.rights-intro-card{
    background:white;
    border-radius:20px;
    padding:40px;
    display:flex;
    gap:30px;
    align-items:flex-start;
    box-shadow:0 10px 35px rgba(0,0,0,.12);
}

.rights-intro-card svg{
    width:75px;
    height:75px;
    color:#C2185B;
    stroke:#C2185B;
    flex-shrink:0;
    margin-top: 80px;
}

.rights-intro-card h2{
    color:#078FA3;
    font-size:2rem;
    margin-bottom:18px;
}

.rights-intro-card p{
    color:#555;
    line-height:1.8;
    margin-bottom:15px;
}

.support-section,
.olympe-section,
.access-section{
    padding:70px 20px;
}

.support-section{
    background:#faf7f9;
}

.support-grid{
    max-width:1300px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:20px;
}

.support-card{
    color:white;
    border-radius:20px;
    padding:30px 22px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.support-card svg{
    width:62px;
    height:62px;
    margin-bottom:22px;
    color:white;
    stroke:white;
}

.support-card h3{
    font-size:1.3rem;
    margin-bottom:15px;
}

.support-card p{
    line-height:1.6;
}

.support-card.teal{ background:#078FA3; }
.support-card.orange{ background:#EF7D00; }
.support-card.pink{ background:#C2185B; }
.support-card.yellow{
    background:#F0C300;
    color:#222;
}
.support-card.yellow svg{
    color:#222;
    stroke:#222;
}
.support-card.blue{ background:#009688; }

.olympe-card{
    max-width:1200px;
    margin:auto;
    background:linear-gradient(135deg, #078FA3, #009688);
    color:white;
    border-radius:28px;
    padding:45px;
    box-shadow:0 12px 35px rgba(0,0,0,.15);
}

.olympe-content{
    text-align:center;
    max-width:850px;
    margin:0 auto 40px;
}

.olympe-content span{
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
}

.olympe-content h2{
    font-size:2.6rem;
    margin:15px 0;
}

.olympe-content p{
    line-height:1.7;
    font-size:1.1rem;
}

.olympe-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}

.olympe-item{
    background:white;
    color:#333;
    border-radius:20px;
    padding:30px;
    text-align:center;
}

.olympe-item svg{
    width:55px;
    height:55px;
    color:#C2185B;
    stroke:#C2185B;
    margin-bottom:18px;
}

.olympe-item h3{
    color:#078FA3;
    font-size:1.3rem;
    margin-bottom:15px;
}

.olympe-item p{
    color:#555;
    line-height:1.6;
}

.access-section{
    background:#faf7f9;
}

.access-card{
    max-width:1000px;
    margin:auto;
    background:white;
    border-radius:25px;
    padding:40px;
    display:flex;
    align-items:flex-start;
    gap:30px;
    box-shadow:0 10px 35px rgba(0,0,0,.10);
}

.access-card svg{
    width:70px;
    height:70px;
    color:#EF7D00;
    stroke:#EF7D00;
    flex-shrink:0;
}

.access-card h2{
    color:#C2185B;
    font-size:2rem;
    margin-bottom:15px;
}

.access-card p,
.access-card li{
    color:#555;
    line-height:1.7;
}

.access-card ul{
    margin-top:15px;
    padding-left:20px;
}

/* Responsive */
@media (max-width:1100px){
    .support-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .olympe-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:650px){
    .rights-page{
        padding-top:160px;
    }

    .rights-hero h1{
        font-size:2.2rem;
    }

    .rights-intro-card,
    .access-card{
        flex-direction:column;
        text-align:center;
    }

    .support-grid{
        grid-template-columns:1fr;
    }
}
.support-info {
    margin-top: 18px;
    font-weight: 800;
    background: rgba(255,255,255,.18);
    padding: 12px;
    border-radius: 12px;
}

.support-card.yellow .support-info {
    background: rgba(0,0,0,.08);
}
@media (max-width:768px){

    .rights-intro-card{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .rights-intro-card i,
    .rights-intro-card svg{
        display:block;
        margin:0 auto 20px;
    }

}
/* =========================
   PAGE PARTENAIRES
========================= */

.partners-page{
    padding-top:190px;
    background:#fff;
}

.partners-hero{
    min-height:360px;
    background:linear-gradient(135deg, #078FA3, #C2185B);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.partners-hero-content{
    max-width:900px;
}

.partners-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
    margin-bottom:15px;
}

.partners-hero h1{
    font-size:3.2rem;
    margin-bottom:20px;
}

.partners-hero p{
    font-size:1.2rem;
    line-height:1.6;
}

.partners-map{
    padding:80px 20px;
    background:#f8fbfd;
}

.partners-map-title{
    text-align:center;
    max-width:850px;
    margin:0 auto 60px;
}

.partners-map-title span{
    text-transform:uppercase;
    letter-spacing:3px;
    color:#078FA3;
    font-weight:800;
}

.partners-map-title h2{
    font-size:2.8rem;
    color:#C2185B;
    margin:15px 0;
}

.partners-map-title p{
    color:#555;
    line-height:1.7;
}

.partners-bubbles{
    max-width:1000px;
    margin:auto;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:30px;
    align-items:center;
}

.partner-bubble,
.partner-center{
    min-height:190px;
    border-radius:30px;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
    transition:.3s;
}

.partner-bubble:hover{
    transform:translateY(-8px) scale(1.03);
}

.partner-bubble svg{
    width:60px;
    height:60px;
    margin-bottom:15px;
}

.partner-bubble strong{
    font-size:1.4rem;
}

.partner-center{
    background:white;
    border:3px solid #111;
}

.partner-center img{
    width:95px;
    margin-bottom:15px;
}

.partner-center h3{
    color:#C2185B;
    font-size:1.5rem;
}

.partner-bubble.orange{
    background:#EF7D00;
    color:white;
}

.partner-bubble.yellow{
    background:#F0C300;
    color:#222;
}

.partner-bubble.blue{
    background:#7EC8E3;
    color:#222;
}

.partner-bubble.pink{
    background:#C2185B;
    color:white;
}

.partner-bubble.green{
    background:#78D64B;
    color:#222;
}

.partner-category{
    padding:80px 20px;
}

.partner-category.soft-bg{
    background:#faf7f9;
}

.partner-detail-grid{
    max-width:1300px;
    margin:40px auto 0;

    display:flex;
    flex-wrap:wrap;
    justify-content:center;

    gap:25px;
}

.partner-detail-card{
    width:400px;

    background:white;
    border-radius:20px;
    padding:35px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);

    text-align:center;
}

.partner-detail-card:hover{
    transform:translateY(-6px);
}

.partner-detail-card svg{
    width:55px;
    height:55px;

    display:block;
    margin:0 auto 22px;

    color:#078FA3;
    stroke:#078FA3;
}

.partner-detail-card h3{
    color:#C2185B;
    font-size:1.45rem;
    margin-bottom:15px;
}

.partner-detail-card p{
    color:#555;
    line-height:1.7;
}

.partner-tags{
    max-width:1100px;
    margin:40px auto 0;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:15px;
}

.partner-tags span{
    background:#7EC8E3;
    color:#222;
    padding:15px 22px;
    border-radius:999px;
    font-weight:800;
    box-shadow:0 6px 18px rgba(0,0,0,.08);
}

.green-tags span{
    background:#78D64B;
}

.partners-final{
    margin:0 auto 90px;
    max-width:1000px;
    background:linear-gradient(135deg, #078FA3, #C2185B);
    color:white;
    text-align:center;
    border-radius:28px;
    padding:55px 30px;
    box-shadow:0 12px 35px rgba(0,0,0,.15);
}

.partners-final h2{
    font-size:2.4rem;
    margin-bottom:20px;
}

.partners-final p{
    max-width:750px;
    margin:0 auto 30px;
    line-height:1.7;
}

.partners-final .btn{
    display:inline-block;
    background:#F0C300;
    color:#222;
    font-weight:800;
}

/* Responsive */
@media (max-width:1000px){
    .partners-bubbles,
    .partner-detail-grid{
        grid-template-columns:repeat(2, 1fr);
    }
}

@media (max-width:650px){
    .partners-page{
        padding-top:160px;
    }

    .partners-hero h1,
    .partners-map-title h2{
        font-size:2.2rem;
    }

    .partners-bubbles,
    .partner-detail-grid{
        grid-template-columns:1fr;
    }

    .partner-bubble,
    .partner-center{
        min-height:160px;
    }
}
.partner-logo{
    width:110px;
    height:70px;
    object-fit:contain;
    display:block;
    margin:0 auto 22px;
}
/* =========================
   ORBITE PARTENAIRES
========================= */

.partners-orbit {
    max-width: 1300px;
    min-height: 760px;
    margin: 60px auto 0;
    position: relative;
}



.orbit-center {
    position: absolute;
    top: 200px;
    left: 50%;
    transform: translateX(-50%);
    width: 310px;
    height: 310px;
    border-radius: 50%;
    background: white;
    border: 4px solid #C2185B;
    box-shadow: 0 12px 35px rgba(0,0,0,.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 30px;
    z-index: 3;
}

.orbit-center img {
    width: 95px;
    margin-bottom: 15px;
}

.orbit-center h3 {
    color: #C2185B;
    font-size: 1.8rem;
    margin-bottom: 10px;
}

.orbit-center p {
    color: #555;
    line-height: 1.5;
}

.orbit-card {
    position: absolute;
    width: 300px;
    min-height: 175px;
    border-radius: 22px;
    padding: 28px;
    text-decoration: none;
    text-align: center;
    box-shadow: 0 12px 35px rgba(0,0,0,.12);
    transition: .3s;
    z-index: 2;
}

.orbit-card:hover {
    transform: translateY(-8px) scale(1.03);
}

.orbit-card svg {
    width: 55px;
    height: 55px;
    margin-bottom: 12px;
}

.orbit-card h3 {
    font-size: 1.45rem;
    margin-bottom: 10px;
}

.orbit-card p {
    line-height: 1.5;
    font-size: .95rem;
}

/* Positionnement desktop */

.orbit-financeurs {
    top: 80px;
    left: 40px;
    background: #EF7D00;
    color: white;
}

.orbit-fournisseurs {
    top: 80px;
    right: 40px;
    background: #F0C300;
    color: #222;
}

.orbit-sociaux {
    top: 380px;
    left: 0;
    background: #7EC8E3;
    color: #222;
}

.orbit-prestataires {
    top: 380px;
    right: 0;
    background: #78D64B;
    color: #222;
}

.orbit-associatifs {
    bottom: -60px;
    left: 50%;
    transform: translateX(-50%);
    background: #C2185B;
    color: white;
}

.orbit-associatifs:hover {
    transform: translateX(-50%) translateY(-8px) scale(1.03);
}

/* =========================
   CONNEXIONS ORBITE PROPRES
   Version sans pointillés
========================= */

/* On supprime tous les traits */
.orbit-card::after{
    display:none;
}

/* Points communs */
.orbit-card::before{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    border-radius:50%;
    border:4px solid #f8fbfd;
    box-shadow:0 2px 10px rgba(0,0,0,.15);
    z-index:5;
}

/* Points colorés */
.orbit-financeurs::before{
    right:-115px;
    top:50%;
    transform:translateY(-50%);
    background:#EF7D00;
}

.orbit-fournisseurs::before{
    left:-115px;
    top:50%;
    transform:translateY(-50%);
    background:#F0C300;
}

.orbit-sociaux::before{
    right:-105px;
    top:50%;
    transform:translateY(-50%);
    background:#7EC8E3;
}

.orbit-prestataires::before{
    left:-105px;
    top:50%;
    transform:translateY(-50%);
    background:#78D64B;
}

/* Point associatif */
.orbit-associatifs::before{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#C2185B;
    border:4px solid #fff;
    box-shadow:0 2px 10px rgba(0,0,0,.15);
    top:-35px;
    left:50%;
    transform:translateX(-50%);
}

/* On neutralise l'ancien after associatif */
.orbit-associatifs::after{
    display:none;
}
@media (max-width: 650px) {

    .partners-orbit {
        min-height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 25px;
        padding: 30px 20px;
    }

    .orbit-center,
    .orbit-card,
    .orbit-associatifs {
        position: static;
        transform: none;
        width: 100%;
        max-width: 320px;
    }

    .orbit-center {
        order: 0;
        width: 260px;
        height: 260px;
        margin-bottom: 10px;
        padding: 30px 20px;
    }

    .orbit-financeurs { order: 1; }
    .orbit-fournisseurs { order: 2; }
    .orbit-sociaux { order: 3; }
    .orbit-prestataires { order: 4; }
    .orbit-associatifs { order: 5; }

    .orbit-card {
        min-height: auto;
        padding: 25px;
    }

    .orbit-card h3{
        font-size:1.4rem;
    }

    .orbit-center h3{
        font-size:1.8rem;
    }

    .orbit-card::before,
    .orbit-card::after,
    .orbit-associatifs::before,
    .orbit-associatifs::after{
        display:none;
    }

    .orbit-card:hover,
    .orbit-associatifs:hover{
        transform:translateY(-5px);
    }
}
@media (max-width:650px){
    .partner-detail-card{
        width:100%;
    }
}
/* =========================
   ORBITE PARTENAIRES ASSOCIATIFS
========================= */

.associative-orbit-section{
    padding:80px 20px;
    background:#faf7f9;
}

.associative-orbit{
    width:820px;
    height:820px;
    margin:60px auto 0;
    position:relative;
}

.associative-center{
    position:absolute;
    top:55%;
    left:57%;
    transform:translate(-50%, -50%);

    width:280px;
    height:280px;
    border-radius:50%;

    background:white;
    border:4px solid #C2185B;
    box-shadow:0 12px 35px rgba(0,0,0,.12);

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;

    padding:30px;
    z-index:2;
}

.associative-center svg{
    width:65px;
    height:65px;
    color:#C2185B;
    stroke:#C2185B;
    margin-bottom:15px;
}

.associative-center h3{
    color:#C2185B;
    font-size:1.7rem;
    margin-bottom:12px;
}

.associative-center p{
    color:#555;
    line-height:1.5;
}

.asso-logo{
    position:absolute;
    top:50%;
    left:50%;

    width:95px;
    height:95px;
    border-radius:50%;

    background:white;
    box-shadow:0 8px 25px rgba(0,0,0,.12);

    display:flex;
    align-items:center;
    justify-content:center;

    padding:14px;

    transform:
        rotate(calc(360deg / 14 * var(--i)))
        translate(355px)
        rotate(calc(-360deg / 14 * var(--i)));

    transition:.3s;
}

.asso-logo:hover{
    transform:
        rotate(calc(360deg / 14 * var(--i)))
        translate(355px)
        rotate(calc(-360deg / 14 * var(--i)))
        scale(1.08);
}

.asso-logo img{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    display:block;
}

/* Responsive */
@media (max-width:850px){

    .associative-orbit{
        width:100%;
        height:auto;

        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:20px;
    }

    .associative-center,
    .asso-logo{
        position:static;
        transform:none;
    }

    .associative-center{
        width:auto;
        height:auto;
        border-radius:25px;
        grid-column:1 / -1;
    }

    .asso-logo{
        width:100%;
        height:110px;
        border-radius:18px;
    }

    .asso-logo:hover{
        transform:translateY(-5px);
    }
}

@media (max-width:550px){

    .associative-orbit{
        grid-template-columns:repeat(2, 1fr);
    }
}
/* =========================
   PAGE ATELIERS
========================= */

.workshops-page{
    padding-top:190px;
    background:#fff;
}

.workshops-hero{
    min-height:360px;
    background:linear-gradient(135deg, #078FA3, #EF7D00);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.workshops-hero-content{
    max-width:900px;
}

.workshops-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
    margin-bottom:15px;
}

.workshops-hero h1{
    font-size:3.2rem;
    margin-bottom:20px;
}

.workshops-hero p{
    font-size:1.2rem;
    line-height:1.6;
}

.workshops-intro{
    max-width:1200px;
    margin:-50px auto 80px;
    padding:0 20px;
    position:relative;
    z-index:2;
}

.workshops-intro-card{
    background:white;
    border-radius:22px;
    padding:40px;
    display:flex;
    gap:30px;
    align-items:flex-start;
    box-shadow:0 10px 35px rgba(0,0,0,.12);
}

.workshops-intro-card svg{
    width:75px;
    height:75px;
    color:#EF7D00;
    stroke:#EF7D00;
    flex-shrink:0;
    margin-top: 40px;
}

.workshops-intro-card h2{
    color:#C2185B;
    font-size:2rem;
    margin-bottom:18px;
}

.workshops-intro-card p{
    color:#555;
    line-height:1.8;
    margin-bottom:15px;
}

.workshops-goals,
.workshops-list,
.workshops-final{
    padding:70px 20px;
}

.workshops-goals,
.workshops-final{
    background:#faf7f9;
}

.goals-grid{
    max-width:1300px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:20px;
}

.goal-card{
    color:white;
    border-radius:20px;
    padding:30px 22px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}

.goal-card svg{
    width:58px;
    height:58px;
    margin-bottom:20px;
    color:white;
    stroke:white;
}

.goal-card h3{
    font-size:1.25rem;
    margin-bottom:14px;
}

.goal-card p{
    line-height:1.6;
}

.goal-card.teal{ background:#078FA3; }
.goal-card.orange{ background:#EF7D00; }
.goal-card.pink{ background:#C2185B; }
.goal-card.yellow{
    background:#F0C300;
    color:#222;
}
.goal-card.yellow svg{
    color:white;
    stroke:white;
}
.goal-card.blue{ background:#009688; }

.workshops-grid{
    max-width:1300px;
    margin:40px auto 0;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}

.workshop-card{
    background:white;
    border-radius:22px;
    padding:35px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    border-top:8px solid currentColor;
    transition:.3s;
}

.workshop-card:hover{
    transform:translateY(-6px);
}

.workshop-card svg{
    width:60px;
    height:60px;
    display:block;
    margin:0 auto 22px;
    stroke:currentColor;
}

.workshop-card h3{
    font-size:1.5rem;
    margin-bottom:18px;
    text-align:center;
}

.workshop-card p,
.workshop-card li{
    color:#555;
    line-height:1.7;
}

.workshop-card p{
    margin-bottom:14px;
}

.workshop-card ul{
    padding-left:20px;
    margin-top:10px;
}

.workshop-card.teal{ color:#078FA3; }
.workshop-card.orange{ color:#EF7D00; }
.workshop-card.pink{ color:#C2185B; }
.workshop-card.yellow{ color:#F0C300; }
.workshop-card.blue{ color:#009688; }
.workshop-card.green{ color:#78D64B; }

.workshops-final-card{
    max-width:1000px;
    margin:auto;
    text-align:center;
    background:white;
    border-radius:28px;
    padding:45px;
    box-shadow:0 10px 35px rgba(0,0,0,.10);
}

.workshops-final-card svg{
    width:75px;
    height:75px;
    color:#C2185B;
    stroke:#C2185B;
    margin-bottom:20px;
}

.workshops-final-card h2{
    color:#078FA3;
    font-size:2rem;
    margin-bottom:20px;
}

.workshops-final-card p{
    color:#555;
    line-height:1.8;
    margin-bottom:15px;
}

/* Responsive */
@media (max-width:1100px){

    .goals-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .workshops-grid{
        grid-template-columns:repeat(2, 1fr);
    }
}

@media (max-width:650px){

    .workshops-page{
        padding-top:160px;
    }

    .workshops-hero h1{
        font-size:2.2rem;
    }

    .workshops-intro-card{
        flex-direction:column;
        text-align:center;
    }

    .goals-grid,
    .workshops-grid{
        grid-template-columns:1fr;
    }
}
@media (max-width:768px){

    .workshops-intro-card{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .workshops-intro-card i,
    .workshops-intro-card svg{
        display:block;
        margin:0 auto 20px;
    }

}
/* =========================
   PAGE CONTACT
========================= */

.contact-page{
    padding-top:190px;
    background:#fff;
}

.contact-hero{
    min-height:360px;
    background:linear-gradient(135deg, #078FA3, #C2185B);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.contact-hero-content{
    max-width:900px;
}

.contact-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
    margin-bottom:15px;
}

.contact-hero h1{
    font-size:3.2rem;
    margin-bottom:20px;
}

.contact-hero p{
    font-size:1.2rem;
    line-height:1.6;
}

.contact-info-section{
    max-width:1200px;
    margin:-50px auto 70px;
    padding:0 20px;
    position:relative;
    z-index:2;
}

.contact-info-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:25px;
}

.contact-info-card{
    color:white;
    border-radius:22px;
    padding:35px;
    text-align:center;
    box-shadow:0 10px 35px rgba(0,0,0,.12);
}

.contact-info-card svg{
    width:62px;
    height:62px;
    margin-bottom:22px;
    color:white;
    stroke:white;
}

.contact-info-card h3{
    font-size:1.5rem;
    margin-bottom:15px;
}

.contact-info-card p{
    line-height:1.7;
}

.contact-info-card.teal{ background:#078FA3; }
.contact-info-card.orange{ background:#EF7D00; }
.contact-info-card.pink{ background:#C2185B; }

.contact-hours-section{
    padding:70px 20px;
    background:#faf7f9;
}

.contact-hours-card{
    max-width:1000px;
    margin:auto;
    background:linear-gradient(135deg, #078FA3, #009688);
    color:white;
    border-radius:28px;
    padding:45px;
    display:flex;
    gap:35px;
    align-items:center;
    box-shadow:0 12px 35px rgba(0,0,0,.15);
}

.contact-hours-icon svg{
    width:90px;
    height:90px;
    color:white;
    stroke:white;
}

.contact-hours-content span{
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
}

.contact-hours-content h2{
    font-size:2.3rem;
    margin:12px 0 18px;
}

.contact-hours-content p{
    line-height:1.6;
    margin-bottom:20px;
}

.contact-hours-content ul{
    list-style:none;
}

.contact-hours-content li{
    margin-bottom:10px;
    font-size:1.1rem;
}

.contact-main-section{
    max-width:1300px;
    margin:auto;
    padding:80px 20px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:35px;
}

.contact-map-card,
.contact-form-card{
    background:white;
    border-radius:28px;
    padding:35px;
    box-shadow:0 10px 35px rgba(0,0,0,.10);
}

.map-wrapper{
    width:100%;
    height:430px;
    border-radius:22px;
    overflow:hidden;
}

.map-wrapper iframe{
    width:100%;
    height:100%;
    border:0;
}

.contact-form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.form-group{
    display:flex;
    flex-direction:column;
}

.form-group.full{
    grid-column:1 / -1;
}

.form-group label{
    font-weight:800;
    color:#333;
    margin-bottom:8px;
}

.form-group input,
.form-group textarea{
    width:100%;
    border:1px solid #ddd;
    border-radius:14px;
    padding:14px 16px;
    font-family:inherit;
    font-size:1rem;
    outline:none;
    transition:.2s;
}

.form-group input:focus,
.form-group textarea:focus{
    border-color:#078FA3;
    box-shadow:0 0 0 3px rgba(7,143,163,.12);
}

.form-btn{
    grid-column:1 / -1;
    border:none;
    border-radius:999px;
    background:#EF7D00;
    color:white;
    padding:16px 28px;
    font-weight:800;
    font-size:1rem;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    transition:.3s;
}

.form-btn:hover{
    background:#C2185B;
    transform:translateY(-3px);
}

.form-btn svg{
    width:20px;
    height:20px;
    color:white;
    stroke:white;
}

.contact-note-section{
    padding:0 20px 90px;
}

.contact-note-card{
    max-width:1000px;
    margin:auto;
    background:white;
    border-left:8px solid #F0C300;
    border-radius:22px;
    padding:35px;
    display:flex;
    gap:25px;
    align-items:flex-start;
    box-shadow:0 10px 35px rgba(0,0,0,.10);
}

.contact-note-card svg{
    width:60px;
    height:60px;
    color:#F0C300;
    stroke:#F0C300;
    flex-shrink:0;
}

.contact-note-card h2{
    color:#C2185B;
    font-size:1.8rem;
    margin-bottom:12px;
}

.contact-note-card p{
    color:#555;
    line-height:1.7;
}

/* Responsive */
@media (max-width:1000px){

    .contact-info-grid,
    .contact-main-section{
        grid-template-columns:1fr;
    }

    .contact-hours-card{
        flex-direction:column;
        text-align:center;
    }
}

@media (max-width:650px){

    .contact-page{
        padding-top:160px;
    }

    .contact-hero h1{
        font-size:2.2rem;
    }

    .contact-form{
        grid-template-columns:1fr;
    }

    .contact-note-card{
        flex-direction:column;
        text-align:center;
    }

    .map-wrapper{
        height:320px;
    }
}
/* =========================
   FOOTER PAGES INTERNES
========================= */

.footer-light{

    background:linear-gradient(
        135deg,
        #a10f4e,
        #c21c5f
    );

    color:white;

    border-top:4px solid #F0C300;
}

.footer-light .footer-container{

    max-width:1300px;
    margin:auto;

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    gap:80px;

    padding:55px 30px 35px;
}

.footer-about{

    max-width:350px;
}

.footer-logo{

   

    margin-bottom:20px;
}

.footer-col h3{

    font-size:1rem;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:20px;
}

.footer-col ul{

    list-style:none;
}

.footer-col li{

    margin-bottom:12px;

    line-height:1.6;
}

.footer-col a{

    color:white;

    text-decoration:none;
white-space:nowrap;
    transition:.3s;
}

.footer-col a:hover{

    color:#F0C300;
}

.footer-about p{

    line-height:1.8;
}

.footer-hours li{

    margin-bottom:18px;
}

.social-links{

    display:flex;

    gap:15px;

    margin-top:25px;
}

.social-links a{

    width:42px;
    height:42px;

    border:2px solid rgba(255,255,255,.8);

    border-radius:50%;

    display:flex;

    align-items:center;
    justify-content:center;

    color:white;

    transition:.3s;
}

.social-links a:hover{

    background:white;

    color:#C2185B;
}

.social-links svg{

    width:18px;
    height:18px;
}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.15);

    text-align:center;

    padding:18px;

    font-size:.9rem;
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:900px){

    .footer-light .footer-container{

        flex-direction:column;

        gap:40px;
    }

    .footer-about{

        max-width:100%;
    }
}
/* =========================
   FOOTER LEGAL
========================= */

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.15);

    margin-top:30px;

    padding:25px 20px;

    text-align:center;
}

.footer-legal{

    display:flex;
    justify-content:center;
    flex-wrap:wrap;

    gap:25px;

    margin-bottom:15px;
}

.footer-legal a{

    color:white;

    text-decoration:none;

    font-size:.95rem;

    transition:.3s;
}

.footer-legal a:hover{

    color:#F0C300;
}

.footer-bottom p{

    margin:0;

    opacity:.85;

    font-size:.9rem;
}

@media(max-width:768px){

    .footer-legal{

        flex-direction:column;
        gap:12px;
    }
}
/* =========================
   PAGES LEGALES
========================= */

.legal-page{
    padding-top:190px;
    background:#fff;
}

.legal-hero{
    min-height:320px;
    background:linear-gradient(135deg, #078FA3, #C2185B);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.legal-hero.privacy{
    background:linear-gradient(135deg, #C2185B, #a10f4e);
}

.legal-hero.cookies{
    background:linear-gradient(135deg, #EF7D00, #F0C300);
}

.legal-hero-content{
    max-width:900px;
}

.legal-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
    margin-bottom:15px;
}

.legal-hero.cookies span{
    color:#fff;
}

.legal-hero h1{
    font-size:3rem;
    margin-bottom:20px;
}

.legal-hero p{
    font-size:1.15rem;
    line-height:1.6;
}

.legal-content{
    max-width:1100px;
    margin:70px auto;
    padding:0 20px;
    display:grid;
    grid-template-columns:1fr;
    gap:25px;
}

.legal-card{
    background:white;
    border-radius:22px;
    padding:35px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    border-left:7px solid #078FA3;
}

.legal-card h2{
    color:#C2185B;
    font-size:1.8rem;
    margin-bottom:18px;
}

.legal-card p,
.legal-card li{
    color:#555;
    line-height:1.8;
}

.legal-card ul{
    padding-left:22px;
    margin-top:10px;
}

@media(max-width:650px){
    .legal-page{
        padding-top:160px;
    }

    .legal-hero h1{
        font-size:2.2rem;
    }

    .legal-card{
        padding:25px;
    }
}
/* =========================
   PAGE 404
========================= */

.error404{

    min-height:100vh;

    background:
    linear-gradient(
        135deg,
        #078FA3,
        #C2185B
    );

    display:flex;

    align-items:center;
    justify-content:center;

    padding:30px;
}

.error404-card{

    background:white;

    max-width:650px;

    width:100%;

    text-align:center;

    padding:60px 40px;

    border-radius:30px;

    box-shadow:0 15px 40px rgba(0,0,0,.15);
}

.error404-card img{

    width:120px;

    margin-bottom:25px;
}

.error404-card svg{

    width:90px;
    height:90px;

    color:#C2185B;
    stroke:#C2185B;

    margin-bottom:20px;
}

.error404-card h1{

    font-size:4rem;

    color:#C2185B;

    margin-bottom:10px;
}

.error404-card h2{

    font-size:2rem;

    margin-bottom:20px;

    color:#222;
}

.error404-card p{

    color:#555;

    line-height:1.8;

    margin-bottom:35px;
}

.error-btn{

    display:inline-block;

    background:#EF7D00;

    color:white;

    text-decoration:none;

    font-weight:700;

    padding:15px 35px;

    border-radius:999px;

    transition:.3s;
}

.error-btn:hover{

    transform:translateY(-3px);

    background:#d96d00;
}
/* =========================
   BANDEAU COOKIES
========================= */

.cookie-banner{

    position:fixed;

    bottom:20px;
    left:20px;
    right:20px;

    z-index:9999;

    background:white;

    border-radius:20px;

    box-shadow:0 10px 35px rgba(0,0,0,.15);

    padding:25px;
}

.cookie-content{

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
}

.cookie-text h3{

    color:#C2185B;
    margin-bottom:10px;
}

.cookie-text p{

    color:#555;
    line-height:1.6;
}

.cookie-actions{

    display:flex;
    align-items:center;
    gap:15px;
}

.cookie-btn{

    border:none;
    cursor:pointer;

    padding:12px 22px;

    border-radius:999px;

    font-weight:700;

    transition:.3s;
}

.cookie-btn.accept{

    background:#C2185B;
    color:white;
}

.cookie-btn.reject{

    background:#f3f3f3;
    color:#333;
}

.cookie-btn:hover{

    transform:translateY(-2px);
}

.cookie-actions a{

    color:#078FA3;
    font-weight:700;
    text-decoration:none;
}

@media(max-width:768px){

    .cookie-content{

        flex-direction:column;
        align-items:flex-start;
    }

    .cookie-actions{

        width:100%;
        flex-wrap:wrap;
    }
}
/* =========================
   BANDEAU COOKIES
========================= */

.cookie-banner{

    position:fixed;

    bottom:20px;
    left:20px;
    right:20px;

    z-index:9999;

    background:white;

    border-radius:20px;

    box-shadow:0 10px 35px rgba(0,0,0,.15);

    padding:25px;
}

.cookie-content{

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
}

.cookie-text h3{

    color:#C2185B;
    margin-bottom:10px;
}

.cookie-text p{

    color:#555;
    line-height:1.6;
}

.cookie-actions{

    display:flex;
    align-items:center;
    gap:15px;
}

.cookie-btn{

    border:none;
    cursor:pointer;

    padding:12px 22px;

    border-radius:999px;

    font-weight:700;

    transition:.3s;
}

.cookie-btn.accept{

    background:#C2185B;
    color:white;
}

.cookie-btn.reject{

    background:#f3f3f3;
    color:#333;
}

.cookie-btn:hover{

    transform:translateY(-2px);
}

.cookie-actions a{

    color:#078FA3;
    font-weight:700;
    text-decoration:none;
}

@media(max-width:768px){

    .cookie-content{

        flex-direction:column;
        align-items:flex-start;
    }

    .cookie-actions{

        width:100%;
        flex-wrap:wrap;
    }
}
/* =========================
   PAGE ACTUALITÉS
========================= */

.news-page{
    padding-top:190px;
    background:#faf7f9;
}

.news-page-hero{
    min-height:330px;
    background:linear-gradient(135deg, #078FA3, #C2185B);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:80px 20px;
}

.news-page-hero-content{
    max-width:900px;
}

.news-page-hero-content span{
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:800;
    color:#F0C300;
    margin-bottom:15px;
}

.news-page-hero h1{
    font-size:3rem;
    margin-bottom:20px;
}

.news-page-hero p{
    font-size:1.15rem;
    line-height:1.6;
}

.news-preview-section{
    max-width:1100px;
    margin:-50px auto 90px;
    padding:0 20px;
    position:relative;
    z-index:2;
}

.news-preview-card{
    background:white;
    border-radius:25px;
    padding:40px;
    position:relative;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    cursor:pointer;
    transition:.3s;
    margin-bottom:30px;
    overflow:hidden;
}

.news-preview-card::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:8px;
    background:#078FA3;
}

.news-preview-card:hover{
    transform:translateY(-5px);
    box-shadow:0 14px 35px rgba(0,0,0,.12);
}

.news-tag{
    display:inline-block;
    background:#faf7f9;
    color:#C2185B;
    padding:8px 14px;
    border-radius:999px;
    font-size:.85rem;
    font-weight:800;
    margin-bottom:15px;
}

.news-preview-card h2{
    color:#C2185B;
    font-size:2rem;
    margin-bottom:18px;
}

.news-preview-card p{
    color:#555;
    line-height:1.8;
}

.news-read-more{
    margin-top:25px;
    color:#078FA3;
    font-weight:800;
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.news-read-more svg{
    width:18px;
    height:18px;
}

/* =========================
   MODALE ARTICLE
========================= */

.article-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    z-index:10000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:25px;
}

.article-modal.active{
    display:flex;
}

.article-modal-content{
    background:white;
    width:100%;
    max-width:850px;
    max-height:90vh;
    overflow-y:auto;
    border-radius:28px;
    padding:45px;
    position:relative;
    box-shadow:0 15px 45px rgba(0,0,0,.25);
}

.close-article{
    position:absolute;
    top:20px;
    right:20px;
    width:42px;
    height:42px;
    border:none;
    border-radius:50%;
    background:#C2185B;
    color:white;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}

.close-article svg{
    width:22px;
    height:22px;
}

.article-tag{
    display:inline-block;
    background:#faf7f9;
    color:#C2185B;
    font-weight:800;
    border-radius:999px;
    padding:8px 16px;
    margin-bottom:20px;
}

.article-modal-content h2{
    color:#078FA3;
    font-size:2.4rem;
    margin-bottom:20px;
    padding-right:45px;
}

.article-lead{
    font-size:1.2rem;
    color:#C2185B;
    font-weight:700;
    line-height:1.8;
}

.article-modal-content h3{
    color:#C2185B;
    margin:30px 0 15px;
}

.article-modal-content p,
.article-modal-content li{
    color:#555;
    line-height:1.8;
}

.article-modal-content ul{
    padding-left:22px;
    margin-top:15px;
}

.article-highlight{
    margin-top:30px;
    padding:25px;
    background:#faf7f9;
    border-left:6px solid #F0C300;
    border-radius:18px;
}

/* Responsive */

@media(max-width:800px){

    .news-page{
        padding-top:160px;
    }

    .news-page-hero h1{
        font-size:2.2rem;
    }

    .news-preview-card{
        padding:30px 25px;
    }

    .news-preview-card h2{
        font-size:1.6rem;
    }

    .article-modal-content{
        padding:35px 25px;
    }

    .article-modal-content h2{
        font-size:1.8rem;
    }
}