/* ===== Polices auto-hébergées (extraites du kit de marque) ===== */
@font-face { font-family:'Schibsted Grotesk'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url("fonts/0731f729.woff2") format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Schibsted Grotesk'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url("fonts/7346187a.woff2") format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/e613cdeb.woff2") format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/6b6c28bd.woff2") format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/ecc031b9.woff2") format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/5e935d11.woff2") format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ===== Système de design (proposition validée — ne pas dériver) ===== */
*, *::before, *::after { box-sizing:border-box; }
:root {
  --ink:#14161c; --cobalt:#2b50e6; --paper:#f7f7f6; --white:#ffffff;
  --slate:#6b7280; --line:#dcdcd7; --dark:#101117;
}
html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; }
body { background:var(--paper); color:var(--ink);
  font-family:'Schibsted Grotesk',sans-serif; -webkit-font-smoothing:antialiased; }
.wrap { max-width:1320px; margin:0 auto; padding:0 56px; }
a { color:inherit; }

.wm { color:var(--ink); display:block; }
.wm.rev { color:#ffffff; }

/* ============ UTILITY BAR + NAV ============ */
.utility { border-bottom:1px solid var(--line); }
.utility .row { display:flex; justify-content:space-between; height:34px; align-items:center;
  font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.14em; color:var(--slate);
  text-transform:uppercase; }
.nav { position:sticky; top:0; z-index:50; background:rgba(247,247,246,.92);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.nav .row { display:flex; align-items:center; height:64px; }
.nav .logo { display:block; }
.nav .logo .wm { width:104px; }
.nav nav { margin-left:auto; display:flex; gap:34px; }
.nav nav a { font-size:13.5px; font-weight:500; color:#33363e; text-decoration:none; }
.nav nav a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:5px;
  text-decoration-color:var(--cobalt); text-decoration-thickness:2px; }

/* ============ HERO ============ */
.hero { padding:92px 0 0; }
.hero .kick { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--slate); margin-bottom:38px; }
.hero h1 { font-size:clamp(54px,7.2vw,112px); line-height:1.0; letter-spacing:-.035em;
  font-weight:600; margin:0; max-width:1240px; }
.hero h1 em { font-style:normal; color:var(--cobalt); }
.hero .deck-row { display:grid; grid-template-columns:1.25fr 1fr; gap:60px;
  margin-top:54px; padding:34px 0 64px; border-top:1px solid var(--line); }
.hero .deck-row p { font-size:19px; line-height:1.6; color:#3a3d45; margin:0; max-width:560px; }
.hero .deck-row .links { display:flex; flex-direction:column; gap:16px; align-items:flex-start; }
.arrowlink { display:inline-flex; align-items:baseline; gap:10px; font-size:16px; font-weight:600;
  text-decoration:none; color:var(--ink); border-bottom:2px solid var(--cobalt); padding-bottom:3px; }
.arrowlink .ar { font-family:'Space Mono',monospace; color:var(--cobalt); transition:transform .18s; display:inline-block; }
.arrowlink:hover .ar { transform:translateX(5px); }

/* featured report */
.featured { border-top:1px solid var(--line); }
.featured .grid { display:grid; grid-template-columns:1.35fr 1fr; min-height:480px; }
.featured .imgside { border-right:1px solid var(--line); padding:0; }
.featured .brandpanel { width:100%; height:100%; min-height:480px; background:var(--dark);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:34px; }
.featured .brandpanel svg { width:108px; height:108px; }
.featured .brandpanel .ref { font-family:'Space Mono',monospace; font-size:10.5px;
  letter-spacing:.34em; text-transform:uppercase; color:#7b818d; }
.featured .txt { padding:56px 0 56px 64px; display:flex; flex-direction:column; }
.featured .cat { font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--cobalt); }
.featured h2 { font-size:clamp(28px,2.8vw,40px); line-height:1.15; letter-spacing:-.02em;
  font-weight:600; margin:20px 0 18px; max-width:480px; }
.featured p { font-size:15.5px; line-height:1.65; color:#494d56; margin:0 0 26px; max-width:440px; }
.featured .meta { margin-top:auto; font-family:'Space Mono',monospace; font-size:10.5px;
  color:var(--slate); letter-spacing:.1em; }

/* ============ SECTION SCAFFOLD ============ */
.sec { padding:104px 0; }
.sec-head { display:grid; grid-template-columns:240px 1fr; gap:40px; margin-bottom:64px; }
.sec-head .label { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--slate); padding-top:10px; }
.sec-head .label .n { color:var(--cobalt); margin-right:10px; }
.sec-head h2 { font-size:clamp(34px,3.8vw,54px); line-height:1.06; letter-spacing:-.03em;
  font-weight:600; margin:0; max-width:760px; }

/* capability rows */
.caps { border-top:1px solid var(--line); }
.cap { display:grid; grid-template-columns:120px 1fr 1.2fr 60px; gap:36px; align-items:baseline;
  padding:38px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit;
  transition:background .15s; }
.cap:hover { background:var(--white); }
.cap .no { font-family:'Space Mono',monospace; font-size:12px; color:var(--slate); }
.cap h3 { font-size:26px; font-weight:600; letter-spacing:-.02em; margin:0; }
.cap p { font-size:15px; line-height:1.6; color:#494d56; margin:0; max-width:520px; }
.cap .ar { font-family:'Space Mono',monospace; font-size:18px; color:var(--cobalt);
  justify-self:end; transition:transform .18s; }
.cap:hover .ar { transform:translateX(6px); }

/* références */
.refs { display:flex; align-items:baseline; gap:40px; flex-wrap:wrap; padding:30px 0 0; }
.refs .l { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--slate); }
.refs .names { font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.06em; color:#33363e; }
.refs .names b { color:var(--ink); font-weight:700; }

/* ============ DATA LAYER ============ */
.data { background:var(--dark); color:#fff; }
.data .sec-head .label { color:#7b818d; }
.data .sec-head h2 { color:#fff; }
.data .statement { font-size:clamp(20px,2vw,26px); line-height:1.5; color:#b9bcc4;
  max-width:780px; margin:0 0 74px; }
.data .statement b { color:#fff; font-weight:600; }
.bigstats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #23262e; }
.bigstat { padding:36px 36px 42px 0; border-right:1px solid #23262e; }
.bigstat:last-child { border-right:none; }
.bigstat + .bigstat { padding-left:36px; }
.bigstat .v { font-size:clamp(40px,3.6vw,56px); font-weight:700; letter-spacing:-.03em; line-height:1; }
.bigstat .v .u { font-size:.45em; color:var(--cobalt); font-weight:600; }
.bigstat .t { font-size:14px; font-weight:600; margin-top:16px; }
.bigstat .d { font-size:12.5px; color:#9aa0ac; line-height:1.55; margin-top:6px; }
.data .note { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:#7b818d; margin-top:30px; }

/* ============ PERSPECTIVES ============ */
.persp .item { display:grid; grid-template-columns:160px 1fr 320px; gap:44px; align-items:start;
  padding:34px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.persp .item:first-of-type { border-top:1px solid var(--line); }
.persp .item:hover { background:var(--white); }
.persp .date { font-family:'Space Mono',monospace; font-size:11px; color:var(--slate);
  letter-spacing:.08em; padding-top:6px; }
.persp h3 { font-size:22px; font-weight:600; letter-spacing:-.015em; margin:0 0 8px; max-width:560px; }
.persp .item:hover h3 { text-decoration:underline; text-underline-offset:4px;
  text-decoration-color:var(--cobalt); text-decoration-thickness:2px; }
.persp p { font-size:14px; line-height:1.6; color:#494d56; margin:0; max-width:540px; }
.persp .cat { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--cobalt); padding-top:7px; justify-self:end; text-align:right; }
.persp .more { margin-top:44px; }

/* ============ MISSION ============ */
.mission { padding:120px 0; border-top:1px solid var(--line); }
.mission .q { font-size:clamp(28px,3.2vw,44px); line-height:1.28; letter-spacing:-.022em;
  font-weight:500; max-width:1020px; margin:0; text-wrap:pretty; }
.mission .q b { color:var(--cobalt); font-weight:500; }
.mission .src { font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--slate); margin-top:36px; }

/* ============ CONTACT ============ */
.contact { background:var(--white); border-top:1px solid var(--line); }
.contact .grid { display:grid; grid-template-columns:1fr 1.1fr; gap:90px; }
.contact h2 { font-size:clamp(34px,3.8vw,54px); line-height:1.06; letter-spacing:-.03em;
  font-weight:600; margin:0 0 24px; }
.contact .info p { font-size:16px; line-height:1.65; color:#494d56; max-width:400px; margin:0 0 44px; }
.contact .ch { padding:20px 0; border-top:1px solid var(--line); display:grid;
  grid-template-columns:140px 1fr; gap:20px; }
.contact .ch .l { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--slate); padding-top:4px; }
.contact .ch .v { font-size:16px; font-weight:600; }
.contact .ch .v a { text-decoration:none; border-bottom:2px solid var(--cobalt); }

form .field { margin-bottom:34px; }
form label { display:block; font-family:'Space Mono',monospace; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--slate); margin-bottom:10px; }
form input, form select, form textarea {
  font-family:'Schibsted Grotesk',sans-serif; font-size:17px; color:var(--ink);
  background:transparent; border:none; border-bottom:1px solid #c5c8cd;
  padding:6px 0 12px; outline:none; width:100%; border-radius:0; }
form textarea { min-height:96px; resize:vertical; }
form input:focus, form select:focus, form textarea:focus { border-bottom:2px solid var(--cobalt); padding-bottom:11px; }
form input.err, form textarea.err { border-bottom:2px solid #c2483f; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:44px; }
form .submit { display:flex; align-items:center; gap:22px; margin-top:10px; }
form button { font-family:'Schibsted Grotesk',sans-serif; font-size:15px; font-weight:600;
  color:#fff; background:var(--ink); border:none; padding:16px 38px; cursor:pointer; }
form button:hover { background:var(--cobalt); }
form button:disabled { opacity:.55; cursor:wait; }
form .hint { font-family:'Space Mono',monospace; font-size:10px; color:var(--slate); letter-spacing:.08em; }
form .hint.err { color:#c2483f; }
.sent { display:none; gap:16px; padding:10px 0; }
.sent .dp { width:12px; height:12px; background:var(--cobalt); margin-top:6px; flex:0 0 auto; }
.sent .t { font-size:18px; font-weight:600; }
.sent .d { font-size:14px; color:var(--slate); margin-top:5px; }
form.is-sent .fields, form.is-sent .submit { display:none; }
form.is-sent .sent { display:flex; }

/* ============ FOOTER ============ */
footer { background:var(--dark); color:#9aa0ac; padding:84px 0 48px; }
footer .big { display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
  padding-bottom:64px; border-bottom:1px solid #23262e; flex-wrap:wrap; }
footer .big .wm { width:min(420px, 60vw); }
footer .desc { display:flex; align-items:center; gap:12px; margin-top:22px; }
footer .desc .rule { height:2px; width:22px; background:var(--cobalt); }
footer .desc .txt { font-family:'Space Mono',monospace; font-weight:700; font-size:10.5px;
  letter-spacing:.46em; text-transform:uppercase; color:#7b818d; }
footer .cols { display:flex; gap:90px; }
footer .col .h { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:#7b818d; margin-bottom:18px; }
footer .col a { display:block; font-size:14px; color:#c7ccd4; text-decoration:none; margin-bottom:12px; }
footer .col a:hover { color:#fff; }
footer .base { padding-top:26px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.08em; }

@media (max-width:980px) {
  .wrap { padding:0 26px; }
  .nav nav { display:none; }
  .hero .deck-row, .featured .grid, .contact .grid { grid-template-columns:1fr; }
  .featured .imgside { border-right:none; border-bottom:1px solid var(--line); }
  .featured .txt { padding:40px 0; }
  .featured .brandpanel { min-height:300px; }
  .sec-head { grid-template-columns:1fr; gap:18px; margin-bottom:44px; }
  .cap { grid-template-columns:60px 1fr; }
  .cap p { grid-column:2; }
  .cap .ar { display:none; }
  .bigstats { grid-template-columns:1fr 1fr; }
  .bigstat { border-right:none; border-bottom:1px solid #23262e; padding-left:0 !important; }
  .persp .item { grid-template-columns:1fr; gap:10px; }
  .persp .cat { justify-self:start; text-align:left; }
  .frow { grid-template-columns:1fr; gap:0; }
}
/* ===== Sélecteur de langue (utility bar) ===== */
.utility .lang b { color:var(--ink); font-weight:700; }
.utility .lang .sep { margin:0 8px; }
.utility .lang a { color:var(--slate); text-decoration:none; }
.utility .lang a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--cobalt); text-decoration-thickness:2px; }

/* ============ MARQUEE CLIENTS — intégré au hero, fond clair ============ */
.clients { padding:48px 0 6px; }
.clients .head { display:flex; margin-bottom:22px; }
.clients .head span { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--slate); }
.marquee { display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee .track { display:flex; align-items:center; gap:96px; padding-right:96px;
  flex:0 0 auto; animation:scroll 28s linear infinite; }
.marquee:hover .track { animation-play-state:paused; }
@keyframes scroll { to { transform:translateX(-100%); } }
.marquee img { height:32px; width:auto; filter:brightness(0); opacity:.45; transition:opacity .2s; }
.marquee img.tall { height:46px; }
.marquee img.sq { height:56px; }
.marquee img:hover { opacity:.85; }
.marquee .txtmark { font-family:'Schibsted Grotesk',sans-serif; font-weight:700; font-size:21px;
  letter-spacing:.02em; color:var(--ink); opacity:.45; white-space:nowrap; transition:opacity .2s; }
.marquee .txtmark:hover { opacity:.85; }
@media (prefers-reduced-motion: reduce) { .marquee .track { animation:none; } }

/* ============ DASHBOARD MOCK — panneau à la une ============ */
.featured .brandpanel { padding:46px; gap:0; align-items:stretch; justify-content:center; }
.dash { width:100%; max-width:460px; margin:0 auto; border:1px solid #23262e; background:#15171e; }
.dash .bar { display:flex; justify-content:space-between; align-items:center; padding:14px 18px;
  border-bottom:1px solid #23262e; }
.dash .bar .l { font-family:'Space Mono',monospace; font-size:9.5px; letter-spacing:.26em;
  text-transform:uppercase; color:#7b818d; }
.dash .bar .dot { width:8px; height:8px; background:var(--cobalt); }
.dash .grid2 { display:grid; grid-template-columns:1fr 1fr; }
.dash .cell { padding:18px; border-bottom:1px solid #23262e; }
.dash .cell:nth-child(odd) { border-right:1px solid #23262e; }
.dash .cell:nth-last-child(-n+2) { border-bottom:none; }
.dash .k { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.2em;
  text-transform:uppercase; color:#7b818d; margin-bottom:9px; }
.dash .n { font-size:26px; font-weight:700; letter-spacing:-.02em; color:#fff; line-height:1; }
.dash .n .u { font-size:.5em; color:var(--cobalt); font-weight:600; }
.dash .n .down { color:#4ade80; font-size:.5em; font-weight:600; }
.dash svg.spark { display:block; width:100%; height:34px; margin-top:12px; }
.dash .bars { display:flex; align-items:flex-end; gap:5px; height:34px; margin-top:12px; }
.dash .bars i { flex:1; background:#2a2d36; }
.dash .bars i.c { background:var(--cobalt); }
.dash .badge { display:inline-block; margin-top:10px; font-family:'Space Mono',monospace;
  font-size:9px; letter-spacing:.14em; color:#9aa0ac; border:1px solid #2a2d36; padding:4px 8px; }
.featured .brandpanel .ref { margin-top:22px; text-align:center; }

/* ============ RÉVÉLATION AU SCROLL ============ */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .65s ease, transform .65s ease; }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.08s; } .reveal.d2 { transition-delay:.16s; }
.reveal.d3 { transition-delay:.24s; } .reveal.d4 { transition-delay:.32s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; transition:none; } }

/* Lockup Pharmactis : icône (dessin préservé) + nom */
.marquee .lockup { display:flex; align-items:center; gap:12px; opacity:.55; transition:opacity .2s; }
.marquee .lockup:hover { opacity:.95; }
.marquee .lockup img { height:42px; width:auto; filter:grayscale(1); opacity:1; }
.marquee .lockup span { font-family:'Schibsted Grotesk',sans-serif; font-weight:700;
  font-size:21px; color:var(--ink); letter-spacing:.01em; white-space:nowrap; }
