/* ============================================================
   styles.css — Formassura
   Feuille de style partagée par toutes les pages du site.
   Mise en cache navigateur 1 an (voir .htaccess) : un seul fichier
   à charger sur toutes les pages, au lieu de dupliquer le CSS.
   ============================================================ */

*{box-sizing:border-box;}
    h1,h2,h3{font-family:'Cormorant Garamond',serif;margin:0;color:var(--ink);}
    a{text-decoration:none;color:inherit;}
    img{max-width:100%;display:block;}
    .container{max-width:1180px;margin:0 auto;padding:0 24px;}
    .section{padding:72px 24px;}
    .section-title{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;}
    .section-title em{color:var(--primary);font-style:normal;}
    .section-desc{color:var(--muted);font-size:16px;line-height:1.6;max-width:680px;}
    .eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);display:flex;align-items:center;gap:8px;margin-bottom:14px;}
    .eyebrow span.bar{width:20px;height:2px;background:var(--primary);border-radius:2px;display:inline-block;}

    /* Header / Nav */
    header#site-header{position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(10,31,26,.06);transition:box-shadow .2s;}
    header#site-header.scrolled{box-shadow:0 4px 24px rgba(10,31,26,.08);}
    .header-inner{max-width:1180px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between;}
    .logo{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:24px;color:var(--dark);display:flex;align-items:center;gap:8px;}
    .logo span{color:var(--primary);}
    nav{display:flex;align-items:center;gap:28px;}
    .dropdown{position:relative;}
    .dropdown-trigger{font-size:14.5px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:4px;padding:26px 0;}
    .dropdown-chevron{font-size:11px;transition:transform .2s;}
    .dropdown-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;border-radius:14px;box-shadow:0 16px 40px rgba(10,31,26,.14);padding:10px;opacity:0;visibility:hidden;transform:translate(-50%,6px);transition:.18s;min-width:230px;}
    .dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%,0);}
    .dropdown-menu a{display:block;padding:10px 12px;border-radius:8px;font-size:14px;color:var(--ink);}
    .dropdown-menu a:hover{background:var(--primary-light);color:var(--primary-dark);}
    .dd-divider{height:1px;background:rgba(10,31,26,.08);margin:6px 0;}
    .nav-cta{background:var(--primary);color:#fff !important;padding:11px 20px;border-radius:100px;font-weight:600;font-size:14px;white-space:nowrap;}
    .nav-cta:hover{background:var(--primary-dark);}
    .hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
    .hamburger span{width:22px;height:2px;background:var(--dark);border-radius:2px;}
    .mobile-menu{display:none;flex-direction:column;background:#fff;padding:16px 24px;border-top:1px solid rgba(10,31,26,.08);}
    .mobile-menu.open{display:flex;}
    .mobile-menu a{padding:12px 0;border-bottom:1px solid rgba(10,31,26,.06);font-weight:600;font-size:15px;}
    .mob-cta{color:var(--primary) !important;}

    /* Hero */
    .hero{position:relative;display:flex;align-items:center;padding:60px 24px;overflow:hidden;background:linear-gradient(160deg,#f4fbf8 0%,#fff 55%);}
    .hero-content{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;width:100%;}
    .hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--primary-light);color:var(--primary-dark);font-weight:700;font-size:13px;padding:9px 16px;border-radius:100px;margin-bottom:22px;}
    .hero-text h1{font-size:clamp(2.1rem,4.2vw,3.4rem);line-height:1.1;font-weight:700;}
    .hero-text h1 em{color:var(--primary);font-style:normal;}
    .hero-sub{font-size:17px;line-height:1.65;color:var(--muted);margin:22px 0;}
    .hero-cci{background:var(--primary-light);color:var(--primary-dark);font-weight:600;font-size:14px;padding:12px 16px;border-radius:10px;margin-bottom:26px;}
    .hero-actions{display:flex;flex-wrap:wrap;gap:14px;}
    .btn-primary{background:var(--primary);color:#fff;padding:15px 26px;border-radius:100px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 10px 26px rgba(14,159,110,.28);}
    .btn-primary:hover{background:var(--primary-dark);}
    .btn-outline{background:transparent;color:var(--primary-dark);border:1.5px solid var(--primary);padding:14px 24px;border-radius:100px;font-weight:600;font-size:15px;}
    .hero-image{position:relative;}
    .hero-visual{aspect-ratio:600/450;width:100%;border-radius:24px;object-fit:cover;box-shadow:0 30px 60px rgba(10,31,26,.22);}
    .hero-float-card,.hero-float-card2{position:absolute;background:#fff;border-radius:14px;padding:14px 18px;box-shadow:0 14px 30px rgba(10,31,26,.14);}
    .hero-float-card{top:-16px;left:-16px;}
    .hero-float-card2{bottom:24px;right:-20px;}
    .hero-float-card .number,.hero-float-card2 .number{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:26px;color:var(--primary);line-height:1;}
    .hero-float-card .label,.hero-float-card2 .label{font-size:12px;color:var(--muted);margin-top:2px;}
    .hero-reviews-badge{position:absolute;bottom:-18px;left:40px;background:#fff;border-radius:14px;padding:10px 16px;box-shadow:0 14px 30px rgba(10,31,26,.14);display:flex;align-items:center;gap:8px;}
    .rev-stars{color:var(--accent);font-size:13px;}
    .rev-score{font-weight:800;font-size:16px;}
    .rev-label{font-size:11px;font-weight:700;color:var(--ink);}
    .rev-sub{font-size:10px;color:var(--muted);}

    /* Certifications */
    .cert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;}
    .cert-card{background:#fff;border-radius:16px;padding:26px;text-align:center;box-shadow:0 6px 20px rgba(10,31,26,.06);}
    .cert-icon{font-size:34px;margin-bottom:10px;}
    .cert-card h4{font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;margin-bottom:6px;}
    .cert-card p{font-size:13px;color:var(--muted);margin:0;}

    /* Catalogue Tabs */
    .ch-tabs-outer{display:flex;gap:10px;flex-wrap:wrap;margin:36px 0;border-bottom:1px solid rgba(10,31,26,.1);padding-bottom:2px;}
    .ch-tab{background:none;border:none;padding:10px 4px;margin-right:22px;font-weight:600;font-size:14.5px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;}
    .ch-tab:hover{color:var(--primary);}
    .ch-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
    .ch-panel{display:none;}
    .ch-panel.active{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
    .course-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 6px 20px rgba(10,31,26,.06);display:flex;flex-direction:column;gap:10px;}
    .course-icon{width:42px;height:42px;border-radius:12px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:20px;}
    .course-card h3{font-size:17px;font-weight:700;line-height:1.3;}
    .course-card h3 a{color:var(--ink);}
    .course-card h3 a:hover{color:var(--primary);}
    .course-meta{font-size:12.5px;color:var(--muted);}

    /* Packs */
    .packs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px;}
    .pack-card{border-radius:20px;padding:30px;background:#fff;box-shadow:0 6px 20px rgba(10,31,26,.06);position:relative;}
    .pack-card.featured{background:var(--dark);color:#fff;transform:scale(1.03);}
    .pack-card.featured .course-meta,.pack-card.featured p{color:rgba(255,255,255,.7);}
    .pack-badge{position:absolute;top:20px;right:20px;background:var(--primary);border-radius:12px;padding:6px 12px;font-size:11px;font-weight:700;color:#fff;}
    .pack-price{font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:700;color:var(--primary);margin:14px 0;}
    .pack-card.featured .pack-price{color:var(--accent);}
    .pack-list{list-style:none;padding:0;margin:18px 0;font-size:14px;}
    .pack-list li{padding:6px 0;display:flex;gap:8px;}

    /* Dark financement section */
    .financement-section{background:linear-gradient(160deg,#0a2a20 0%,var(--dark) 45%,#0a1a16 100%);color:#fff;padding:72px 24px;}
    .financement-section .section-desc{color:rgba(255,255,255,.7);}
    .fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:20px;}
    .fin-check{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
    .fin-check .dot{width:32px;height:32px;border-radius:10px;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}

    /* FAQ */
    .faq-item{border-bottom:1px solid rgba(10,31,26,.1);}
    .faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 0;font-size:16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;cursor:pointer;color:var(--ink);}
    .faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;color:var(--muted);font-size:14.5px;line-height:1.6;}
    .faq-item.open .faq-a{max-height:400px;padding-bottom:20px;}
    .faq-item.open .faq-q .chev{transform:rotate(180deg);}
    .faq-q .chev{transition:transform .2s;color:var(--primary);}

    /* Footer */
    footer{background:var(--dark);color:rgba(255,255,255,.8);padding:60px 24px 24px;}
    .footer-inner{max-width:1180px;margin:0 auto;}
    .footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;}
    .footer-brand p{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.55);margin-top:14px;}
    footer h3{color:#fff;font-size:14px;font-family:'Outfit',sans-serif;font-weight:700;margin-bottom:14px;}
    footer .footer-col a{display:block;padding:5px 0;font-size:13.5px;color:rgba(255,255,255,.6);}
    footer .footer-col a:hover{color:var(--primary);}
    .footer-bottom{margin-top:40px;padding-top:20px;padding-bottom:70px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-size:12.5px;color:rgba(255,255,255,.45);flex-wrap:wrap;gap:10px;}

    .float-call{position:fixed;bottom:22px;right:22px;background:var(--dark);color:#fff;padding:14px 20px;border-radius:100px;font-weight:600;font-size:13.5px;box-shadow:0 14px 34px rgba(10,31,26,.3);z-index:90;display:flex;align-items:center;gap:8px;}
    .float-call-dot{width:8px;height:8px;background:var(--primary);border-radius:50%;}

    [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
    [data-reveal].revealed{opacity:1;transform:none;}

    @media (max-width:900px){
      nav{position:fixed;visibility:hidden;}
      .hamburger{display:flex;}
      .hero-content{grid-template-columns:1fr;}
      .cert-grid,.ch-panel.active,.packs-grid,.fin-grid,.footer-grid{grid-template-columns:1fr;}
      .pack-card.featured{transform:none;}
    }

    /* ================================================================
       PAGES SECONDAIRES : mentions légales, CGV, confidentialité,
       à propos, blog & articles — classes partagées
       ================================================================ */

    /* --- Bannière de page (hero simple, texte) --- */
    .page-hero{background:var(--dark);padding:150px 24px 60px;text-align:center;position:relative;overflow:hidden;}
    .page-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 25% 30%,rgba(14,159,110,.35) 0%,transparent 65%),radial-gradient(ellipse 50% 60% at 80% 70%,rgba(245,185,66,.12) 0%,transparent 60%);}
    .page-hero>*{position:relative;z-index:1;}
    .page-hero .eyebrow{justify-content:center;color:var(--accent);}
    .page-hero h1{font-size:clamp(2.1rem,4vw,3rem);font-weight:700;color:#fff;margin-bottom:10px;}
    .page-hero p{color:rgba(255,255,255,.65);font-size:14px;max-width:620px;margin:0 auto;}
    .page-hero .breadcrumb{font-size:12.5px;color:rgba(255,255,255,.45);margin-bottom:18px;}
    .page-hero .breadcrumb a{color:rgba(255,255,255,.7);}
    .page-hero .breadcrumb a:hover{color:var(--primary);}

    /* --- Contenu légal (mentions, CGV, confidentialité) --- */
    .content{max-width:820px;margin:0 auto;padding:60px 24px 100px;}
    .content h2{font-size:1.5rem;font-weight:700;margin:40px 0 14px;padding-bottom:10px;border-bottom:2px solid var(--primary-light);}
    .content h2:first-of-type{margin-top:0;}
    .content h3{font-size:1.05rem;font-weight:700;margin:20px 0 9px;}
    .content p{color:var(--muted);line-height:1.8;margin-bottom:13px;font-size:15px;}
    .content ul{color:var(--muted);line-height:1.8;margin:9px 0 13px 20px;font-size:15px;}
    .content ul li{margin-bottom:5px;}
    .content strong{color:var(--ink);font-weight:600;}
    .content a{color:var(--primary);text-decoration:underline;}
    .info-box{background:var(--primary-light);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;padding:18px 22px;margin:20px 0;}
    .info-box p{margin:0;color:var(--ink);}
    .content table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px;}
    .content th{background:var(--primary);color:#fff;padding:12px 14px;text-align:left;font-weight:600;}
    .content td{padding:12px 14px;border-bottom:1px solid rgba(10,31,26,.08);color:var(--muted);}
    .content tr:hover td{background:var(--primary-light);}

    /* --- FAQ en <details> (pages à propos / articles) --- */
    details.faq-item{border-bottom:1px solid rgba(10,31,26,.1);padding:4px 0;}
    details.faq-item summary{list-style:none;cursor:pointer;padding:18px 0;font-weight:700;font-size:15.5px;display:flex;justify-content:space-between;align-items:center;}
    details.faq-item summary::-webkit-details-marker{display:none;}
    details.faq-item summary .faq-icon::before{content:'+';font-size:20px;color:var(--primary);font-weight:400;}
    details.faq-item[open] summary .faq-icon::before{content:'−';}
    details.faq-item p{color:var(--muted);font-size:14.5px;line-height:1.6;padding-bottom:18px;margin:0;}

    /* --- Tags / pills expertise (à propos) --- */
    .expertise-grid{display:flex;flex-wrap:wrap;gap:10px;}
    .expertise-tag{background:#fff;border:1px solid rgba(10,31,26,.08);color:var(--ink);font-size:13.5px;font-weight:600;padding:9px 16px;border-radius:100px;box-shadow:0 4px 14px rgba(10,31,26,.04);}
    .expertise-tag:hover{border-color:var(--primary);color:var(--primary-dark);}

    /* --- Carte auteur (à propos) --- */
    .author-card{display:flex;gap:28px;flex-wrap:wrap;background:#fff;border-radius:20px;padding:32px;box-shadow:0 6px 24px rgba(10,31,26,.06);}
    .author-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0;}
    .author-mini-stat{background:var(--primary-light);border-radius:14px;padding:14px 10px;text-align:center;}
    .ams-num{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:700;color:var(--primary-dark);}
    .ams-label{font-size:10.5px;color:var(--muted);line-height:1.3;margin-top:2px;}
    .author-chips{display:flex;flex-wrap:wrap;gap:8px;}
    .author-chip{background:var(--primary-light);color:var(--primary-dark);font-size:12px;font-weight:700;padding:6px 12px;border-radius:100px;}
    .credential-badge{background:var(--dark);color:#fff;font-size:10px;font-weight:700;padding:5px 10px;border-radius:100px;text-align:center;}

    /* --- Checks mission --- */
    .mission-checks{display:flex;flex-direction:column;gap:12px;margin:20px 0;}
    .check-item{display:flex;align-items:flex-start;gap:12px;}
    .check-icon{width:22px;height:22px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}
    .check-icon svg{width:11px;height:11px;}
    .check-item p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0;}

    /* --- Blog : liste d'articles --- */
    .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
    .article-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 6px 20px rgba(10,31,26,.06);display:flex;flex-direction:column;}
    .article-card-img{aspect-ratio:16/9;background:linear-gradient(155deg,var(--primary) 0%,var(--dark) 100%);display:flex;align-items:center;justify-content:center;font-size:40px;}
    .article-card-body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1;}
    .article-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);}
    .article-card h3{font-size:17px;font-weight:700;line-height:1.3;}
    .article-card h3 a{color:var(--ink);}
    .article-card h3 a:hover{color:var(--primary);}
    .article-card p{font-size:13.5px;color:var(--muted);line-height:1.5;flex:1;}
    .article-meta{font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:center;}

    /* --- Article : contenu long-form --- */
    .article-content{max-width:760px;margin:0 auto;padding:60px 24px 100px;}
    .article-content h2{font-size:1.6rem;font-weight:700;margin:40px 0 14px;}
    .article-content h3{font-size:1.2rem;font-weight:700;margin:26px 0 10px;}
    .article-content p{color:var(--muted);line-height:1.85;margin-bottom:15px;font-size:15.5px;}
    .article-content ul{color:var(--muted);line-height:1.85;margin:10px 0 15px 20px;font-size:15.5px;}
    .article-content ul li{margin-bottom:6px;}
    .article-content strong{color:var(--ink);}
    .article-content a{color:var(--primary);text-decoration:underline;}
    .article-content blockquote{border-left:3px solid var(--primary);background:var(--primary-light);padding:16px 22px;border-radius:0 10px 10px 0;margin:22px 0;font-style:italic;color:var(--ink);}
    .article-byline{display:flex;align-items:center;gap:12px;padding:20px 0;border-bottom:1px solid rgba(10,31,26,.08);margin-bottom:30px;}
    .article-byline img{width:44px;height:44px;border-radius:50%;}
    .article-byline .name{font-weight:700;font-size:14px;}
    .article-byline .meta{font-size:12.5px;color:var(--muted);}
    .article-toc{background:#f8faf9;border-radius:14px;padding:20px 24px;margin:24px 0;}
    .article-toc-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:10px;}
    .article-toc ul{margin:0;padding:0;list-style:none;}
    .article-toc li{margin-bottom:6px;}
    .article-toc a{color:var(--ink);font-size:14px;text-decoration:none;font-weight:500;}
    .article-toc a:hover{color:var(--primary);}

    /* ================================================================
       FORMULAIRE DE CONTACT (Formspree)
       ================================================================ */
    .contact-section{background:#f8faf9;}
    .contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:44px;align-items:start;}
    .contact-info-side p{color:var(--muted);font-size:15px;line-height:1.7;margin:14px 0 20px;}
    .contact-photo{border-radius:16px;overflow:hidden;margin-bottom:20px;position:relative;box-shadow:0 10px 26px rgba(10,31,26,.08);}
    .contact-photo img{width:100%;height:200px;object-fit:cover;display:block;}
    .contact-photo-caption{position:absolute;bottom:0;left:0;right:0;padding:14px 18px;background:linear-gradient(to top,rgba(10,31,26,.75),transparent);color:#fff;font-size:13px;font-weight:600;}
    .contact-features{display:flex;flex-direction:column;gap:16px;margin-top:24px;}
    .contact-feature{display:flex;align-items:flex-start;gap:14px;}
    .contact-feature-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
    .contact-feature-text strong{display:block;font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:2px;}
    .contact-feature-text span{font-size:13px;color:var(--muted);}

    .contact-form-side{background:#fff;border-radius:22px;padding:36px;box-shadow:0 14px 40px rgba(10,31,26,.08);}
    .form-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:700;color:var(--ink);}
    .form-subtitle{font-size:13.5px;color:var(--muted);margin:6px 0 22px;}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
    .form-group{margin-bottom:16px;}
    .form-group label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;}
    .form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border:1.5px solid rgba(10,31,26,.12);border-radius:10px;font-family:'Outfit',sans-serif;font-size:14.5px;color:var(--ink);background:#fff;transition:border-color .15s;}
    .form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);}
    .form-group textarea{resize:vertical;min-height:90px;}
    .btn-submit{width:100%;background:var(--primary);color:#fff;border:none;padding:15px 24px;border-radius:100px;font-weight:600;font-size:15px;cursor:pointer;transition:background .15s;}
    .btn-submit:hover{background:var(--primary-dark);}
    .btn-submit:disabled{opacity:.6;cursor:not-allowed;}

    #form-success{background:var(--primary-light);border-radius:16px;padding:32px 24px;text-align:center;}
    #form-success .si{font-size:36px;margin-bottom:10px;}
    #form-success .st{font-weight:700;font-size:16px;color:var(--ink);margin-bottom:6px;}
    #form-success .ss{font-size:13.5px;color:var(--muted);line-height:1.5;}
    #form-error{background:#fdecec;border:1px solid #f5c2c2;color:#8a2222;border-radius:10px;padding:14px 16px;font-size:13.5px;margin-top:8px;}
    #form-error a{color:#8a2222;font-weight:700;}

    @media (max-width:900px){
      .contact-grid{grid-template-columns:1fr;}
      .form-row{grid-template-columns:1fr;}
    }

    @media (max-width:900px){
      .blog-grid{grid-template-columns:1fr;}
      .author-mini-stats{grid-template-columns:1fr 1fr;}
    }
    