@font-face{font-family:'lepartisan';src:url('/fonts/lalezar-regular-webfont.woff2') format('woff2'),url('/fonts/lalezar-regular-webfont.woff') format('woff');font-display:swap}
@font-face{font-family:'Oswald';src:url('/fonts/oswald_500-webfont.woff2') format('woff2'),url('/fonts/oswald_500-webfont.woff') format('woff');font-weight:500;font-display:swap}
@font-face{font-family:'Montserrat';src:url('/fonts/montserrat-semibold-webfont.woff2') format('woff2'),url('/fonts/montserrat-semibold-webfont.woff') format('woff');font-weight:600;font-display:swap}
@font-face{font-family:'Montserrat Italic';src:url('/fonts/montserrat-mediumitalic-webfont.woff2') format('woff2'),url('/fonts/montserrat-mediumitalic-webfont.woff') format('woff');font-display:swap}

/* ---------- Tokens Material 3 ---------- */
:root{
  color-scheme:dark;
  --md-primary:#ffb4a8;
  --md-on-primary:#690003;
  --md-primary-container:#930007;
  --md-on-primary-container:#ffdad4;
  --md-brand:#cc0000;
  --md-surface:#1c212e;
  --md-surface-1:#212735;
  --md-surface-2:#262d3c;
  --md-surface-3:#2b3343;
  --md-on-surface:#e4e6ef;
  --md-on-surface-variant:#b4b9c8;
  --md-outline:#454c5e;
  --md-scrim:rgba(0,0,0,.55);
  --elev-1:0 1px 2px rgba(0,0,0,.3),0 1px 3px 1px rgba(0,0,0,.15);
  --elev-2:0 1px 2px rgba(0,0,0,.3),0 2px 6px 2px rgba(0,0,0,.15);
  --elev-3:0 4px 8px 3px rgba(0,0,0,.15),0 1px 3px rgba(0,0,0,.3);
  --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:28px;
  --ease:cubic-bezier(.2,0,0,1);
}
/* Thème clair : activé uniquement par le bouton ou la préférence mémorisée. */
:root[data-theme="light"]{
  color-scheme:light;
  --md-primary:#b3000b;--md-on-primary:#fff;
  --md-primary-container:#ffdad4;--md-on-primary-container:#410001;
  --md-surface:#faf8f8;--md-surface-1:#f3eeee;--md-surface-2:#eee8e8;--md-surface-3:#e8e1e1;
  --md-on-surface:#1d1b1b;--md-on-surface-variant:#504a4a;--md-outline:#857c7c;
  --elev-1:0 1px 2px rgba(0,0,0,.2),0 1px 3px 1px rgba(0,0,0,.1);
  --elev-2:0 1px 2px rgba(0,0,0,.2),0 2px 6px 2px rgba(0,0,0,.1);
  --elev-3:0 4px 8px 3px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.2);
}

  /* Rouge principal */
 /* --md-primary:#c00016;  --md-on-primary:#ffffff;  --md-primary-container:#ffdadc;  --md-on-primary-container:#410008; */

  /* Surfaces à dominante rouge très pâle */
/*  --md-surface:#fffafa;  --md-surface-1:#fff1f1;  --md-surface-2:#ffe9e9;  --md-surface-3:#fce0e1;*/

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--md-surface);color:var(--md-on-surface);
  font-family:'Montserrat',system-ui,sans-serif;font-weight:600;line-height:1.4;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* State layer (hover / focus / press) */
.state{position:relative;overflow:hidden;isolation:isolate}
.state::after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity .2s var(--ease);z-index:-1;pointer-events:none}
.state:hover::after{opacity:.08}
.state:focus-visible::after{opacity:.12}
.state:active::after{opacity:.16}
:focus-visible{outline:2px solid var(--md-primary);outline-offset:2px}

/* ---------- Top app bar ---------- */
.appbar{position:sticky;top:0;z-index:10;background:var(--md-surface-2);box-shadow:var(--elev-1);
  display:flex;align-items:center;gap:12px;height:64px;padding:0 16px}
.appbar .logo{font-family:'lepartisan',Verdana,sans-serif;font-size:2rem;color:var(--md-brand);line-height:1;letter-spacing:.01em}
.appbar .tagline{font-family:'Montserrat Italic','Montserrat',sans-serif;font-size:.8rem;color:var(--md-on-surface-variant);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appbar .spacer{flex:1}
.icon-btn{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;color:var(--md-on-surface-variant);border:0;background:none;cursor:pointer}
.icon-btn svg{width:24px;height:24px;fill:currentColor}
.theme-toggle .icon-sun,.theme-toggle .icon-moon{display:none}
:root[data-theme="dark"] .theme-toggle .icon-sun{display:block}
:root[data-theme="light"] .theme-toggle .icon-moon{display:block}

/* ---------- Navigation (chips) ---------- */
.chips{position:sticky;top:64px;z-index:9;background:var(--md-surface);display:flex;gap:8px;overflow-x:auto;
  padding:12px 16px;scrollbar-width:none;border-bottom:1px solid var(--md-outline)}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 16px;border-radius:var(--r-sm);
  border:1px solid var(--md-outline);color:var(--md-on-surface-variant);font-family:'Oswald',sans-serif;font-weight:500;font-size:.9rem;letter-spacing:.03em}
.chip:hover{color:var(--md-on-primary-container);border-color:var(--md-primary)}

/* ---------- Contenu ---------- */
main{max-width:1280px;margin:0 auto;padding:24px 16px 120px}
.section-title{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-family:'Oswald',sans-serif;font-weight:500;
  font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--md-on-surface-variant)}
.section-title::after{content:"";flex:1;height:1px;background:var(--md-outline)}
.source-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-sm);
  background:var(--md-primary-container);color:var(--md-on-primary-container);font-family:'Oswald',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.05em}

.card{display:flex;flex-direction:column;background:var(--md-surface-1);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--elev-1);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}
.card:hover{box-shadow:var(--elev-3);transform:translateY(-2px)}
.card .media{aspect-ratio:16/9;background:linear-gradient(135deg,var(--md-primary-container),var(--md-surface-3));overflow:hidden}
.card .media img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.card:hover .media img{transform:scale(1.04)}
.card .body{display:flex;flex-direction:column;gap:8px;padding:16px;flex:1}
.card time{font-family:'Oswald',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.04em;color:var(--md-on-surface-variant)}
.card h3{margin:0;font-size:1.05rem;line-height:1.25;font-weight:600;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

/* Carte à la une */
.hero{flex-direction:row;margin-bottom:24px;border-radius:var(--r-xl);background:var(--md-surface-2)}
.hero .media{flex:1.4;aspect-ratio:auto;min-height:320px}
.hero .body{flex:1;justify-content:center;padding:32px;gap:16px}
.hero h2{margin:0;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.15;font-weight:600}
.hero .cta{align-self:flex-start;margin-top:8px;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 24px;
  border-radius:var(--r-xl);background:var(--md-primary);color:var(--md-on-primary);font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.05em}
.hero .cta svg{width:18px;height:18px;fill:currentColor}

.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}

.snackbar{background:var(--md-surface-3);padding:14px 16px;border-radius:var(--r-sm);box-shadow:var(--elev-2);margin-bottom:16px}

/* FAB */
.fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:var(--r-lg);display:grid;place-items:center;
  background:var(--md-primary-container);color:var(--md-on-primary-container);box-shadow:var(--elev-3);z-index:20}
.fab svg{width:24px;height:24px;fill:currentColor}

footer{border-top:1px solid var(--md-outline);padding:24px 16px;text-align:center;color:var(--md-on-surface-variant);font-size:.8rem}
footer a{color:var(--md-primary)}

@media (max-width:760px){
  .appbar .tagline{display:none}
  .hero{flex-direction:column}
  .hero .media{min-height:0;aspect-ratio:16/9}
  .hero .body{padding:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* ---------- Extensions pages w3s ---------- */
.chip[aria-current="page"]{background:var(--md-primary-container);color:var(--md-on-primary-container);border-color:transparent}
.page-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:0 0 8px}
.page-head h1{margin:0;font-family:'Oswald',sans-serif;font-weight:500;font-size:1.8rem;letter-spacing:.04em}
.page-head p{margin:0;color:var(--md-on-surface-variant);font-family:'Montserrat Italic',sans-serif;font-size:.85rem}

/* Onglets secondaires (une source par onglet) */
.tabs{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--md-outline);margin:0 0 24px}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;position:relative;height:48px;padding:0 20px;display:inline-flex;align-items:center;
  font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;color:var(--md-on-surface-variant)}
.tab[aria-selected="true"]{color:var(--md-primary)}
.tab[aria-selected="true"]::before{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--md-primary)}

/* Carte : source + extrait */
.card .src{align-self:flex-start;display:inline-flex;height:22px;align-items:center;padding:0 8px;border-radius:6px;
  background:var(--md-surface-3);color:var(--md-primary);font-family:'Oswald',sans-serif;font-weight:500;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}
.card p.excerpt{margin:0;font-family:system-ui,sans-serif;font-weight:400;font-size:.85rem;color:var(--md-on-surface-variant);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{margin-top:auto;padding-top:8px}
.grid.dense{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* ---------- Page médias : tiroir + en-tête de source ---------- */
.menu-btn{display:none}
.layout{display:flex;align-items:flex-start;max-width:1640px;margin:0 auto}
.layout main{flex:1;min-width:0;margin:0}
.drawer{flex:none;width:300px;position:sticky;top:121px;height:calc(100vh - 121px);overflow-y:auto;padding:12px 12px 96px;
  background:var(--md-surface-1);border-right:1px solid var(--md-outline);scrollbar-width:thin}
.drawer .search{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;margin-bottom:8px;border-radius:var(--r-xl);
  background:var(--md-surface-3);color:var(--md-on-surface-variant);position:sticky;top:0;z-index:1}
.drawer .search svg{width:20px;height:20px;fill:currentColor;flex:none}
.drawer .search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--md-on-surface);font:inherit;font-weight:400;font-size:.9rem}
.dgroup{margin:4px 0}
.dgroup>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 12px;
  font-family:'Oswald',sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--md-on-surface-variant);border-radius:var(--r-xl)}
.dgroup>summary::-webkit-details-marker{display:none}
.dgroup>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s var(--ease)}
.dgroup[open]>summary::after{transform:rotate(-135deg)}
.ditem{display:flex;align-items:center;min-height:40px;padding:0 16px;border-radius:var(--r-xl);font-size:.88rem;color:var(--md-on-surface)}
.ditem[hidden]{display:none}
.ditem[aria-current="page"]{background:var(--md-primary-container);color:var(--md-on-primary-container)}

.src-head{display:flex;align-items:center;gap:20px;margin:0 0 16px}
.logo-plate{flex:none;display:grid;place-items:center;height:64px;min-width:64px;padding:8px 16px;border-radius:var(--r-md);background:#fff;box-shadow:var(--elev-1)}
.logo-plate img{display:block;max-height:46px;max-width:180px;object-fit:contain}
.src-text{min-width:0}
.src-head h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;font-family:'Oswald',sans-serif;font-weight:500;font-size:1.8rem;letter-spacing:.03em}
.src-head p{margin:4px 0 0;color:var(--md-on-surface-variant);font-family:system-ui,sans-serif;font-weight:400;font-size:.9rem;max-width:70ch}
.access{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--r-sm);font-family:'Oswald',sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.access.free{background:rgba(76,175,80,.18);color:#7fd98a}
.access.paid{background:rgba(244,67,54,.18);color:#ff9a90}
.access.mixed{background:rgba(255,193,7,.16);color:#ffd45e}
:root[data-theme="light"] .access.free{color:#1b6e2a}
:root[data-theme="light"] .access.paid{color:#a3150b}
:root[data-theme="light"] .access.mixed{color:#7a5600}

@media (max-width:1000px){
  .menu-btn{display:inline-grid}
  .drawer{position:fixed;left:0;top:0;height:100vh;width:min(320px,86vw);z-index:40;padding-top:16px;border-right:0;border-radius:0 var(--r-xl) var(--r-xl) 0;
    transform:translateX(-105%);transition:transform .3s var(--ease);box-shadow:var(--elev-3)}
  .drawer-open .drawer{transform:none}
  .scrim{display:none;position:fixed;inset:0;background:var(--md-scrim);z-index:30}
  .drawer-open .scrim{display:block}
  .src-head{align-items:flex-start}
  .src-head h1{font-size:1.4rem}
}

/* ---------- Avatar, auteur, note ---------- */
.avatar{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--md-primary-container);
  color:var(--md-on-primary-container);font-family:'Oswald',sans-serif;font-weight:500;font-size:1.4rem;letter-spacing:.04em}
.src-by{font-family:'Oswald',sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--md-primary);margin-bottom:2px}
.note{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 20px;padding:12px 16px;border-radius:var(--r-md);
  background:var(--md-surface-2);border-left:4px solid var(--md-primary);font-family:system-ui,sans-serif;font-weight:400;font-size:.9rem;color:var(--md-on-surface)}
.note a{color:var(--md-primary);font-weight:600;white-space:nowrap}
