/*
Theme Name: Calpub
Description: Journal en ligne — fonction publique, aides et calendrier. Fond blanc, mise en page de presse. Aucun appel externe au rendu.
Author: Calendrier Public
Version: 2.3.0
Text Domain: calpub
*/

/* ── Palette : FOND BLANC UNIQUEMENT. Pas de thème sombre. ── */
:root{
  color-scheme:only light;  /* O7 : jamais de thème sombre, même forcé par le navigateur */
  --paper:#ffffff;          /* fond, partout */
  --paper-2:#f7f8fa;        /* aplats très clairs */
  --ink:#11161d;            /* texte */
  --ink-2:#55606e;          /* texte secondaire */
  --ink-3:#667182;          /* métadonnées — contraste ≥ 4,5:1 sur blanc et sur --paper-2 (#7c8797 : 3,6:1) */
  --rule:#e2e6ec;           /* filets */
  --rule-2:#eef1f5;
  --red:#c8102e;            /* couleur de une, rubriques */
  --blue:#123a6b;           /* liens, titre de journal */
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --wrap:78rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:#fff;color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.16em}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:1.25rem}

/* ─────────────────── BANDEAU DU JOUR ───────────────────
   Date · prochain jour férié (lu en base) · accès rapides. */
html{scroll-padding-top:4.25rem}   /* la barre des sections, collée, ne masque pas les ancres */
.bandeau{background:var(--paper-2);border-bottom:1px solid var(--rule-2);
  font-family:var(--sans);font-size:.76rem;color:var(--ink-2)}
.bandeau__in{display:flex;align-items:center;gap:.6rem 1.1rem;min-height:2.3rem;flex-wrap:wrap;padding-block:.3rem}
.bandeau__date{text-transform:uppercase;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--ink-3)}
.cp-ferie{display:inline-block;
  padding:.12rem .75rem;border:1px solid var(--rule);border-radius:999px;background:var(--paper);color:var(--ink)}
.cp-ferie__lib{font-size:.68rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--red);margin-right:.2rem}
.cp-ferie strong{font-weight:700}
.cp-ferie time{font-variant-numeric:tabular-nums;white-space:nowrap}
.bandeau__liens{margin-left:auto;display:flex;gap:1.1rem}
.bandeau__liens a{color:var(--blue);font-weight:650}

/* ─────────────────── BANDEAU-TITRE ───────────────────
   Le logo EST le nom (SVG en ligne). Un SVG en ligne n'a pas de taille intrinsèque :
   sans hauteur explicite il se dessine en 0×0 — la hauteur est donc fixée ici, la largeur suit le viewBox. */
.masthead{background:var(--paper);text-align:center;padding-top:1.35rem}
.masthead__lien{display:inline-block;color:inherit;max-width:100%}
.masthead__lien:hover{text-decoration:none}
.masthead__nom{margin:0;line-height:0;font-size:1rem}
.masthead__nom .logo{display:inline-block;height:clamp(42px,5.6vw + 22px,75px);width:auto;max-width:92vw}
.logo--yedek{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,1.2rem + 3vw,3rem);
  line-height:1.1;color:var(--blue)}
.masthead__devise{margin:.65rem 0 0;font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
/* double filet : fin au-dessus, épais au-dessous */
.masthead__filet{margin:1rem 0 0;height:6px;border:0;border-top:1px solid var(--ink);
  border-bottom:3px solid var(--ink);background:none}

/* ─────────────────── BARRE DES SECTIONS (collée en haut) ─────────────────── */
.cp-nav{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--rule);
  transition:box-shadow .2s ease}
.cp-nav--colle{box-shadow:0 3px 12px rgba(17,22,29,.11)}
.cp-nav__in{display:flex;align-items:stretch}
.cp-nav ul{list-style:none;margin:0;padding:0 .7rem;flex:1 1 auto;min-width:0;display:flex;gap:1.05rem;
  overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cp-nav ul::-webkit-scrollbar{display:none}
.cp-nav li{flex:none;display:flex}
.cp-nav li:first-child{margin-left:auto}   /* centré quand tout tient, aligné à gauche quand ça déborde */
.cp-nav li:last-child{margin-right:auto}
/* casse normale (pas de capitales) : onze sections tiennent sur une ligne à 1 280 px */
.cp-nav a{display:flex;align-items:center;min-height:46px;font-family:var(--sans);font-size:.85rem;
  font-weight:650;letter-spacing:0;color:var(--ink);white-space:nowrap;
  border-top:2px solid transparent;border-bottom:2px solid transparent}
.cp-nav a:hover{color:var(--red);text-decoration:none;border-bottom-color:var(--red)}
.cp-nav a[aria-current="page"]{color:var(--red);border-bottom-color:var(--red)}
.cp-nav a[aria-current="true"]{color:var(--red);border-bottom-color:rgba(200,16,46,.3)}
.cp-nav a:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
/* dégradé aux bords : indique que la liste continue */
.cp-nav--deborde ul{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%)}
.cp-nav__fleche{display:flex;flex:none;align-items:center;justify-content:center;width:34px;padding:0;
  border:0;background:none;color:var(--blue);cursor:pointer;transition:color .2s ease;
  -webkit-tap-highlight-color:transparent}
.cp-nav__fleche svg{width:10px;height:14px}
.cp-nav__fleche--g svg{transform:scaleX(-1)}
.cp-nav__fleche.est-attenue{color:var(--rule);cursor:default}
/* Recherche : zone de toucher de 44 px, pastille visible plus petite */
.cp-nav__recherche{flex:none;display:flex;align-items:center;justify-content:center;min-width:44px;
  min-height:44px;padding-left:.4rem;color:#fff;text-decoration:none}
.cp-nav__recherche:hover{text-decoration:none}
.cp-nav__pilule{display:inline-flex;align-items:center;gap:.45rem;height:34px;padding:0 1rem 0 .85rem;
  border-radius:17px;background:var(--blue);color:#fff;font-family:var(--sans);font-size:.74rem;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:background-color .12s ease}
.cp-nav__pilule svg{flex:none}
.cp-nav__recherche:hover .cp-nav__pilule{background:var(--red)}
.cp-nav__recherche:focus-visible{outline:none}
.cp-nav__recherche:focus-visible .cp-nav__pilule{outline:2px solid var(--ink);outline-offset:2px}
/* grand écran : flèches seulement si la liste déborde (visibility → aucun décalage de mise en page) */
@media (min-width:881px){
  .cp-nav:not(.cp-nav--deborde) .cp-nav__fleche{visibility:hidden}
}
@media (min-width:1248px){   /* largeur maximale : tout tient, les flèches libèrent leur place */
  .cp-nav__fleche{display:none}
  .cp-nav ul{padding-inline:0 .9rem}
}
/* barre d'administration WordPress (connecté) */
.admin-bar .cp-nav{top:32px}
@media (max-width:782px){.admin-bar .cp-nav{top:46px}}
@media (max-width:600px){.admin-bar .cp-nav{top:0}}

/* ─────────────────── FIL D'ARIANE ─────────────────── */
.cp-ariane{margin-top:-.8rem;margin-bottom:1.3rem;font-family:var(--sans);font-size:.8rem;color:var(--ink-3)}
.single .cp-ariane,.page .cp-ariane{max-width:calc(46rem + 2.5rem)}   /* aligné sur l'en-tête d'article */
.cp-ariane ol{list-style:none;margin:0;padding:0;display:flex;align-items:baseline;min-width:0;
  white-space:nowrap;overflow:hidden}
.cp-ariane li{flex:none}
.cp-ariane li + li::before{content:"›";margin:0 .45rem;color:var(--ink-3)}
.cp-ariane li:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.cp-ariane a{display:inline-block;padding-block:.3rem;color:var(--ink-2)}
.cp-ariane a:hover{color:var(--blue)}
.cp-ariane + .wrap > .section-head:first-child{margin-top:.4rem}

/* ─────────────────── TYPO DE PRESSE ─────────────────── */
.kicker{
  font-family:var(--sans);font-size:.72rem;font-weight:750;letter-spacing:.11em;
  text-transform:uppercase;color:var(--red);margin:0 0 .4rem;
}
.headline{font-family:var(--serif);font-weight:700;letter-spacing:-.012em;
  line-height:1.14;margin:0 0 .5rem;color:var(--ink)}
.headline a{color:inherit}
.headline a:hover{color:var(--blue);text-decoration:none}
.standfirst{font-family:var(--sans);color:var(--ink-2);margin:0 0 .6rem;
  font-size:1.02rem;line-height:1.5}
.byline{font-family:var(--sans);font-size:.76rem;color:var(--ink-3);
  text-transform:uppercase;letter-spacing:.05em;margin:0}
.byline time{font-variant-numeric:tabular-nums}
.byline a{color:inherit;text-decoration:underline;text-underline-offset:.14em}

/* ─────────────────── UNE / HOME ─────────────────── */
main{padding-block:1.75rem 3.5rem}

.lead{display:grid;gap:1.75rem;grid-template-columns:2fr 1fr;
  padding-bottom:1.75rem;border-bottom:3px double var(--ink);margin-bottom:1.75rem}
.lead-main .headline{font-size:clamp(1.9rem,1.1rem + 3vw,3.05rem)}
.lead-main .standfirst{font-size:1.12rem;max-width:42rem}
.lead-teaser{font-family:var(--serif);font-size:1.07rem;line-height:1.6;
  color:var(--ink);margin-top:.9rem;max-width:42rem}
.lead-teaser p{margin:0 0 .85rem}
.lead-more{margin:.2rem 0 .9rem;font-family:var(--sans);font-size:.87rem;
  font-weight:650;letter-spacing:.02em}
.lead-more a{color:var(--red)}
.lead-side{display:flex;flex-direction:column;gap:1.1rem;
  border-left:1px solid var(--rule);padding-left:1.75rem}
.lead-side article{padding-bottom:1.1rem;border-bottom:1px solid var(--rule-2)}
.lead-side article:last-child{border-bottom:0;padding-bottom:0}
.lead-side .headline{font-size:1.06rem;line-height:1.28}

.river{display:grid;gap:1.6rem 1.75rem;
  grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.river article{padding-bottom:1.3rem;border-bottom:1px solid var(--rule-2)}
.river .headline{font-size:1.14rem}
.river .standfirst{font-size:.92rem}

.section-head{display:flex;align-items:baseline;gap:.9rem;
  margin:2.6rem 0 1.15rem;border-bottom:2px solid var(--ink);padding-bottom:.4rem}
.section-head h2,.section-head h1{font-family:var(--sans);font-size:.92rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;margin:0;color:var(--ink)}
.section-head a{margin-left:auto;font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}

/* ─────────────────── ARTICLE ─────────────────── */
.article-head{max-width:46rem;margin:0 auto 1.6rem;text-align:left}
.article-head .headline{font-size:clamp(1.8rem,1.15rem + 2.4vw,2.7rem)}
.article-body{max-width:39rem;margin-inline:auto;
  font-family:var(--serif);font-size:1.16rem;line-height:1.66}
.article-body p{margin:0 0 1.15rem}
/* Lettrine : UNIQUEMENT sur le premier paragraphe d'un article de presse.
   Sans la restriction, elle s'applique aussi au résultat du simulateur et à
   toute première phrase d'un encadré — ce qui est illisible. */
.single-post .article-body > p:first-of-type::first-letter{
  float:left;font-size:3.35rem;line-height:.82;font-weight:700;
  padding:.1rem .55rem .1rem 0;color:var(--ink);
}
.cp-sim p::first-letter,.cp-sim-result p::first-letter,
.databox p::first-letter,.cp-table p::first-letter{
  float:none;font-size:inherit;line-height:inherit;font-weight:inherit;padding:0;
}
.article-body h2{font-family:var(--sans);font-size:1.12rem;font-weight:750;
  margin:2rem 0 .7rem;letter-spacing:-.005em}
.article-body a{text-decoration:underline;text-underline-offset:.16em}
.article-rule{max-width:39rem;margin:2rem auto 1.4rem;border:0;
  border-top:1px solid var(--rule)}
/* Haber görseli (görsel motoru, 16:9) + atıf — yalnız kaydı olan yazıda basılır. */
.article-figure{max-width:46rem;margin:0 auto 1.8rem}
.article-figure img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper-2)}
.article-credit{font-family:var(--sans);font-size:.74rem;color:var(--ink-3);margin:.45rem 0 0}
.article-credit a{color:inherit;text-decoration:underline;text-underline-offset:.14em}

/* ─────────────────── DONNÉES DANS L'ARTICLE ─────────────────── */
.cp-table-wrap{overflow-x:auto;margin:1.6rem auto;max-width:39rem;
  border:1px solid var(--rule);background:var(--paper)}
.article-body .cp-table-wrap,.entry .cp-table-wrap{font-family:var(--sans)}
.cp-table{width:100%;border-collapse:collapse;font-size:.93rem;
  font-variant-numeric:tabular-nums;font-family:var(--sans)}
.cp-table th,.cp-table td{padding:.55rem .85rem;text-align:right;
  border-bottom:1px solid var(--rule-2);white-space:nowrap}
.cp-table th:first-child,.cp-table td:first-child{text-align:left;white-space:normal}
.cp-table thead th{background:var(--paper-2);font-weight:700;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.055em;color:var(--ink-2);
  border-bottom:2px solid var(--ink)}
.cp-table tbody tr:last-child td{border-bottom:0}
.cp-table tbody tr:hover{background:var(--paper-2)}

.cp-valeur{font-variant-numeric:tabular-nums;font-weight:650;font-family:var(--sans)}
.cp-hero-value{display:block;font-family:var(--sans);
  font-size:clamp(2.3rem,1.4rem + 3.4vw,3.5rem);font-weight:800;
  letter-spacing:-.03em;line-height:1;color:var(--red);
  font-variant-numeric:tabular-nums;margin:.35rem 0}

.cp-maj,.cp-source,.cp-note{font-family:var(--sans);font-size:.8rem;
  color:var(--ink-3);max-width:39rem;margin:.5rem auto 0}
.cp-source{font-style:normal}

.cp-figure{margin:1.8rem auto;max-width:44rem}
.cp-chart{width:100%;height:auto;background:var(--paper);
  border:1px solid var(--rule);padding:.5rem}
.cp-chart .cp-grid{stroke:var(--rule-2);stroke-width:1}
.cp-chart .cp-line{stroke:var(--red);stroke-width:2.3;
  stroke-linejoin:round;stroke-linecap:round}
.cp-chart .cp-dot{fill:var(--red)}
.cp-chart .cp-ylab,.cp-chart .cp-xlab{font-size:11px;fill:var(--ink-3);
  font-family:var(--sans)}
.cp-chart .cp-ylab{text-anchor:end}
.cp-figure figcaption{font-family:var(--sans);font-size:.8rem;
  color:var(--ink-3);margin-top:.5rem}

/* ─────────────────── ENCADRÉ CHIFFRES (colonne) ─────────────────── */
.databox{border:1px solid var(--rule);background:var(--paper-2);padding:1.1rem}
.databox h3{font-family:var(--sans);font-size:.76rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;margin:0 0 .7rem;color:var(--ink-2)}
.databox dl{margin:0;display:grid;gap:.45rem}
.databox div{display:flex;justify-content:space-between;gap:1rem;
  padding-bottom:.4rem;border-bottom:1px solid var(--rule-2);font-size:.9rem}
.databox div:last-child{border-bottom:0;padding-bottom:0}
.databox dt{color:var(--ink-2);margin:0}
.databox dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}

/* ─────────────────── LISTES ─────────────────── */
.cp-empty{color:var(--ink-3);font-style:italic}

/* ─────────────────── SIMULATEUR ─────────────────── */
.cp-sim{margin:1.7rem auto;max-width:39rem;padding:1.25rem;
  border:1px solid var(--rule);background:var(--paper-2);font-family:var(--sans)}
.cp-sim-grid{display:grid;gap:.95rem;
  grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr))}
.cp-sim label{display:flex;flex-direction:column;gap:.28rem;
  font-size:.83rem;font-weight:650;color:var(--ink-2)}
.cp-sim input,.cp-sim select{font:inherit;font-size:.96rem;padding:.48rem .6rem;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink)}
.cp-sim input:focus,.cp-sim select:focus{outline:2px solid var(--blue);outline-offset:1px}
.cp-btn{margin-top:1rem;font:inherit;font-weight:700;font-size:.9rem;
  letter-spacing:.04em;text-transform:uppercase;padding:.6rem 1.5rem;border:0;
  background:var(--ink);color:var(--paper);cursor:pointer}
.cp-btn:hover{background:var(--red)}
.cp-sim-result{margin-top:1.1rem;font-family:var(--sans)}
.cp-sim-result p{margin:.9rem 0 0;font-size:1rem}
.cp-sim-net{font-size:1.45rem;font-weight:800;color:var(--red);
  font-variant-numeric:tabular-nums}
.cp-error{color:var(--red);font-size:.88rem}

/* ─────────────────── PIED ─────────────────── */
.site-footer{border-top:3px solid var(--ink);background:var(--paper);
  padding-block:1.8rem 2.6rem;margin-top:3.5rem;font-family:var(--sans)}
.footer-grid{display:grid;gap:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.footer-grid h3{font-size:.74rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);margin:0 0 .6rem}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.footer-grid a{font-size:.88rem;color:var(--ink-2)}
.footer-legal{margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--rule-2);
  font-size:.8rem;color:var(--ink-3);display:flex;gap:1.1rem;flex-wrap:wrap}

/* ─────────────────── PAGINATION, DIVERS ─────────────────── */
.pagination{margin-top:2rem;font-family:var(--sans);font-size:.9rem;
  display:flex;gap:.5rem;flex-wrap:wrap}
.pagination .page-numbers{padding:.35rem .7rem;border:1px solid var(--rule)}
.pagination .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:.5rem;left:.5rem;z-index:99;background:#fff;
  padding:.5rem 1rem;width:auto;height:auto;clip:auto;border:2px solid var(--ink)}


/* ── WB-0135: rubrique tanıtımı + repères (arşiv), repère/évolution tabloları ── */
.cp-rubrique-intro{max-width:44rem;margin:0 auto 1.2rem;font-family:var(--serif, Georgia, serif);
  font-size:1.02rem;line-height:1.6;color:var(--ink, #1b1f24)}
.cp-reperes-box{max-width:44rem;margin:0 auto 1.8rem}
.cp-reperes-box h3{font-family:var(--sans);font-size:.95rem;font-weight:750;text-transform:uppercase;
  letter-spacing:.04em;margin:0 0 .4rem}
.cp-table.cp-reperes th[scope="row"]{text-align:left;white-space:normal;font-weight:600}
.cp-evolution-resume{max-width:39rem;margin:1rem auto .4rem}

/* ── Pages de données : date de mise à jour sous le titre ; présentation de rubrique sous la liste ── */
.article-head .cp-maj{max-width:none;margin:.15rem 0 0}
.cp-rubrique-intro--bas{margin:2.2rem auto 0;padding-top:1.2rem;border-top:1px solid var(--rule-2)}

/* ─────────────────── RECHERCHE (page de résultats) ─────────────────── */
.cp-recherche-form{display:flex;gap:.5rem;max-width:44rem;margin:0 0 .8rem}
.cp-recherche-form input{flex:1;min-width:0;font:inherit;font-size:1.05rem;padding:.65rem .8rem;
  border:1px solid var(--ink-3);border-radius:0;background:var(--paper);color:var(--ink);
  -webkit-appearance:none;appearance:none}
.cp-recherche-form input:focus{outline:2px solid var(--blue);outline-offset:1px}
.cp-recherche-form button{font-family:var(--sans);font-weight:700;font-size:.85rem;letter-spacing:.05em;
  text-transform:uppercase;padding:0 1.3rem;min-height:44px;border:0;background:var(--blue);color:#fff;cursor:pointer}
.cp-recherche-form button:hover{background:var(--red)}
.cp-recherche-nb{margin:0 0 1.2rem;font-family:var(--sans);font-size:.82rem;color:var(--ink-3)}
.cp-acces{margin-top:1.6rem;max-width:44rem}
.cp-acces__titre{font-family:var(--sans);font-size:.76rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-2);margin:0 0 .7rem}
.cp-acces ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cp-acces a{display:inline-flex;align-items:center;min-height:40px;padding:.3rem .95rem;border:1px solid var(--rule);
  border-radius:20px;font-family:var(--sans);font-size:.88rem;color:var(--ink)}
.cp-acces a:hover{border-color:var(--red);color:var(--red);text-decoration:none}
.cp-recherche-nb:empty{display:none}

/* ─────────────────── RECHERCHE (fenêtre, assets/recherche.js) ───────────────────
   La pastille « Rechercher » ouvre cette fenêtre ; sans JavaScript elle reste un lien vers /?s=.
   Au-dessus du bandeau de consentement (99999 / 100000) : il ne masque pas les résultats pendant la saisie.
   Téléphone (≤ 700 px) : plein écran, le clavier ouvert laisse les résultats juste sous le champ. */
html.cp-rech-ouverte{overflow:hidden}
.cp-rech{position:fixed;inset:0;z-index:100001;display:flex;justify-content:center;align-items:flex-start;
  padding:8vh 1rem 1rem;background:rgba(17,22,29,.5)}
.cp-rech[hidden]{display:none}
.cp-rech__panneau{width:100%;max-width:44rem;max-height:84vh;display:flex;flex-direction:column;
  background:var(--paper);border-top:4px solid var(--red);box-shadow:0 18px 50px rgba(17,22,29,.28)}
.cp-rech__form{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem .55rem 1rem;border-bottom:1px solid var(--rule)}
.cp-rech__loupe{flex:none;width:22px;height:22px;background:no-repeat center/21px
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10' cy='10' r='6.8' fill='none' stroke='%23667182' stroke-width='2.2'/%3E%3Cpath d='M15.2 15.2 20.5 20.5' stroke='%23667182' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}
.cp-rech__champ{flex:1;min-width:0;padding:.6rem 0;border:0;border-radius:0;outline:0;background:transparent;
  font-family:var(--serif);font-size:1.25rem;line-height:1.3;color:var(--ink);-webkit-appearance:none;appearance:none}
.cp-rech__champ::placeholder{color:var(--ink-3)}
.cp-rech__fermer{flex:none;min-height:36px;padding:.4rem .75rem;border:0;border-radius:4px;cursor:pointer;
  font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-2);background:var(--paper-2)}
.cp-rech__fermer:hover{color:var(--red)}
.cp-rech__fermer:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.cp-rech__corps{overflow-y:auto;overscroll-behavior:contain;padding:.25rem 0 .9rem}
.cp-rech__etat{margin:0;padding:.9rem 1.1rem .25rem;font-family:var(--sans);font-size:.88rem;color:var(--ink-2)}
.cp-rech__etat:empty{display:none}
.cp-rech__liste{list-style:none;margin:0;padding:0}
.cp-rech__item a{display:grid;grid-template-columns:7.2rem minmax(0,1fr);column-gap:.8rem;row-gap:.1rem;
  padding:.6rem 1.1rem .6rem .95rem;border-left:3px solid transparent;color:var(--ink);text-decoration:none}
.cp-rech__type{grid-row:span 2;align-self:start;padding-top:.28rem;font-family:var(--sans);font-size:.64rem;
  font-weight:750;letter-spacing:.09em;line-height:1.35;text-transform:uppercase;color:var(--red)}
.cp-rech__item--actu .cp-rech__type{color:var(--ink-3)}
.cp-rech__titre{font-family:var(--serif);font-size:1.06rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.cp-rech__titre mark{color:inherit;background:none;box-shadow:inset 0 -.42em 0 rgba(200,16,46,.16)}
.cp-rech__sous{font-family:var(--sans);font-size:.8rem;line-height:1.4;color:var(--ink-3);overflow-wrap:anywhere;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cp-rech__item[aria-selected="true"] a{background:var(--paper-2);border-left-color:var(--red)}
.cp-rech__item--page + .cp-rech__item--actu{border-top:1px solid var(--rule);margin-top:.25rem;padding-top:.25rem}
.cp-rech__tout{display:block;margin:.5rem 1.1rem 0;padding-top:.65rem;border-top:1px solid var(--rule);
  font-family:var(--sans);font-size:.88rem;font-weight:700}
.cp-rech__tout[hidden],.cp-rech__suggestions[hidden]{display:none}
.cp-rech__suggestions{padding:.8rem 1.1rem .1rem}
.cp-rech__suggestions-titre{margin:0 0 .6rem;font-family:var(--sans);font-size:.68rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.cp-rech__puces{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cp-rech__puces a{display:inline-flex;align-items:center;min-height:38px;padding:.3rem .9rem;border:1px solid var(--rule);
  border-radius:999px;font-family:var(--sans);font-size:.86rem;color:var(--ink);text-decoration:none}
.cp-rech__puces a:hover{border-color:var(--red);color:var(--red)}
/* page de résultats (/?s=) : la même liste, sans fenêtre */
.cp-rech__liste--page{max-width:44rem;border-top:3px solid var(--ink)}
.cp-rech__liste--page .cp-rech__item{border-bottom:1px solid var(--rule-2)}
.cp-rech__liste--page .cp-rech__item--page + .cp-rech__item--actu{margin-top:0;padding-top:0;border-top:0}
.cp-rech__liste--page .cp-rech__item a{padding-left:0;padding-right:0;border-left:0}
.cp-rech__liste--page .cp-rech__item a:hover{text-decoration:none}
.cp-rech__liste--page .cp-rech__item a:hover .cp-rech__titre{color:var(--red)}
.cp-recherche-resultats .cp-rech__puces{margin-top:.8rem}
@media (max-width:700px){
  .cp-rech{padding:0;background:var(--paper)}
  .cp-rech__panneau{max-width:none;max-height:none;height:100%;height:100dvh;border-top-width:3px;box-shadow:none}
  .cp-rech__form{padding:.35rem .6rem .35rem .9rem}
  .cp-rech__champ{font-size:1.12rem}
  .cp-rech__item a{grid-template-columns:minmax(0,1fr);padding:.6rem 1rem .6rem .8rem}
  .cp-rech__type{grid-row:auto;padding-top:0}
  .cp-rech__titre{font-size:1.02rem}
  .cp-rech__suggestions,.cp-rech__etat{padding-inline:1rem}
  .cp-rech__tout{margin-inline:1rem}
}

/* ─────────────────── TABLEAUX : défilement horizontal signalé ───────────────────
   Ombre au bord qui peut encore défiler (fond « local » qui suit le contenu, ombre « scroll » fixe au cadre) :
   l'ombre disparaît quand on atteint le bout. Aucun script. */
.cp-table-wrap{-webkit-overflow-scrolling:touch;
  background:
    linear-gradient(90deg,#fff 35%,rgba(255,255,255,0)) left center / 44px 100% no-repeat local,
    linear-gradient(270deg,#fff 35%,rgba(255,255,255,0)) right center / 44px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(17,22,29,.2),rgba(17,22,29,0)) left center / 14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%,rgba(17,22,29,.2),rgba(17,22,29,0)) right center / 14px 100% no-repeat scroll;
  background-color:#fff}

/*
 * Tableaux en « cartes » sur téléphone — CROCHET GÉNÉRIQUE, activé par le rendu :
 *   <table class="cp-table cp-table--cartes">  +  <td data-e="Libellé de la colonne">
 * ≤560 px : l'en-tête est masqué visuellement, chaque ligne devient une carte, chaque cellule une ligne
 * « libellé … valeur » ; le libellé vient de data-e (td::before). La première cellule (td ou th[scope=row])
 * sans data-e sert de titre de carte. Le rendu peut ajouter role="table/row/cell" pour les lecteurs d'écran
 * qui perdent la sémantique d'un tableau passé en display:block.
 */
@media (max-width:560px){
  .cp-table-wrap:has(> .cp-table--cartes){overflow:visible;border:0;background:none}
  .cp-table--cartes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cp-table--cartes,.cp-table--cartes tbody,.cp-table--cartes tr,.cp-table--cartes td,
  .cp-table--cartes th[scope="row"]{display:block;width:auto}
  .cp-table--cartes tr{border:1px solid var(--rule);padding:.55rem .8rem;margin-bottom:.6rem;background:var(--paper)}
  .cp-table--cartes tbody tr:hover{background:var(--paper)}
  .cp-table.cp-table--cartes td,.cp-table.cp-table--cartes th[scope="row"]{border:0;padding:.22rem 0;text-align:right;white-space:normal}
  .cp-table--cartes td[data-e]{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
  .cp-table--cartes td[data-e]::before{content:attr(data-e);flex:none;max-width:55%;text-align:left;
    font-size:.78rem;font-weight:650;color:var(--ink-2)}
  .cp-table.cp-table--cartes td:first-child:not([data-e]),.cp-table.cp-table--cartes th[scope="row"]{text-align:left;font-weight:700;
    padding-bottom:.35rem;margin-bottom:.2rem;border-bottom:1px solid var(--rule-2)}
}

/* ─────────────────── ÉCRANS ÉTROITS : 880 / 700 / 560 ─────────────────── */
@media (max-width:880px){
  .lead{grid-template-columns:1fr;gap:1.4rem}
  .lead-side{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:1.2rem}
  .article-body{font-size:1.1rem}
  .single-post .article-body > p:first-of-type::first-letter{font-size:2.9rem}
  .cp-nav ul{gap:1.1rem;padding-inline:.55rem;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}
  .cp-nav a{font-size:.86rem;min-height:44px}
  .cp-nav .wrap{padding-inline:0}
  .cp-nav__recherche{padding-right:.6rem}
}
@media (max-width:700px){
  .wrap{padding-inline:1rem}
  main{padding-block:1.35rem 2.6rem}
  /* bandeau : date + jour férié à gauche, accès rapides empilés à droite */
  .bandeau__in{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date liens" "ferie liens";
    column-gap:.8rem;row-gap:.1rem;padding-block:.35rem}
  .bandeau__date{grid-area:date;font-size:.7rem;letter-spacing:.04em}
  .cp-ferie{grid-area:ferie;display:block;padding:0;border:0;border-radius:0;background:none;font-size:.74rem;line-height:1.35}
  .cp-ferie__lib{font-size:.64rem}
  .bandeau__liens{grid-area:liens;flex-direction:column;align-items:flex-end;gap:0;margin-left:0}
  .bandeau__liens a{display:flex;align-items:center;min-height:24px;white-space:nowrap}
  .masthead{padding-top:1rem}
  .masthead__devise{font-size:.64rem;letter-spacing:.12em;margin-top:.5rem;padding-inline:.5rem}
  .masthead__filet{margin-top:.8rem}
  .cp-ariane{margin-top:-.45rem;margin-bottom:1rem;font-size:.78rem}
  .article-head{margin-bottom:1.2rem}
  .article-head .headline{font-size:clamp(1.6rem,1.15rem + 2.2vw,2.05rem);line-height:1.17}
  .lead-main .headline{font-size:clamp(1.65rem,1.1rem + 2.8vw,2.15rem)}
  .standfirst{font-size:.98rem}
  .lead-main .standfirst{font-size:1.02rem}
  .section-head{margin:2rem 0 1rem}
  .river{gap:1.2rem}
  .river .headline{font-size:1.1rem}
  .cp-table-wrap{margin-block:1.3rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.3rem 1rem}
  .footer-grid a{display:inline-block;padding-block:.2rem}
}
@media (max-width:560px){
  .article-body{font-size:1.06rem;line-height:1.62}
  .article-body h2{font-size:1.06rem;margin:1.7rem 0 .6rem}
  .single-post .article-body > p:first-of-type::first-letter{font-size:2.65rem}
  .lead-teaser{font-size:1.02rem}
  .cp-table{font-size:.86rem}
  .cp-table th,.cp-table td{padding:.5rem .6rem}
  .cp-table thead th{white-space:normal;font-size:.68rem;letter-spacing:.04em;vertical-align:bottom}
  .cp-hero-value{font-size:clamp(2rem,1.3rem + 4vw,2.6rem)}
  .cp-sim{padding:1rem}
  .cp-nav__pilule{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}
  .cp-nav__recherche-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cp-ferie__opt{display:none}
  .cp-recherche-form button{padding:0 1rem}
}
@media print{
  .bandeau,.cp-nav,.cp-ariane,.site-footer,.cp-sim,.cp-rech{display:none}
  .masthead__filet{margin-top:.5rem}
  body{font-size:12pt}
}
