/*
Theme Name: Raids Équipements — Deux univers
Theme URI: https://www.raids-equipements.com/
Author: Raids Équipements
Description: Thème vitrine réunissant l’univers Airsoft et les activités enfants, sans boutique en ligne.
Version: 1.5.1
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: raids-fusion
*/

:root {
  --ink: #121814;
  --night: #0c1210;
  --night-soft: #17201b;
  --paper: #f6f5f0;
  --white: #ffffff;
  --line: rgba(18, 24, 20, 0.14);
  --muted: #5d675f;
  --tactical: #a9c23f;
  --tactical-dark: #607229;
  --signal: #f3d23b;
  --kids-blue: #1677ea;
  --kids-cyan: #22c8dc;
  --kids-yellow: #ffd43f;
  --kids-coral: #ff6a55;
  --kids-purple: #7156e8;
  --dcs-electric: #66e7ff;
  --dcs-blue: #2586ff;
  --dcs-red: #ff435c;
  --radius: 1.4rem;
  --shadow: 0 1.4rem 3.8rem rgba(12, 18, 16, 0.15);
  --shell: min(1180px, calc(100% - 2.5rem));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  margin-bottom: 0.7em;
  font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.025em;
}
h1 { font-size: clamp(2.7rem, 7vw, 6.7rem); }
h2 { font-size: clamp(2.1rem, 4.8vw, 4.4rem); }
h3 { font-size: clamp(1.35rem, 2.3vw, 1.9rem); }
p { margin-bottom: 1.1rem; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(4.5rem, 8vw, 8rem) 0; position: relative; }
.section-tight { padding: clamp(3rem, 5vw, 5rem) 0; }
.section-white { background: var(--white); }
.section-dark {
  overflow: hidden;
  color: var(--white);
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    var(--night);
  background-size: 34px 34px;
}
.section-dark::before {
  content: "";
  position: absolute;
  inset: auto -10% -13rem 45%;
  height: 28rem;
  background: radial-gradient(circle, rgba(169,194,63,.15), transparent 68%);
  pointer-events: none;
}
.section-kids {
  overflow: hidden;
  background:
    radial-gradient(circle at 5% 20%, rgba(34,200,220,.20), transparent 22rem),
    radial-gradient(circle at 96% 80%, rgba(255,212,63,.28), transparent 24rem),
    #f8fcff;
}
.section-kids::after {
  content: "";
  position: absolute;
  width: 10rem;
  height: 10rem;
  border: 1.8rem solid rgba(113,86,232,.08);
  border-radius: 50%;
  right: -4rem;
  top: 3rem;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1.1rem;
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 2rem; height: 3px; background: currentColor; }
.eyebrow-kids { color: var(--kids-blue); }
.eyebrow-tactical { color: var(--tactical); }
.lead { font-size: clamp(1.05rem, 1.8vw, 1.28rem); line-height: 1.65; }
.muted { color: var(--muted); }
.inverse-lead { color: rgba(255,255,255,.7); }
.skip-link {
  position: fixed;
  z-index: 1000;
  top: 0.8rem;
  left: 0.8rem;
  padding: 0.7rem 1rem;
  color: var(--white);
  background: var(--ink);
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

/* En-tête */
.utility-bar { color: rgba(255,255,255,.74); background: #080c0a; font-size: 0.82rem; }
.utility-inner { min-height: 2.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.utility-inner a { color: var(--white); font-weight: 750; text-decoration: none; }
.utility-separator { color: var(--tactical); padding-inline: 0.4rem; }
.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  color: var(--white);
  background: rgba(12,18,16,.96);
  border-bottom: 1px solid rgba(255,255,255,.09);
  backdrop-filter: blur(14px);
}
.nav-shell { min-height: 5.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: 0.75rem; color: inherit; text-decoration: none; flex: 0 0 auto; }
.brand img { width: 3.2rem; height: 3.2rem; object-fit: contain; }
.brand-copy { line-height: 1; }
.brand-name { display: block; font-family: Impact, "Arial Narrow", sans-serif; font-size: 1.14rem; letter-spacing: 0.035em; }
.brand-subtitle { display: block; margin-top: 0.32rem; color: rgba(255,255,255,.62); font-size: 0.68rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: clamp(0.65rem, 1.7vw, 1.35rem); }
.main-nav a {
  position: relative;
  color: rgba(255,255,255,.8);
  font-size: 0.83rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.main-nav a::after { content: ""; position: absolute; height: 3px; left: 0; right: 100%; bottom: -0.75rem; background: var(--tactical); transition: right .2s ease; }
.main-nav a:hover, .main-nav a:focus-visible, .main-nav a[aria-current="page"] { color: var(--white); }
.main-nav a:hover::after, .main-nav a:focus-visible::after, .main-nav a[aria-current="page"]::after { right: 0; }
.nav-kids { color: var(--kids-yellow) !important; }
.main-nav .nav-airsoft { color: #ffb6c0; }
.main-nav .nav-airsoft::after { background: var(--dcs-red); box-shadow: 0 0 .8rem rgba(255,67,92,.65); }
.main-nav .nav-dcs { display: inline-flex; align-items: center; gap: .38rem; padding: .43rem .58rem; color: var(--dcs-electric); border: 1px solid rgba(102,231,255,.44); border-radius: .35rem; }
.main-nav .nav-dcs::before { content: ""; width: 1.18rem; height: 1.18rem; flex: 0 0 auto; background: url("assets/images/dcs-icon.png") center/contain no-repeat; }
.main-nav .nav-dcs::after { display: none; }
.main-nav .nav-dcs:hover, .main-nav .nav-dcs:focus-visible, .main-nav .nav-dcs[aria-current="page"] { color: #06131d; background: var(--dcs-electric); }
.menu-toggle { display: none; width: 3rem; height: 3rem; color: var(--white); border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: transparent; }
.menu-toggle-lines, .menu-toggle-lines::before, .menu-toggle-lines::after { display: block; width: 1.25rem; height: 2px; margin: auto; background: currentColor; content: ""; transition: transform .2s ease; }
.menu-toggle-lines::before { transform: translateY(-0.42rem); }
.menu-toggle-lines::after { transform: translateY(0.3rem); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::before { transform: translateY(0) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines::after { transform: translateY(-2px) rotate(-45deg); }

/* Boutons */
.button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.78rem 1.25rem;
  border: 2px solid transparent;
  border-radius: 0.55rem;
  font-size: 0.88rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  line-height: 1.15;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-tactical { color: var(--night); background: var(--tactical); box-shadow: 0 .8rem 2rem rgba(169,194,63,.2); }
.button-tactical:hover { background: #bed950; }
.button-kids { color: #0a2d56; background: var(--kids-yellow); border-radius: 999px; box-shadow: 0 .8rem 2rem rgba(255,212,63,.25); }
.button-kids:hover { background: #ffe46e; }
.button-dcs { color: #06131d; background: linear-gradient(135deg, var(--dcs-electric), #4aa2ff); box-shadow: 0 .8rem 2rem rgba(77,191,255,.22); }
.button-dcs:hover { background: linear-gradient(135deg, #a4f2ff, #71b6ff); }
.button-light { color: var(--night); background: var(--white); }
.button-dark { color: var(--white); background: var(--ink); }
.button-outline { color: var(--ink); border-color: rgba(18,24,20,.3); background: transparent; }
.button-outline-light { color: var(--white); border-color: rgba(255,255,255,.48); background: rgba(0,0,0,.1); }
.button-row { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; }

/* Accueil : deux portes d’entrée */
.gateway { position: relative; color: var(--white); background: var(--night); }
.gateway-intro {
  position: relative;
  z-index: 4;
  width: 100%;
  padding: 1.35rem 1rem 1.55rem;
  text-align: center;
  background:
    radial-gradient(circle at 24% 110%, rgba(255,67,92,.2), transparent 34%),
    radial-gradient(circle at 76% 110%, rgba(34,200,220,.2), transparent 34%),
    #07111a;
  border-bottom: 1px solid rgba(102,231,255,.2);
  pointer-events: none;
}
.gateway-intro .eyebrow { margin-bottom: .55rem; color: rgba(255,255,255,.82); text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.gateway-intro .eyebrow::before { display: none; }
.gateway-intro h1 { margin: 0; font-size: clamp(2.15rem, 3.3vw, 3.65rem); text-shadow: 0 4px 24px rgba(0,0,0,.55); }
.gateway-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: min(42rem, calc(100svh - 12rem)); }
.gateway-panel { position: relative; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; padding: clamp(8rem, 18vh, 12rem) max(1.25rem, calc((100vw - 1180px)/2)) clamp(3rem, 6vw, 5rem); text-decoration: none; }
.gateway-panel::before { content: ""; position: absolute; z-index: -2; inset: 0; background: var(--panel-image) center/cover no-repeat; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.gateway-panel::after { content: ""; position: absolute; z-index: -1; inset: 0; background: var(--panel-shade); }
.gateway-panel:hover::before, .gateway-panel:focus-visible::before { transform: scale(1.035); }
.gateway-airsoft { --panel-image: url("assets/images/airsoft-hero.jpg"); --panel-shade: linear-gradient(180deg, rgba(3,10,17,.18) 0%, rgba(4,13,23,.91) 74%, rgba(3,7,12,.98) 100%); justify-content: flex-end; padding-right: clamp(2rem, 5vw, 5rem); border-right: 1px solid rgba(102,231,255,.32); box-shadow: inset -1px 0 0 rgba(255,67,92,.28); }
.gateway-kids {
  --panel-image: url("assets/images/kids-hero.jpg");
  --panel-shade: linear-gradient(180deg, rgba(9,60,117,0) 0%, rgba(14,91,174,.08) 32%, rgba(14,91,174,.58) 53%, rgba(9,55,108,.98) 100%);
  padding-left: clamp(2rem, 5vw, 5rem);
  background: linear-gradient(180deg, #eef8ff 0%, #dceeff 31%, #2087dc 53%, #093d78 100%);
}
.gateway-kids::before {
  inset: 0 0 auto;
  height: 58%;
  background-position: center top;
  background-size: 100% auto;
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 66%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 66%, transparent 100%);
}
.gateway-kids:hover::before, .gateway-kids:focus-within::before { transform: none; }
.gateway-copy { max-width: 31rem; }
.gateway-airsoft .gateway-copy { text-align: right; }
.gateway-airsoft .button-row { justify-content: flex-end; }
.gateway-airsoft .button-tactical { color: var(--white); background: linear-gradient(135deg, #d81f3b, var(--dcs-red)); box-shadow: 0 .8rem 2rem rgba(255,67,92,.27); }
.gateway-airsoft .gateway-pill { border-color: rgba(255,67,92,.72); background: rgba(12,16,23,.72); box-shadow: inset .18rem 0 0 var(--dcs-red); }
.gateway-dcs-logo { width: 7.4rem; margin: 0 0 .75rem auto; filter: drop-shadow(0 0 1.2rem rgba(255,33,66,.28)); }
.gateway-panel h2 { margin-bottom: .3em; font-size: clamp(2.35rem, 4.7vw, 5rem); }
.gateway-kids h2 { font-family: "Trebuchet MS", system-ui, sans-serif; letter-spacing: -0.055em; }
.gateway-panel p { max-width: 31rem; margin-bottom: 1.4rem; font-size: clamp(1rem, 1.45vw, 1.17rem); }
.gateway-kids p { color: #f3fbff; }
.gateway-pill { display: inline-flex; margin-bottom: 1rem; padding: .48rem .75rem; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; background: rgba(0,0,0,.22); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(7px); }
.gateway-kids .gateway-pill { color: #09284d; border: 0; background: var(--kids-yellow); }
.trust-strip { color: var(--ink); background: var(--white); border-bottom: 1px solid var(--line); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-item { padding: 1.45rem 1.4rem; border-right: 1px solid var(--line); }
.trust-item:last-child { border-right: 0; }
.trust-item strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 1.25rem; line-height: 1.1; }
.trust-item span { display: block; margin-top: .25rem; color: var(--muted); font-size: .82rem; }
.split-heading { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; margin-bottom: clamp(2.2rem, 5vw, 4.5rem); }
.split-heading h2 { margin-bottom: 0; }
.split-heading .lead { margin-bottom: 0; }
.world-cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.4rem; }
.world-card { position: relative; min-height: 26rem; overflow: hidden; padding: clamp(1.6rem, 4vw, 3rem); border-radius: var(--radius); color: var(--white); box-shadow: var(--shadow); }
.world-card::before { content: ""; position: absolute; z-index: 0; inset: 0; background: linear-gradient(180deg, rgba(8,16,12,.06), rgba(8,16,12,.94)), var(--card-image) center/cover no-repeat; transition: transform .4s ease; }
.world-card:hover::before { transform: scale(1.025); }
.world-card > * { position: relative; z-index: 1; }
.world-card-airsoft { --card-image: url("assets/images/dcs-airsoft-poster.webp"); border: 1px solid rgba(255,67,92,.45); border-radius: .45rem; }
.world-card-airsoft::before { background: linear-gradient(180deg, rgba(5,10,16,.12), rgba(4,9,15,.96)), var(--card-image) center 37%/cover no-repeat; }
.world-card-airsoft::after { content: "DCS // AIRSOFT"; position: absolute; z-index: 1; top: 1.2rem; right: 1.25rem; padding: .4rem .58rem; color: var(--dcs-electric); border: 1px solid rgba(102,231,255,.28); background: rgba(3,10,17,.78); font-family: ui-monospace, monospace; font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.world-card-airsoft .button-tactical { color: var(--white); background: var(--dcs-red); }
.world-card-kids { --card-image: url("assets/images/paintless-action.jpg"); }
.world-card-kids::before { background: linear-gradient(180deg, rgba(20,112,210,.02), rgba(15,89,171,.94)), var(--card-image) center/cover no-repeat; }
.world-card-bottom { position: absolute; left: clamp(1.6rem, 4vw, 3rem); right: clamp(1.6rem, 4vw, 3rem); bottom: clamp(1.6rem, 4vw, 3rem); }
.world-card h3 { font-size: clamp(2rem, 4vw, 3.6rem); }
.world-card-kids h3 { font-family: "Trebuchet MS", system-ui, sans-serif; }
.mini-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.2rem 0 1.6rem; }
.mini-tags span { padding: .35rem .62rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: rgba(0,0,0,.2); font-size: .76rem; font-weight: 750; }
.world-card-kids .mini-tags span { color: #0b315e; border: 0; background: rgba(255,255,255,.9); }

/* DCS Master Games */
.dcs-eyebrow { color: var(--dcs-electric); }
.dcs-home {
  overflow: hidden;
  color: var(--white);
  background:
    linear-gradient(90deg, rgba(2,10,18,.97) 0%, rgba(3,17,29,.88) 48%, rgba(3,18,31,.70) 100%),
    url("assets/images/dcs-interface-bg.webp") center/cover no-repeat,
    #07131d;
}
.dcs-showcase-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(31rem,1.1fr); gap: clamp(2rem,6vw,6rem); align-items: center; }
.dcs-section-logo { width: min(15rem, 72%); height: auto; margin-bottom: 1.35rem; border-radius: .35rem; box-shadow: 0 0 2rem rgba(63,183,255,.1); }
.dcs-showcase-copy h2 { font-size: clamp(2.7rem,5.5vw,5.5rem); }
.dcs-showcase-copy .lead { color: rgba(255,255,255,.76); }
.dcs-feature-list { display: grid; gap: .62rem; margin: 1.6rem 0 2rem; padding: 0; list-style: none; }
.dcs-feature-list li { position: relative; padding-left: 1.5rem; color: rgba(255,255,255,.78); }
.dcs-feature-list li::before { content: ""; position: absolute; left: 0; top: .72rem; width: .7rem; height: 2px; background: var(--dcs-electric); box-shadow: 0 0 10px var(--dcs-electric); }
.dcs-console { position: relative; padding: 1.15rem; border: 1px solid rgba(102,231,255,.3); border-radius: .85rem; background: rgba(4,12,19,.86); box-shadow: 0 2rem 6rem rgba(0,0,0,.42), inset 0 0 2.5rem rgba(37,134,255,.06); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.dcs-console::before { content: ""; position: absolute; inset: .45rem; border: 1px solid rgba(255,255,255,.055); border-radius: .58rem; pointer-events: none; }
.dcs-console-head, .dcs-console-foot { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .75rem .8rem; font-size: .75rem; letter-spacing: .08em; }
.dcs-console-head > :first-child { color: var(--dcs-electric); font-weight: 900; }
.dcs-console-head img { width: min(13rem, 58%); height: auto; border-radius: .25rem; }
.dcs-online { color: rgba(255,255,255,.62); }
.dcs-online i { display: inline-block; width: .5rem; height: .5rem; margin-right: .4rem; border-radius: 50%; background: #70ed91; box-shadow: 0 0 10px #70ed91; }
.dcs-score { display: grid; grid-template-columns: 1fr auto 1fr; gap: .65rem; align-items: center; margin: .45rem 0 1.1rem; }
.dcs-score > div:not(.versus) { padding: 1rem; border-radius: .45rem; text-align: center; }
.dcs-score span { display: block; margin-bottom: .45rem; font-size: .75rem; font-weight: 850; letter-spacing: .1em; }
.dcs-score strong { display: block; font-size: clamp(2rem,5vw,4.1rem); line-height: 1; letter-spacing: -.08em; }
.team-blue { color: #d9ecff; background: linear-gradient(135deg, rgba(37,134,255,.62), rgba(37,134,255,.18)); border: 1px solid rgba(37,134,255,.72); }
.team-red { color: #ffe1e6; background: linear-gradient(135deg, rgba(255,67,92,.18), rgba(255,67,92,.62)); border: 1px solid rgba(255,67,92,.72); }
.versus { color: rgba(255,255,255,.4); font-size: .75rem; font-weight: 900; }
.dcs-console-label { margin: .75rem 0 .4rem; color: rgba(255,255,255,.44); font-size: .75rem; letter-spacing: .12em; }
.dcs-nodes { display: grid; grid-template-columns: repeat(5,1fr); gap: .38rem; }
.dcs-nodes span { display: grid; min-width: 0; gap: .35rem; place-items: center; padding: .75rem .2rem .55rem; border: 1px solid rgba(255,255,255,.13); border-radius: .35rem; color: rgba(255,255,255,.68); font-size: .75rem; }
.dcs-nodes b { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: var(--white); background: #39434a; font-size: .84rem; }
.dcs-nodes .is-blue b { background: var(--dcs-blue); box-shadow: 0 0 16px rgba(37,134,255,.65); }
.dcs-nodes .is-red b { background: var(--dcs-red); box-shadow: 0 0 16px rgba(255,67,92,.6); }
.dcs-nodes .is-neutral b { color: #07131d; background: var(--signal); }
.dcs-respawns { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.dcs-respawns span { padding: .7rem; color: #bdf7cc; border: 1px solid rgba(112,237,145,.38); border-radius: .35rem; background: rgba(112,237,145,.08); font-size: .75rem; font-weight: 800; text-align: center; }
.dcs-console-foot { margin-top: .75rem; color: rgba(255,255,255,.5); border-top: 1px solid rgba(255,255,255,.09); }
.dcs-console-foot strong { color: #70ed91; }
.page-hero-dcs { --hero-image: url("assets/images/dcs-interface-bg.webp"); --hero-shade: linear-gradient(90deg, rgba(2,10,18,.96), rgba(3,18,31,.72) 58%, rgba(3,18,31,.30)); min-height: 43rem; background-color: #04101b; }
.page-hero-dcs h1 { color: var(--white); text-shadow: 0 0 40px rgba(102,231,255,.16); }
.dcs-hero-logo { width: min(18rem, 74%); height: auto; margin-bottom: 1.35rem; border-radius: .4rem; box-shadow: 0 0 2.8rem rgba(55,172,255,.16); }
.dcs-proof { color: var(--white); background: #07131d; border-top: 1px solid rgba(102,231,255,.18); border-bottom: 1px solid rgba(102,231,255,.18); }
.dcs-proof-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.dcs-proof-grid div { padding: 1.55rem 1.2rem; border-right: 1px solid rgba(102,231,255,.16); }
.dcs-proof-grid div:last-child { border-right: 0; }
.dcs-proof-grid strong { display: block; color: var(--dcs-electric); font-family: "Arial Narrow", Impact, sans-serif; font-size: 2.4rem; line-height: 1; }
.dcs-proof-grid span { display: block; margin-top: .35rem; color: rgba(255,255,255,.65); font-size: .8rem; }
.dcs-intro-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(28rem,1.1fr); gap: clamp(2rem,7vw,7rem); align-items: center; }
.dcs-flow { padding: 1.2rem; border: 1px solid #c7d7dd; border-radius: 1rem; background: #eef7fa; }
.dcs-flow article { position: relative; padding: 1.15rem; border: 1px solid #c6d9df; border-radius: .65rem; background: var(--white); }
.dcs-flow article span { display: block; margin-bottom: 1.5rem; color: var(--kids-blue); font-family: ui-monospace, monospace; font-size: .75rem; }
.dcs-flow article strong, .dcs-flow article small { display: block; }
.dcs-flow article strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 1.25rem; }
.dcs-flow article small { margin-top: .35rem; color: var(--muted); font-size: .78rem; }
.flow-master { margin-bottom: 2.2rem; text-align: center; }
.dcs-flow .dcs-flow-mark { width: 3.2rem; height: 3.2rem; margin: 0 auto .85rem; object-fit: contain; }
.flow-master::after { content: ""; position: absolute; left: 50%; bottom: -2.2rem; width: 1px; height: 2.2rem; background: #7aa1ad; }
.flow-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .65rem; }
.dcs-flow > p { margin: 1rem 0 0; color: #42616a; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.dcs-experience { color: var(--white); background: linear-gradient(125deg, rgba(3,14,24,.97), rgba(5,31,51,.89) 65%, rgba(6,43,62,.84)), url("assets/images/dcs-interface-bg.webp") center/cover no-repeat; }
.dcs-audience-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(102,231,255,.17); border: 1px solid rgba(102,231,255,.17); }
.dcs-audience-grid article { min-height: 18rem; padding: 1.8rem; background: #07151f; }
.dcs-audience-grid article > span { display: block; margin-bottom: 4rem; color: var(--dcs-electric); font-family: ui-monospace, monospace; font-size: .75rem; letter-spacing: .1em; }
.dcs-audience-grid p { margin-bottom: 0; color: rgba(255,255,255,.65); }
.dcs-modes { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; }
.dcs-modes article { position: relative; min-height: 13rem; overflow: hidden; padding: 1.4rem; border: 1px solid #cbdadd; border-radius: .75rem; background: #f7fbfc; }
.dcs-modes article::after { content: ""; position: absolute; width: 4.5rem; height: 4.5rem; right: -.65rem; bottom: -.65rem; opacity: .045; background: url("assets/images/dcs-icon.png") center/contain no-repeat; }
.dcs-modes span { display: block; margin-bottom: 2rem; color: var(--kids-blue); font-family: ui-monospace, monospace; font-size: .75rem; }
.dcs-modes h3 { margin-bottom: .45rem; }
.dcs-modes p { margin-bottom: 0; color: var(--muted); }
.dcs-dual { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--line); }
.dcs-dual > div { padding: clamp(2rem,5vw,4rem); background: var(--white); }
.scenario-dcs { background: linear-gradient(145deg, #0a2232, #083a4d); }
.scenario-dcs span { color: var(--dcs-electric); }
.scenario-dcs a { display: inline-block; margin-top: 1rem; color: var(--dcs-electric); font-weight: 850; text-decoration: none; }

/* Blocs éditoriaux */
.promise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.promise-card { position: relative; min-height: 16rem; padding: 1.7rem; border: 1px solid var(--line); border-radius: 1.15rem; background: var(--white); }
.promise-number { display: inline-grid; width: 2.55rem; height: 2.55rem; place-items: center; margin-bottom: 2.2rem; border-radius: 50%; color: #09315f; background: var(--kids-yellow); font-weight: 900; }
.promise-card:nth-child(2) .promise-number { color: var(--white); background: var(--kids-blue); }
.promise-card:nth-child(3) .promise-number { color: var(--white); background: var(--kids-coral); }
.promise-card h3 { font-family: "Trebuchet MS", system-ui, sans-serif; font-size: 1.55rem; }
.promise-card p { margin-bottom: 0; color: var(--muted); }
.feature-split { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.feature-split.reverse { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); }
.feature-split.reverse .feature-image { order: 2; }
.feature-image { position: relative; }
.feature-image img { aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.feature-image .image-stamp { position: absolute; right: -1.2rem; bottom: 1.4rem; max-width: 10.5rem; padding: 1rem; color: var(--night); background: var(--signal); font-family: "Arial Narrow", Impact, sans-serif; font-size: 1.35rem; font-weight: 900; line-height: 1.05; text-transform: uppercase; transform: rotate(-2deg); }
.feature-copy .lead { max-width: 42rem; }
.check-list { display: grid; gap: .72rem; padding: 0; margin: 1.5rem 0 2rem; list-style: none; }
.check-list li { position: relative; padding-left: 1.65rem; }
.check-list li::before { content: ""; position: absolute; top: .66rem; left: 0; width: .62rem; height: .35rem; border-left: 3px solid var(--tactical); border-bottom: 3px solid var(--tactical); transform: rotate(-45deg); }
.check-list.kids-list li::before { border-color: var(--kids-blue); }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.13); }
.stat { padding: 2rem 1.4rem; background: var(--night); }
.stat strong { display: block; color: var(--tactical); font-family: "Arial Narrow", Impact, sans-serif; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; }
.stat span { display: block; margin-top: .55rem; color: rgba(255,255,255,.68); font-size: .87rem; }
.quote-band { color: var(--white); background: linear-gradient(100deg, #0f4e9a, var(--kids-blue) 55%, var(--kids-cyan)); }
.quote-band .split-heading { margin-bottom: 0; }
.quote-band .eyebrow { color: var(--kids-yellow); }
.quote-band p { color: rgba(255,255,255,.9); }
.cta-panel { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: clamp(2rem, 5vw, 4rem); color: var(--white); background: var(--night); border-radius: var(--radius); box-shadow: var(--shadow); }
.cta-panel h2 { margin-bottom: .18em; font-size: clamp(2rem, 4.5vw, 4rem); }
.cta-panel p { margin-bottom: 0; color: rgba(255,255,255,.72); }
.cta-panel-kids {
  background:
    radial-gradient(circle at 90% 0%, rgba(34,200,220,.42), transparent 34%),
    linear-gradient(135deg, #123f7a, #1677d4 68%, #169bbd);
  box-shadow: 0 1.4rem 3.8rem rgba(18,79,146,.2);
}
.cta-panel-kids .eyebrow { color: var(--kids-yellow); }
.cta-panel-kids p { color: rgba(255,255,255,.86); }

/* Entêtes intérieurs */
.page-hero { position: relative; min-height: 34rem; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: var(--night); isolation: isolate; }
.page-hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: var(--hero-image) center/cover no-repeat; }
.page-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: var(--hero-shade, linear-gradient(90deg, rgba(8,13,10,.96), rgba(8,13,10,.35))); }
.page-hero-content { padding-block: clamp(5rem, 11vw, 8.5rem) clamp(3rem, 7vw, 5rem); }
.page-hero-content > * { max-width: 47rem; }
.page-hero h1 { margin-bottom: .25em; }
.page-hero .lead { color: rgba(255,255,255,.82); }
.page-hero-kids {
  --hero-image: url("assets/images/kids-hero.jpg");
  --hero-shade: linear-gradient(90deg, rgba(7,54,107,.99) 0%, rgba(10,69,133,.94) 38%, rgba(15,107,208,.42) 70%, rgba(17,115,225,.08) 100%);
  background: linear-gradient(135deg, #07366b, #1677d4);
}
.page-hero-kids::before { background-position: right center; background-size: auto 25rem; background-repeat: no-repeat; }
.page-hero-kids h1 {
  max-width: 52rem;
  font-family: "Trebuchet MS", system-ui, sans-serif;
  font-size: clamp(2.9rem, 4.6vw, 4.35rem);
  line-height: 1.04;
  letter-spacing: -.055em;
}
.page-hero-airsoft { --hero-image: url("assets/images/airsoft-hero.jpg"); }
.page-hero-cqb { --hero-image: url("assets/images/cqb-wide.jpg"); }
.page-hero-contact { --hero-image: url("assets/images/shop-entrance.jpg"); }
.hero-badges { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; }
.hero-badges span { padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; background: rgba(0,0,0,.16); font-size: .78rem; font-weight: 800; }
.page-hero-kids .hero-badges span { color: #08305f; border: 0; background: rgba(255,255,255,.92); }

/* Enfants */
.kids-heading h2, .kids-card h3, .kids-faq h3 { font-family: "Trebuchet MS", system-ui, sans-serif; letter-spacing: -.04em; }
.reassurance-bar { position: relative; z-index: 2; margin-top: -2.1rem; }
.reassurance-inner { display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border-radius: 1rem; background: var(--white); box-shadow: var(--shadow); }
.reassurance-item { padding: 1.25rem; text-align: center; border-right: 1px solid var(--line); }
.reassurance-item:last-child { border-right: 0; }
.reassurance-item strong { display: block; color: var(--kids-blue); font-size: 1.03rem; }
.reassurance-item span { display: block; color: var(--muted); font-size: .78rem; }
.activity-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.kids-card { overflow: hidden; border-radius: var(--radius); background: var(--white); box-shadow: 0 1rem 3rem rgba(28,96,155,.12); }
.kids-card img { aspect-ratio: 16/9; object-fit: cover; }
.kids-card img[src*="kids-hero"], .feature-image img[src*="kids-hero"] { object-position: left center; }
.kids-card-body { padding: 1.7rem; }
.kids-card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.age-chip { display: inline-flex; padding: .42rem .68rem; border-radius: 999px; color: #082d58; background: var(--kids-yellow); font-size: .77rem; font-weight: 900; text-transform: uppercase; }
.age-chip.paintless { color: var(--white); background: var(--kids-coral); }
.kids-card p { color: var(--muted); }
.steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.1rem; counter-reset: step; }
.step { position: relative; padding: 1.8rem; border-radius: 1.1rem; background: var(--white); box-shadow: 0 .7rem 2rem rgba(30,81,126,.08); counter-increment: step; }
.step::before { content: "0" counter(step); display: block; margin-bottom: 2rem; color: var(--kids-blue); font-family: "Trebuchet MS", system-ui, sans-serif; font-size: 2.2rem; font-weight: 900; line-height: 1; }
.step:nth-child(2)::before { color: var(--kids-purple); }
.step:nth-child(3)::before { color: var(--kids-coral); }
.step h3 { font-family: "Trebuchet MS", system-ui, sans-serif; }
.step p { margin-bottom: 0; color: var(--muted); }
.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(2rem,6vw,6rem); }
.faq-list { display: grid; gap: .7rem; }
.faq-list details { border: 1px solid var(--line); border-radius: .85rem; background: var(--white); }
.faq-list summary { cursor: pointer; padding: 1.1rem 3rem 1.1rem 1.2rem; font-weight: 850; list-style: none; position: relative; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 1.2rem; top: .85rem; color: var(--kids-blue); font-size: 1.65rem; line-height: 1; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { padding: 0 1.2rem 1.2rem; margin: 0; color: var(--muted); }

/* Airsoft et magasin */
.tactical-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.tactical-card { padding: 1.7rem; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.045); }
.tactical-card .code { display: block; margin-bottom: 3.2rem; color: var(--tactical); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; letter-spacing: .12em; }
.tactical-card p { margin-bottom: 0; color: rgba(255,255,255,.67); }
.shop-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; }
.shop-photo { min-height: 35rem; }
.shop-photo img { height: 100%; object-fit: cover; }
.shop-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.4rem,6vw,6rem); color: var(--white); background: #2d3822; }
.shop-copy h2 { max-width: 10ch; }
.shop-copy p { color: rgba(255,255,255,.78); }
.expertise-list { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; padding: 0; margin: 1.5rem 0 2rem; list-style: none; }
.expertise-list li { padding: .85rem; border: 1px solid rgba(255,255,255,.18); font-size: .87rem; font-weight: 750; }
.shared-strip { color: var(--night); background: var(--signal); }
.dcs-strip { color: var(--white); background: linear-gradient(90deg, rgba(2,10,18,.95), rgba(3,27,45,.80)), url("assets/images/dcs-interface-bg.webp") center/cover no-repeat; }
.dcs-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,7vw,7rem); align-items: center; }
.dcs-layout h2 { margin-bottom: 0; }
.dcs-layout p { margin-bottom: 0; font-size: 1.08rem; }
.dcs-layout div > p + p { margin-top: 1.2rem; }

/* Univers Airsoft piloté par le DCS */
.airsoft-world {
  --airsoft-bg: #050a10;
  --airsoft-panel: #0a131e;
  --airsoft-panel-soft: #0e1a27;
  --airsoft-line: rgba(109,154,196,.26);
  overflow: hidden;
  color: var(--white);
  background: var(--airsoft-bg);
}
.airsoft-world .eyebrow-tactical { color: var(--dcs-electric); }
.airsoft-world .button-tactical {
  color: var(--white);
  background: linear-gradient(135deg, #d51f3b, var(--dcs-red));
  box-shadow: 0 .8rem 2rem rgba(255,67,92,.22);
}
.airsoft-world .button-tactical:hover { background: linear-gradient(135deg, #ed2848, #ff6479); }
.page-hero-airsoft {
  min-height: 48rem;
  --hero-image: url("assets/images/airsoft-hero.jpg");
  --hero-shade:
    linear-gradient(90deg, rgba(2,7,12,.99) 0%, rgba(4,12,20,.93) 42%, rgba(5,13,22,.58) 70%, rgba(2,7,12,.78) 100%),
    linear-gradient(180deg, rgba(37,134,255,.08), transparent 42%, rgba(255,67,92,.10));
  border-bottom: 1px solid rgba(102,231,255,.25);
}
.page-hero-airsoft::before { background-position: center 35%; filter: saturate(.8) contrast(1.08); }
.page-hero-airsoft::after { box-shadow: inset 0 0 0 1px rgba(102,231,255,.06), inset 0 -5rem 7rem rgba(0,0,0,.42); }
.airsoft-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(19rem,.58fr); gap: clamp(2rem,6vw,6rem); align-items: end; width: var(--shell); }
.airsoft-hero-copy { position: relative; }
.airsoft-dcs-logo { width: clamp(5.8rem,9vw,8rem); margin-bottom: .8rem; filter: drop-shadow(0 0 1.5rem rgba(255,40,70,.3)); }
.airsoft-hero-copy h1 { max-width: 11ch; font-size: clamp(3.1rem,6.5vw,6.6rem); text-transform: uppercase; text-shadow: 0 0 2.5rem rgba(37,134,255,.13); }
.airsoft-hero-copy .lead { max-width: 43rem; }
.airsoft-hero-status {
  position: relative;
  padding: 1.2rem;
  border: 1px solid rgba(102,231,255,.38);
  background: rgba(4,11,18,.88);
  box-shadow: 0 1.5rem 5rem rgba(0,0,0,.5), inset .22rem 0 0 var(--dcs-red);
  clip-path: polygon(0 0,calc(100% - 1.1rem) 0,100% 1.1rem,100% 100%,1.1rem 100%,0 calc(100% - 1.1rem));
  backdrop-filter: blur(10px);
}
.airsoft-status-head, .airsoft-status-foot { display: flex; justify-content: space-between; gap: 1rem; align-items: center; font-family: ui-monospace, monospace; font-size: .76rem; letter-spacing: .09em; }
.airsoft-status-head { padding-bottom: .8rem; color: var(--dcs-electric); border-bottom: 1px solid var(--airsoft-line); }
.airsoft-status-head i { color: #96f2ac; font-style: normal; }
.airsoft-status-main { display: grid; gap: .25rem; padding: 1.4rem 0; }
.airsoft-status-main small { color: rgba(255,255,255,.48); font-family: ui-monospace, monospace; font-size: .73rem; letter-spacing: .1em; }
.airsoft-status-main strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: clamp(2.1rem,4vw,3.4rem); line-height: 1; }
.airsoft-status-main span { color: rgba(255,255,255,.6); font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.airsoft-status-teams { display: grid; grid-template-columns: repeat(3,1fr); gap: .35rem; }
.airsoft-status-teams span { padding: .62rem .3rem; border-radius: .25rem; font-size: .72rem; font-weight: 900; text-align: center; }
.airsoft-status-teams .team-blue { color: #e7f3ff; background: rgba(37,134,255,.28); border: 1px solid rgba(37,134,255,.68); }
.airsoft-status-teams .team-red { color: #fff0f2; background: rgba(255,67,92,.25); border: 1px solid rgba(255,67,92,.68); }
.airsoft-status-teams .team-neutral { color: #102031; background: var(--signal); border: 1px solid #ffe66f; }
.airsoft-status-foot { margin-top: 1rem; padding-top: .8rem; color: rgba(255,255,255,.5); border-top: 1px solid var(--airsoft-line); }
.airsoft-status-foot b { color: var(--dcs-red); }
.dcs-ops-bar { color: var(--white); background: #02060a; border-bottom: 1px solid rgba(255,67,92,.32); }
.dcs-ops-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.dcs-ops-grid span { padding: 1.15rem 1rem; border-right: 1px solid var(--airsoft-line); font-family: ui-monospace, monospace; font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.dcs-ops-grid span:last-child { border-right: 0; }
.dcs-ops-grid b { margin-right: .45rem; color: var(--dcs-red); }
.airsoft-live {
  background:
    linear-gradient(90deg, rgba(2,8,14,.97), rgba(5,20,34,.86), rgba(2,8,14,.96)),
    url("assets/images/dcs-interface-bg.webp") center/cover no-repeat;
}
.airsoft-world .split-heading { border-bottom: 1px solid var(--airsoft-line); padding-bottom: 1.7rem; }
.airsoft-world .split-heading h2 { max-width: 13ch; text-transform: uppercase; }
.dcs-live-screen { margin: 0; padding: .8rem; border: 1px solid rgba(102,231,255,.38); background: #060d15; box-shadow: 0 2rem 6rem rgba(0,0,0,.5), 0 0 3rem rgba(37,134,255,.08); clip-path: polygon(0 0,calc(100% - 1.2rem) 0,100% 1.2rem,100% 100%,1.2rem 100%,0 calc(100% - 1.2rem)); }
.dcs-screen-top, .dcs-live-screen figcaption { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .7rem .8rem; font-family: ui-monospace, monospace; font-size: .76rem; letter-spacing: .08em; }
.dcs-screen-top { color: var(--dcs-electric); }
.dcs-screen-online { color: #8febaa; }
.dcs-live-screen img { border: 1px solid rgba(255,255,255,.08); }
.dcs-live-screen figcaption { color: rgba(255,255,255,.52); }
.dcs-live-screen figcaption strong { color: rgba(255,255,255,.82); font-weight: 750; }
.airsoft-captures {
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    #07101a;
  background-size: 38px 38px;
}
.capture-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .7rem; }
.capture-card { position: relative; overflow: hidden; margin: 0; min-height: 18rem; border: 1px solid var(--airsoft-line); background: #050a10; }
.capture-card img { height: 100%; min-height: 18rem; object-fit: cover; filter: saturate(.85) contrast(1.08); transition: transform .35s ease, filter .35s ease; }
.capture-card:hover img { transform: scale(1.035); filter: saturate(1) contrast(1.08); }
.capture-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgba(2,7,12,.94)); pointer-events: none; }
.capture-card.is-blue { box-shadow: inset 0 -3px 0 var(--dcs-blue); }
.capture-card.is-red { box-shadow: inset 0 -3px 0 var(--dcs-red); }
.capture-card figcaption { position: absolute; z-index: 2; left: 1rem; right: 1rem; bottom: .9rem; display: grid; gap: .18rem; }
.capture-card figcaption span { color: rgba(255,255,255,.57); font-family: ui-monospace, monospace; font-size: .72rem; letter-spacing: .1em; }
.capture-card figcaption strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 1.2rem; letter-spacing: .03em; }
.capture-card.is-blue figcaption strong { color: #7ebcff; }
.capture-card.is-red figcaption strong { color: #ff788b; }
.airsoft-missions { background: linear-gradient(135deg, #050a10, #0a1825 60%, #07101a); }
.mission-control-grid { display: grid; grid-template-columns: minmax(22rem,.82fr) minmax(0,1.18fr); gap: clamp(2rem,7vw,7rem); align-items: center; }
.mission-selector { margin: 0; padding: .8rem; border: 1px solid rgba(255,67,92,.4); background: #070d14; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.4); clip-path: polygon(0 0,calc(100% - 1rem) 0,100% 1rem,100% 100%,1rem 100%,0 calc(100% - 1rem)); }
.mission-selector-head { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem; color: var(--dcs-red); font-family: ui-monospace, monospace; font-size: .75rem; font-weight: 850; letter-spacing: .08em; }
.mission-selector-head i { color: var(--dcs-electric); font-style: normal; }
.mission-selector img { border: 1px solid rgba(255,255,255,.09); image-rendering: auto; }
.mission-selector figcaption { padding: .8rem .7rem .2rem; color: rgba(255,255,255,.56); font-size: .82rem; }
.mission-copy h2 { max-width: 12ch; text-transform: uppercase; }
.mission-mode-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .5rem; margin: 1.6rem 0; }
.mission-mode-grid span { padding: .78rem .85rem; color: rgba(255,255,255,.8); border: 1px solid var(--airsoft-line); background: rgba(255,255,255,.025); font-family: ui-monospace, monospace; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.mission-mode-grid span:nth-child(2n) { border-color: rgba(255,67,92,.26); }
.text-link-dcs { color: var(--dcs-electric); font-weight: 850; text-decoration: none; }
.airsoft-services { background: #07101a; }
.airsoft-services .tactical-card { min-height: 18rem; border-color: var(--airsoft-line); background: linear-gradient(145deg, rgba(20,38,55,.76), rgba(5,12,19,.92)); box-shadow: inset 0 2px 0 rgba(102,231,255,.12); }
.airsoft-services .tactical-card:nth-child(2) { box-shadow: inset 0 2px 0 rgba(255,67,92,.55); }
.airsoft-services .tactical-card .code { color: var(--dcs-electric); }
.airsoft-shop .shop-copy { background: linear-gradient(145deg, #08131e, #0d2130); border-top: 1px solid var(--airsoft-line); border-bottom: 1px solid var(--airsoft-line); }
.airsoft-shop .shop-photo { position: relative; }
.airsoft-shop .shop-photo::after { content: "MAGASIN // ÉQUIPEMENT"; position: absolute; left: 1.2rem; bottom: 1.2rem; padding: .55rem .7rem; color: var(--dcs-electric); border: 1px solid rgba(102,231,255,.35); background: rgba(3,10,17,.84); font-family: ui-monospace, monospace; font-size: .76rem; font-weight: 800; letter-spacing: .09em; }
.airsoft-cqb-section {
  background:
    linear-gradient(120deg, rgba(4,10,16,.97), rgba(7,21,32,.9)),
    url("assets/images/dcs-interface-bg.webp") center/cover no-repeat;
}
.airsoft-feature-image img { border: 1px solid rgba(102,231,255,.28); border-radius: .25rem; }
.airsoft-world .check-list li::before { border-color: var(--dcs-electric); }
.airsoft-world .image-stamp { color: var(--white); background: var(--dcs-red); border-radius: .2rem; }
.airsoft-poster-section { background: linear-gradient(135deg, #020609, #0b1118 55%, #17070c); border-top: 1px solid rgba(255,67,92,.24); border-bottom: 1px solid rgba(255,67,92,.24); }
.airsoft-poster-grid { display: grid; grid-template-columns: minmax(0,.78fr) minmax(25rem,1.22fr); gap: clamp(2rem,6vw,6rem); align-items: center; }
.airsoft-poster-grid h2 { max-width: 10ch; text-transform: uppercase; }
.airsoft-poster { margin: 0; border: 1px solid rgba(255,67,92,.42); box-shadow: 0 2rem 6rem rgba(0,0,0,.5); }
.airsoft-poster img { width: 100%; }
.airsoft-stats { background: #07101a; }
.airsoft-stats .stat-grid { border-color: var(--airsoft-line); background: var(--airsoft-line); }
.airsoft-stats .stat { background: #050a10; }
.airsoft-stats .stat strong { color: var(--dcs-electric); }
.airsoft-final { background: #050a10; }
.airsoft-cta { border: 1px solid rgba(255,67,92,.35); border-radius: .45rem; background: linear-gradient(105deg, #0a131e, #13070b); box-shadow: 0 1.5rem 4rem rgba(0,0,0,.32), inset .25rem 0 0 var(--dcs-red); }

/* Schéma réel du système DCS */
.dcs-blueprint { color: var(--white); background: linear-gradient(135deg, #04101b, #071f31); }
.dcs-system-figure { margin: 0; padding: .75rem; border: 1px solid rgba(102,231,255,.32); border-radius: .6rem; background: #eaf4ff; box-shadow: 0 2rem 6rem rgba(0,0,0,.35); }
.dcs-system-figure img { border-radius: .25rem; }
.dcs-system-figure figcaption { padding: .75rem .4rem .1rem; color: #335166; font-family: ui-monospace, monospace; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* CQB */
.gallery-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; grid-template-rows: 18rem 18rem; gap: .75rem; }
.gallery-grid figure { margin: 0; overflow: hidden; border-radius: .8rem; }
.gallery-grid figure:first-child { grid-row: 1 / 3; }
.gallery-grid figure:nth-child(2) { grid-column: 2 / 4; }
.gallery-grid img { height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery-grid figure:hover img { transform: scale(1.025); }
.scenario-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.13); }
.scenario { min-height: 15rem; padding: 1.5rem; background: var(--night); }
.scenario span { display: block; margin-bottom: 3rem; color: var(--tactical); font-family: ui-monospace, monospace; font-size: .74rem; letter-spacing: .1em; }
.scenario p { margin-bottom: 0; color: rgba(255,255,255,.66); }

/* Tarifs */
.pricing-intro { max-width: 50rem; }
.pricing-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2.5rem; }
.price-card { position: relative; padding: 2rem; border: 1px solid var(--line); border-radius: 1.1rem; background: var(--white); }
.price-card.featured { color: var(--white); background: var(--night); transform: translateY(-.65rem); box-shadow: var(--shadow); }
.price-label { display: block; margin-bottom: 2.8rem; color: var(--muted); font-size: .78rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.featured .price-label { color: var(--tactical); }
.price-value { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: clamp(3.3rem,7vw,5.8rem); line-height: .9; }
.price-unit { display: block; margin: .55rem 0 1.2rem; color: var(--muted); font-weight: 750; }
.featured .price-unit { color: rgba(255,255,255,.62); }
.price-card p { margin-bottom: 0; }
.notice { margin-top: 1.4rem; padding: 1.25rem 1.4rem; border-left: 5px solid var(--signal); background: #fff9d8; }
.booking-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.2rem; }
.booking-card { padding: clamp(1.6rem,4vw,3rem); border-radius: var(--radius); }
.booking-card.kids { color: #092d58; background: linear-gradient(145deg, #e8f7ff, #fff7c8); }
.booking-card.airsoft { color: var(--white); background: #202a1e; }
.booking-card h3 { font-size: clamp(1.9rem,3.5vw,3rem); }
.booking-card.kids h3 { font-family: "Trebuchet MS", system-ui, sans-serif; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,6vw,5rem); align-items: start; }
.contact-list { display: grid; gap: .75rem; }
.contact-item { padding: 1.15rem 1.25rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--white); }
.contact-item span { display: block; margin-bottom: .2rem; color: var(--muted); font-size: .76rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.contact-item a, .contact-item strong { font-size: 1.08rem; text-decoration: none; }
.contact-item small { display: block; margin-top: .25rem; color: var(--muted); }
.form-panel { padding: clamp(1.5rem,4vw,3rem); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.contact-form { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin-top: 1.5rem; }
.contact-form > .full { grid-column: 1 / -1; }
.form-field { display: grid; gap: .35rem; }
.form-field.full, .consent-label.full { grid-column: 1 / -1; }
.form-field label { font-size: .8rem; font-weight: 850; text-transform: uppercase; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 3.25rem; padding: .75rem .85rem; color: var(--ink); border: 1px solid #cfd5d0; border-radius: .55rem; background: #fbfcfa; }
.form-field textarea { min-height: 9rem; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 3px solid rgba(22,119,234,.2); border-color: var(--kids-blue); }
.consent-label { display: flex; gap: .65rem; align-items: flex-start; color: var(--muted); font-size: .82rem; }
.consent-label input { margin-top: .25rem; }
.form-honeypot { position: absolute !important; left: -9999px !important; }
.form-status { grid-column: 1 / -1; padding: .85rem 1rem; border-left: 4px solid var(--tactical); background: #edf4d5; }
.form-status.error { border-color: #bb352f; background: #ffe5e3; }
.preview-note { padding: .75rem 1rem; color: #6b5711; background: #fff7ce; border-radius: .5rem; font-size: .82rem; }
.map-card { position: relative; min-height: 22rem; overflow: hidden; margin-top: 2rem; display: grid; place-items: center; border-radius: var(--radius); color: var(--white); background: linear-gradient(rgba(11,18,14,.72), rgba(11,18,14,.84)), url("assets/images/shop-entrance.jpg") center/cover no-repeat; text-align: center; }
.map-card > div { max-width: 34rem; padding: 2rem; }

/* Légal */
.page-title { padding: clamp(4rem,9vw,8rem) 0 3rem; color: var(--white); background: var(--night); }
.page-title h1 { margin-bottom: 0; font-size: clamp(2.6rem,6vw,5.6rem); }
.legal-content { max-width: 52rem; }
.legal-content h2 { margin-top: 2.3rem; font-size: 1.8rem; }
.legal-content li { margin-bottom: .4rem; }
.legal-alert { padding: 1rem 1.2rem; border-left: 5px solid var(--signal); background: #fff8d1; }

/* Pied de page */
.site-footer { color: var(--white); background: #080c0a; }
.footer-main { display: grid; grid-template-columns: 1.35fr .85fr .75fr; gap: clamp(2rem,6vw,6rem); padding-block: 4rem; }
.footer-brand { display: flex; gap: 1rem; align-items: flex-start; }
.footer-brand > img { width: 4.2rem; height: 4.2rem; object-fit: contain; }
.footer-brand strong { font-family: Impact, "Arial Narrow", sans-serif; font-size: 1.35rem; letter-spacing: .04em; }
.footer-brand p { max-width: 27rem; margin: .4rem 0 0; color: rgba(255,255,255,.58); }
.dcs-footer-lockup { display: inline-block; margin-top: 1rem; }
.dcs-footer-lockup img { width: 9.5rem; height: auto; border-radius: .25rem; opacity: .82; transition: opacity .2s ease; }
.dcs-footer-lockup:hover img, .dcs-footer-lockup:focus-visible img { opacity: 1; }
.footer-column h2 { margin-bottom: 1.2rem; color: var(--tactical); font-family: inherit; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-column a, .footer-column span { display: block; margin-bottom: .48rem; color: rgba(255,255,255,.7); text-decoration: none; }
.footer-column a:hover { color: var(--white); }
.footer-bottom { padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.47); font-size: .78rem; }
.footer-bottom-inner { display: flex; justify-content: space-between; gap: 1rem; }
.footer-bottom-links { display: flex; gap: 1rem; }
.footer-bottom a { color: inherit; }

@media (max-width: 1120px) {
  .utility-inner { justify-content: center; }
  .utility-inner > :first-child { display: none; }
  .menu-toggle { display: block; }
  .main-nav { position: fixed; inset: calc(5.25rem + 2.25rem) 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100svh - 7.5rem); overflow-y: auto; padding: 1rem 1.25rem 1.5rem; background: rgba(8,12,10,.99); box-shadow: var(--shadow); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: 1rem .5rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .main-nav .nav-dcs { padding: 1rem .5rem; border-width: 0 0 1px; border-radius: 0; }
  .main-nav a::after { display: none; }
  .gateway-grid { min-height: 46rem; }
  .gateway-panel { padding-inline: 1.5rem; }
  .tactical-cards, .steps, .pricing-grid { grid-template-columns: 1fr; }
  .dcs-showcase-grid, .dcs-intro-grid { grid-template-columns: 1fr; }
  .dcs-showcase-copy { max-width: 48rem; }
  .dcs-console { width: min(100%, 44rem); }
  .dcs-audience-grid { grid-template-columns: 1fr; }
  .dcs-audience-grid article { min-height: auto; }
  .dcs-audience-grid article > span { margin-bottom: 2rem; }
  .airsoft-hero-grid { grid-template-columns: 1fr; }
  .airsoft-hero-status { width: min(100%, 36rem); }
  .capture-grid { grid-template-columns: repeat(2,1fr); }
  .mission-control-grid, .airsoft-poster-grid { grid-template-columns: 1fr; }
  .mission-selector { width: min(100%, 38rem); }
  .airsoft-poster { width: min(100%, 42rem); }
  .price-card.featured { transform: none; }
  .scenario-grid { grid-template-columns: repeat(2,1fr); }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  :root { --shell: min(100% - 1.5rem, 1180px); }
  .utility-bar { font-size: .76rem; }
  .nav-shell { min-height: 4.7rem; }
  .brand img { width: 2.75rem; height: 2.75rem; }
  .brand-name { font-size: 1rem; }
  .brand-subtitle { font-size: .58rem; }
  .main-nav { inset-block-start: calc(4.7rem + 2.25rem); }
  .gateway-intro { position: relative; top: auto; left: auto; width: 100%; padding: 2rem 1rem; background: var(--night); transform: none; }
  .gateway-intro h1 { font-size: 2.25rem; }
  .gateway-grid { display: flex; flex-direction: column; min-height: auto; }
  .gateway-panel { min-height: 31rem; padding: 6.5rem 1.25rem 2rem; }
  .gateway-kids { order: -1; }
  .gateway-kids::before { background-position: 8% top; background-size: auto 17rem; }
  .gateway-airsoft { border-top: 1px solid rgba(255,255,255,.25); border-right: 0; }
  .gateway-airsoft .gateway-copy { text-align: left; }
  .gateway-airsoft .button-row { justify-content: flex-start; }
  .gateway-dcs-logo { margin-left: 0; }
  .trust-grid { grid-template-columns: repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right: 0; }
  .trust-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .split-heading, .feature-split, .feature-split.reverse, .faq-grid, .contact-grid, .dcs-layout { grid-template-columns: 1fr; }
  .feature-split.reverse .feature-image { order: 0; }
  .world-cards, .activity-choice, .booking-grid, .shop-layout { grid-template-columns: 1fr; }
  .dcs-proof-grid, .dcs-modes { grid-template-columns: repeat(2,1fr); }
  .dcs-proof-grid div:nth-child(2) { border-right: 0; }
  .dcs-proof-grid div:nth-child(-n+2) { border-bottom: 1px solid rgba(102,231,255,.16); }
  .dcs-dual { grid-template-columns: 1fr; }
  .dcs-ops-grid { grid-template-columns: repeat(2,1fr); }
  .dcs-ops-grid span:nth-child(2) { border-right: 0; }
  .dcs-ops-grid span:nth-child(-n+2) { border-bottom: 1px solid var(--airsoft-line); }
  .airsoft-hero-grid { display: block; }
  .airsoft-hero-status { margin-top: 2rem; }
  .dcs-screen-top, .dcs-live-screen figcaption { align-items: flex-start; flex-direction: column; }
  .world-card { min-height: 29rem; }
  .promise-grid { grid-template-columns: 1fr; }
  .promise-card { min-height: auto; }
  .promise-number { margin-bottom: 1.2rem; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .page-hero { min-height: 31rem; }
  .page-hero-kids::before { background-position: 8% top; background-size: auto 17rem; }
  .page-hero-kids::after { background: linear-gradient(180deg, rgba(10,69,133,.08) 0%, rgba(10,69,133,.30) 34%, rgba(10,69,133,.94) 62%, rgba(7,54,107,.99) 100%); }
  .reassurance-inner { grid-template-columns: repeat(2,1fr); }
  .reassurance-item:nth-child(2) { border-right: 0; }
  .reassurance-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .shop-photo { min-height: 23rem; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 18rem 12rem 12rem; }
  .gallery-grid figure:first-child { grid-column: 1 / -1; grid-row: auto; }
  .gallery-grid figure:nth-child(2) { grid-column: 1 / -1; }
  .cta-panel { grid-template-columns: 1fr; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom-inner { flex-direction: column; }
}

@media (max-width: 480px) {
  .utility-inner { white-space: nowrap; }
  .utility-separator + a { display: none; }
  .gateway-panel { min-height: 29rem; }
  .trust-grid, .stat-grid, .reassurance-inner { grid-template-columns: 1fr; }
  .trust-item, .reassurance-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-item:last-child, .reassurance-item:last-child { border-bottom: 0; }
  .gallery-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(4,15rem); }
  .gallery-grid figure, .gallery-grid figure:first-child, .gallery-grid figure:nth-child(2) { grid-column: auto; grid-row: auto; }
  .scenario-grid { grid-template-columns: 1fr; }
  .expertise-list, .contact-form { grid-template-columns: 1fr; }
  .dcs-score strong { font-size: 2.3rem; }
  .dcs-console-head, .dcs-console-foot { align-items: flex-start; flex-direction: column; }
  .dcs-nodes { grid-template-columns: repeat(5,minmax(3.1rem,1fr)); overflow-x: auto; padding-bottom: .35rem; }
  .dcs-modes { grid-template-columns: 1fr; }
  .dcs-proof-grid { grid-template-columns: 1fr; }
  .dcs-proof-grid div, .dcs-proof-grid div:nth-child(2) { border-right: 0; border-bottom: 1px solid rgba(102,231,255,.16); }
  .dcs-proof-grid div:last-child { border-bottom: 0; }
  .capture-grid, .mission-mode-grid, .dcs-ops-grid { grid-template-columns: 1fr; }
  .dcs-ops-grid span, .dcs-ops-grid span:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--airsoft-line); }
  .dcs-ops-grid span:last-child { border-bottom: 0; }
  .airsoft-status-teams { grid-template-columns: 1fr; }
  .airsoft-status-head, .airsoft-status-foot { align-items: flex-start; flex-direction: column; }
  .flow-grid { grid-template-columns: 1fr; }
  .form-field.full, .consent-label.full { grid-column: auto; }
  .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
