/* Styles communs Laté 28 : reset, gabarit, nav globale, pied de page.
   Repris a l'identique du CSS des maquettes v4 (parties transverses).
   Les styles specifiques a chaque page viendront dans assets/css/page-*.css. */

/* --- Reset & base --- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:target{scroll-margin-top:96px}
body{font-family:var(--sans);color:var(--encre);background:var(--papier);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}
a{color:inherit;text-decoration:none;-webkit-hyphens:none;hyphens:none;overflow-wrap:break-word}
img{max-width:100%;height:auto}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--acier)}
.link-terra{color:var(--sarcelle-fonce);font-weight:500;border-bottom:1.5px solid var(--sarcelle);padding-bottom:1px;transition:color .2s,border-color .2s}
.link-terra:hover{color:var(--sarcelle-encre);border-color:var(--sarcelle-encre)}

/* --- En-tete / navigation (globale, header.php) --- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,248,242,0.92);backdrop-filter:blur(8px);border-bottom:0.5px solid rgba(28,26,23,0.14)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand{display:flex;align-items:center;gap:12px}
.brand-avion{height:33px;width:auto;display:block}
.brand-texte{height:16.5px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:0;font-size:14px;flex-wrap:nowrap}
.nav-links a{color:var(--encre);transition:color .2s;position:relative;white-space:nowrap}
.nav-links a:hover{color:var(--sarcelle-fonce)}
.nav-links a.active{color:var(--sarcelle-fonce)}
/* Separateur « • » entre les liens de pages (pas avant le 1er ni avant le bouton Soutenir). */
.nav-links a:not(:first-child):not(.btn-don)::before{content:"•";margin:0 5px;color:var(--acier);opacity:.4;pointer-events:none}
.nav-links .btn-don{margin-left:14px}
.btn-don{background:var(--sarcelle-fonce);color:var(--encre)!important;padding:9px 18px;border-radius:6px;font-weight:600;font-size:14px;transition:background .2s,color .2s}
.btn-don:hover{background:var(--sarcelle-encre);color:var(--papier)!important}
.burger{display:none;background:none;border:none;font-size:24px;color:var(--encre);cursor:pointer;line-height:1}

/* --- Boutons communs (gamme sarcelle : repos texte encre, survol texte papier) --- */
.btn-solid{display:inline-block;background:var(--sarcelle-fonce);color:var(--encre);padding:13px 26px;border-radius:6px;font-weight:600;font-size:15px;transition:background .2s,color .2s,box-shadow .2s}
.btn-solid:hover{background:var(--sarcelle-encre);color:var(--papier);box-shadow:0 0 0 1.5px var(--papier)}
.btn-ghost{display:inline-block;border:1px solid rgba(251,248,242,0.4);color:var(--papier);padding:12px 25px;border-radius:6px;font-weight:500;font-size:15px;transition:border-color .2s,background .2s}
.btn-ghost:hover{border-color:var(--sarcelle);background:rgba(255,255,255,0.04)}
.btn-mecene{display:inline-block;border:1px solid var(--sarcelle);color:var(--sarcelle);padding:12px 25px;border-radius:6px;font-weight:500;font-size:15px;transition:background .2s,color .2s}
.btn-mecene:hover{background:var(--sarcelle);color:var(--sarcelle-encre)}

/* --- Titres de section communs --- */
.sec-head{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.sec-head h1,.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(24px,3.5vw,34px);line-height:1.12;letter-spacing:-0.01em}
.sec-body{font-size:16px;color:#3A352E;max-width:760px;line-height:1.7}

/* --- Justification du texte courant (texte suivi), sans cesure --- */
/* Les blocs centres (heros d'accueil, CTA, cartes centrees) restent centres. */
.sec-body,
.sec-head p,
.prose, .prose p,
.pg-texte p,
.prose-intro p, .acc-inner p, .acc-quote, .tab-panel p,
.hero-records .lead,
.why-card p, .fiscal-txt p, .simu-card .lead,
.content p,
.repro-lead, .gen-item p, .gen-highlight p,
.page-hero p, .hero-text p, .hero-txt p{
  text-align:justify;
  text-justify:inter-word;
}

/* --- Pied de page (globale, footer.php) : toujours sur fond kraft --- */
.site-footer{background:var(--kraft);padding:26px 0}
.foot{color:var(--acier);font-size:13px}
/* Niveau haut : logo + phrase de mission (une seule ligne) + bouton don à droite. */
.foot-top{display:flex;align-items:center;gap:22px}
.foot-mission{margin:0;font-size:13.5px;color:var(--acier);white-space:nowrap;line-height:1.5}
.foot-don{margin-left:auto;flex:none;white-space:nowrap;border:1px solid var(--sarcelle);
  color:var(--sarcelle-fonce);text-decoration:none;font-weight:600;font-size:13.5px;
  padding:9px 18px;border-radius:6px;transition:background .2s,color .2s}
.foot-don:hover{background:var(--sarcelle);color:var(--sarcelle-encre)}
/* Filet de séparation. */
.foot-rule{border:none;border-top:1px solid rgba(28,26,23,.10);margin:20px 0}
/* Niveau bas : menu (gauche) / liens méta (droite). */
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px}
.foot-links{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.foot-menu{font-size:12.5px;font-weight:500;flex-wrap:nowrap}
.foot-menu a{color:var(--encre);white-space:nowrap}
.foot-meta{font-size:12px;justify-content:flex-end}
.foot-meta a{color:var(--acier)}
.foot-links a{text-decoration:none;transition:color .2s}
.foot-links a:hover{color:var(--sarcelle-fonce)}
/* Séparateur « • » entre les liens (pas devant le premier), discret et non cliquable. */
.foot-links a:not(:first-child)::before{content:"•";margin-right:6px;color:var(--acier);opacity:.45;pointer-events:none}
/* Sous 980px la phrase passe sous le logo (retour à la ligne autorisé) et les
   deux rangées de liens s'empilent, alignées à gauche. */
@media(max-width:980px){
  .foot-top{flex-wrap:wrap;gap:14px}
  .foot-mission{white-space:normal;flex:1 1 100%;order:3}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .foot-meta{justify-content:flex-start}
  /* Sur mobile le menu du footer doit revenir a la ligne (le nowrap desktop deborde sinon). */
  .foot-menu{flex-wrap:wrap}
}

/* --- Responsive : bascule burger a 1120px (les 8 entrees + bouton don ne tiennent plus a cote du logo en dessous) --- */
@media(max-width:1120px){
  .burger{display:block}
  .nav-links{
    display:none;position:absolute;top:84px;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--papier);
    border-bottom:0.5px solid rgba(28,26,23,0.14);
    box-shadow:0 12px 24px rgba(28,26,23,0.08);
    padding:8px 28px 18px;
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 2px;font-size:16px;border-bottom:0.5px solid rgba(28,26,23,0.08)}
  .nav-links a.active{color:var(--sarcelle-fonce)}
  .nav-links a::before{display:none}
  .nav-links .btn-don{margin-top:14px;margin-left:0;text-align:center;border-bottom:none}
}

/* ===== Bandeau de consentement (Cookie Notice) - visibilite renforcee ===== */
#cookie-notice{
  background:var(--sarcelle-encre)!important;
  color:var(--papier)!important;
  border-top:3px solid var(--sarcelle)!important;
  box-shadow:0 -10px 34px rgba(11,56,53,0.38)!important;
  bottom:0!important;
  left:0!important;
  right:0!important;
}
/* iOS Safari : caler le bandeau a ras du bord bas. Le padding (15px du plugin) vit sur
   le conteneur ; on y ajoute la zone de securite iPhone (home indicator), comblee par le
   fond vert au lieu de laisser un decalage « flottant ». env()=0 hors iOS -> aucun changement. */
#cookie-notice .cookie-notice-container,
#cookie-notice .cookie-revoke-container{
  padding-bottom:calc(15px + env(safe-area-inset-bottom, 0px))!important;
}
/* Apres acceptation, le plugin masque seulement le contenu (.cookie-notice-container) mais
   laisse #cookie-notice en place : sa bordure verte de 3px reste « fixed » et flotte sur iOS
   (fine ligne verte qui revient a chaque page). Le site n'utilise pas d'onglet de revocation,
   donc on masque totalement le bandeau des qu'il est cache. */
#cookie-notice.cookie-notice-hidden{display:none!important}
#cookie-notice.cookie-notice-visible{animation:cn-slide-up .55s cubic-bezier(.16,1,.3,1) both}
@keyframes cn-slide-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){#cookie-notice.cookie-notice-visible{animation:none}}
#cookie-notice .cookie-notice-container{padding:18px 22px!important;max-width:1120px;margin:0 auto}
#cn-notice-text,#cookie-notice .cn-text-container{font-size:15px!important;line-height:1.5;font-weight:500;color:var(--papier)}
/* Boutons : hierarchie claire (accepter > refuser > en savoir plus) */
#cookie-notice .cn-button{
  border:1.5px solid transparent!important;border-radius:8px!important;
  font-weight:600!important;font-size:14px!important;padding:11px 22px!important;margin:6px 5px!important;
  transition:background .2s,color .2s,border-color .2s,box-shadow .2s!important;
}
#cn-accept-cookie,#cookie-notice .cn-set-cookie[data-cookie-set="accept"]{
  background:var(--sarcelle)!important;color:var(--sarcelle-encre)!important;
  box-shadow:0 3px 14px rgba(32,188,180,0.45)!important;
}
#cn-accept-cookie:hover,#cookie-notice .cn-set-cookie[data-cookie-set="accept"]:hover{
  background:var(--papier)!important;color:var(--sarcelle-encre)!important;
}
#cn-refuse-cookie,#cookie-notice .cn-set-cookie[data-cookie-set="refuse"]{
  background:transparent!important;color:var(--papier)!important;border-color:rgba(251,248,242,0.5)!important;box-shadow:none!important;
}
#cn-refuse-cookie:hover,#cookie-notice .cn-set-cookie[data-cookie-set="refuse"]:hover{
  border-color:var(--papier)!important;background:rgba(255,255,255,0.07)!important;
}
#cn-more-info,#cookie-notice .cn-more-info{
  background:transparent!important;color:rgba(251,248,242,0.78)!important;
  border-color:transparent!important;box-shadow:none!important;text-decoration:underline!important;padding:11px 10px!important;
}
#cn-more-info:hover,#cookie-notice .cn-more-info:hover{color:var(--sarcelle)!important}
#cookie-notice .cn-close-icon{opacity:0.65;transition:opacity .2s}
#cookie-notice .cn-close-icon:hover{opacity:1}

/* Porte de consentement : voile bloquant + clignotement du bandeau */
.cn-block-overlay{position:fixed;inset:0;background:rgba(11,56,53,0.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:99990;opacity:0;pointer-events:none;transition:opacity .4s}
body.cn-blocking .cn-block-overlay{opacity:1;pointer-events:auto;cursor:pointer}
body.cn-blocking{overflow:hidden}
#cookie-notice{z-index:99999!important}
#cookie-notice.cn-flash{animation:cn-flash .6s ease}
@keyframes cn-flash{
  0%,100%{transform:translateY(0);box-shadow:0 -10px 34px rgba(11,56,53,0.38)}
  20%,60%{transform:translateY(-4px);box-shadow:0 0 0 3px var(--sarcelle),0 -14px 46px rgba(32,188,180,0.65)}
  40%,80%{transform:translateY(0);box-shadow:0 0 0 3px var(--sarcelle),0 -14px 46px rgba(32,188,180,0.65)}
}
@media(prefers-reduced-motion:reduce){#cookie-notice.cn-flash{animation:none;box-shadow:0 0 0 3px var(--sarcelle),0 -14px 46px rgba(32,188,180,0.65)}}

/* ===== Surimpression de don HelloAsso ===== */
.ha-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(11,56,53,0.5);backdrop-filter:blur(14px) brightness(0.72);-webkit-backdrop-filter:blur(14px) brightness(0.72);z-index:2147483000;padding:20px}
.ha-modal.open{display:flex}
.ha-modal-content{position:relative;width:100%;max-width:950px;height:100%;max-height:94vh;overflow:hidden}
#haWidget{width:100%;height:100%;border:0;border-radius:10px;background:#fff}
.ha-close{position:absolute;top:16px;right:20px;z-index:2147483001;width:46px;height:46px;border:none;border-radius:50%;background:#EFEFF4;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,0.14);transition:background .2s}
.ha-close:hover{background:#E0E0E8}
@media(max-width:860px){.ha-close{top:10px;right:12px}.ha-modal-content{max-height:100%}}

/* --- Visionneuse video partagee (template-parts/video-lightbox.php) --- */
.video-lb{position:fixed;inset:0;background:rgba(28,26,23,0.92);display:none;align-items:center;justify-content:center;z-index:100;padding:24px}
.video-lb.open{display:flex}
.video-lb-frame{width:100%;max-width:960px}
.video-lb-inner{position:relative;padding-top:56.25%;background:#000;border-radius:6px;overflow:hidden}
.video-lb-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Mode image (data-image) : la photo s'affiche à sa taille, centrée, sans cadre 16:9. */
.video-lb-inner.is-image{padding-top:0;background:transparent;overflow:visible;display:flex;flex-direction:column;align-items:center}
.video-lb-inner.is-image img{max-width:100%;max-height:80vh;width:auto;height:auto;display:block;border-radius:6px}
.video-lb-cap{margin-top:12px;color:var(--papier);font-size:14px;line-height:1.5;text-align:center;max-width:70ch;padding:0 12px}
.video-lb.open .video-lb-frame:has(.is-image){max-width:none;width:auto}
.video-lb-close{position:absolute;top:18px;right:24px;background:transparent;border:1.5px solid var(--papier);color:var(--papier);width:44px;height:44px;font-size:24px;line-height:1;cursor:pointer;transition:background .2s}
.video-lb-close:hover{background:rgba(255,255,255,0.12)}
/* Bouton « voir la video » utilisable dans un contenu editable */
.btn-video{display:inline-flex;align-items:center;gap:8px;background:var(--sarcelle-fonce);color:var(--encre);
  padding:11px 20px;border-radius:6px;font-weight:600;font-size:15px;text-decoration:none;
  transition:background .2s,color .2s}
.btn-video:hover{background:var(--sarcelle-encre);color:var(--papier)}
.btn-video::before{content:"";width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;
  border-color:transparent transparent transparent currentColor}

/* Bloc partenaire mis en avant : l'Envol des Pionniers (Histoire / Contact / Mécénat). */
.partenaire-envol{padding:44px 0}
.pe-card{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  background:var(--kraft);border:1px solid rgba(28,26,23,.10);border-radius:14px;padding:26px 32px}
.pe-card .eyebrow{margin-bottom:8px}
.pe-card h2{margin:0 0 7px;font-size:24px;letter-spacing:-.01em;color:var(--encre)}
.pe-card p{margin:0;color:var(--acier);max-width:60ch;font-size:15px;line-height:1.55}
.pe-btn{flex:none;white-space:nowrap;background:var(--sarcelle-fonce);color:var(--papier);text-decoration:none;
  font-weight:600;font-size:15px;padding:12px 22px;border-radius:7px;transition:background .2s,color .2s}
.pe-btn:hover{background:var(--sarcelle-encre)}
@media(max-width:720px){.pe-card{flex-direction:column;align-items:flex-start;gap:18px;padding:22px 22px}}
