/* Le Vestiaire — refonte éditoriale v2 */
:root{--paper:#f6f3ec;--paper-2:#ebe6dc;--ink:#17211d;--muted:#6c716a;--line:#c9c5b9;--red:#b9432f;--green:#647a66;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--mono:"DM Mono",monospace;--shell:1320px}
body{background:var(--paper);color:var(--ink)}
.shell{width:min(var(--shell),calc(100% - 72px))}
.topline{background:#17211d;color:#e8e4d9}
.header-main{height:84px}.brand-mark{background:var(--red);color:#fff;border-color:var(--red);transform:none;font-size:17px}
.brand-copy strong{letter-spacing:.12em}.main-nav{gap:clamp(12px,1.6vw,24px)}.main-nav a{font-size:11px}.header-search{min-width:118px}
.home-intro{padding-top:58px}.intro-title-row{padding:32px 0 48px}.intro-title-row h1{font-size:clamp(54px,7.2vw,104px);line-height:.92;max-width:900px}.intro-title-row h1 em{color:var(--red);font-style:normal}.intro-title-row p{max-width:270px;font-size:13px}
.matchday-section{margin-bottom:55px;padding:24px 0 0;border-top:1px solid var(--ink)}.matchday-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.matchday-head h2{font:700 30px/1 var(--serif);margin:9px 0 0}.matchday-head h2 em{color:var(--red);font-weight:500}.matchday-link{font:10px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--red);padding-bottom:7px}.matchday-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.matchday-card{padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.matchday-card-top{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font:9px var(--mono);text-transform:uppercase}.matchday-card-top span:last-child{color:var(--red)}.matchday-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:15px;font-size:12px;font-weight:700}.matchday-teams span:last-child{text-align:right}.matchday-score{font:700 19px var(--serif)}.matchday-score small{font:10px var(--mono);color:var(--muted)}.matchday-empty{padding:17px;background:var(--paper-2);font-size:12px;color:var(--muted)}
.hero-layout{grid-template-columns:minmax(0,1.8fr) minmax(280px,.72fr);gap:38px}.hero-visual{height:clamp(340px,38vw,560px)}.hero-copy h2{font-size:clamp(34px,4vw,58px);max-width:920px}.hero-aside{padding-left:25px}.aside-story{padding:20px 0}.aside-story h3{font-size:20px}
.latest-section{padding-top:100px;padding-bottom:100px}.section-heading h2{font-size:clamp(32px,4vw,48px)}.story-grid{gap:42px 28px}.story-image{height:clamp(180px,19vw,270px)}.story-card h3,.story-card h2{font:700 23px/1.2 var(--serif);letter-spacing:-.025em;margin:12px 0}.story-card p{font-size:13px;line-height:1.7;color:var(--muted)}
.manifesto-band{background:#17211d;color:var(--paper);padding:48px 0}.manifesto-inner{display:flex;align-items:center;gap:clamp(20px,6vw,90px)}.manifesto-number{color:#b9b7aa}.manifesto-inner p{font:600 clamp(23px,3.2vw,40px)/1.2 var(--serif);margin:0;flex:1}.manifesto-inner p em{color:#d5a08c;font-weight:500}.manifesto-mark{font:800 36px var(--serif);color:#d5a08c}
.category-section{padding-top:90px;padding-bottom:100px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.category-grid a{display:grid;grid-template-columns:28px 1fr 18px;align-items:center;gap:8px;padding:19px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .18s}.category-grid a:hover{background:var(--paper-2)}.category-grid span{font:9px var(--mono);color:var(--red)}.category-grid strong{font-size:12px}.category-grid b{font-size:14px;color:var(--red);font-weight:400}
.site-footer{background:#17211d;color:var(--paper);margin-top:0}.footer-top{padding-top:45px;padding-bottom:35px}.footer-brand .brand-mark{background:transparent;color:#d5a08c;border-color:#d5a08c}.footer-brand strong{letter-spacing:.12em}.footer-brand p{color:#b9b9ae}.footer-links a{color:#d4d2c8}.footer-links a:hover{color:#d5a08c}.footer-bottom{border-top-color:#414a43;color:#a9ada4;padding-top:18px;padding-bottom:18px}
.article-page{padding-top:35px}.article-header h1{font-size:clamp(42px,6.5vw,82px);line-height:.98;max-width:1100px}.article-cover{height:clamp(300px,48vw,650px)}.article-layout{grid-template-columns:70px minmax(0,780px);justify-content:center;gap:50px}.article-prose{font-size:18px;line-height:1.85}.article-prose h2,.article-prose h3{font-family:var(--serif);line-height:1.15}.sources-box{background:var(--paper-2);padding:26px}
.listing-page{padding-top:48px;padding-bottom:90px}.listing-title{display:flex;justify-content:space-between;align-items:end;gap:25px;padding:30px 0 42px}.listing-title h1{font:700 clamp(44px,6vw,76px)/1 var(--serif);letter-spacing:-.04em;margin:12px 0}.listing-title p{max-width:580px;color:var(--muted);line-height:1.7}
@media(max-width:1100px){.shell{width:min(var(--shell),calc(100% - 40px))}.main-nav{gap:12px}.main-nav a{font-size:10px}.brand{min-width:auto}.brand-copy small{display:none}.header-search input{width:70px}.hero-layout{gap:24px}.hero-aside{padding-left:18px}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shell{width:calc(100% - 32px)}.topline-inner span:nth-child(2){display:none}.header-main{height:70px}.brand-mark{width:38px;height:38px}.brand-copy strong{font-size:13px}.menu-toggle{display:block;margin-left:auto}.main-nav{display:none;position:absolute;top:70px;left:0;right:0;height:auto;background:var(--paper);padding:12px 20px 20px;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line)}.main-nav.is-open{display:grid}.main-nav a{height:auto;padding:12px 0;font-size:12px}.main-nav a:after{bottom:5px}.header-search{display:none}.home-intro{padding-top:35px}.intro-title-row{display:block;padding:25px 0 32px}.intro-title-row h1{font-size:clamp(48px,12vw,72px)}.intro-title-row p{margin:20px 0 0}.matchday-section{margin-bottom:36px}.matchday-head h2{font-size:25px}.matchday-grid{grid-template-columns:1fr 1fr}.matchday-card{padding:13px 10px}.matchday-teams{gap:6px;font-size:10px}.hero-layout{display:block}.hero-visual{height:clamp(260px,72vw,420px)}.hero-copy h2{font-size:36px}.hero-aside{border-left:0;padding:35px 0 0}.aside-heading{padding-bottom:13px}.aside-story{grid-template-columns:28px 1fr}.aside-note{margin-top:18px}.latest-section{padding:65px 0}.section-heading h2{font-size:31px}.story-grid{grid-template-columns:1fr 1fr;gap:30px 14px}.story-image{height:clamp(130px,38vw,220px)}.story-card h3,.story-card h2{font-size:19px}.story-card p{font-size:12px}.manifesto-band{padding:35px 0}.manifesto-inner{gap:15px}.manifesto-inner p{font-size:23px}.manifesto-mark{font-size:26px}.category-section{padding:60px 0}.category-grid{grid-template-columns:1fr 1fr}.category-grid a{padding:15px 10px;grid-template-columns:20px 1fr 14px}.category-grid strong{font-size:11px}.footer-top{padding-top:32px}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{gap:12px;flex-direction:column}.empty-hero{grid-template-columns:1fr;gap:25px}.empty-art{min-height:300px}.empty-word{font-size:72px;margin-top:55px}.listing-title{display:block}.listing-title h1{font-size:45px}.article-layout{display:block}.article-rail{display:none}.article-prose{font-size:17px}.article-header h1{font-size:43px}.article-cover{height:260px}}
@media(max-width:420px){.story-grid{grid-template-columns:1fr}.story-image{height:220px}.matchday-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:1fr 1fr}.section-count{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Final polish: article reading rhythm, archives, keyboard and narrow screens */
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--red);outline-offset:4px}
.article-breadcrumb{display:flex;gap:10px;align-items:center;color:var(--muted);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:30px}
.article-breadcrumb a{color:var(--red)}
.article-header{max-width:1100px;margin:0 auto 34px}
.article-header .article-meta{margin-bottom:20px}
.article-dek{max-width:820px;font-size:clamp(17px,2vw,22px);line-height:1.55;color:var(--muted);margin:24px 0}
.article-byline{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:12px}
.byline-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--paper);font:700 12px var(--serif)}
.article-byline strong,.article-byline small{display:block}.article-byline small{font:9px var(--mono);letter-spacing:.06em;color:var(--muted);margin-top:4px}
.byline-rule{height:1px;background:var(--line);flex:1;margin-left:12px}
.article-body{min-width:0}.article-prose>*{max-width:100%}.article-prose p{margin:0 0 1.45em}.article-prose h2{font-size:clamp(28px,3vw,38px);margin:1.8em 0 .65em}.article-prose h3{font-size:25px;margin:1.5em 0 .6em}.article-prose blockquote{margin:2em 0;padding:8px 0 8px 24px;border-left:3px solid var(--red);font:italic 25px/1.4 var(--serif);color:var(--ink)}.article-prose ul,.article-prose ol{padding-left:1.4em;margin:0 0 1.5em}.article-prose li{padding-left:.25em;margin:.5em 0}.article-prose a{color:var(--red);text-decoration:underline;text-underline-offset:3px}.article-prose img{max-width:100%;height:auto}.article-prose table{width:100%;border-collapse:collapse;font-size:14px}.article-prose th,.article-prose td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0}.article-tags a{font:10px var(--mono);padding:8px 10px;border:1px solid var(--line);color:var(--muted)}.article-tags a:hover{border-color:var(--red);color:var(--red)}
.sources-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.sources-box h2{font:700 27px var(--serif);margin:14px 0}.sources-box p{font-size:13px;line-height:1.65;color:var(--muted)}.sources-box ol{padding:0;list-style:none;margin:20px 0 0}.sources-box li{display:grid;grid-template-columns:minmax(100px,.5fr) 1fr;gap:15px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.sources-box li span{color:var(--muted)}.sources-box li a{overflow-wrap:anywhere;color:var(--red)}.back-link{display:inline-block;margin:30px 0;font:10px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--red);padding-bottom:8px}
.article-cover img,.story-image img,.hero-visual img{display:block;width:100%;height:100%;object-fit:cover}.story-image{overflow:hidden}.story-image img{transition:transform .45s ease}.story-card:hover .story-image img{transform:scale(1.035)}
.listing-search{display:flex;min-width:min(100%,370px);border-bottom:1px solid var(--ink)}.listing-search input{min-width:0;flex:1;background:transparent;border:0;padding:12px 0;font:12px var(--sans);color:var(--ink)}.listing-search button{border:0;background:transparent;color:var(--red);font:10px var(--mono);white-space:nowrap}.listing-grid{padding-top:12px}.listing-empty{padding:65px 20px;text-align:center;background:var(--paper-2)}.listing-empty h2{font:700 32px var(--serif);margin:15px}.listing-empty p{color:var(--muted);font-size:13px}.archive-pagination{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:55px;padding-top:18px;border-top:1px solid var(--line);font:10px var(--mono);text-transform:uppercase}.archive-pagination span{color:var(--muted)}.archive-pagination a{color:var(--red)}
@media(max-width:760px){.article-header{margin-bottom:24px}.article-breadcrumb{margin-bottom:22px}.article-byline{gap:9px}.byline-rule{margin-left:0}.sources-box{padding:18px}.sources-box li{grid-template-columns:1fr;gap:5px}.listing-search{margin-top:25px;min-width:0}.archive-pagination{margin-top:35px}}

/* Hors-Jeu identity */
.brand{gap:12px}.brand-logo{display:block;width:clamp(150px,18vw,220px);height:auto;max-height:68px;object-fit:contain;object-position:left center}.brand-copy strong{letter-spacing:.08em}.brand-logo-footer{width:190px;max-height:76px}@media(max-width:760px){.brand-logo{width:clamp(110px,31vw,165px);max-height:48px}.brand-copy{display:none}.brand-logo-footer{width:150px;max-height:60px}}
