/*
Theme Name: Armor.Lab
Theme URI: https://armor-lab.fr
Author: Armor.Lab
Description: Thème bloc sur mesure d'Armor.Lab, site de fan consacré à Battlefield 6. Registre relevé sur huxleysaga.com : noir pur, blanc, gris, une famille géométrique carrée, angles droits, filets fins.
Version: 1.0.8
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: armor-lab
Tags: block-theme, full-site-editing, dark, one-column
*/

:root{
  --noir:#000000;
  --blanc:#ffffff;
  --gris:#999999;
  --gris-2:#666666;
  --filet:#1a1a1a;
  --surface:#111111;
  --police:"Tomorrow","NB Architekt","Arial Narrow",Arial,sans-serif;
  --marge:max(12px,env(safe-area-inset-left,0px));
  --marge-d:max(12px,env(safe-area-inset-right,0px));
  --ease:cubic-bezier(.19,1,.22,1);
  --trait-coins:linear-gradient(var(--blanc),var(--blanc)) left top/9px 1px no-repeat,linear-gradient(var(--blanc),var(--blanc)) right top/9px 1px no-repeat,rgba(255,255,255,.12);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--noir)}
body{margin:0;background:var(--noir);color:var(--blanc);font-family:var(--police);font-weight:400;font-size:12px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%;height:auto} /* height:auto obligatoire : sinon l'attribut height des blocs image l'emporte sur aspect-ratio */
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4,h5{margin:0;font-weight:200;letter-spacing:0;line-height:1;text-wrap:balance;hyphens:none}
strong{font-weight:400}
::selection{background:var(--blanc);color:var(--noir)}
:focus-visible{outline:1px solid var(--blanc);outline-offset:3px}
.pad{padding-left:var(--marge);padding-right:var(--marge-d)}
.texte-masque{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Gutenberg : l'espacement automatique est coupé dans theme.json (blockGap 0px).
   Filet de sécurité à spécificité nulle, jamais « .wp-block-group > * ». */
:where(.wp-block-group)>:where(*),:where(.wp-block-buttons){margin-block:0}
:where(.is-layout-flow)>*{margin-block-start:0}
figure.wp-block-image,figure.wp-block-video{margin:0}
.wp-block-post-content{margin:0}

/* ---------- Atomes ---------- */
.cta{display:inline-flex;align-items:center;gap:.6em;font-size:12px;letter-spacing:.12em;color:var(--blanc);cursor:pointer}
.cta::before{content:"["}
.cta::after{content:"]"}
.cta:hover{animation:blink .32s steps(2) 2}
@keyframes blink{50%{opacity:.15}}
.label{font-size:11px;letter-spacing:.12em;color:var(--gris)}
.label strong{color:var(--blanc)}
.coins{position:relative}
.coins::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:
  linear-gradient(var(--blanc),var(--blanc)) left top/9px 1px no-repeat,linear-gradient(var(--blanc),var(--blanc)) left top/1px 9px no-repeat,
  linear-gradient(var(--blanc),var(--blanc)) right top/9px 1px no-repeat,linear-gradient(var(--blanc),var(--blanc)) right top/1px 9px no-repeat,
  linear-gradient(var(--blanc),var(--blanc)) left bottom/9px 1px no-repeat,linear-gradient(var(--blanc),var(--blanc)) left bottom/1px 9px no-repeat,
  linear-gradient(var(--blanc),var(--blanc)) right bottom/9px 1px no-repeat,linear-gradient(var(--blanc),var(--blanc)) right bottom/1px 9px no-repeat}
.wp-block-image.media{position:relative;overflow:hidden;background:var(--surface)}
.wp-block-image.media img,.wp-block-video video{width:100%;height:100%;object-fit:cover}
[role="button"]{cursor:pointer}

/* ---------- En-tête (parts/header.html) ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:40;padding-top:env(safe-area-inset-top,0px)}
.admin-bar .nav{top:32px}
@media (max-width:782px){.admin-bar .nav{top:46px}}
.nav::before{content:"";position:absolute;inset:0 0 -24px;background:linear-gradient(rgba(0,0,0,.65),transparent);pointer-events:none}
.nav::after{content:"";position:absolute;left:var(--marge);right:var(--marge-d);bottom:0;height:1px;background:var(--trait-coins)}
.nav-in{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:38px}
.wp-block-navigation.nav-liens,.wp-block-navigation.nav-droite{font-size:12px;letter-spacing:.1em;gap:24px}
.wp-block-navigation.nav-droite{justify-self:end}
.nav-liens .wp-block-navigation__container{gap:24px}
.nav-liens .wp-block-navigation-item__content,.nav-droite .wp-block-navigation-item__content{display:inline-flex;align-items:center;gap:8px;color:var(--blanc)}
.nav-liens .wp-block-navigation-item__content::before,.nav-droite .wp-block-navigation-item__content::before{content:"";width:5px;height:5px;background:currentColor;opacity:0;transition:opacity .2s}
.nav-liens .current-menu-item>.wp-block-navigation-item__content::before,.nav-droite .current-menu-item>.wp-block-navigation-item__content::before,
.nav-liens .est-courant::before,.nav-droite .est-courant::before,
.nav-liens .wp-block-navigation-item__content:hover::before,.nav-droite .wp-block-navigation-item__content:hover::before{opacity:1}
.nav-liens .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,.nav-droite .wp-block-navigation-item__content:hover .wp-block-navigation-item__label{animation:blink .32s steps(2) 2}
.nav-liens .seulement-mobile{display:none}
.wp-block-site-logo.nav-logo{justify-self:center;line-height:0}
.wp-block-site-logo.nav-logo img{height:13px!important;width:auto!important}
/* Menu mobile de core/navigation : sans ces règles qualifiées, le panneau s'ouvre blanc sur blanc */
.wp-block-navigation.nav-liens .wp-block-navigation__responsive-container-open{color:var(--blanc);display:none;align-items:center;gap:8px;font:inherit;letter-spacing:.1em}
.wp-block-navigation.nav-liens .wp-block-navigation__responsive-container-open svg{width:16px;height:16px}
.wp-block-navigation.nav-liens .wp-block-navigation__responsive-container-open::after{content:"Menu"}
.wp-block-navigation.nav-liens .wp-block-navigation__responsive-container.is-menu-open{background-color:var(--noir)!important;color:var(--blanc)!important;padding:80px var(--marge-d) 40px var(--marge)}
.wp-block-navigation.nav-liens .is-menu-open .wp-block-navigation__container{gap:14px;align-items:flex-start}
.wp-block-navigation.nav-liens .is-menu-open .wp-block-navigation-item__content{font-size:40px;font-weight:300;letter-spacing:0}
.wp-block-navigation.nav-liens .is-menu-open .wp-block-navigation-item__content::before{display:none}
.wp-block-navigation.nav-liens .is-menu-open .seulement-mobile{display:block}
@media (max-width:599px){
  .nav-in{grid-template-columns:1fr auto}
  .wp-block-site-logo.nav-logo{justify-self:start;grid-row:1;grid-column:1}
  .wp-block-navigation.nav-liens{grid-row:1;grid-column:2;justify-self:end}
  .wp-block-navigation.nav-liens .wp-block-navigation__responsive-container-open{display:inline-flex}
  .wp-block-navigation.nav-droite{display:none}
}

/* ---------- Écran de chargement (accueil, une fois par session) ---------- */
.chargeur{display:none}
.js .home .chargeur{position:fixed;inset:0;z-index:100;background:var(--noir);display:grid;grid-template-rows:auto 1fr auto;padding-block:max(14px,env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-bottom,0px));transition:opacity .9s var(--ease),visibility 0s linear .9s}
.js .home.deja-vu .chargeur,.js .home .chargeur.fini{opacity:0;visibility:hidden;pointer-events:none}
.chargeur-haut{display:flex;justify-content:space-between;gap:16px}
.chargeur-centre{display:grid;place-items:center;padding-inline:var(--marge)}
.chargeur-logo img{width:min(42vw,520px);height:auto;opacity:.92;animation:respire 2.4s ease-in-out infinite}
@keyframes respire{50%{opacity:.55}}
.chargeur-bas{position:relative;display:grid;gap:14px;padding-bottom:1px}
.chargeur-bas::before{content:"";position:absolute;left:var(--marge);right:var(--marge-d);bottom:0;height:1px;background:var(--trait-coins)}
.chargeur-bas::after{content:"";position:absolute;left:var(--marge);bottom:0;height:1px;width:calc((100% - var(--marge) - var(--marge-d)) * var(--p,0) / 100);background:var(--blanc);transition:width .2s linear}
.chargeur-ligne{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;padding-bottom:14px}
.chargeur-pct{font-weight:200;font-size:clamp(72px,9vw + 10px,200px);line-height:.8;letter-spacing:0;font-variant-numeric:tabular-nums}
.chargeur-pct::after{content:"%";font-size:.32em;margin-left:.15em;color:var(--gris)}
.chargeur-actions{display:grid;justify-items:end;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s var(--ease)}
.chargeur.pret .chargeur-actions{opacity:1;transform:none}
.chargeur-actions .cta{font-size:14px}
.chargeur-muet{color:var(--gris);font-size:10px;letter-spacing:.12em;cursor:pointer}
.chargeur-muet:hover{color:var(--blanc)}
.chargeur-ouvert{overflow:hidden}
@media (max-width:860px){.chargeur-actions{justify-items:start}.chargeur-logo img{width:72vw}}

/* ---------- Héros ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:var(--noir)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.35),transparent 30%,transparent 70%,rgba(0,0,0,.6));pointer-events:none;z-index:1}
.hero-media{position:absolute;inset:0}
.hero-media .wp-block-video{position:absolute;inset:0;height:100%}
.hero-media .wp-block-video video{height:100%}
.hero-media .video-hd{display:none}
@media (min-width:1280px){.hero-media .video-sd{display:none}.hero-media .video-hd{display:block}}
.wp-block-image.hero-logo{position:absolute;left:var(--marge);right:var(--marge-d);top:calc(48px + env(safe-area-inset-top,0px));z-index:2}
.wp-block-image.hero-logo img{width:100%;height:auto}
.hero-pied{position:absolute;left:var(--marge);right:var(--marge-d);bottom:14px;display:flex;justify-content:space-between;align-items:end;gap:16px;z-index:2}
.hero-lien{font-size:12px;letter-spacing:.1em}
.hero-lien a{display:inline-flex;align-items:center;gap:10px}
.hero-lien a::after{content:"";width:8px;height:10px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M0 1l4 3l4-3M0 5l4 3l4-3' fill='none' stroke='%23000'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M0 1l4 3l4-3M0 5l4 3l4-3' fill='none' stroke='%23000'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s var(--ease)}
.hero-lien a:hover{animation:blink .32s steps(2) 2}
.hero-lien a:hover::after{transform:translateY(3px)}
.son{display:inline-flex;align-items:center;gap:10px;padding:4px 0;font-size:12px;letter-spacing:.1em;cursor:pointer}
.son::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--ic-son-off) center/contain no-repeat;mask:var(--ic-son-off) center/contain no-repeat}
.son[aria-pressed="true"]::before{-webkit-mask-image:var(--ic-son-on);mask-image:var(--ic-son-on)}
.son:hover{animation:blink .32s steps(2) 2}
:root{
  --ic-son-off:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 6h3l4-3v10l-4-3H2z'/%3E%3Cpath d='M11 6l3.5 4M14.5 6L11 10' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E");
  --ic-son-on:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 6h3l4-3v10l-4-3H2z'/%3E%3Cpath d='M11 5.5c1 .7 1.5 1.6 1.5 2.5s-.5 1.8-1.5 2.5M12.6 3.6C14 4.7 14.8 6.3 14.8 8s-.8 3.3-2.2 4.4' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E");
}

/* ---------- Petit titre (s-small-header) ---------- */
.titre-section{padding-block:clamp(90px,10vw,150px) clamp(100px,11vw,160px);scroll-margin-top:50px}
.titre-section::before{content:"";display:block;height:1px;background:var(--trait-coins)}
.titre-texte{display:grid;padding-top:13px;max-width:83%}
.titre-texte h2{font-weight:300;font-size:clamp(23px,-12px + 3.45vw,72px);line-height:1.04;letter-spacing:1.92px;text-transform:uppercase;text-wrap:pretty}
.mot{display:inline-block}
.js-mots .mot{color:var(--gris-2);opacity:.45;transition:color .45s ease,opacity .45s ease}
.js-mots .mot.on{color:var(--blanc);opacity:1}
@media (max-width:860px){.titre-texte{max-width:none}}

/* ---------- Vedette Saison 5 ---------- */
.vedette-image{position:relative;aspect-ratio:16/9;max-width:100%;margin-inline:clamp(0px,3vw,46px)}
.vedette-image>.wp-block-image.media{position:absolute;inset:0}
.vedette-image>.wp-block-image.media img{transform:scale(1.02);transition:transform 1.6s var(--ease)}
.vedette-image:hover>.wp-block-image.media img{transform:scale(1.05)}
.vedette-image>.wp-block-image.media::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.55),transparent 38%)}
.vedette-tete{position:absolute;top:0;left:0;z-index:2;display:grid;justify-items:start;gap:14px;padding:clamp(18px,2.6vw,40px)}
.vedette-tete h3{font-size:clamp(48px,4.8vw + 9px,132px);line-height:.85;text-transform:uppercase}
.vedette-tete .label{letter-spacing:.14em}
.vedette-tete .cta{margin-top:6px}

/* ---------- Builds de la saison ---------- */
.builds-titre{scroll-margin-top:50px;margin-top:160px;display:grid;justify-items:start;gap:14px;padding-block:0 28px}
.builds-titre.pad{padding-left:calc(var(--marge) + clamp(0px,3vw,46px))}
.builds-titre h2{font-size:clamp(48px,4.8vw + 9px,132px);line-height:.85;text-transform:uppercase}
.builds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;position:relative;z-index:2}
.carte{background:var(--noir);border:1px solid var(--filet);display:grid;grid-template-rows:auto auto 1fr auto}
.carte-tete{display:flex;align-items:center;gap:14px;padding:10px 12px;font-size:10px;letter-spacing:.1em;border-bottom:1px solid var(--filet)}
.carte-classe{color:var(--gris)}
.carte-classe strong{color:var(--blanc);margin-left:4px}
.carte-choix{display:flex;gap:2px;margin-left:auto}
.carte-choix p{border:1px solid transparent;color:var(--gris);font-size:10px;letter-spacing:.1em;padding:3px 6px;cursor:pointer;line-height:1.4}
.carte-choix p.actif{color:var(--blanc);border-color:var(--filet)}
.carte-image{padding:34px 18% 30px}
.carte-image .wp-block-image.media{aspect-ratio:3/4;max-width:100%}
.carte-variante{display:none;padding:0 12px 14px;gap:8px;align-content:start}
.carte-variante.actif{display:grid}
.carte-variante h4{font-size:16px;font-weight:400;letter-spacing:.06em}
.carte-variante p{font-size:10px;color:var(--gris);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.carte-variante p.ligne{display:block;-webkit-line-clamp:unset;font-size:10px;padding-top:10px;border-top:1px solid var(--filet);color:var(--gris)}
.carte-variante p.ligne strong{color:var(--blanc);margin-inline:6px 10px}
.carte-pied{border-top:1px solid var(--filet);padding:12px;text-align:center}
@media (max-width:1100px){.builds{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.builds{grid-template-columns:1fr}}

/* ---------- Parallaxe ---------- */
.parallaxe{position:relative;height:min(72vh,660px);min-height:440px;overflow:hidden;margin-top:160px}
.parallaxe>.wp-block-image.media{position:absolute;inset:-12% 0;background:none}
.parallaxe>.wp-block-image.media img{object-position:30% 40%}
.parallaxe::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 46% 40% at 50% 50%,rgba(0,0,0,.55),transparent 75%),linear-gradient(var(--noir),transparent 22%,transparent 70%,var(--noir))}
.parallaxe::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;z-index:2;pointer-events:none;background:linear-gradient(rgba(255,255,255,.25) 0 30%,transparent 30% 78%,rgba(255,255,255,.25) 78%)}
@media (max-width:860px){.parallaxe::after{background:radial-gradient(ellipse 90% 45% at 50% 50%,rgba(0,0,0,.65),transparent 80%),linear-gradient(var(--noir),transparent 22%,transparent 70%,var(--noir))}}
.parallaxe-txt{position:absolute;inset:0;z-index:3;display:grid;place-items:center;text-align:center;padding-inline:var(--marge)}
.parallaxe-contenu{max-width:640px;display:grid;gap:18px;justify-items:center;background:var(--noir-0,transparent)}
.parallaxe-contenu::before{content:"";width:5px;height:5px;background:var(--blanc)}
.parallaxe-contenu p{font-size:clamp(13px,.55vw + 8px,17px);line-height:1.5;letter-spacing:.08em;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.parallaxe-contenu p.cta{font-size:12px;margin-top:6px}

/* ---------- Chiffres ---------- */
.chiffres{margin-top:160px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.chiffre{background:var(--surface);border:1px solid var(--filet);padding:8px 8px 18px;display:grid;gap:56px;align-content:start}
.chiffre-n{font-weight:200;font-size:clamp(40px,2.6vw + 6px,48px);letter-spacing:0;line-height:1;justify-self:start;padding:6px 4px 4px;font-variant-numeric:tabular-nums}
.chiffre h4{font-size:15px;font-weight:400;letter-spacing:.1em}
.chiffre-txt p{font-size:11.5px;color:var(--gris);letter-spacing:.08em;line-height:1.55;margin-top:8px}
@media (max-width:900px){.chiffres{grid-template-columns:1fr}}

/* ---------- Citation finale ---------- */
.citation{position:relative;height:min(64vh,620px);min-height:420px;margin-top:160px;overflow:hidden}
.citation>.wp-block-image.media{position:absolute;inset:0}
.citation::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 50% 42% at 50% 42%,rgba(0,0,0,.5),transparent 80%),linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,.28)),linear-gradient(var(--noir),transparent 25%,transparent 70%,var(--noir))}
.citation::before{content:"";position:absolute;left:12%;right:12%;top:30%;bottom:40%;z-index:2;border-left:1px solid rgba(255,255,255,.2);border-right:1px solid rgba(255,255,255,.2);pointer-events:none}
.citation-texte{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:22px;text-align:center;padding-inline:var(--marge);padding-bottom:clamp(60px,10vw,150px)}
.citation-texte .label::before{content:"";display:block;width:5px;height:5px;background:var(--blanc);margin:0 auto 22px}
.citation-phrase{font-size:clamp(23px,3.45vw - 15px,46px);font-weight:300;letter-spacing:.04em;line-height:1.15;max-width:28ch;text-shadow:0 2px 18px rgba(0,0,0,.45)}

/* ---------- Pied de page (parts/footer.html) ---------- */
.pied{position:relative;margin-top:clamp(100px,10vw,160px);z-index:2}
.home .pied{margin-top:-140px}
.wp-block-site-logo.pied-logo{line-height:0}
.wp-block-site-logo.pied-logo a,.wp-block-site-logo.pied-logo img{display:block;width:100%!important;height:auto!important}
.pied-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;padding-block:18px 40px;border-top:1px solid var(--filet);margin-top:14px}
.pied-grille h5{margin:0 0 10px;line-height:1.5;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--gris-2)}
.wp-block-navigation.pied-menu{font-size:10px;letter-spacing:.1em}
.wp-block-navigation.pied-menu .wp-block-navigation__container{flex-direction:column;align-items:flex-start;gap:2px}
.pied-menu .wp-block-navigation-item__content:hover{animation:blink .32s steps(2) 2}
.lettre{justify-self:end;width:min(100%,560px)}
.pied-bas{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:10px 18px;border-top:1px solid var(--filet);font-size:10px;letter-spacing:.1em;color:var(--gris-2)}
.pied-bas a{margin-right:14px}
.pied-bas a:hover{color:var(--blanc)}
@media (max-width:900px){.pied-grille{grid-template-columns:1fr}.lettre{justify-self:stretch;width:auto}}

/* Contact Form 7 aux couleurs du thème (autop désactivé dans functions.php) */
.wpcf7 form{display:grid;gap:28px}
.wpcf7-form-control-wrap{display:block}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 select,.wpcf7 textarea{display:block;width:100%}
.wpcf7-not-valid-tip{font-size:10px;letter-spacing:.08em;color:var(--blanc);margin-top:6px;text-transform:none}
.wpcf7 form .wpcf7-response-output{margin:0;padding:10px 14px;border:1px solid var(--filet)!important;font-size:11px;letter-spacing:.06em;text-transform:none;color:var(--blanc)}
.wpcf7-spinner{display:none!important}
.wpcf7-list-item{margin:0}
.wpcf7-acceptance label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.lettre .wpcf7 form{gap:10px}
.lettre-ligne{display:flex;gap:6px}
.lettre-ligne .wpcf7-form-control-wrap{flex:1;min-width:0}
.lettre input[type=email]{background:var(--surface);border:1px solid var(--filet);color:var(--blanc);font:inherit;font-size:10px;letter-spacing:.1em;padding:10px;text-transform:uppercase}
.lettre input[type=email]::placeholder{color:var(--gris)}
.lettre input[type=submit]{background:var(--surface);border:1px solid var(--filet);color:var(--blanc);font:inherit;font-size:10px;letter-spacing:.1em;padding:0 22px;cursor:pointer;text-transform:uppercase}
.lettre input[type=submit]:hover{background:var(--blanc);color:var(--noir)}
.lettre-ok{font-size:10px;line-height:1.55;letter-spacing:.06em;color:var(--gris);text-transform:none}
.lettre-ok input{accent-color:var(--blanc);margin-top:2px}
.lettre-ok a,.consent a,.form-info a{text-decoration:underline}

/* ================= Pages internes ================= */
.page-tete{position:relative;height:min(78vh,760px);min-height:480px;overflow:hidden}
.page-tete>.wp-block-image.media{position:absolute;inset:0}
.page-tete::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(rgba(0,0,0,.45),transparent 30%,transparent 55%,var(--noir))}
.page-tete-txt{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;justify-items:start;gap:14px;padding-block:0 clamp(28px,4vw,56px)}
.page-tete-txt h1,.page-titre h1{font-size:clamp(34px,7vw + 10px,180px);overflow-wrap:anywhere;line-height:.85;text-transform:uppercase;font-weight:200}
.page-tete-txt .label,.page-titre .label{letter-spacing:.14em}
.page-titre{display:grid;justify-items:start;gap:14px;padding-block:clamp(110px,12vw,180px) 0}
.page-titre::after{content:"";width:100%;height:1px;margin-top:clamp(10px,1.6vw,30px);background:var(--trait-coins)}

/* Arsenal (sélecteur de catégories) */
.arsenal{margin-top:0;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.arsenal-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-left:1px solid var(--filet);border-right:1px solid var(--filet);margin-inline:var(--marge) var(--marge-d)}
.arsenal-panneau{display:none}
.arsenal-panneau.actif{display:contents}
.arsenal-image{padding:6px;border-right:1px solid var(--filet)}
.arsenal-image{display:grid;align-content:center}
.arsenal-image .wp-block-image.media{aspect-ratio:16/9;max-width:100%}
.arsenal-info{display:grid;grid-template-rows:1fr auto}
.arsenal-texte{padding:clamp(24px,4vw,58px);display:grid;align-content:center;gap:18px}
.arsenal-texte h3{font-size:clamp(40px,3vw + 10px,72px);text-transform:uppercase}
.arsenal-texte p:not(.label):not(.cta){max-width:56ch;color:var(--gris);font-size:11px;line-height:1.6}
.arsenal-texte .cta{margin-top:6px}
.arsenal-details{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--filet)}
.arsenal-details>.wp-block-group{padding:22px clamp(16px,3vw,58px) 26px;display:grid;gap:4px}
.arsenal-details>.wp-block-group+.wp-block-group{border-left:1px solid var(--filet)}
.arsenal-details .label{font-size:10px}
.arsenal-vignettes{display:flex;border-top:1px solid var(--filet);margin-inline:var(--marge) var(--marge-d);border-left:1px solid var(--filet);border-right:1px solid var(--filet);overflow-x:auto;scrollbar-width:none}
.arsenal-vignettes::-webkit-scrollbar{display:none}
.arsenal-vignettes{scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.vignette{scroll-snap-align:center}
.fleches{display:grid;grid-template-rows:1fr 1fr;border-right:1px solid var(--filet);flex:none;position:sticky;left:0;z-index:2;background:var(--noir)}
.fleche{width:28px;font-size:0;display:grid;place-items:center;cursor:pointer}
.fleche+.fleche{border-top:1px solid var(--filet)}
.fleche::before{content:"";width:8px;height:10px;background:var(--blanc);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.fleche-g{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M6 1L2 5l4 4' fill='none' stroke='%23000'/%3E%3C/svg%3E")}
.fleche-d{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M2 1l4 4l-4 4' fill='none' stroke='%23000'/%3E%3C/svg%3E")}
.vignette{flex:none;width:150px;padding:6px 6px 10px;border-right:1px solid var(--filet);color:var(--gris);font-size:10px;letter-spacing:.1em;display:grid;gap:8px;cursor:pointer;transition:color .2s}
.vignette .wp-block-image.media{aspect-ratio:16/9}
.vignette img{filter:grayscale(1) brightness(.7);transition:filter .3s}
.vignette:hover,.vignette.actif{color:var(--blanc)}
.vignette:hover img,.vignette.actif img{filter:none}
.vignette p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Liste des armes */
.armes{margin-top:clamp(100px,10vw,160px);scroll-margin-top:50px}
.armes-tete{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;padding-bottom:22px}
.armes-tete h2{font-size:clamp(40px,3.6vw + 8px,96px);line-height:.9;text-transform:uppercase;font-weight:200}
.filtres{position:sticky;top:calc(39px + env(safe-area-inset-top,0px));z-index:20;background:var(--noir);display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding-block:12px;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.admin-bar .filtres{top:calc(71px + env(safe-area-inset-top,0px))}
.filtres-groupe{display:flex;flex-wrap:wrap;gap:4px}
.filtre{border:1px solid var(--filet);color:var(--gris);font-size:11px;letter-spacing:.1em;padding:7px 10px;cursor:pointer;display:inline-flex;gap:8px;line-height:1.4;transition:color .15s,border-color .15s}
.filtre em{font-style:normal;color:var(--gris-2)}
.filtre:hover{color:var(--blanc);border-color:var(--gris-2)}
.filtre.actif{color:var(--noir);background:var(--blanc);border-color:var(--blanc)}
.armes-entete,.arme summary{display:grid;grid-template-columns:48px minmax(0,2.2fr) minmax(0,1fr) 70px 90px 24px;gap:16px;align-items:center}
.armes-entete{padding:14px 0 8px;font-size:10px;letter-spacing:.12em;color:var(--gris-2)}
.armes-groupe{scroll-margin-top:110px}
.armes-groupe-titre{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:clamp(20px,1.4vw + 6px,30px);font-weight:300;letter-spacing:.06em;text-transform:uppercase;padding:40px 0 12px;border-bottom:1px solid var(--filet)}
.armes-groupe-titre em{font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--gris)}
.wp-block-details.arme{border-bottom:1px solid var(--filet);margin:0}
.arme summary{list-style:none;cursor:pointer;padding:14px 0;font-size:12px;letter-spacing:.1em;transition:background .2s}
.arme summary::-webkit-details-marker{display:none}
.arme summary:hover,.arme[open] summary{background:var(--surface)}
.arme-n{color:var(--gris-2);font-variant-numeric:tabular-nums;padding-left:4px}
.arme-nom{font-size:clamp(17px,.7vw + 11px,22px);font-weight:300;letter-spacing:.06em}
.arme-classe,.arme-pts{color:var(--gris);font-variant-numeric:tabular-nums}
.arme-tier{width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--gris-2);font-size:11px}
.tier-S .arme-tier{background:var(--blanc);color:var(--noir);border-color:var(--blanc)}
.tier-A .arme-tier{border-color:var(--blanc)}
.tier-C .arme-tier{color:var(--gris-2)}
.arme-plus{position:relative;width:11px;height:11px;justify-self:end;margin-right:4px}
.arme-plus::before,.arme-plus::after{content:"";position:absolute;background:var(--blanc);transition:transform .3s var(--ease)}
.arme-plus::before{left:5px;top:0;width:1px;height:11px}
.arme-plus::after{top:5px;left:0;height:1px;width:11px}
.arme[open] .arme-plus::before{transform:scaleY(0)}
.arme-corps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(20px,4vw,64px);padding:20px 4px 28px 68px;background:var(--surface)}
.arme-desc{display:grid;gap:20px;align-content:start}
.arme-desc>p{font-size:12px;line-height:1.65;letter-spacing:.06em;color:#cfcfcf;max-width:52ch}
.wp-block-image.arme-visuel{aspect-ratio:36/11;max-width:100%;background:radial-gradient(ellipse at 50% 60%,#1c1c1c,var(--noir) 75%);border:1px solid var(--filet);display:grid;place-items:center}
.wp-block-image.arme-visuel img{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.7))}
.jauge{display:grid;gap:8px}
.jauge-barre{position:relative;height:2px;background:var(--filet);font-size:0;overflow:hidden}
.jauge-barre::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p,100%);background:var(--blanc)}
.jauge-barre.p100{--p:100%}.jauge-barre.p95{--p:95%}.jauge-barre.p90{--p:90%}.jauge-barre.p83{--p:83%}
.arme-build{border-top:1px solid var(--filet)}
.slot{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:9px 0;border-bottom:1px solid var(--filet);font-size:12px;letter-spacing:.08em}
.slot .label{font-size:10px}
.armes-vide{padding:40px 0;color:var(--gris)}
.armes-note{display:block;padding-top:24px;max-width:80ch;line-height:1.6}
.armes-groupe.cache,.arme.cache{display:none}
.est-cachee{display:none}
.est-cachee.est-actif{display:block}
@media (max-width:860px){
  .armes-entete{display:none}
  .arme summary{grid-template-columns:32px minmax(0,1fr) 28px 18px;gap:10px}
  .arme-classe,.arme-pts{display:none}
  .arme-corps{grid-template-columns:1fr;padding:18px 4px 24px}
  .slot{grid-template-columns:110px minmax(0,1fr)}
  .filtres{position:static}
}

/* À venir */
.avenir{margin-top:clamp(100px,10vw,160px)}
.avenir::before{content:"";display:block;height:1px;background:var(--trait-coins)}
.avenir-grille{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:24px;padding-top:18px}
.avenir-grille h2{font-size:clamp(28px,2vw + 8px,44px);font-weight:300;text-transform:uppercase;line-height:1}
.avenir-item{display:grid;gap:12px;align-content:start}
.avenir-nom{font-weight:200;font-size:clamp(40px,3vw + 8px,72px);line-height:1}
.avenir-item p:not(.avenir-nom){font-size:11px;line-height:1.6;color:var(--gris);letter-spacing:.08em}
.avenir-item p strong{color:var(--blanc)}
@media (max-width:860px){.avenir-grille{grid-template-columns:1fr}}

/* Contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(32px,6vw,110px);padding-block:clamp(48px,5vw,80px) clamp(120px,12vw,200px)}
.contact-infos{display:grid;gap:30px;align-content:start}
.contact-infos p:not(.label){margin-top:8px;font-size:13px;line-height:1.6;letter-spacing:.06em;max-width:40ch}
.selectable{user-select:all}
.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.champ{display:grid;gap:10px}
.champ label{font-size:11px;letter-spacing:.12em;color:var(--gris)}
.champ input,.champ select,.champ textarea{background:transparent;border:0;border-bottom:1px solid var(--filet);border-radius:0;color:var(--blanc);font:inherit;font-size:16px;letter-spacing:.04em;text-transform:none;padding:10px 0;outline:none;transition:border-color .2s}
.champ select option{background:var(--noir)}
.champ textarea{resize:vertical;min-height:150px}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-bottom-color:var(--blanc)}
.consent{font-size:11px;line-height:1.6;letter-spacing:.06em;color:var(--gris);text-transform:none}
.consent input{accent-color:var(--blanc);margin-top:3px}
.form-info{font-size:11px;line-height:1.6;letter-spacing:.04em;color:var(--gris-2);text-transform:none;max-width:70ch}
.wpcf7 input.cta-bouton{justify-self:start;background:none;border:1px solid var(--filet);color:var(--blanc);font:inherit;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:14px 22px;cursor:pointer}
.wpcf7 input.cta-bouton:hover{border-color:var(--blanc)}
@media (max-width:860px){.contact,.champs-2{grid-template-columns:1fr}}

/* Pages légales */
.legal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:clamp(32px,6vw,110px);padding-block:clamp(48px,5vw,80px) clamp(120px,12vw,200px)}
.legal-nav{position:sticky;top:70px;align-self:start;display:grid;gap:10px}
.legal-nav a{font-size:11px;letter-spacing:.12em;color:var(--gris)}
.legal-nav a:hover{color:var(--blanc)}
.legal-texte{max-width:72ch}
.legal-texte h2{font-size:clamp(22px,1.2vw + 10px,30px);font-weight:300;text-transform:uppercase;letter-spacing:.06em;margin:48px 0 16px;scroll-margin-top:70px}
.legal-texte .legal-note+h2{margin-top:0}
.legal-texte p,.legal-texte li{font-size:13px;line-height:1.7;letter-spacing:.04em;color:#cfcfcf;text-transform:none;margin-bottom:12px}
.legal-texte ul{padding-left:18px;margin:0 0 12px}
.legal-texte a{text-decoration:underline}
.legal-texte em{font-style:normal;border-bottom:1px dashed var(--gris);color:var(--blanc)}
.legal-texte strong{color:var(--blanc)}
.legal-note{border-left:1px solid var(--blanc);padding:10px 16px;background:var(--surface);margin-bottom:40px!important}
@media (max-width:860px){.legal{grid-template-columns:1fr}.legal-nav{position:static;display:flex;flex-wrap:wrap;gap:14px}}

/* ================= Animations ================= */
@keyframes rideau{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes volet{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes zoom-arriere{from{transform:scale(1.16)}to{transform:scale(1)}}
@keyframes monte{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes glisse{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
@keyframes fondu{from{opacity:0}to{opacity:1}}

/* Changement de catégorie (Armurerie) : volet sur l'image, textes en cascade */
.arsenal-panneau.actif .arsenal-image .wp-block-image.media{animation:volet 1s var(--ease) both}
.arsenal-panneau.actif .arsenal-image .wp-block-image.media img{animation:zoom-arriere 1.6s var(--ease) both}
.arsenal-panneau.actif .arsenal-texte>*{animation:monte .8s var(--ease) both}
.arsenal-panneau.actif .arsenal-texte>:nth-child(2){animation-delay:.07s}
.arsenal-panneau.actif .arsenal-texte>:nth-child(3){animation-delay:.14s}
.arsenal-panneau.actif .arsenal-texte>:nth-child(4){animation-delay:.21s}
.arsenal-panneau.actif .arsenal-details>*{animation:monte .7s var(--ease) .28s both}
.arsenal-panneau.actif .arsenal-details>*+*{animation-delay:.36s}
.vignette .wp-block-image.media img{transition:filter .4s,transform .8s var(--ease)}
.vignette:hover .wp-block-image.media img{transform:scale(1.06)}

/* Cartes de builds : la variante choisie monte */
.carte-variante.actif>*{animation:monte .55s var(--ease) both}
.carte-variante.actif>:nth-child(2){animation-delay:.06s}
.carte-variante.actif>:nth-child(3){animation-delay:.12s}
.carte-image .wp-block-image.media img{transition:transform 1.2s var(--ease)}
.carte:hover .carte-image .wp-block-image.media img{transform:scale(1.05)}

/* Fiche d'arme : le contenu glisse à l'ouverture ; la liste se met à jour en fondu après un filtre */
.arme[open] .arme-corps{animation:fondu .4s ease both}
.arme[open] .arme-visuel{animation:glisse .8s var(--ease) both}
.arme[open] .arme-desc>p,.arme[open] .jauge{animation:monte .6s var(--ease) .1s both}
.arme[open] .slot{animation:monte .5s var(--ease) both}
.arme[open] .slot:nth-child(2){animation-delay:.04s}.arme[open] .slot:nth-child(3){animation-delay:.08s}
.arme[open] .slot:nth-child(4){animation-delay:.12s}.arme[open] .slot:nth-child(5){animation-delay:.16s}
.arme[open] .slot:nth-child(6){animation-delay:.2s}.arme[open] .slot:nth-child(7){animation-delay:.24s}
.arme[open] .slot:nth-child(n+8){animation-delay:.28s}
.jauge-barre::after{transform-origin:left;transition:transform .9s var(--ease) .2s}
.arme:not([open]) .jauge-barre::after{transform:scaleX(0)}
.js-armes.filtre-anim .armes-groupe:not(.cache){animation:monte .5s var(--ease) both}

/* Ouverture du site : le grand logo sort d'un masque, le pied du héros apparaît */
.js .home .wp-block-image.hero-logo{overflow:hidden}
.js .home .wp-block-image.hero-logo img{transform:translateY(102%);transition:transform 1.4s var(--ease) .1s}
.js .home .hero-pied{opacity:0;transition:opacity 1s ease .9s}
.js .home.hero-go .wp-block-image.hero-logo img{transform:none}
.js .home.hero-go .hero-pied{opacity:1}

/* Révélations au défilement (classes posées par app.js, uniquement sous l'écran au chargement) */
.a-attente{opacity:0;transform:translateY(40px)}
.a-attente.a-rideau{opacity:1;transform:none}
.a-attente.a-rideau>.wp-block-image.media{clip-path:inset(0 0 100% 0)}
.a-vu{animation:monte 1.1s var(--ease) var(--d,0s) both}
.a-vu.a-rideau{animation:none}
.a-vu.a-rideau>.wp-block-image.media{animation:rideau 1.4s var(--ease) var(--d,0s) both}
.a-vu.a-rideau>.wp-block-image.media img{animation:zoom-arriere 2s var(--ease) var(--d,0s) both}

/* Cartes de builds : apparition douce (courbe sans à-coup, plus lente, image en fondu + léger dézoom) */
@keyframes monte-doux{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes image-douce{from{opacity:0;transform:scale(1.08);filter:brightness(.4)}to{opacity:1;transform:none;filter:none}}
.carte.a-attente{opacity:0;transform:translateY(18px)}
.carte.a-vu{animation:monte-doux 1.6s cubic-bezier(.22,.61,.36,1) var(--d,0s) both}
.carte.a-attente .carte-image .wp-block-image.media img{opacity:0}
.carte.a-vu .carte-image .wp-block-image.media img{animation:image-douce 2.2s cubic-bezier(.22,.61,.36,1) calc(var(--d,0s) + .25s) both}

@media (prefers-reduced-motion:reduce){
  .a-attente,.a-attente.a-rideau,.a-attente.a-rideau>.wp-block-image.media,.carte.a-attente .carte-image .wp-block-image.media img{opacity:1!important;transform:none!important;clip-path:none!important}
  .js .home .wp-block-image.hero-logo img{transform:none!important}
  .js .home .hero-pied{opacity:1!important}
}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .vedette-image{aspect-ratio:4/5;margin-inline:0}
  .builds-titre.pad{padding-left:var(--marge)}
  .arsenal-grille{grid-template-columns:1fr}
  .arsenal-image{border-right:0;border-bottom:1px solid var(--filet)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
