/* =========================================================
   BORDEAUX NEWS — Broadsheet / Presse moderne
   Encre + accent bordeaux-wine. Serif de presse (Playfair / Libre Caslon).
   Self-hosted Bunny Fonts. Mobile-first. Zéro CLS.
   ========================================================= */

/* ---------- Fonts : Bunny Fonts (RGPD, pas Google) ---------- */
@import url('https://fonts.bunny.net/css?family=playfair-display:400,500,700,800,900,400i,700i|libre-franklin:400,500,600,700|libre-caslon-text:400,400i,700');

:root{
  --ink:        #14110f;     /* encre presque noire, chaude */
  --ink-soft:   #3a342f;
  --paper:      #f7f4ee;     /* papier journal cassé */
  --paper-pure: #fbf9f5;
  --rule:       #d8d0c4;     /* filets / colonnes */
  --rule-strong:#b7ac9c;
  --wine:       #6e2233;     /* accent bordeaux-wine */
  --wine-deep:  #531524;
  --wine-soft:  #8a3346;
  --muted:      #6f675e;
  --muted-2:    #938a7e;

  --serif:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --serif-text: 'Libre Caslon Text', Georgia, serif;
  --sans:   'Libre Franklin', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --maxw: 1240px;
  --gut: clamp(16px, 4vw, 40px);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:var(--wine); text-decoration:none; }
a:hover{ color:var(--wine-deep); }

::selection{ background:var(--wine); color:#fff; }

/* Accessibilité ----------------------------------------- */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:12px 18px;
  font-family:var(--sans); font-weight:600;
}
.skip-link:focus{ left:8px; top:8px; }
:focus-visible{ outline:3px solid var(--wine); outline-offset:2px; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* =========================================================
   MASTHEAD
   ========================================================= */
.topbar{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.04em;
}
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center; min-height:34px; gap:16px; }
.topbar a{ color:var(--paper); opacity:.85; }
.topbar a:hover{ opacity:1; color:#fff; }
.topbar .date{ text-transform:uppercase; letter-spacing:.12em; color:#cfc7ba; }
.topbar .topbar-links{ display:flex; gap:18px; }

.masthead{
  border-bottom:3px solid var(--ink);
  background:var(--paper-pure);
  padding:18px 0 14px;
  text-align:center;
  position:relative;
}
.masthead-top{
  display:flex; align-items:center; justify-content:space-between;
  font-family:var(--sans); font-size:11px; text-transform:uppercase; letter-spacing:.18em;
  color:var(--muted); border-bottom:1px solid var(--rule); padding-bottom:8px; margin-bottom:12px;
}
.masthead-top .left,.masthead-top .right{ flex:1; }
.masthead-top .right{ text-align:right; }
.masthead-top .center{ color:var(--wine); font-weight:700; }

.masthead .logo{
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(38px, 8.5vw, 86px);
  line-height:.92;
  letter-spacing:-.01em;
  color:var(--ink);
  display:inline-block;
}
.masthead .logo:hover{ color:var(--ink); }
.masthead .tagline{
  font-family:var(--serif-text);
  font-style:italic;
  font-size:clamp(14px,2.4vw,18px);
  color:var(--muted);
  margin-top:6px;
}

/* Nav rubriques (filets) */
.mainnav{
  border-bottom:1px solid var(--ink);
  background:var(--paper-pure);
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(120%);
}
.mainnav .wrap{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:0; min-height:48px;
}
.mainnav .menu-list{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  list-style:none; margin:0; padding:0;
}
.mainnav .menu-list li{ list-style:none; margin:0; padding:0; }
.mainnav a{
  font-family:var(--sans);
  font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:.09em;
  color:var(--ink); padding:14px 16px; position:relative;
  border-bottom:3px solid transparent;
  transition:color .15s, border-color .15s;
}
.mainnav a:hover{ color:var(--wine); border-bottom-color:var(--wine); }
.mainnav .nav-toggle{ display:none; }
#nav-check{ display:none; }

/* =========================================================
   LA UNE (home)
   ========================================================= */
.kicker{
  font-family:var(--sans); font-weight:700; text-transform:uppercase;
  letter-spacing:.12em; font-size:11.5px; color:var(--wine);
  display:inline-block; margin-bottom:8px;
}
.dateline{
  font-family:var(--sans); font-size:12.5px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.05em;
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
}
.dateline .sep{ width:4px; height:4px; border-radius:50%; background:var(--rule-strong); display:inline-block; }

.lede{ padding:28px 0 14px; }
.lede-grid{
  display:grid;
  grid-template-columns: 1.55fr .9fr;
  gap:clamp(20px,3.5vw,46px);
  align-items:start;
}
.lede-grid .col-side{
  border-left:1px solid var(--rule);
  padding-left:clamp(16px,2.5vw,32px);
}

/* Article vedette */
.feature a.media{ display:block; overflow:hidden; background:#e7e0d4; }
.feature .media img{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.8,.2,1);
  filter:saturate(.96);
}
.feature a.media:hover img{ transform:scale(1.03); }
.feature h2{
  font-family:var(--serif); font-weight:800;
  font-size:clamp(30px,5.2vw,58px); line-height:1.02;
  letter-spacing:-.015em; margin:16px 0 10px;
}
.feature h2 a{ color:var(--ink); }
.feature h2 a:hover{ color:var(--wine); }
.feature .chapo{
  font-family:var(--serif-text);
  font-size:clamp(17px,2.1vw,21px); line-height:1.5; color:var(--ink-soft);
  margin:0 0 12px; max-width:62ch;
}

/* Liste latérale (colonne de droite) */
.sidelist .item{ padding:16px 0; border-bottom:1px solid var(--rule); }
.sidelist .item:first-child{ padding-top:0; }
.sidelist .item:last-child{ border-bottom:0; }
.sidelist h3{
  font-family:var(--serif); font-weight:700;
  font-size:19px; line-height:1.18; margin:6px 0 6px; letter-spacing:-.005em;
}
.sidelist h3 a{ color:var(--ink); }
.sidelist h3 a:hover{ color:var(--wine); }
.sidelist .excerpt{ font-size:14px; color:var(--muted); line-height:1.5; }
.sidelist-head{
  font-family:var(--sans); font-weight:700; text-transform:uppercase; letter-spacing:.12em;
  font-size:12px; color:var(--wine); border-bottom:2px solid var(--ink);
  padding-bottom:8px; margin-bottom:6px;
}

/* Section divider */
.section-rule{
  border-top:3px double var(--ink);
  margin:40px 0 0;
  padding-top:10px;
}
.section-title{
  font-family:var(--serif); font-weight:800; font-size:clamp(20px,3vw,28px);
  color:var(--ink); display:flex; align-items:baseline; gap:14px;
}
.section-title .more{
  font-family:var(--sans); font-size:12px; font-weight:600; text-transform:uppercase;
  letter-spacing:.08em; color:var(--wine); margin-left:auto;
}

/* Grille d'actus standard */
.river{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,2.6vw,34px);
  padding:26px 0 8px;
}
.card{ display:flex; flex-direction:column; }
.card a.media{ display:block; overflow:hidden; background:#e7e0d4; }
.card .media img{
  width:100%; aspect-ratio:3/2; object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.8,.2,1); filter:saturate(.96);
}
.card a.media:hover img{ transform:scale(1.04); }
.card h3{
  font-family:var(--serif); font-weight:700;
  font-size:21px; line-height:1.16; letter-spacing:-.005em; margin:12px 0 8px;
}
.card h3 a{ color:var(--ink); }
.card h3 a:hover{ color:var(--wine); }
.card .excerpt{ font-size:14.5px; color:var(--muted); line-height:1.55; margin-bottom:10px; }
.card .dateline{ margin-top:auto; }

/* Article sans image : style "brève" colonne */
.card.no-img{ border-top:2px solid var(--ink); padding-top:12px; }

/* =========================================================
   ARTICLE (single)
   ========================================================= */
.article-head{ padding:30px 0 6px; }
.article-head .wrap-narrow{ max-width:760px; margin:0 auto; }
.breadcrumb{
  font-family:var(--sans); font-size:12px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px;
}
.breadcrumb a{ color:var(--muted); }
.breadcrumb a:hover{ color:var(--wine); }
.breadcrumb .sep{ margin:0 7px; color:var(--rule-strong); }

h1.article-title{
  font-family:var(--serif); font-weight:800;
  font-size:clamp(30px,5.4vw,54px); line-height:1.04; letter-spacing:-.015em;
  margin:8px 0 16px; color:var(--ink);
}
.article-chapo{
  font-family:var(--serif-text); font-style:italic;
  font-size:clamp(18px,2.4vw,23px); line-height:1.5; color:var(--ink-soft);
  margin:0 0 22px;
}

/* Byline / dateline presse */
.byline{
  display:flex; align-items:center; gap:14px;
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:14px 0; margin-bottom:8px;
}
.byline .avatar{ width:46px; height:46px; border-radius:50%; object-fit:cover; background:#e7e0d4; flex:none; }
.byline .who{ font-family:var(--sans); font-size:13px; line-height:1.4; }
.byline .who .name{ font-weight:700; color:var(--ink); font-size:14.5px; }
.byline .who .name a{ color:var(--ink); }
.byline .who .meta{ color:var(--muted); }
.byline .who .meta b{ color:var(--wine); font-weight:600; }

/* Image légendée */
figure.lead-figure{ margin:22px 0; }
figure.lead-figure img{ width:100%; aspect-ratio:16/9; object-fit:cover; background:#e7e0d4; }
figure.lead-figure figcaption,
.article-body figcaption,
.wp-caption-text{
  font-family:var(--sans); font-size:12.5px; color:var(--muted);
  padding:8px 2px 0; border-bottom:1px solid var(--rule); margin-bottom:4px;
}

/* Corps : colonne lisible, serif de presse */
.article-body{
  max-width:720px; margin:8px auto 0;
  font-family:var(--serif-text);
  font-size:19px; line-height:1.75; color:var(--ink);
}
.article-body > p:first-of-type::first-letter{
  float:left; font-family:var(--serif); font-weight:800; color:var(--wine);
  font-size:4.4em; line-height:.72; padding:.04em .12em 0 0;
}
.article-body p{ margin:0 0 1.3em; }
.article-body h2{
  font-family:var(--serif); font-weight:800; font-size:clamp(24px,3.4vw,32px);
  line-height:1.12; margin:1.8em 0 .55em; letter-spacing:-.01em;
  padding-bottom:.25em; border-bottom:1px solid var(--rule);
}
.article-body h3{
  font-family:var(--serif); font-weight:700; font-size:clamp(20px,2.6vw,25px);
  margin:1.5em 0 .45em;
}
.article-body a{ color:var(--wine); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.article-body a:hover{ color:var(--wine-deep); }
.article-body ul,.article-body ol{ margin:0 0 1.3em; padding-left:1.3em; }
.article-body li{ margin:.4em 0; }
.article-body blockquote{
  margin:1.6em 0; padding:.2em 0 .2em 1.2em;
  border-left:4px solid var(--wine);
  font-family:var(--serif); font-style:italic; font-size:1.35em; line-height:1.35; color:var(--ink);
}
.article-body img{ margin:1.4em 0; }
.article-body table{ width:100%; border-collapse:collapse; margin:1.6em 0; font-family:var(--sans); font-size:15px; }
.article-body th{ text-align:left; font-weight:700; color:var(--wine); border-bottom:2px solid var(--ink); padding:10px; }
.article-body td{ padding:10px; border-bottom:1px solid var(--rule); color:var(--ink-soft); }

/* Encart auteur */
.author-box{
  max-width:720px; margin:36px auto 0; padding:22px;
  background:var(--paper-pure); border:1px solid var(--rule);
  border-top:3px solid var(--wine);
  display:flex; gap:18px; align-items:flex-start;
}
.author-box img{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex:none; background:#e7e0d4; }
.author-box .ab-name{ font-family:var(--serif); font-weight:700; font-size:20px; }
.author-box .ab-role{ font-family:var(--sans); font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--wine); margin-bottom:6px; }
.author-box p{ font-family:var(--sans); font-size:14.5px; color:var(--muted); line-height:1.6; margin:0; }

/* Articles liés / suite */
.related{ max-width:1000px; margin:40px auto 0; }
.post-nav{
  max-width:760px; margin:30px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:20px;
  border-top:1px solid var(--rule); padding-top:20px;
}
.post-nav a{ font-family:var(--sans); }
.post-nav .lbl{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); display:block; margin-bottom:4px; }
.post-nav h4{ font-family:var(--serif); font-weight:700; font-size:17px; line-height:1.2; margin:0; color:var(--ink); }
.post-nav a:hover h4{ color:var(--wine); }
.post-nav .next{ text-align:right; }

/* =========================================================
   PAGES éditoriales / contenu statique
   ========================================================= */
.page-body{ max-width:760px; margin:0 auto; font-family:var(--serif-text); font-size:18px; line-height:1.7; }
.page-body h1{ font-family:var(--serif); font-weight:800; font-size:clamp(30px,5vw,46px); line-height:1.05; margin:.2em 0 .5em; }
.page-body h2{ font-family:var(--serif); font-weight:700; font-size:1.5em; margin:1.6em 0 .4em; padding-bottom:.2em; border-bottom:1px solid var(--rule); }
.page-body a{ color:var(--wine); text-decoration:underline; }
.page-body ul{ padding-left:1.3em; }

/* Archive header */
.archive-head{ padding:30px 0 8px; border-bottom:3px double var(--ink); margin-bottom:8px; }
.archive-head h1{ font-family:var(--serif); font-weight:800; font-size:clamp(28px,5vw,46px); margin:6px 0 6px; }
.archive-head .desc{ font-family:var(--serif-text); font-style:italic; color:var(--muted); font-size:18px; max-width:60ch; }

/* Pagination */
.pagination{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; padding:36px 0; }
.pagination .page-numbers{
  font-family:var(--sans); font-weight:600; font-size:14px;
  padding:9px 14px; border:1px solid var(--rule-strong); color:var(--ink); background:var(--paper-pure);
}
.pagination .page-numbers.current{ background:var(--ink); color:#fff; border-color:var(--ink); }
.pagination a.page-numbers:hover{ border-color:var(--wine); color:var(--wine); }

/* Search form */
.searchform{ display:flex; gap:8px; max-width:520px; margin:14px auto 0; }
.searchform input[type=search]{ flex:1; padding:11px 14px; border:1px solid var(--rule-strong); font-family:var(--sans); font-size:15px; background:var(--paper-pure); }
.searchform button{ padding:11px 18px; background:var(--wine); color:#fff; border:0; font-family:var(--sans); font-weight:600; cursor:pointer; }
.searchform button:hover{ background:var(--wine-deep); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--ink); color:#d9d2c8; margin-top:60px; padding:48px 0 30px; }
.site-footer .wrap{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
.site-footer .f-logo{ font-family:var(--serif); font-weight:900; font-size:34px; color:#fff; line-height:1; }
.site-footer .f-tag{ font-family:var(--serif-text); font-style:italic; color:#a59c8f; margin-top:8px; max-width:38ch; font-size:15px; }
.site-footer h4{ font-family:var(--sans); font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:#c8a; color:#cbb6ad; margin:0 0 14px; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin:0 0 9px; }
.site-footer a{ color:#d9d2c8; font-family:var(--sans); font-size:14px; }
.site-footer a:hover{ color:#fff; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:34px; padding-top:18px; font-family:var(--sans); font-size:12px; color:#8e857a; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* =========================================================
   MOTION (sobre, finit visible)
   ========================================================= */
@keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.reveal{ animation:rise .6s cubic-bezier(.2,.8,.2,1) both; }
.reveal.d1{ animation-delay:.06s; }
.reveal.d2{ animation-delay:.12s; }
.reveal.d3{ animation-delay:.18s; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 920px){
  .lede-grid{ grid-template-columns:1fr; gap:24px; }
  .lede-grid .col-side{ border-left:0; padding-left:0; border-top:3px double var(--ink); padding-top:18px; }
  .river{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 680px){
  body{ font-size:16px; }
  .topbar .topbar-links{ display:none; }
  .masthead-top{ font-size:10px; letter-spacing:.1em; }
  .river{ grid-template-columns:1fr; }
  .post-nav{ grid-template-columns:1fr; }
  .post-nav .next{ text-align:left; }
  .site-footer .wrap{ grid-template-columns:1fr; gap:28px; }
  .article-body{ font-size:18px; }

  /* nav burger */
  .mainnav .wrap{ justify-content:space-between; }
  .mainnav .nav-toggle{
    display:flex; align-items:center; gap:8px; cursor:pointer;
    font-family:var(--sans); font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:.08em;
    padding:14px 0; color:var(--ink);
  }
  .mainnav .menu-list{
    display:none; width:100%; flex-direction:column; align-items:stretch;
    border-top:1px solid var(--rule);
  }
  #nav-check:checked ~ .menu-list{ display:flex; }
  .mainnav .menu-list a{ width:100%; border-bottom:1px solid var(--rule); border-left:3px solid transparent; }
  .mainnav .menu-list a:hover{ border-bottom-color:var(--rule); border-left-color:var(--wine); }
}
