/*
 * En-tête et pied de page « proposition 01 », partagés par toutes les pages publiques quand home.design = p01
 * (layout public). Extraits de home-p01.css (15/09/2026) : jetons d'enveloppe .p01-scope, conteneur, bandeau
 * d'annonce, navigation, boutons, logo, langues, panier, pied de page et leurs points de rupture.
 * home-p01.css (carrousel, catalogue, sections de l'accueil) n'est chargé que sur l'accueil.
 */
.p01-scope,.p01-scope *{box-sizing:border-box}
.p01-scope{color:var(--fs-p01-ink);font-family:var(--fs-font);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
.p01-main{display:block;min-width:0;background:#fff}
:where(.p01-scope) h1,:where(.p01-scope) h2,:where(.p01-scope) h3,:where(.p01-scope) p{color:inherit;letter-spacing:normal}
:where(.p01-scope) a,:where(.p01-scope) a:hover{color:inherit}
:where(.p01-scope) ul,:where(.p01-scope) ol{margin:0;padding:0;list-style:none}
:root:has(.p01-site-header){--fs-sticky-top:5rem}
body.p01-nav-open{overflow:hidden}
:where(.p01-scope) img,:where(.p01-scope) svg{display:block}
:where(.p01-scope) a{text-decoration:none}
:where(.p01-scope) button{font:inherit;color:inherit}
.p01-container{width:calc(100% - clamp(32px, 6vw, 112px));max-width:var(--fs-p01-container);margin-inline:auto}
.p01-skip-link{position:fixed;top:12px;inset-inline-start:12px;z-index:1000;padding:10px 16px;border-radius:0.625rem;color:var(--fs-p01-navy-900);background:#fff;transform:translateY(-160%);transition:.2s ease}
.p01-skip-link:focus{transform:translateY(0)}
.p01-announcement{position:relative;z-index:30;color:var(--fs-p01-c-dce9ff);background:var(--fs-p01-c-030817);border-bottom:1px solid rgba(255,255,255,.08);font-size:.81rem}
.p01-announcement__inner{min-height:37px;display:flex;align-items:center;justify-content:center;gap:10px}
.p01-announcement__pulse{width:7px;height:7px;border-radius:50%;background:var(--fs-p01-cyan);box-shadow:0 0 0 5px rgba(9,216,245,.1), 0 0 14px var(--fs-p01-cyan)}
.p01-announcement a{display:inline-flex;align-items:center;gap:4px;margin-inline-start:8px;color:#fff;font-weight:700}
.p01-announcement a svg{width:14px;fill:none;stroke:currentColor;stroke-width:2}
.p01-site-header{position:absolute;top:0;inset-inline-start:0;width:100%;z-index:25;transition:.25s ease}
.p01-site-header.scrolled{position:fixed;top:0;box-shadow:0 10px 35px rgba(0,0,0,.2)}
/* Fond flouté porté par un pseudo-élément : un backdrop-filter sur l'en-tête lui-même en ferait le bloc conteneur
 * du panneau de menu mobile (position:fixed), tronqué à la hauteur de l'en-tête. */
.p01-site-header.scrolled::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(4,9,26,.9);-webkit-backdrop-filter:var(--fs-blur-glass);backdrop-filter:var(--fs-blur-glass);pointer-events:none}
.p01-nav-shell{min-height:80px;display:flex;align-items:center;gap:34px}
.p01-brand{flex:0 0 auto;width:190px}
.p01-brand img{width:100%;height:auto}
.p01-primary-nav{display:flex;align-items:center;justify-content:center;gap:28px;margin-inline-start:auto}
.p01-primary-nav a{position:relative;padding:26px 0;color:var(--fs-p01-c-c7d3eb);font-size:.88rem;font-weight:600;transition:color .2s ease}
.p01-primary-nav a::after{content:"";position:absolute;inset-inline-start:0;inset-inline-end:100%;bottom:24px;height:2px;background:var(--fs-p01-gradient);transition:right .2s ease}
.p01-primary-nav a:hover,.p01-primary-nav a:focus-visible{color:#fff}
.p01-primary-nav a:hover::after,.p01-primary-nav a:focus-visible::after{inset-inline-end:0}
.p01-nav-actions{display:flex;align-items:center;gap:15px}
.p01-language-button{display:inline-flex;align-items:center;gap:6px;padding:8px 4px;color:var(--fs-p01-c-b9c7e3);background:transparent;border:0;font-size:.84rem;font-weight:700}
.p01-language-button svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.7}
.p01-login-link{color:#fff;font-size:.9rem;font-weight:700;white-space:nowrap}
.p01-nav-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:0.75rem;background:rgba(255,255,255,.06)}
.p01-nav-toggle span{width:100%;height:2px;display:block;margin:4px 0;border-radius:0.125rem;background:#fff;transition:.2s ease}
.p01-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:0.8125rem;border:1px solid transparent;font-size:.875rem;font-weight:800;line-height:1;transition:transform .2s ease, box-shadow .2s ease, background .2s ease;cursor:pointer}
.p01-button svg,.p01-text-link svg{width:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.p01-button:hover{transform:translateY(-2px)}
.p01-button--small{min-height:43px;padding-inline:18px;border-radius:0.75rem}
.p01-button--large{min-height:50px;padding-inline:22px;border-radius:0.9375rem}
.p01-button--primary{color:#fff;background:var(--fs-p01-gradient);box-shadow:0 11px 28px rgba(61,85,255,.32), inset 0 1px rgba(255,255,255,.3)}
.p01-button--primary:hover{box-shadow:0 15px 36px rgba(68,77,255,.42), inset 0 1px rgba(255,255,255,.3)}
.p01-button--ghost{color:var(--fs-p01-c-eef4ff);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.055);-webkit-backdrop-filter:var(--fs-blur-glass);backdrop-filter:var(--fs-blur-glass)}
.p01-button--ghost:hover{background:rgba(255,255,255,.1)}
.p01-button--white{color:var(--fs-p01-c-35236d);background:#fff;box-shadow:0 16px 36px rgba(14,6,48,.23)}
.p01-site-footer{color:var(--fs-p01-c-aebbd5);background:var(--fs-p01-c-050b1d)}
.p01-footer__grid{display:grid;grid-template-columns:1.55fr repeat(3, .75fr);gap:60px;padding-top:70px;padding-bottom:53px}
.p01-brand--footer{display:block;width:235px;margin-bottom:18px}
.p01-footer__brand p{max-width:370px;margin:0 0 22px;font-size:.82rem;line-height:1.7}
.p01-social-links{display:flex;gap:8px}
.p01-social-links a{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:0.625rem;color:var(--fs-p01-c-d9e4f9);background:rgba(255,255,255,.045);font-size:0.74em;font-weight:800;transition:.2s ease}
.p01-social-links a:hover{color:#fff;border-color:rgba(91,221,255,.35);background:rgba(35,157,221,.14)}
.p01-footer__column{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.p01-footer__column h2{margin:4px 0 9px;color:#fff;font-size:.85rem}
.p01-footer__column a,.p01-footer__column .p01-footer__button{color:var(--fs-p01-c-9dabc5);font-size:.75rem;transition:color .2s ease}
.p01-footer__column a:hover{color:var(--fs-p01-c-67e8f6)}
.p01-footer__bottom{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.09);font-size:.75rem}
.p01-footer__languages{display:flex;gap:14px}
.p01-footer__languages strong{color:#fff;font-weight:700}
.p01-scope :focus-visible{outline:3px solid rgba(9,216,245,.72);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.p01-scope,.p01-scope *,.p01-scope *::before,.p01-scope *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.p01-scope .p01-button:hover{transform:none}}
@media (max-width: 1100px){.p01-nav-shell{gap:20px}
.p01-brand{width:175px}
.p01-primary-nav{gap:18px}
.p01-primary-nav a{font-size:.82rem}
.p01-language-button,.p01-login-link{display:none}}
@media (max-width: 900px){.p01-nav-shell{min-height:79px}
.p01-nav-toggle{display:block;margin-inline-start:auto;cursor:pointer}
.p01-nav-actions .p01-button{display:none}
.p01-primary-nav{position:fixed;inset:0;z-index:-1;display:flex;flex-direction:column;justify-content:center;gap:8px;margin:0;padding:115px 25px 35px;visibility:hidden;opacity:0;background:rgba(4,9,26,.98);transition:.2s ease}
.p01-primary-nav.open{z-index:-1;visibility:visible;opacity:1}
.p01-primary-nav a{width:min(100%, 420px);padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:1.1rem}
.p01-primary-nav a::after{display:none}
.p01-nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.p01-nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.p01-nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.p01-footer__grid{grid-template-columns:1.4fr repeat(2, 1fr)}
.p01-footer__column:last-child{grid-column:2 / 3}}
@media (max-width: 640px){.p01-container{width:calc(100% - 28px)}
.p01-announcement__inner{min-height:45px;justify-content:flex-start}
.p01-announcement__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.p01-announcement a{display:none}
.p01-brand{width:160px}
.p01-site-header.scrolled{top:0}
.p01-footer__grid{grid-template-columns:repeat(2, 1fr);gap:38px 25px}
.p01-footer__brand{grid-column:1 / -1}
.p01-footer__column:last-child{grid-column:auto}
.p01-footer__bottom{align-items:flex-start;flex-direction:column;justify-content:center;padding:20px 0}}
/* ---------------------------------------------------------------- intégration FormaSkills (données et routes réelles) */
.p01-ic{width:1.2em;height:1.2em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
[dir="rtl"] .p01-flip{transform:scaleX(-1)}
.p01-sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.p01-site-header.scrolled .p01-announcement{display:none}
.p01-announcement a .p01-ic{width:.9rem;height:.9rem}
.p01-brand img{display:block;width:100%;height:auto;filter:none}
.p01-nav-mobile{display:none}
.p01-nav-actions .p01-ic{width:1.1rem;height:1.1rem}
.p01-lang .menu a{display:flex;min-height:2.5rem;align-items:center;padding-inline:.9rem}
.p01-language-button{min-height:44px;cursor:pointer}
.p01-language-button:hover,.p01-login-link:hover{color:#fff}
.p01-login-link{display:inline-flex;align-items:center;min-height:44px}
.p01-cart{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:.75rem;color:var(--fs-p01-c-dce9ff)}
.p01-cart:hover{color:#fff;background:rgba(255,255,255,.08)}
.p01-cart__count{position:absolute;top:4px;inset-inline-end:2px;min-width:1.1rem;height:1.1rem;display:grid;place-items:center;padding-inline:.25rem;border-radius:var(--fs-radius-full);color:#fff;background:var(--fs-p01-violet);font-size:.75rem;font-weight:800;line-height:1}
.p01-button .p01-ic{width:1.2rem;height:1.2rem}
/* Pied de page */
.p01-site-footer{font-size:.875rem}
.p01-footer__column a,.p01-footer__column .p01-footer__button{display:inline-flex;align-items:center;min-height:24px}
.p01-footer__column{gap:8px}
.p01-footer__button{padding:0;border:0;background:none;cursor:pointer;text-align:start}
.p01-footer__button:hover{color:var(--fs-p01-c-67e8f6)}
.p01-footer__notice{margin-block:0 16px;color:var(--fs-p01-c-9dabc5);font-size:.75rem}
.p01-footer__meta a{color:var(--fs-p01-c-9dabc5)}
.p01-footer__meta a:hover,.p01-footer__languages a:hover{color:var(--fs-p01-c-67e8f6)}
.p01-footer__languages a{display:inline-flex;align-items:center;min-height:28px}

/* Espacement en haut du hero : le bandeau fait partie de l'en-tête */
@media (max-width: 1100px){.p01-language-button{display:inline-flex}.p01-lang{display:none}.p01-login-link{display:inline-flex}}
@media (max-width: 900px){
  .p01-login-link,.p01-cart{display:none}
  .p01-nav-mobile{display:flex;flex-direction:column;width:min(100%,420px);gap:0;margin-block-start:10px}
  .p01-nav-mobile a{display:block}
  .p01-nav-langs{display:flex;flex-wrap:wrap;gap:8px 18px;padding-block:16px 0}
  .p01-nav-langs a{width:auto!important;border:0!important;font-size:.95rem!important;color:var(--fs-p01-c-b9c7e3)}
  .p01-nav-langs a[aria-current]{color:#fff;font-weight:800}
  .p01-primary-nav{overflow-y:auto}
}
@media (max-width: 640px){.p01-announcement__inner a{display:none}}
/* Écriture arabe : un interlettrage négatif casse les liaisons cursives. */
[dir="rtl"] .p01-scope h1,[dir="rtl"] .p01-scope h2,[dir="rtl"] .p01-scope h3,[dir="rtl"] .p01-section-kicker,[dir="rtl"] .p01-eyebrow{letter-spacing:0}
.p01-container{width:calc(100% - clamp(28px, 5vw, 88px))}
@media (max-width: 640px){.p01-container{width:calc(100% - 32px)}}
/* ---------------------------------------------------------------- pied de page compact (retour client du 15/09/2026)
 * Moins haut, espacements resserrés, texte plus lisible ; documents légaux sur une ligne en bas. */
.p01-site-footer{font-size:.9375rem}
.p01-footer__grid{grid-template-columns:minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));gap:24px 40px;padding-block:44px 28px}
.p01-footer__brand .p01-brand--footer{width:170px;margin-bottom:10px}
.p01-footer__brand p{max-width:340px;margin:0;color:var(--fs-p01-c-aebbd5);font-size:.9375rem;line-height:1.6}
.p01-footer__column{gap:4px}
.p01-footer__column h2{margin:0 0 6px;color:#fff;font-size:1rem;font-weight:700}
.p01-footer__column a,.p01-footer__column .p01-footer__button{min-height:30px;color:var(--fs-p01-c-c7d3eb);font-size:.9375rem}
.p01-footer__bottom{display:flex;flex-direction:column;gap:10px;min-height:0;padding-block:16px 20px;border-top:1px solid rgba(255,255,255,.09)}
.p01-footer__legal{display:flex;flex-wrap:wrap;gap:2px 18px}
.p01-footer__legal a{display:inline-flex;align-items:center;min-height:28px;color:var(--fs-p01-c-9dabc5);font-size:.84375rem}
.p01-footer__legal a:hover{color:var(--fs-p01-c-67e8f6)}
.p01-footer__notice{margin:0;color:var(--fs-p01-c-9dabc5);font-size:.8125rem}
.p01-footer__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;color:var(--fs-p01-c-9dabc5);font-size:.84375rem}
.p01-footer__languages{display:flex;gap:16px}
@media (max-width: 900px){
  .p01-footer__grid{grid-template-columns:repeat(3, minmax(0, 1fr));padding-block:36px 24px}
  .p01-footer__brand{grid-column:1/-1}
  .p01-footer__column:last-child{grid-column:auto}
}
@media (max-width: 640px){
  .p01-footer__grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:22px 20px}
  .p01-footer__meta{flex-direction:column;align-items:flex-start}
}

/* ---------------------------------------------------------------- pages intérieures (chantier p01pages, 18/09/2026)
 * Hors de l'accueil, l'en-tête ne survole pas un hero sombre : il a son propre fond et reste dans le flux (sticky),
 * le contenu n'est donc jamais masqué dessous. Le bandeau d'annonce défile avec la page : le décalage négatif
 * (--p01-ann-h, mesuré par p01-chrome.js) ne laisse collée que la barre de navigation (--fs-sticky-top). */
.p01-inner .p01-site-header,.p01-inner .p01-site-header.scrolled{position:sticky;top:calc(-1 * var(--p01-ann-h, 0px));background:var(--fs-p01-navy-950)}
.p01-inner .p01-site-header.scrolled::before{display:none}
.p01-inner .p01-site-header.scrolled{box-shadow:0 10px 30px rgba(0,0,0,.18)}
.p01-inner .p01-site-header.scrolled .p01-announcement{display:block}
.p01-page{display:block;min-width:0}
/* Page ou rubrique courante (aria-current) */
.p01-primary-nav a[aria-current]{color:#fff}
.p01-primary-nav a[aria-current]::after{inset-inline-end:0}
.p01-footer__column a[aria-current],.p01-footer__legal a[aria-current]{color:#fff}
/* Logo : dérivés <picture> */
.p01-logo{display:block}
/* Annonce administrée : pastille, compte à rebours et fermeture (mêmes données que le bandeau générique) */
.p01-announcement .promo-badge{color:#fff;font-size:.75rem}
.p01-announcement .promo-count{color:#fff}
.p01-announcement .promo-x{display:inline-grid;place-items:center;min-width:32px;min-height:32px;margin-inline-start:4px;color:#fff}
.p01-announcement .promo-x .ic{width:1rem;height:1rem}
@media (max-width: 640px){.p01-announcement .promo-count{display:none}}
/* Panier vide : le lien reste dans le DOM (compteur mis à jour sans rechargement) mais n'est pas affiché. */
.p01-cart:has(> [data-cart-count][hidden]){display:none}
/* Hauteur de la barre collée des pages intérieures (logo au ratio du maître) ; valeur exacte publiée par p01-chrome.js. */
:root:has(.p01-inner){--fs-sticky-top:6.75rem}

/* Sélecteur de devise (18/09) : même bouton que la langue ; le menu donne le code, le nom et le symbole. */
.p01-currency .menu{min-width:15rem}
.p01-currency .menu a{gap:.6rem}
.p01-currency__code{min-width:2.6rem;font-weight:700;letter-spacing:.02em}
.p01-currency__name{color:var(--fs-text-muted);font-size:.85rem}
.p01-nav-currencies{margin-block-start:6px}
