/* ============================================================
   KAP INNOV'5.0 — FEUILLE DE STYLE COMMUNE
   Version 01 — Août 2026
   Fichier unique : css/kap.css
   Porte la charte, la barre de navigation et le pied de page.
   Toute page du site appelle ce fichier AVANT son style propre.
   Icônes : SVG inline uniquement, aucun emoji.
   ============================================================ */

/* ---------- 1. CHARTE — source unique de vérité ---------- */
:root{
  --kap-navy:        #1B2A6B;
  --kap-navy-fonce:  #131F52;
  --kap-or:          #C9A227;
  --kap-or-clair:    #E3C766;
  --kap-or-fonce:    #8A6E10;   /* seule variante lisible sur blanc (AA) */
  --kap-blanc:       #FFFFFF;
  --kap-gris:        #5A5F6B;
  --kap-gris-clair:  #E8EAF0;
  --kap-creme:       #F7F6F2;
  --kap-texte:       #1F2937;
  --kap-texte-doux:  #3A4152;

  --nav-h:           82px;
  --util-h:          38px;
  --police-titre:    'Georgia','Times New Roman',serif;
  --police-texte:    'Segoe UI','Helvetica Neue',Arial,sans-serif;
  --largeur-max:     1320px;
}

/* ---------- 2. BASE ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--police-titre);color:var(--kap-texte);
  background:var(--kap-blanc);font-size:16px;line-height:1.85;
}
a{text-decoration:none;color:inherit}
p{text-align:left;font-size:16px;line-height:1.85}
h1,h2,h3,h4{color:var(--kap-navy);line-height:1.28}
h1{font-size:38px;font-weight:700}
h2{font-size:32px;font-weight:700}
h3{font-size:22px;font-weight:600}
img{max-width:100%;height:auto}

/* ---------- 3. BARRE UTILITAIRE ---------- */
.kap-utilitaire{
  background:var(--kap-navy-fonce);height:var(--util-h);
  display:flex;align-items:center;justify-content:flex-end;gap:26px;
  padding:0 32px;font-family:var(--police-texte);font-size:13px;
}
.kap-utilitaire a{color:#C7CCE0;display:inline-flex;align-items:center;gap:7px;transition:color .18s ease}
.kap-utilitaire a:hover,.kap-utilitaire a:focus-visible{color:var(--kap-or-clair)}
.kap-utilitaire svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.kap-utilitaire .kap-compte{border-left:1px solid rgba(255,255,255,.22);padding-left:26px;color:var(--kap-or-clair)}

/* ---------- 4. BARRE PRINCIPALE ---------- */
.kap-entete{
  background:var(--kap-blanc);border-bottom:2px solid var(--kap-or);
  position:sticky;top:0;z-index:900;box-shadow:0 1px 12px rgba(27,42,107,.07);
}
.kap-entete-inner{
  max-width:var(--largeur-max);margin:0 auto;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;padding:0 32px;
}
.kap-logo img{height:54px;width:auto;display:block}

.kap-menu{display:flex;align-items:center;gap:4px;list-style:none}
.kap-menu > li{position:relative}
.kap-menu > li > a{
  display:flex;align-items:center;gap:6px;padding:14px 16px;
  font-family:var(--police-texte);font-size:14px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--kap-navy);
  border-bottom:2px solid transparent;
  transition:color .18s ease,border-color .18s ease;
}
.kap-menu > li > a:hover,
.kap-menu > li > a:focus-visible,
.kap-menu > li.ouvert > a,
.kap-menu > li > a[aria-current="page"]{
  color:var(--kap-or-fonce);border-bottom-color:var(--kap-or);
}
.kap-chevron{
  width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease;
}
.kap-menu > li.ouvert .kap-chevron{transform:rotate(180deg)}

.kap-cta{
  margin-left:14px;display:inline-flex;align-items:center;gap:8px;
  background:var(--kap-navy);color:var(--kap-blanc) !important;
  padding:13px 26px !important;font-family:var(--police-texte);
  font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  border-radius:3px;border-bottom:2px solid transparent !important;
  transition:background .18s ease,transform .18s ease;
}
.kap-cta:hover,.kap-cta:focus-visible{background:var(--kap-or);color:var(--kap-navy) !important;transform:translateY(-1px)}
.kap-cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.kap-sous-menu{
  position:absolute;top:100%;left:0;min-width:290px;background:var(--kap-blanc);
  border:1px solid var(--kap-gris-clair);border-top:3px solid var(--kap-or);
  box-shadow:0 12px 30px rgba(19,31,82,.13);list-style:none;padding:10px 0;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.kap-menu > li.ouvert .kap-sous-menu{opacity:1;visibility:visible;transform:translateY(0)}
.kap-sous-menu a{
  display:block;padding:11px 24px;font-family:var(--police-texte);font-size:14.5px;
  color:var(--kap-navy);border-left:3px solid transparent;
  transition:background .15s ease,border-color .15s ease,padding-left .15s ease;
}
.kap-sous-menu a:hover,.kap-sous-menu a:focus-visible{background:#F7F8FC;border-left-color:var(--kap-or);padding-left:28px}
.kap-rubrique{
  padding:14px 24px 6px;font-family:var(--police-texte);font-size:11px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--kap-gris);
}
.kap-rubrique:not(:first-child){border-top:1px solid var(--kap-gris-clair);margin-top:6px}

.kap-burger{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--kap-navy)}
.kap-burger svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}

/* ---------- 5. PIED DE PAGE ---------- */
.kap-pied{background:var(--kap-navy);color:#fff;font-family:var(--police-texte);font-size:14px;line-height:1.9}
.kap-pied-inner{
  max-width:var(--largeur-max);margin:0 auto;padding:3rem 32px 2rem;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:2.4rem;
}
.kap-pied h4{
  color:var(--kap-or-clair);font-family:var(--police-texte);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem;
}
.kap-pied ul{list-style:none}
.kap-pied li{margin-bottom:.45rem}
.kap-pied a{color:rgba(255,255,255,.86);transition:color .18s ease}
.kap-pied a:hover,.kap-pied a:focus-visible{color:var(--kap-or-clair)}
.kap-pied-coord{color:rgba(255,255,255,.86)}
.kap-pied-bas{
  border-top:1px solid rgba(255,255,255,.16);
  max-width:var(--largeur-max);margin:0 auto;padding:1.4rem 32px 2.2rem;
  font-size:12.5px;color:rgba(255,255,255,.7);
}
.kap-pied-legal{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-bottom:.9rem}
.kap-pied-mention{font-style:italic;line-height:1.8}

/* ---------- 6. ACTION FLOTTANTE MOBILE ---------- */
.kap-cta-flottant{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:950;
  background:var(--kap-navy);border-top:2px solid var(--kap-or);padding:12px 16px;
}
.kap-cta-flottant a{
  display:block;background:var(--kap-or);color:var(--kap-navy);text-align:center;
  font-family:var(--police-texte);font-size:13px;font-weight:800;letter-spacing:1px;
  text-transform:uppercase;padding:14px;border-radius:3px;
}

/* ---------- 7. RESPONSIVE ---------- */
@media(max-width:1080px){
  .kap-entete-inner{padding:0 20px}
  .kap-burger{display:block}
  .kap-menu{
    display:none;position:absolute;top:var(--nav-h);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;background:var(--kap-blanc);
    border-top:1px solid var(--kap-gris-clair);box-shadow:0 14px 30px rgba(19,31,82,.15);
    max-height:calc(100vh - var(--nav-h));overflow-y:auto;padding:8px 0;
  }
  .kap-menu.ouvert{display:flex}
  .kap-menu > li > a{justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--kap-gris-clair)}
  .kap-sous-menu{position:static;opacity:1;visibility:visible;transform:none;display:none;border:none;box-shadow:none;background:#F7F8FC;min-width:0;padding:4px 0}
  .kap-menu > li.ouvert .kap-sous-menu{display:block}
  .kap-cta{margin:14px 20px;justify-content:center}
  .kap-utilitaire{justify-content:center;gap:18px;padding:0 14px;font-size:12px}
  .kap-utilitaire .kap-compte{padding-left:18px}
  .kap-pied-inner,.kap-pied-bas{padding-left:20px;padding-right:20px}
}
@media(max-width:820px){
  h1{font-size:27px}
  h2{font-size:24px}
  .kap-cta-flottant{display:block}
  body{padding-bottom:82px}
}
@media(max-width:520px){
  .kap-utilitaire .kap-libelle-long{display:none}
  .kap-logo img{height:44px}
}

/* ---------- 8. ACCESSIBILITÉ ---------- */
:focus-visible{outline:2px solid var(--kap-or);outline-offset:2px}
.kap-evitement{position:absolute;left:-9999px;background:var(--kap-navy);color:#fff;padding:12px 20px;z-index:999}
.kap-evitement:focus{left:12px;top:12px}
@media(prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;scroll-behavior:auto !important}
}
