/* ══════════════════════════════════════════════════
   ORBITAL DATACENTERS — ADS-B NETWORK SAS
   Palette Espace · Même base que le site défense
══════════════════════════════════════════════════ */
:root{
  --navy:#0D1F3C; --tide:#152A4E; --wave:#1B5FAE;
  --sky:#2E75B6;  --foam:#6BAED4; --mist:#C4D9EE;
  --sand:#D4A84B; --sand-lt:#F0D898;
  --kelp:#1E6B50; --kelp-lt:#C8EBE0;
  --amber:#C87040; --red:#C03020; --red-lt:#FDECEA;
  --white:#FFFFFF; --cream:#F5F3EF; --warm:#EDEAE8;
  --mid:#6B7B8E; --dark:#0F1C2E; --border:#D0DAEC;
  --purple:#6B21A8; --purple-lt:#F3E8FF;
  --sh-sm:0 2px 12px rgba(13,31,60,.10);
  --sh-md:0 8px 32px rgba(13,31,60,.16);
  --sh-lg:0 20px 60px rgba(13,31,60,.24);
  --r:12px; --r-lg:20px;
  --tr:all .3s cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Figtree',sans-serif;color:var(--dark);background:var(--white);line-height:1.7;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;line-height:1.2}
code,.mono{font-family:'JetBrains Mono',monospace}
a{color:var(--wave);text-decoration:none}
a:hover{text-decoration:underline;color:var(--sky)}
img{max-width:100%;height:auto;display:block}

/* LOADER */
#ld{position:fixed;inset:0;background:var(--navy);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s ease}
#ld.out{opacity:0;pointer-events:none;visibility:hidden}
.ld-icon{font-size:52px;margin-bottom:20px;animation:bob 1.4s ease-in-out infinite alternate}
@keyframes bob{0%{transform:translateY(0)}100%{transform:translateY(-12px)}}
.ld-bar{width:220px;height:3px;background:rgba(255,255,255,.1);border-radius:2px;margin-top:18px;overflow:hidden}
.ld-fill{height:100%;background:linear-gradient(90deg,var(--wave),var(--sky),var(--foam));border-radius:2px;animation:ldanim 1.8s ease forwards}
@keyframes ldanim{0%{width:0}100%{width:100%}}
.ld-text{color:rgba(255,255,255,.4);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:12px;font-family:'JetBrains Mono',monospace}

/* TOP BARS */
.tricolor{height:5px;background:linear-gradient(90deg,#002395 0% 33.33%,#FFFFFF 33.33% 66.66%,#ED2939 66.66% 100%);position:relative;z-index:700}
.tide-bar{height:3px;background:linear-gradient(90deg,#1B5FAE 0%,#6BAED4 30%,#D4A84B 55%,#C87040 75%,#C03020 100%);z-index:600}

/* TICKER */
.ticker{background:var(--tide);color:rgba(255,255,255,.55);font-size:11.5px;padding:9px 0;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.06)}
.ticker-inner{display:flex;white-space:nowrap;animation:tick 70s linear infinite}
.ticker-inner:hover{animation-play-state:paused}
.tick-item{padding:0 28px;display:flex;align-items:center;gap:8px;flex-shrink:0;font-family:'JetBrains Mono',monospace}
.tick-v{color:var(--sand);font-weight:500}
.tick-v.ok{color:#4BD68A}
.tick-v.warn{color:var(--amber)}
.tick-v.crit{color:#FF6B5B}
.tick-sep{color:rgba(255,255,255,.15);margin:0 4px}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* HEADER */
header{background:var(--navy);color:#fff;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:500;box-shadow:var(--sh-md)}
.hd-brand{display:flex;align-items:center;gap:14px}
.hd-logo{font-size:28px}
.hd-name{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:700;line-height:1.2}
.hd-sub{font-size:11px;color:rgba(255,255,255,.45);font-family:'JetBrains Mono',monospace;letter-spacing:.1em}
.hd-badge{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px 14px;font-size:11px;color:rgba(255,255,255,.6);font-family:'JetBrains Mono',monospace;text-align:center;white-space:nowrap}
.hd-badge strong{color:var(--sand);display:block;font-size:13px}
.visit-counter{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 14px;font-size:11px;color:rgba(255,255,255,.5);font-family:'JetBrains Mono',monospace;display:flex;align-items:center;gap:8px}
.visit-dot{width:6px;height:6px;background:#4BD68A;border-radius:50%;animation:pulse-dot 2s ease infinite;flex-shrink:0}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.visit-num{color:var(--foam);font-weight:500}

/* NAV */
.nav-wrap{background:var(--tide);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:88px;z-index:490;overflow-x:auto}
.nav-wrap::-webkit-scrollbar{height:3px}
.nav-wrap::-webkit-scrollbar-thumb{background:var(--wave);border-radius:2px}
.nav-inner{display:flex;gap:2px;padding:0 28px;min-width:max-content}
.nav-btn{background:none;border:none;color:rgba(255,255,255,.5);font-family:'Figtree',sans-serif;font-size:12.5px;font-weight:500;padding:13px 16px;cursor:pointer;border-bottom:3px solid transparent;transition:var(--tr);white-space:nowrap;display:flex;align-items:center;gap:6px;text-decoration:none}
.nav-btn:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.04);text-decoration:none}
.nav-btn.on{color:#fff;border-bottom-color:var(--sand);font-weight:600}

/* HERO SLIDESHOW */
#hero-gallery{position:relative;height:520px;overflow:hidden;background:var(--navy)}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hero-slide.active{opacity:1}
.hero-slide .slide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-slide .slide-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(13,31,60,.88) 0%,rgba(13,31,60,.35) 100%)}
.hero-slide .slide-content{position:relative;z-index:2;max-width:760px;padding:0 56px;color:#fff}
.slide-tag{display:inline-block;background:var(--sand);color:var(--navy);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 12px;border-radius:6px;margin-bottom:16px;font-family:'JetBrains Mono',monospace}
.slide-title{font-family:'Fraunces',serif;font-size:2.5rem;font-weight:900;margin-bottom:12px;line-height:1.15}
.slide-desc{font-size:1rem;color:rgba(255,255,255,.72);margin-bottom:20px;max-width:540px}
.slide-kpi{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 18px;font-family:'JetBrains Mono',monospace;font-size:14px}
.slide-kpi .kv{color:var(--sand);font-weight:700;font-size:1.4rem}
.slide-nav-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;pointer-events:none;z-index:5}
.hero-prev,.hero-next{pointer-events:all;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:var(--tr)}
.hero-prev:hover,.hero-next:hover{background:rgba(255,255,255,.2)}
.hero-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:var(--tr)}
.hero-dot.on{background:var(--sand);width:24px;border-radius:4px}
.slide-inner{height:100%;display:flex;align-items:center}

/* GRAD PLACEHOLDERS */
.grad-1{background:linear-gradient(135deg,#0D1F3C 0%,#1B5FAE 100%)}
.grad-2{background:linear-gradient(135deg,#0A1F0F 0%,#1B5FAE 100%)}
.grad-3{background:linear-gradient(135deg,#0D1F3C 0%,#6B21A8 100%)}
.grad-4{background:linear-gradient(135deg,#0D1F3C 0%,#C03020 100%)}
.grad-5{background:linear-gradient(135deg,#152A4E 0%,#C87040 100%)}
.grad-6{background:linear-gradient(135deg,#0A1F0F 0%,#1E6B50 100%)}
.grad-7{background:linear-gradient(135deg,#0D1F3C 0%,#2E75B6 100%)}
.grad-8{background:linear-gradient(135deg,#1A0830 0%,#D4A84B 100%)}

/* PAGE HERO (sub pages) */
.page-hero{position:relative;height:320px;overflow:hidden;background:var(--navy)}
.page-hero img{width:100%;height:100%;object-fit:cover;opacity:.45}
.page-hero .ph-placeholder{position:absolute;inset:0}
.page-hero .ph-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:40px 56px;background:linear-gradient(to top,rgba(13,31,60,.92) 0%,transparent 65%)}
.page-hero .ph-content h2{font-family:'Fraunces',serif;font-size:2.2rem;font-weight:900;color:#fff;margin-bottom:8px}
.page-hero .ph-content p{color:rgba(255,255,255,.65);max-width:640px;font-size:1rem}
.page-hero .ph-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);margin-bottom:10px;display:block}
.img-credit{position:absolute;top:12px;right:12px;background:rgba(13,31,60,.7);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 10px;font-size:10px;color:rgba(255,255,255,.35);font-family:'JetBrains Mono',monospace}

/* SECTIONS */
.sec{max-width:1100px;margin:0 auto;padding:64px 40px}
.sec-sm{max-width:1100px;margin:0 auto;padding:40px 40px}
.sec-title{font-family:'Fraunces',serif;font-size:2rem;font-weight:900;color:var(--navy);margin-bottom:8px}
.sec-sub{color:var(--mid);font-size:1rem;margin-bottom:40px;max-width:680px}
.sec-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--wave);font-weight:500;margin-bottom:8px}

/* CARDS */
.card-grid{display:grid;gap:24px}
.card-grid.cols2{grid-template-columns:repeat(2,1fr)}
.card-grid.cols3{grid-template-columns:repeat(3,1fr)}
.card-grid.cols4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px;box-shadow:var(--sh-sm);transition:var(--tr)}
.card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.card-icon{font-size:30px;margin-bottom:14px}
.card-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.card-body{color:var(--mid);font-size:.88rem;line-height:1.65}
.card-kpi{font-family:'JetBrains Mono',monospace;font-size:1.5rem;font-weight:700;color:var(--wave);margin-top:12px}
.card-kpi small{font-size:.72rem;color:var(--mid);font-family:'Figtree',sans-serif;font-weight:400}
.card.card-red{border-top:4px solid var(--red)}
.card.card-amber{border-top:4px solid var(--amber)}
.card.card-green{border-top:4px solid var(--kelp)}
.card.card-blue{border-top:4px solid var(--wave)}

/* KPI BAND */
.kpi-band{background:var(--navy);color:#fff;padding:40px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1100px;margin:0 auto}
.kpi-item{text-align:center;padding:20px}
.kpi-val{font-family:'Fraunces',serif;font-size:2.8rem;font-weight:900;line-height:1;color:var(--sand)}
.kpi-unit{font-size:.8rem;color:rgba(255,255,255,.45);font-family:'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;margin-top:4px}
.kpi-label{font-size:.85rem;color:rgba(255,255,255,.6);margin-top:8px;line-height:1.4}

/* ALERT BOXES */
.alert{border-radius:var(--r);padding:18px 22px;margin:20px 0;border-left:4px solid;display:flex;gap:14px;align-items:flex-start}
.alert-icon{font-size:20px;flex-shrink:0;margin-top:2px}
.alert-red{background:var(--red-lt);border-color:var(--red)}
.alert-blue{background:#EAF2FB;border-color:var(--wave)}
.alert-amber{background:#FEF3E2;border-color:var(--amber)}
.alert-green{background:var(--kelp-lt);border-color:var(--kelp)}
.alert-purple{background:var(--purple-lt);border-color:var(--purple)}
.alert strong{display:block;margin-bottom:5px;font-size:.93rem}
.alert p{font-size:.87rem;color:var(--dark);margin:0;line-height:1.6}

/* TABLE */
.tbl-wrap{overflow-x:auto;margin:24px 0;border-radius:var(--r);box-shadow:var(--sh-sm)}
table{width:100%;border-collapse:collapse;font-size:.87rem}
thead tr{background:var(--navy);color:#fff}
thead th{padding:12px 16px;text-align:left;font-weight:600;font-family:'Figtree',sans-serif;white-space:nowrap}
tbody tr:nth-child(even){background:var(--cream)}
tbody tr:hover{background:var(--mist)}
td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.5}
td.num{font-family:'JetBrains Mono',monospace;text-align:center;color:var(--navy);font-weight:500}
td.warn{color:var(--red);font-weight:600}
td.ok{color:var(--kelp);font-weight:600}
td.mid{color:var(--amber);font-weight:600}

/* VERDICT CARDS */
.verdict-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:24px;box-shadow:var(--sh-sm)}
.verdict-head{padding:18px 24px;display:flex;align-items:center;gap:14px;color:#fff}
.verdict-head.red{background:var(--red)}
.verdict-head.amber{background:var(--amber)}
.verdict-head.green{background:var(--kelp)}
.verdict-head.blue{background:var(--wave)}
.verdict-num{background:rgba(255,255,255,.2);font-family:'Fraunces',serif;font-size:1.2rem;font-weight:900;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.verdict-head-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700}
.verdict-head-sub{font-size:.78rem;color:rgba(255,255,255,.6);margin-top:2px}
.verdict-body{padding:24px}
.verdict-body p{font-size:.9rem;color:var(--dark);line-height:1.65;margin-bottom:12px}
.verdict-body p:last-child{margin-bottom:0}

/* CHART CONTAINER */
.chart-box{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px;box-shadow:var(--sh-sm);margin:24px 0}
.chart-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.chart-sub{font-size:.8rem;color:var(--mid);margin-bottom:20px;font-family:'JetBrains Mono',monospace}
.chart-wrap{position:relative;height:300px}
.chart-wrap.tall{height:400px}

/* SOURCE ITEMS */
.sources-section{background:var(--cream);border-radius:var(--r-lg);padding:32px;margin:32px 0}
.src-cat{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--wave);margin-top:28px;margin-bottom:12px;font-weight:600;padding-bottom:6px;border-bottom:1px solid var(--border)}
.src-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(208,218,236,.5);font-size:.85rem}
.src-num{font-family:'JetBrains Mono',monospace;color:var(--sand);font-weight:700;flex-shrink:0;min-width:36px}
.src-body{color:var(--dark);line-height:1.55}
.src-body a{word-break:break-all}
.src-tag{display:inline-block;background:var(--mist);color:var(--navy);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;margin-left:6px;font-family:'JetBrains Mono',monospace}
.src-tag.official{background:#DCF0E8;color:var(--kelp)}
.src-tag.crit{background:var(--red-lt);color:var(--red)}
.src-tag.warn{background:#FEF3E2;color:var(--amber)}

/* MISC */
.prose{font-size:.95rem;line-height:1.78;color:var(--dark)}
.prose p{margin-bottom:16px}
.prose p:last-child{margin-bottom:0}
.tag-pill{display:inline-block;background:var(--mist);color:var(--navy);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:20px;margin:2px}
.tag-pill.red{background:var(--red-lt);color:var(--red)}
.tag-pill.green{background:var(--kelp-lt);color:var(--kelp)}
.tag-pill.amber{background:#FEF3E2;color:var(--amber)}
.divider{border:none;border-top:1px solid var(--border);margin:32px 0}
.highlight{background:linear-gradient(transparent 60%,rgba(212,168,75,.3) 60%);display:inline}
.number-big{font-family:'Fraunces',serif;font-size:3.2rem;font-weight:900;color:var(--red);line-height:1}

/* PROGRESS BARS */
.prog-row{margin-bottom:14px}
.prog-label{display:flex;justify-content:space-between;margin-bottom:5px;font-size:.83rem;color:var(--dark)}
.prog-val{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--navy)}
.prog-bar{height:10px;background:var(--mist);border-radius:5px;overflow:hidden}
.prog-fill{height:100%;border-radius:5px;transition:width 1s ease}
.prog-fill.red{background:var(--red)}
.prog-fill.amber{background:var(--amber)}
.prog-fill.green{background:var(--kelp)}
.prog-fill.blue{background:var(--wave)}

/* FOOTER */
footer{background:var(--navy);color:rgba(255,255,255,.5);font-size:.83rem;padding:48px 40px 32px}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;max-width:1100px;margin:0 auto 40px}
.ft-brand{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:8px}
.ft-desc{font-size:.82rem;line-height:1.6;max-width:280px}
.ft-col h4{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:14px;font-family:'JetBrains Mono',monospace}
.ft-col a{display:block;color:rgba(255,255,255,.55);font-size:.83rem;margin-bottom:8px;transition:var(--tr)}
.ft-col a:hover{color:var(--sand);text-decoration:none}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.07)}

/* RESPONSIVE */
@media(max-width:1100px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .card-grid.cols3{grid-template-columns:repeat(2,1fr)}
  .card-grid.cols4{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:900px){
  header{padding:16px 24px}
  .hd-badge{display:none}
  .sec{padding:48px 28px}
  .sec-sm{padding:32px 28px}
  .page-hero .ph-content{padding:28px 28px}
  .page-hero .ph-content h2{font-size:1.7rem}
  #hero-gallery{height:440px}
  .slide-title{font-size:2rem}
}
@media(max-width:768px){
  .card-grid.cols2,.card-grid.cols3,.card-grid.cols4{grid-template-columns:1fr}
  #hero-gallery{height:380px}
  .slide-title{font-size:1.7rem}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr 1fr}
  .hero-slide .slide-content{padding:0 36px}
}
@media(max-width:640px){
  header{flex-wrap:wrap;gap:12px}
  .visit-counter{display:none}
  .sec{padding:36px 20px}
  .sec-sm{padding:28px 20px}
  .kpi-grid{grid-template-columns:1fr 1fr}
  #hero-gallery{height:340px}
  .slide-title{font-size:1.4rem}
  .page-hero{height:240px}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column;align-items:flex-start;gap:12px}
}
@media(max-width:400px){
  .slide-title{font-size:1.2rem}
  .kpi-grid{grid-template-columns:1fr}
  header{padding:12px 16px}
  .nav-inner{padding:0 12px}
  .sec{padding:24px 14px}
  .slide-content{padding:0 20px!important}
}
