/* Les mécanismes de la publicité — grille Müller-Brockmann partagée */
:root{
  --cols:12; --bl:8px; --lh:24px; --gutter:24px; --margin:72px; --pad:96px; --maxw:1296px;
  --paper:#ffffff; --ink:#111315; --ink-soft:#5b6066; --accent:#e4002b;
  --g-col:rgba(228,0,43,.075); --g-edge:rgba(228,0,43,.40);
  --g-base:rgba(0,150,140,.34); --g-base-min:rgba(0,150,140,.12);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Inter",system-ui,sans-serif;font-size:16px;line-height:var(--lh);
  -webkit-font-smoothing:antialiased;}
a{color:inherit;}
.spread{position:relative;width:100%;}
.wrap{position:relative;max-width:var(--maxw);margin:0 auto;padding:var(--pad) var(--margin);}
.grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);column-gap:var(--gutter);row-gap:var(--lh);}
.band{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);row-gap:var(--lh);align-items:start;}
@supports not (grid-template-columns:subgrid){.band{grid-template-columns:repeat(var(--cols),1fr);}}
.guides{position:absolute;inset:0;pointer-events:none;z-index:60;opacity:0;transition:opacity .26s ease;}
body.grid-on .guides{opacity:1;}
.guides .cols{position:absolute;top:0;bottom:0;left:var(--margin);right:var(--margin);display:grid;grid-template-columns:repeat(var(--cols),1fr);column-gap:var(--gutter);}
.guides .col{background:var(--g-col);box-shadow:inset 1px 0 0 var(--g-edge),inset -1px 0 0 var(--g-edge);position:relative;}
.guides .col span{position:absolute;top:32px;left:0;right:0;text-align:center;font-family:"Space Mono",monospace;font-size:10px;line-height:1;color:var(--accent);}
.guides .rows{position:absolute;left:var(--margin);right:var(--margin);top:var(--pad);bottom:0;
  background-image:repeating-linear-gradient(to bottom,var(--g-base) 0 1px,transparent 1px var(--lh)),repeating-linear-gradient(to bottom,var(--g-base-min) 0 1px,transparent 1px var(--bl));}
.guides .mline{position:absolute;top:0;bottom:0;width:1px;background:var(--g-edge);}
.guides .mline.l{left:var(--margin);} .guides .mline.r{right:var(--margin);}
.toggle{position:fixed;top:18px;right:18px;z-index:200;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border:none;cursor:pointer;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:11px 14px;}
.toggle .dot{width:9px;height:9px;border-radius:50%;background:#555;}
body.grid-on .toggle{background:var(--accent);} body.grid-on .toggle .dot{background:#fff;}

/* ---- editorial type ---- */
.kicker{font-family:"Space Mono",monospace;font-size:12px;line-height:var(--lh);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0;}
.kicker a{text-decoration:none;color:var(--ink-soft);}
.kicker a:hover{color:var(--accent);}
.kicker .sep{color:var(--ink-soft);padding:0 .5em;}
.masthead{font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(40px,7vw,96px);line-height:96px;}
.masthead.home{font-size:clamp(46px,9.2vw,128px);line-height:120px;text-transform:uppercase;}
.masthead .em{color:var(--accent);}

/* ---- homepage: sommaire entries, numeral, family ---- */
.idxlabel{font-family:"Space Mono",monospace;font-size:12px;line-height:var(--lh);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0;}
.entry{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);align-items:start;text-decoration:none;color:inherit;padding-top:var(--lh);position:relative;}
@supports not (grid-template-columns:subgrid){.entry{grid-template-columns:repeat(var(--cols),1fr);}}
.entry::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(17,19,21,.18);transition:background .2s,height .2s;}
.entry:hover::before{height:2px;background:var(--accent);}
.snum{grid-column:1 / 3;font-weight:800;color:var(--accent);font-size:clamp(34px,4.6vw,60px);line-height:72px;letter-spacing:-.02em;margin:0;}
.entry:hover .snum{color:var(--ink);}
.stitle{grid-column:3 / 11;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin:0;font-size:clamp(26px,3.2vw,46px);line-height:48px;}
.entry:hover .stitle{color:var(--accent);}
.sdesc{grid-column:3 / 11;font-weight:400;color:var(--ink-soft);margin:8px 0 0;font-size:16px;line-height:var(--lh);max-width:46ch;}
.sread{grid-column:11 / 13;justify-self:end;text-align:right;font-family:"Space Mono",monospace;font-size:12px;line-height:72px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;}
.entry:hover .sread{color:var(--accent);}
.sread .arr{font-family:"Inter",sans-serif;font-weight:600;}
.numeral{font-weight:800;color:var(--ink);letter-spacing:-.03em;margin:0;font-size:clamp(56px,11vw,156px);line-height:144px;font-variant-numeric:tabular-nums;}
.numlabel{font-family:"Space Mono",monospace;font-size:12px;line-height:var(--lh);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0;}
.fam-title{font-weight:700;font-size:clamp(20px,2.2vw,28px);line-height:var(--lh);margin:0;}
.fam-title a{text-decoration:none;} .fam-title a:hover{color:var(--accent);}
.dek{font-weight:400;color:var(--ink-soft);margin:0;font-size:clamp(17px,1.7vw,21px);line-height:var(--lh);}
.dek b{color:var(--ink);font-weight:600;}
.rule{grid-column:1 / -1;height:var(--lh);position:relative;}
.rule::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);}
.rule.thin::after{height:1px;background:rgba(17,19,21,.18);}

/* ---- section rail + content ---- */
.section{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);align-items:start;padding-top:var(--lh);position:relative;}
@supports not (grid-template-columns:subgrid){.section{grid-template-columns:repeat(var(--cols),1fr);}}
.section::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);}
.rail{grid-column:1 / 4;position:sticky;top:24px;}
.rail-num{font-weight:800;color:var(--accent);font-size:clamp(34px,4.2vw,56px);line-height:72px;letter-spacing:-.02em;margin:0;}
.rail-label{font-family:"Space Mono",monospace;font-size:12px;line-height:var(--lh);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:8px 0 0;}
.content{grid-column:4 / 13;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);row-gap:var(--lh);}
@supports not (grid-template-columns:subgrid){.content{grid-template-columns:repeat(9,1fr);}}
.shead{grid-column:1 / -1;}
.shead h2{font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;font-size:clamp(24px,2.8vw,38px);line-height:48px;}
.body{grid-column:1 / 8;font-size:16px;line-height:var(--lh);margin:0;}
.body + .body{margin-top:0;}
.body.wide{grid-column:1 / 9;}
.subhead{grid-column:1 / -1;font-weight:700;color:var(--ink);font-size:18px;line-height:var(--lh);margin:8px 0 0;}
.subhead .em{color:var(--accent);}
/* definition rows */
.def-row{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);padding-top:8px;position:relative;}
@supports not (grid-template-columns:subgrid){.def-row{grid-template-columns:repeat(9,1fr);}}
.def-row::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(17,19,21,.16);}
.term{grid-column:1 / 3;font-weight:700;color:var(--ink);margin:0;line-height:var(--lh);}
.def{grid-column:3 / 9;color:var(--ink-soft);margin:0;line-height:var(--lh);}
.def em{font-style:normal;color:var(--ink);}
.def .ex{color:var(--accent);font-style:italic;}
/* schema line */
.schema{grid-column:1 / -1;font-family:"Space Mono",monospace;font-weight:700;color:var(--ink);
  font-size:clamp(13px,1.4vw,17px);line-height:32px;letter-spacing:.02em;margin:8px 0;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);padding:8px 0;}
.note{grid-column:1 / 9;background:#f5f5f5;border-left:2px solid var(--accent);padding:16px 24px;margin:0;font-size:15px;line-height:var(--lh);color:var(--ink);}
.note b{color:var(--accent);}

/* ---- LIENS : annuaire ---- */
.glabel{grid-column:1 / -1;font-family:"Space Mono",monospace;font-size:12px;line-height:var(--lh);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0;}
.lentry{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);align-items:start;text-decoration:none;color:inherit;padding-top:24px;position:relative;}
@supports not (grid-template-columns:subgrid){.lentry{grid-template-columns:repeat(var(--cols),1fr);}}
.lentry::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(17,19,21,.18);transition:background .2s,height .2s;}
.lentry:hover::before{height:2px;background:var(--accent);}
.lname{grid-column:1 / 5;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin:0;font-size:clamp(21px,2.4vw,30px);line-height:32px;}
.lentry:hover .lname{color:var(--accent);}
.lname .yr{font-weight:400;color:var(--ink-soft);font-size:14px;letter-spacing:.04em;}
.ldesc{grid-column:5 / 10;color:var(--ink-soft);margin:0;line-height:var(--lh);font-size:16px;}
.lurl{grid-column:10 / 13;justify-self:end;text-align:right;font-family:"Space Mono",monospace;font-size:12px;line-height:32px;letter-spacing:.04em;color:var(--ink-soft);white-space:nowrap;}
.lentry:hover .lurl{color:var(--accent);}


.dossier{background:#f3f3f3;}
.navrow{grid-column:1 / -1;}
.navlabel{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;}
.navlist{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;column-gap:var(--gutter);row-gap:8px;}
@supports not (grid-template-columns:subgrid){.navlist{grid-template-columns:repeat(12,1fr);}}
.navlink{grid-column:span 3;display:block;text-decoration:none;padding-top:16px;border-top:1px solid rgba(17,19,21,.2);}
.navlink .n{font-family:"Space Mono",monospace;font-size:12px;line-height:24px;color:var(--accent);letter-spacing:.1em;}
.navlink .t{font-weight:600;color:var(--ink);font-size:15px;line-height:24px;display:block;margin-top:0;}
.navlink:hover .t{color:var(--accent);}
.navlink.cur{border-top-color:var(--accent);border-top-width:2px;}
.navlink.cur .t{color:var(--accent);}

.foot{background:var(--ink);color:#fff;}
.foot .wrap{padding-top:48px;padding-bottom:48px;}
.foot a{color:#fff;text-decoration:none;} .foot a:hover{color:var(--accent);}
.linkrow{grid-column:1 / -1;font-family:"Space Mono",monospace;font-size:13px;line-height:var(--lh);color:rgba(255,255,255,.62);display:flex;flex-wrap:wrap;gap:0 .65em;}
.linkrow .sep{color:rgba(255,255,255,.28);}
.copy{grid-column:1 / -1;margin-top:var(--lh);font-size:13px;line-height:var(--lh);color:rgba(255,255,255,.55);}
.copy a{color:rgba(255,255,255,.85);}

@media (max-width:860px){
  :root{--margin:24px;--pad:48px;}
  .masthead{font-size:38px;line-height:40px;}
  .masthead.home{font-size:44px;line-height:48px;}
  .snum{grid-column:1 / 3;font-size:30px;line-height:40px;}
  .stitle{grid-column:3 / 13;font-size:24px;line-height:32px;}
  .sdesc{grid-column:3 / 13;}
  .sread{display:none;}
  .numeral{font-size:64px;line-height:72px;}
  .lname{grid-column:1 / 13;} .ldesc{grid-column:1 / 13;} .lurl{grid-column:1 / 13;justify-self:start;text-align:left;line-height:24px;}
  .rail{position:static;grid-column:1 / 13;margin-bottom:8px;}
  .rail-num{font-size:32px;line-height:40px;}
  .content{grid-column:1 / 13;grid-template-columns:repeat(12,1fr);}
  @supports not (grid-template-columns:subgrid){.content{grid-template-columns:repeat(12,1fr);}}
  .shead{grid-column:1 / 13;} .shead h2{font-size:24px;line-height:32px;}
  .body,.body.wide,.note{grid-column:1 / 13;}
  .subhead,.def-row{grid-column:1 / 13;}
  .term{grid-column:1 / 5;} .def{grid-column:5 / 13;}
  .schema{grid-column:1 / 13;}
  .navlink{grid-column:span 6;}
}
