/*
Theme Name: Archeodunum
Theme URI: https://archeo-dev.eurecad.ch/
Author: Baptiste Rossi
Description: Thème sur mesure pour un opérateur en archéologie préventive. Identité « document de relevé » : capitales larges, annotations monospace, coupe stratigraphique dessinée en SVG et chronologie à l'échelle. Thème classique (PHP), sans constructeur de page.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: archeodunum
Tags: custom-menu, custom-logo, translation-ready, threaded-comments, right-sidebar
*/

/* =============================================================
   SOMMAIRE
   01. Variables (thème clair / thème sombre)
   02. Base et réinitialisation
   03. Typographie utilitaire
   04. En-tête et navigation
   05. Hero et coupe stratigraphique
   06. Bandeau de chiffres
   07. Bandes de contenu
   08. Chronologie
   09. Prestations
   10. Déroulé d'opération
   11. Cartes d'opérations
   12. Agences
   13. Contact
   14. Pied de page
   15. Contenu éditorial (articles, pages, commentaires)
   16. Classes WordPress obligatoires
   ============================================================= */


/* ==== 01. VARIABLES ========================================= */

:root{
  /* Fonds et encres — papier froid à dominante gris-vert */
  --ground:#E7EAE3;
  --ground-deep:#DBDFD5;
  --surface:#F3F5EF;
  --veil:rgba(231,234,227,.86);
  --ink:#181C19;
  --ink-2:#3F4844;
  --ink-3:#6C766F;
  --rule:#C3CABD;
  --rule-soft:#D5DACE;

  /* Accent — vermillon de mire d'archéologue, réservé à un seul rôle */
  --accent:#BE3A14;
  --accent-ink:#FFFFFF;
  --onband:rgba(255,255,255,.94);
  --survey:#215B60;

  /* Couches stratigraphiques (figure du hero) */
  --l1:#B6BDAC; --l2:#C8C5B2; --l3:#C4B598;
  --l4:#D2C2A2; --l5:#BCAB8B; --l6:#A6AC9E;
  --hatch:rgba(24,28,25,.30);

  /* Périodes chronologiques */
  --p-neo:#5F7A63; --p-bro:#7F8C55; --p-fer:#A79150; --p-ant:#C1743C;
  --p-med:#9E4E30; --p-mod:#6F4550; --p-con:#46586A;

  --maxw:1180px;
  --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}

/* Thème sombre automatique (réglage système du visiteur) */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#101413; --ground-deep:#0A0E0D; --surface:#181E1C;
    --veil:rgba(16,20,19,.86);
    --ink:#E9EEE7; --ink-2:#B0BBB4; --ink-3:#7E8A84;
    --rule:#2B3330; --rule-soft:#212827;
    --accent:#F0592C; --accent-ink:#140A06;
    --onband:rgba(9,13,12,.82);
    --survey:#7FBFC2;
    --l1:#242B27; --l2:#2C312A; --l3:#34362C;
    --l4:#3D3B2F; --l5:#31352B; --l6:#1E2523;
    --hatch:rgba(233,238,231,.26);
    --p-neo:#86A489; --p-bro:#A6B476; --p-fer:#CBB271; --p-ant:#E2955C;
    --p-med:#C97052; --p-mod:#9A6A78; --p-con:#6E8299;
  }
}
/* Thème sombre forcé (bouton) */
:root[data-theme="dark"]{
  --ground:#101413; --ground-deep:#0A0E0D; --surface:#181E1C;
  --veil:rgba(16,20,19,.86);
  --ink:#E9EEE7; --ink-2:#B0BBB4; --ink-3:#7E8A84;
  --rule:#2B3330; --rule-soft:#212827;
  --accent:#F0592C; --accent-ink:#140A06;
  --onband:rgba(9,13,12,.82);
  --survey:#7FBFC2;
  --l1:#242B27; --l2:#2C312A; --l3:#34362C;
  --l4:#3D3B2F; --l5:#31352B; --l6:#1E2523;
  --hatch:rgba(233,238,231,.26);
  --p-neo:#86A489; --p-bro:#A6B476; --p-fer:#CBB271; --p-ant:#E2955C;
  --p-med:#C97052; --p-mod:#9A6A78; --p-con:#6E8299;
}


/* ==== 02. BASE ============================================== */

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6{font-family:var(--sans);margin:0;text-wrap:balance;font-weight:700}
p{margin:0}
a{color:inherit}
img,svg,iframe,video{max-width:100%}
img{height:auto}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:clamp(1.1rem,4vw,2.5rem);
}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--accent);color:var(--accent-ink);
  padding:.6rem 1rem;font-family:var(--mono);font-size:.8rem;
}
.skip-link:focus{left:0}


/* ==== 03. TYPOGRAPHIE UTILITAIRE ============================ */

.mono{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-3);
}
.num{font-variant-numeric:tabular-nums}

.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--sans);font-size:.78rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;text-decoration:none;
  padding:.62rem 1.05rem;border:1.5px solid var(--accent);
  background:var(--accent);color:var(--accent-ink);
  transition:background .18s,color .18s;cursor:pointer;
}
.btn:hover,.btn:focus{background:transparent;color:var(--accent)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn.ghost:hover,.btn.ghost:focus{border-color:var(--ink);color:var(--ink)}


/* ==== 04. EN-TÊTE ET NAVIGATION ============================= */

.topbar{
  position:sticky;top:0;z-index:50;
  background:var(--veil);
  backdrop-filter:saturate(1.2) blur(10px);
  -webkit-backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--rule);
}
.topbar .wrap{display:flex;align-items:center;gap:clamp(1rem,3vw,2.4rem);min-height:66px}
/* Décale la barre collante sous la barre d'admin WordPress */
.admin-bar .topbar{top:32px}
@media screen and (max-width:782px){.admin-bar .topbar{top:46px}}

.mark{
  font-family:var(--sans);
  font-variation-settings:'wdth' 118,'wght' 700;
  font-size:1.06rem;letter-spacing:.13em;text-transform:uppercase;
  text-decoration:none;line-height:1;white-space:nowrap;
}
.mark small{
  display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.2em;
  color:var(--ink-3);margin-top:.34rem;font-weight:400;text-transform:uppercase;
}
.custom-logo{max-height:44px;width:auto;display:block}

/* Menu principal (sortie de wp_nav_menu) */
.main-nav{margin-left:auto}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(.7rem,1.7vw,1.5rem)}
.main-nav li{position:relative}
.main-nav a{
  display:block;
  font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.07em;
  text-transform:uppercase;text-decoration:none;color:var(--ink-2);
  padding:.35rem 0;border-bottom:1.5px solid transparent;
  transition:color .18s,border-color .18s;
}
.main-nav a:hover,.main-nav a:focus,
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a{color:var(--ink);border-color:var(--accent)}

/* Sous-menus déroulants */
.main-nav .sub-menu{
  position:absolute;top:100%;left:-.9rem;min-width:230px;
  flex-direction:column;gap:0;
  background:var(--surface);border:1px solid var(--rule);
  padding:.4rem 0;display:none;z-index:60;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu{display:flex}
.main-nav .sub-menu a{
  padding:.5rem .9rem;border-bottom:0;text-transform:none;
  font-size:.85rem;letter-spacing:.01em;
}
.main-nav .sub-menu a:hover{background:var(--ground-deep);color:var(--accent)}

/* Bouton hamburger */
.nav-toggle{
  display:none;margin-left:auto;
  background:none;border:1px solid var(--rule);color:var(--ink);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.5rem .8rem;cursor:pointer;
}
.header-cta{flex:none}

@media(max-width:960px){
  .nav-toggle{display:block}
  .main-nav{
    order:99;flex-basis:100%;margin-left:0;
    border-top:1px solid var(--rule);padding-block:.8rem;
  }
  .main-nav[hidden]{display:none}
  .main-nav ul{flex-direction:column;gap:0}
  .main-nav > ul > li > a{padding:.55rem 0;border-bottom:1px solid var(--rule-soft)}
  .main-nav .sub-menu{
    position:static;display:flex;border:0;background:transparent;
    padding:.1rem 0 .5rem .9rem;min-width:0;
  }
  .main-nav .sub-menu a{padding:.35rem 0}
}
@media(max-width:520px){
  .header-cta{display:none}
}


/* ==== 05. HERO ET COUPE STRATIGRAPHIQUE ===================== */

.hero{padding-top:clamp(2.6rem,6vw,4.6rem);padding-bottom:clamp(1.4rem,3vw,2.2rem)}
.hero-grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(1.6rem,4vw,3.4rem);align-items:end;
}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;align-items:start}}

.hero h1{
  font-variation-settings:'wdth' 112,'wght' 700;
  font-size:clamp(2.35rem,6.4vw,4.35rem);
  line-height:.97;letter-spacing:.005em;text-transform:uppercase;
  margin:.9rem 0 0;
}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.9rem}

.hero-side{border-left:1px solid var(--rule);padding-left:clamp(1rem,2vw,1.6rem)}
@media(max-width:860px){
  .hero-side{
    border-left:0;padding-left:0;
    border-top:1px solid var(--rule);padding-top:1.4rem;margin-top:.6rem;
  }
}
.hero-side p{font-size:.98rem;color:var(--ink-2)}
.sig{margin-top:1.1rem;font-family:var(--mono);font-size:.72rem;line-height:1.9;color:var(--ink-3)}
.sig b{color:var(--ink);font-weight:500}

.coupe{
  margin:clamp(2rem,4.5vw,3.2rem) 0 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:1rem 0 .55rem;
}
.coupe-head{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:1rem;flex-wrap:wrap;margin-bottom:.7rem;
}
.coupe-figure{width:100%;overflow-x:auto}
#section-svg{display:block;width:100%;min-width:640px;height:auto}
.coupe-legend{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;margin-top:.6rem;padding-bottom:.2rem}
.coupe-legend span{
  font-family:var(--mono);font-size:.68rem;color:var(--ink-3);
  display:inline-flex;align-items:center;gap:.45rem;
}
.swatch{width:.72rem;height:.72rem;border:1px solid var(--rule);display:inline-block}


/* ==== 06. BANDEAU DE CHIFFRES =============================== */

.facts{border-bottom:1px solid var(--rule);background:var(--ground-deep)}
.facts .wrap{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:1px;background:var(--rule);padding-inline:0;
}
@media(max-width:860px){.facts .wrap{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.facts .wrap{grid-template-columns:1fr}}
.fact{background:var(--ground-deep);padding:1.25rem clamp(1.1rem,2.4vw,1.6rem)}
.fact b{
  display:block;font-family:var(--sans);
  font-variation-settings:'wdth' 108,'wght' 700;
  font-size:1.85rem;line-height:1;font-variant-numeric:tabular-nums;
}
.fact span{
  display:block;margin-top:.45rem;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);line-height:1.5;
}


/* ==== 07. BANDES DE CONTENU ================================= */

.band{padding-block:clamp(3rem,6.5vw,5.2rem);border-bottom:1px solid var(--rule)}
.band.alt{background:var(--surface)}

.band-head{
  display:flex;align-items:baseline;gap:1rem;
  padding-bottom:.7rem;border-bottom:1.5px solid var(--ink);
  margin-bottom:clamp(1.6rem,3.5vw,2.6rem);
}
.band-head .idx{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;
  color:var(--accent);font-weight:500;
}
.band-head h2{
  font-variation-settings:'wdth' 108,'wght' 700;
  font-size:clamp(1.15rem,2.1vw,1.5rem);
  text-transform:uppercase;letter-spacing:.02em;
}
.band-head .aside{
  margin-left:auto;font-family:var(--mono);font-size:.68rem;
  color:var(--ink-3);text-align:right;
}
@media(max-width:600px){.band-head .aside{display:none}}

.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.6rem,4vw,3.6rem)}
@media(max-width:800px){.intro{grid-template-columns:1fr}}
.intro h3{font-variation-settings:'wdth' 105,'wght' 600;font-size:1.28rem;margin-bottom:.6rem}
.intro p + p{margin-top:.85rem}
.intro .note{
  font-family:var(--mono);font-size:.72rem;color:var(--ink-3);
  border-left:2px solid var(--accent);padding-left:.85rem;
  line-height:1.75;margin-top:1.3rem;
}


/* ==== 08. CHRONOLOGIE ======================================= */

.chrono-scale{display:flex;width:100%;height:58px;border:1px solid var(--rule);overflow:hidden}
.chrono-scale div{position:relative;transition:filter .2s}
.chrono-scale div span{
  position:absolute;inset:auto .4rem .35rem .5rem;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--onband);white-space:nowrap;overflow:hidden;font-weight:500;
}
.chrono-scale div.dim{filter:saturate(.25) opacity(.5)}

.chrono-axis{
  position:relative;margin-top:.4rem;height:1.35rem;
  font-family:var(--mono);font-size:.66rem;color:var(--ink-3);
}
.chrono-axis span{position:absolute;top:0;white-space:nowrap}
.chrono-axis .zero{transform:translateX(-50%);color:var(--ink-2)}
.chrono-axis .zero::before{
  content:"";position:absolute;left:50%;top:-.55rem;
  width:1px;height:.4rem;background:var(--ink-3);
}

.chrono-list{
  margin-top:1.9rem;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  border-top:1px solid var(--rule);border-left:1px solid var(--rule);
}
.per{
  padding:1rem 1.1rem;display:flex;gap:.8rem;align-items:flex-start;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.per i{width:4px;align-self:stretch;flex:none;display:block}
.per h3{font-variation-settings:'wdth' 104,'wght' 600;font-size:.98rem;letter-spacing:.01em}
.per time{
  display:block;font-family:var(--mono);font-size:.68rem;color:var(--ink-3);
  margin:.22rem 0 .4rem;font-variant-numeric:tabular-nums;
}
.per p{font-size:.92rem;color:var(--ink-2);line-height:1.55}


/* ==== 09. PRESTATIONS ======================================= */

.presta{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(1.2rem,2.6vw,2.2rem)}
.dom{border-top:2px solid var(--ink);padding-top:1rem}
.dom.d1{border-color:var(--p-ant)}
.dom.d2{border-color:var(--p-med)}
.dom.d3{border-color:var(--p-neo)}
.dom.d4{border-color:var(--p-con)}
.dom .k{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);display:flex;justify-content:space-between;gap:1rem;
}
.dom h3{font-variation-settings:'wdth' 104,'wght' 600;font-size:1.12rem;margin:.5rem 0 .7rem}
.dom ul{list-style:none;margin:0;padding:0}
.dom li{font-size:.94rem;color:var(--ink-2);padding:.28rem 0;border-bottom:1px solid var(--rule-soft)}
.dom li:last-child{border-bottom:0}


/* ==== 10. DÉROULÉ D'OPÉRATION =============================== */

.steps{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:clamp(1.2rem,2.6vw,2rem);counter-reset:s;
}
.step{position:relative;padding-top:2.6rem}
.step::before{
  counter-increment:s;content:counter(s,decimal-leading-zero);
  position:absolute;top:0;left:0;
  font-family:var(--mono);font-size:.78rem;font-weight:600;
  color:var(--accent);letter-spacing:.08em;
}
.step::after{content:"";position:absolute;top:1.55rem;left:0;right:1.2rem;height:1px;background:var(--rule)}
.step h3{font-variation-settings:'wdth' 104,'wght' 600;font-size:1.03rem;margin-bottom:.45rem}
.step p{font-size:.93rem;color:var(--ink-2)}

.pledges{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.4rem;
  margin-top:clamp(2.4rem,5vw,3.4rem);padding-top:1.6rem;border-top:1px solid var(--rule);
}
.pledge b{
  display:block;font-family:var(--sans);
  font-variation-settings:'wdth' 104,'wght' 600;font-size:.95rem;margin-bottom:.35rem;
}
.pledge p{font-size:.9rem;color:var(--ink-2)}


/* ==== 11. CARTES D'OPÉRATIONS =============================== */

.ops{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));
  border-top:1px solid var(--rule);border-left:1px solid var(--rule);
}
.op{
  padding:1.4rem 1.3rem;display:flex;flex-direction:column;gap:.6rem;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.op .meta{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-3);display:flex;flex-wrap:wrap;gap:.3rem .7rem;
}
.chip{
  display:inline-flex;align-items:center;gap:.38rem;
  font-family:var(--mono);font-size:.63rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-2);text-decoration:none;
}
.chip i{width:.62rem;height:.62rem;display:block;background:var(--ink-3)}
.chip:hover{color:var(--accent)}
.op h3{font-variation-settings:'wdth' 103,'wght' 600;font-size:1.06rem;line-height:1.24}
.op h3 a{text-decoration:none}
.op h3 a:hover{color:var(--accent)}
.op p{font-size:.93rem;color:var(--ink-2)}
.op .thumb{margin:-1.4rem -1.3rem .2rem;display:block;border-bottom:1px solid var(--rule)}
.op .thumb img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.op .more{
  margin-top:auto;padding-top:.5rem;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--accent);text-decoration:none;
}
.op .more:hover{text-decoration:underline;text-underline-offset:3px}


/* ==== 12. AGENCES =========================================== */

.agences{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  border-top:1px solid var(--rule);border-left:1px solid var(--rule);
}
.ag{
  padding:1.15rem 1.15rem 1.3rem;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.ag .zone{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);display:block;margin-bottom:.5rem;
}
.ag h3{font-variation-settings:'wdth' 104,'wght' 600;font-size:1.02rem;margin-bottom:.35rem}
.ag address{font-style:normal;font-size:.88rem;color:var(--ink-2);line-height:1.55}
.ag .tel{
  display:block;margin-top:.5rem;font-family:var(--mono);font-size:.72rem;
  color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.ag.hq{outline:1.5px solid var(--accent);outline-offset:-1.5px}


/* ==== 13. CONTACT =========================================== */

.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:clamp(1.4rem,3vw,2.6rem)}
.card{
  border:1px solid var(--rule);padding:clamp(1.3rem,2.6vw,1.8rem);
  display:flex;flex-direction:column;gap:.75rem;background:var(--ground);
}
.band.alt .card{background:var(--surface)}
.card.lead{border-color:var(--accent);border-width:1.5px}
.card h3{font-variation-settings:'wdth' 106,'wght' 700;font-size:1.2rem;text-transform:uppercase;letter-spacing:.02em}
.card p{font-size:.95rem;color:var(--ink-2)}
.card .btn{align-self:flex-start;margin-top:.35rem}
.coord{
  font-family:var(--mono);font-size:.76rem;line-height:1.95;
  color:var(--ink-2);font-variant-numeric:tabular-nums;
}
.coord a{color:var(--accent);text-decoration:none}
.coord a:hover{text-decoration:underline;text-underline-offset:3px}


/* ==== 14. PIED DE PAGE ====================================== */

.site-footer{background:var(--ground-deep);padding-block:clamp(2.4rem,5vw,3.4rem)}
.foot{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(140px,1fr));gap:2rem}
.foot h2{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin-bottom:.7rem;
}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.35rem}
.foot a{font-size:.9rem;color:var(--ink-2);text-decoration:none}
.foot a:hover{color:var(--accent)}
.foot .about{font-size:.92rem;color:var(--ink-2);max-width:38ch;margin-top:1rem}
.baseline{
  margin-top:2.4rem;padding-top:1.1rem;border-top:1px solid var(--rule);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--ink-3);
}
.theme-toggle{
  background:none;border:1px solid var(--rule);color:var(--ink-3);cursor:pointer;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;
  padding:.35rem .7rem;
}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}


/* ==== 15. CONTENU ÉDITORIAL ================================= */

.page-head{padding-block:clamp(2.4rem,5vw,3.6rem) 0}
.page-head .kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.page-head h1{
  font-variation-settings:'wdth' 110,'wght' 700;
  font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.02;
  text-transform:uppercase;margin-top:.7rem;
}
.page-head .lede{margin-top:1rem;font-size:1.1rem;color:var(--ink-2);max-width:62ch}
.page-head .meta{
  margin-top:1rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-3);display:flex;gap:1.2rem;flex-wrap:wrap;
}

.layout{
  display:grid;grid-template-columns:minmax(0,1fr) 280px;
  gap:clamp(2rem,5vw,4rem);
  padding-block:clamp(2rem,4vw,3.2rem) clamp(3rem,6vw,4.6rem);
}
.layout.full{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){.layout{grid-template-columns:1fr}}

.entry-content{max-width:68ch}
.entry-content > * + *{margin-top:1.1rem}
.entry-content h2{
  font-variation-settings:'wdth' 106,'wght' 700;font-size:1.5rem;
  text-transform:uppercase;letter-spacing:.01em;
  margin-top:2.6rem;padding-bottom:.5rem;border-bottom:1.5px solid var(--ink);
}
.entry-content h3{font-variation-settings:'wdth' 104,'wght' 600;font-size:1.2rem;margin-top:2rem}
.entry-content h4{font-variation-settings:'wdth' 104,'wght' 600;font-size:1.03rem;margin-top:1.6rem}
.entry-content ul,.entry-content ol{padding-left:1.15rem}
.entry-content li{margin-bottom:.35rem}
.entry-content a{color:var(--accent);text-underline-offset:3px}
.entry-content blockquote{
  margin:1.8rem 0;padding:.2rem 0 .2rem 1.2rem;
  border-left:2px solid var(--accent);font-size:1.12rem;color:var(--ink-2);
}
.entry-content blockquote cite{
  display:block;margin-top:.6rem;font-family:var(--mono);font-size:.7rem;
  font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
}
.entry-content figure{margin:2rem 0}
.entry-content figcaption{
  margin-top:.5rem;font-family:var(--mono);font-size:.68rem;
  color:var(--ink-3);line-height:1.6;
}
.entry-content pre{
  background:var(--ground-deep);border:1px solid var(--rule);
  padding:1rem;overflow-x:auto;font-family:var(--mono);font-size:.82rem;
}
.entry-content code{font-family:var(--mono);font-size:.88em}
.entry-content hr{border:0;border-top:1px solid var(--rule);margin:2.4rem 0}
.entry-content table{width:100%;border-collapse:collapse;font-size:.92rem}
.entry-content th,.entry-content td{border:1px solid var(--rule);padding:.5rem .7rem;text-align:left}
.entry-content th{font-family:var(--sans);font-weight:600;background:var(--ground-deep)}
.table-scroll{overflow-x:auto}

.sidebar{font-size:.92rem}
.sidebar .widget{margin-bottom:2rem;padding-bottom:1.4rem;border-bottom:1px solid var(--rule)}
.sidebar .widget:last-child{border-bottom:0}
.sidebar .widget-title{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:.8rem;
}
.sidebar ul{list-style:none;margin:0;padding:0}
.sidebar li{padding:.28rem 0;border-bottom:1px solid var(--rule-soft)}
.sidebar a{text-decoration:none;color:var(--ink-2)}
.sidebar a:hover{color:var(--accent)}

/* Widgets par blocs : ils n'utilisent pas les classes des widgets
   classiques, il faut donc les viser explicitement. */
.sidebar h2,
.sidebar .wp-block-heading{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin:0 0 .8rem;
}
.sidebar .wp-block-search__inside-wrapper{display:flex;gap:.4rem;border:0}
.sidebar .wp-block-search__input{
  flex:1;min-width:0;padding:.55rem .7rem;border-radius:0;
  border:1px solid var(--rule);background:var(--surface);color:var(--ink);
  font-family:var(--serif);font-size:.95rem;
}
.sidebar .wp-block-search__button{
  border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.55rem .8rem;cursor:pointer;border-radius:0;margin:0;
}
.sidebar .wp-block-latest-posts,
.sidebar .wp-block-latest-comments,
.sidebar .wp-block-archives,
.sidebar .wp-block-categories,
.sidebar .wp-block-page-list{list-style:none;margin:0;padding:0}
.sidebar .wp-block-latest-comments__comment{
  padding:.28rem 0;border-bottom:1px solid var(--rule-soft);
  font-size:.92rem;color:var(--ink-2);line-height:1.5;
}
.sidebar .wp-block-latest-posts li,
.sidebar .wp-block-archives li,
.sidebar .wp-block-categories li,
.sidebar .wp-block-page-list li{padding:.28rem 0;border-bottom:1px solid var(--rule-soft)}

.pagination{
  display:flex;gap:.4rem;flex-wrap:wrap;
  padding-top:2rem;margin-top:2.4rem;border-top:1px solid var(--rule);
}
.pagination .page-numbers{
  font-family:var(--mono);font-size:.78rem;padding:.45rem .8rem;
  border:1px solid var(--rule);text-decoration:none;color:var(--ink-2);
}
.pagination .page-numbers:hover{border-color:var(--ink);color:var(--ink)}
.pagination .current{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}

.post-nav{
  display:flex;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
  padding-top:1.6rem;margin-top:2.6rem;border-top:1px solid var(--rule);
}
.post-nav a{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;text-decoration:none;color:var(--accent);max-width:22rem;
}

.search-form{display:flex;gap:.4rem}
.search-form input[type="search"]{
  flex:1;min-width:0;padding:.55rem .7rem;
  border:1px solid var(--rule);background:var(--surface);color:var(--ink);
  font-family:var(--serif);font-size:.95rem;
}
.search-form button{
  border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.55rem .8rem;cursor:pointer;
}

.comments{margin-top:3rem;padding-top:1.6rem;border-top:1.5px solid var(--ink)}
.comments h2{font-variation-settings:'wdth' 106,'wght' 700;font-size:1.15rem;text-transform:uppercase;margin-bottom:1.4rem}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list li{padding:1rem 0;border-bottom:1px solid var(--rule-soft)}
.comment-list .children{list-style:none;padding-left:1.4rem;border-left:1px solid var(--rule)}
.comment-meta{font-family:var(--mono);font-size:.68rem;color:var(--ink-3);margin-bottom:.4rem}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea{
  width:100%;padding:.55rem .7rem;border:1px solid var(--rule);
  background:var(--surface);color:var(--ink);font-family:var(--serif);font-size:.95rem;
}
.comment-form p{margin-bottom:.9rem}
.comment-form label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}
.comment-form .submit{
  border:1.5px solid var(--accent);background:var(--accent);color:var(--accent-ink);
  font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;padding:.62rem 1.05rem;cursor:pointer;
}

.notfound{padding-block:clamp(4rem,10vw,7rem);text-align:center}
.notfound .code{
  font-family:var(--sans);font-variation-settings:'wdth' 118,'wght' 700;
  font-size:clamp(4rem,14vw,8rem);line-height:1;color:var(--accent);
}
.notfound p{margin:1rem auto 2rem;max-width:44ch;color:var(--ink-2)}
.notfound .search-form{max-width:26rem;margin-inline:auto}


/* ==== 16. CLASSES WORDPRESS OBLIGATOIRES ==================== */

.screen-reader-text{
  border:0;clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;
}
.screen-reader-text:focus{
  clip-path:none;height:auto;width:auto;
  background:var(--accent);color:var(--accent-ink);
  padding:.6rem 1rem;position:static;
}
.alignleft{float:left;margin:.4rem 1.6rem 1rem 0}
.alignright{float:right;margin:.4rem 0 1rem 1.6rem}
.aligncenter{display:block;margin-inline:auto}
.alignwide{max-width:min(100%,1000px);margin-inline:auto}
.alignfull{max-width:none;width:100%}
.wp-caption{max-width:100%}
.wp-caption-text{
  margin-top:.5rem;font-family:var(--mono);font-size:.68rem;color:var(--ink-3);
}
.sticky .op{outline:1.5px solid var(--accent);outline-offset:-1.5px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
.gallery-item{margin:0}
.bypostauthor{}

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