/* Troyes Mille Pages — home « L'Imprimerie » (proposition C) */

@font-face {
    font-family: 'Courier Prime';
    src: url('../fonts/courier-prime-400-latin.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Courier Prime';
    src: url('../fonts/courier-prime-400-latin-ext.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Courier Prime';
    src: url('../fonts/courier-prime-700-latin.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Courier Prime';
    src: url('../fonts/courier-prime-700-latin-ext.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --mono: "Courier Prime", ui-monospace, "Courier New", monospace;
    --filet: 2px;
    --tmp-vert-aplat: #29AA58; /* vert franc des grands aplats (comm client 02/07/2026) */
}

/* Tokens couleur enregistrés : interpolables → le changement d'encre est un fondu, pas un swap */
@property --tmp-encre { syntax: '<color>'; inherits: true; initial-value: #232746; }
@property --fla-titre { syntax: '<color>'; inherits: true; initial-value: #3953DD; }
@property --fla-pop   { syntax: '<color>'; inherits: true; initial-value: #E8344B; }
@property --fla-btn   { syntax: '<color>'; inherits: true; initial-value: #F7C900; }
@property --fla-deep  { syntax: '<color>'; inherits: true; initial-value: #3953DD; }
@property --fla-filet { syntax: '<color>'; inherits: true; initial-value: #232746; }
/* Tokens d'usage : titre / pop (tampons, nums, dates) / boutons / fond profond / filets */
html {
    --fla-titre: var(--tmp-bleu);
    --fla-pop:   var(--tmp-rouge);
    --fla-btn:   var(--tmp-jaune);
    --fla-deep:  var(--tmp-bleu);
    /* Filets des planches : l'encre vire au bleu du logo en descendant,
       bleu logo pur atteint à mi-page (--scroll-bleu 0→1 posé par le JS) */
    --fla-filet: color-mix(in oklab, var(--tmp-bleu) calc(var(--scroll-bleu, 0) * 100%), var(--tmp-encre));
}

body { background: var(--tmp-papier); }
/* La planche rubriques compense sa compaction avec une cale JS. Le scroll anchoring
   du navigateur ajouterait sa propre correction par-dessus → léger saut au dé-épinglage
   en remontant. On le coupe et on laisse la cale gérer seule. */
html { overflow-anchor: none; }

/* La planche : grille à filets d'encre uniformes */
.planche {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--filet);
    background: var(--fla-filet);
    border: var(--filet) solid var(--fla-filet);
}
.planche > * { background: var(--tmp-papier); padding: 1.5rem; min-width: 0; }

.case-vide { padding: 0; min-height: 90px; }
.c-jaune { background: var(--tmp-jaune); }
.c-rouge { background: var(--tmp-rouge); color: #fff; }
.c-rose  { background: var(--tmp-rose-vif); }
.c-vert  { background: var(--tmp-vert); color: #fff; }
.c-cyan  { background: var(--tmp-cyan); }
.c-bleu  { background: var(--tmp-bleu); color: #fff; }
.c-deep  { background: var(--fla-deep); color: #fff; }
.c-encre { background: var(--tmp-encre); color: var(--tmp-papier); }
.c-creme { background: var(--tmp-creme); }

.sp-2 { grid-column: span 2; }
.sp-3 { grid-column: span 3; }
.sp-4 { grid-column: span 4; }
.sp-6 { grid-column: span 6; }
.rw-2 { grid-row: span 2; }

.case-motif { display: flex; align-items: center; justify-content: center; padding: 1rem; min-height: 110px; }
.case-motif img { max-height: 72px; max-width: 80%; }

/* Étiquette sur aplat (pattern comm client : capitales blanches letterspacées au centre d'un bloc plein) */
.case-aplat { display: flex; align-items: center; justify-content: center; padding: 1.5rem; text-align: center; }
.c-vert-aplat { background: var(--tmp-vert-aplat); color: #fff; }
.etiquette-aplat { font-weight: 700; text-transform: uppercase; letter-spacing: .32em; text-indent: .32em; font-size: .9375rem; line-height: 2; }

/* Typo d'étiquette */
.mono { font-family: var(--mono); font-size: .875rem; letter-spacing: .02em; }
.etiquette { font-family: var(--mono); font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em; }

/* Topbar + nav */
.topbar { border-bottom: var(--filet) solid var(--tmp-encre); }
.topbar .container { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: .45rem; padding-bottom: .45rem; }

/* Bandeau défilant : piste dupliquée, boucle transform, rien d'autre par-dessus */
.defile { overflow: hidden; flex: 1; min-width: 0; }
.defile-piste { display: flex; width: max-content; animation: defile 18s linear infinite; }
.defile-groupe { display: flex; gap: 2.75rem; padding-right: 2.75rem; white-space: nowrap; }
.defile:hover .defile-piste { animation-play-state: paused; }
@keyframes defile { to { transform: translateX(-50%); } }
.defile .sep { color: var(--fla-pop); }
@media (prefers-reduced-motion: reduce) { .defile-piste { animation: none; } }

.blink { animation: blink-imp 1.2s step-end infinite; }
@keyframes blink-imp {
    0% { opacity: 1; }
    70% { opacity: 0; }
    100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .blink { animation: none; } }
.nav-imp { border-bottom: var(--filet) solid var(--tmp-encre); background: var(--tmp-papier); position: sticky; top: 0; z-index: 1030; }
body.admin-bar .nav-imp { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { body.admin-bar .nav-imp { top: 0; } }
.nav-imp .logo-tmp { height: 88px; transition: height .3s cubic-bezier(.22, 1, .36, 1); }
.nav-imp.reduit .logo-tmp { height: 52px; }
@media (prefers-reduced-motion: reduce) { .nav-imp .logo-tmp { transition: none; } }
/* Accueil : logo paysage centré */
.nav-imp-home .logo-tmp-une { display: block; height: clamp(64px, 9vw, 96px); width: auto; max-width: 100%; }
.nav-imp-home.reduit .logo-tmp-une { height: clamp(44px, 6vw, 58px); }
.nav-imp .nav-link { font-family: var(--mono); text-transform: uppercase; font-size: .875rem; letter-spacing: .05em; color: var(--tmp-encre); }
.nav-imp .nav-link:hover { background: var(--fla-btn); color: var(--tmp-encre); }
.nav-imp .nav-link.active,
.nav-imp .nav-link.active:hover { background: var(--tmp-encre); color: var(--tmp-papier); }
.nav-imp .nav-link svg { display: block; transform: rotate(-3deg); }
@keyframes fretille {
    0%, 25%, 100% { transform: rotate(-3deg); }
    5% { transform: rotate(8deg); }
    10% { transform: rotate(-10deg); }
    15% { transform: rotate(6deg); }
    20% { transform: rotate(-7deg); }
}
.nav-imp .nav-contact svg { animation: fretille 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .nav-imp .nav-contact svg { animation: none; } .btn-imp-bleu { animation: none; } }

/* Burger : trois filets d'encre qui se croisent en X */
.burger { display: inline-flex; flex-direction: column; gap: 5px; background: none; border: 0; padding: .5rem; cursor: pointer; }
.burger span { display: block; width: 26px; height: var(--filet); background: var(--tmp-encre); transition: transform .2s ease-out, opacity .2s ease-out; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Menu mobile : cases empilées à filets sous la navbar */
.menu-mobile { border-top: var(--filet) solid var(--tmp-encre); background: var(--tmp-papier); }
.menu-mobile a {
    display: flex; align-items: center; gap: .7rem; padding: .85rem 1.5rem;
    font-family: var(--mono); text-transform: uppercase; font-size: .9375rem; letter-spacing: .05em;
    color: var(--tmp-encre); text-decoration: none;
    border-bottom: var(--filet) solid var(--tmp-encre);
}
.menu-mobile a:last-child { border-bottom: 0; }
.menu-mobile a:hover { background: var(--fla-btn); color: var(--tmp-encre); }
.menu-mobile a.active { background: var(--tmp-encre); color: var(--tmp-papier); }
.menu-mobile svg { transform: rotate(-3deg); }

/* Folio d'annotation au-dessus de chaque planche.
   max-width: none — sans ça le plafond de lecture « p, li { max-width: 68ch } »
   (custom.css) rétrécit le folio et son space-between ne rejoint plus le bord droit. */
.folio {
    font-family: var(--mono); font-size: .8125rem; text-transform: uppercase; letter-spacing: .1em;
    display: flex; justify-content: space-between; gap: 1rem;
    margin: 0 0 .6rem; color: var(--tmp-encre); opacity: .75; max-width: none;
}
.folio a { color: inherit; text-decoration: none; }
.folio a:hover { color: var(--tmp-bleu); text-decoration: underline; text-underline-offset: 3px; }
/* Curseur de saisie : signale que ce fragment du fil d'ariane est cliquable, même hors survol */
.folio .curseur { color: var(--tmp-bleu); font-weight: 700; text-decoration: none !important; margin-left: .05em; }

/* Manchette */
.manchette h1 {
    font-size: clamp(2.4rem, 5.4vw, 4.6rem);
    line-height: 1.02; letter-spacing: -0.015em; font-weight: 700;
    color: var(--tmp-encre); margin: 1rem 0 1.25rem;
}
.manchette h1 .rehausse { color: var(--fla-titre); }
/* Frappe machine : les caractères occupent leur place dès le départ, zéro reflow */
.manchette h1 .car { visibility: hidden; }
.manchette h1 .car.frappe { visibility: visible; }
.caret-tape { display: inline-block; width: .42em; height: .07em; margin-left: .07em; background: currentColor; }
.manchette { padding: 2.25rem !important; display: flex; flex-direction: column; justify-content: center; }
.case-affiche { padding: 0; display: flex; }
.case-affiche img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Boutons plomb */
.btn-imp {
    display: inline-block; font-family: var(--mono); font-weight: 700; text-transform: uppercase;
    font-size: .875rem; letter-spacing: .05em; text-decoration: none;
    color: var(--tmp-encre); background: var(--tmp-jaune);
    border: var(--filet) solid var(--tmp-encre); border-radius: 0;
    padding: .7rem 1.1rem; box-shadow: 3px 3px 0 var(--tmp-encre);
    background: var(--fla-btn);
    transition: transform .15s ease-out, box-shadow .15s ease-out;
}
.btn-imp:hover { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--tmp-encre); color: var(--tmp-encre); }
.btn-imp-bleu { background: var(--fla-deep); color: #fff; animation: fretille 2.4s ease-in-out infinite; }
.btn-imp-bleu:hover { color: #fff; animation: none; }
.btn-imp-blanc { background: var(--tmp-papier); }
.btn-imp .fl { display: inline-flex; align-items: center; margin-left: .4em; transition: transform .2s ease-out; }
.btn-imp .fl img { display: block; height: 1em; width: auto; }
.btn-imp:hover .fl { transform: translate(2px, -2px); }

/* Tampon */
.tampon {
    display: inline-block; font-family: var(--mono); font-weight: 700; text-transform: uppercase;
    font-size: .75rem; letter-spacing: .1em; color: var(--fla-pop);
    border: 2px solid var(--fla-pop); border-radius: 6px; padding: .25em .6em;
    transform: rotate(-4deg);
}
.c-deep .tampon, .c-encre .tampon { color: var(--tmp-jaune); border-color: var(--tmp-jaune); }

/* Rubriques numérotées — les 5 entrées occupent toute la largeur (une par cinquième) */
@media (min-width: 768px) {
    .planche-rubriques { grid-template-columns: repeat(5, 1fr); }
}

/* La planche relaie la navbar : collée en haut le temps du journal,
   et compactée une fois épinglée (classe .epinglee posée par la sentinelle JS) */
@media (min-width: 992px) {
    .planche-rubriques { position: sticky; top: 0; z-index: 10; }
    body.admin-bar .planche-rubriques { top: var(--wp-admin--admin-bar--height, 32px); }
    .planche-rubriques.epinglee > * { padding: .8rem 1.25rem; }
    .planche-rubriques.epinglee .num { display: none; }
    .planche-rubriques.epinglee .case-rubrique { flex-direction: row; align-items: center; justify-content: center; gap: .6rem; min-height: 0; }
    .planche-rubriques.epinglee .case-rubrique img { height: 28px; margin: 0; }
    .planche-rubriques.epinglee .case-rubrique .libelle { font-size: .9375rem; }
}

.case-rubrique {
    text-decoration: none; color: var(--tmp-encre);
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: .8rem; min-height: 200px;
    transition: background .2s ease-out;
}
.case-rubrique .num { font-family: var(--mono); font-weight: 700; color: var(--fla-pop); font-size: 1.05rem; }
.case-rubrique img { height: 60px; align-self: center; margin: auto 0; }
.case-rubrique .libelle { font-weight: 700; font-size: 1.0625rem; line-height: 1.2; }
.case-rubrique:hover { color: var(--tmp-encre); }
.h-association:hover { background: var(--tmp-bleu); color: #fff; }
.h-association:hover .num { color: var(--tmp-jaune); }
.h-actions:hover { background: var(--tmp-vert); color: #fff; }
.h-actions:hover .num { color: var(--tmp-jaune); }
.h-actus:hover { background: var(--tmp-jaune); }
.h-partenaires:hover { background: var(--tmp-cyan); }
.h-presse:hover { background: var(--tmp-rose-vif); }

/* Dépêches */
.c-encre h2 { color: var(--tmp-papier); text-transform: uppercase; letter-spacing: .03em; }
.depeche { text-decoration: none; color: var(--tmp-encre); display: flex; flex-direction: column; gap: 1.05rem; overflow: hidden; }
.depeche-txt { margin-top: auto; }
.depeche .cat { font-family: var(--mono); font-weight: 700; text-transform: uppercase; font-size: .75rem; letter-spacing: .08em; color: var(--fla-pop); }
/* Titre : coup de surligneur jaune qui balaie au survol */
.depeche h3 {
    position: relative; display: inline-block; isolation: isolate;
    font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: .45rem 0 .55rem;
    color: var(--fla-titre); transition: color .05s linear;
}
.depeche h3::before {
    content: ""; position: absolute; z-index: -1; inset: -.05em -.3em;
    background: var(--tmp-jaune);
    transform: skewX(-8deg) scaleX(0); transform-origin: left center;
    transition: transform .24s cubic-bezier(.62, 0, .2, 1);
}
.depeche .date { font-family: var(--mono); font-size: .8125rem; opacity: .7; }
.depeche:hover { background: var(--tmp-creme); color: var(--tmp-encre); }
.depeche:hover h3 { color: var(--tmp-encre); transition: color .05s linear .12s; }
.depeche:hover h3::before { transform: skewX(-8deg) scaleX(1); }
/* Carte postale : le tirage blanc en tête de carte, pleine largeur, légèrement de travers */
.depeche-photo {
    width: 100%; margin: 0;
    background: #fff; padding: 7px;
    box-shadow: 0 10px 20px -10px rgba(35, 39, 70, .5);
    transform: rotate(var(--rot, -1.4deg));
    transition: transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease-out;
}
.depeche-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.depeche:hover .depeche-photo { transform: rotate(0deg) translateY(-4px); box-shadow: 0 16px 26px -12px rgba(35, 39, 70, .55); }

.case-lien { display: flex; align-items: center; justify-content: center; gap: .6em; text-decoration: none; font-family: var(--mono); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .9375rem; min-height: 84px; }
.case-lien.c-encre:hover { background: var(--tmp-bleu); color: #fff; }
.case-lien .fl { display: inline-flex; transition: transform .2s ease-out; }
.case-lien .fl img { display: block; height: 1em; width: auto; }
.case-lien:hover .fl { transform: translate(3px, -3px); }

/* Agenda */

/* Newsletter */
.case-nl { padding: 2.5rem !important; position: relative; overflow: hidden; }
.nl-enveloppe {
    position: absolute; top: 1.1rem; right: 1.4rem; pointer-events: none;
    opacity: 0; transform: rotate(-6deg) translateY(10px);
    transition: opacity .9s ease-out, transform .9s cubic-bezier(.22, 1, .36, 1);
}
.case-nl.revele .nl-enveloppe { opacity: .3; transform: rotate(-6deg) translateY(0); }
@media (prefers-reduced-motion: reduce) { .nl-enveloppe { transition: none; } }
.case-nl h2 { color: #fff; font-weight: 700; }
.case-nl .form-control { border: var(--filet) solid var(--tmp-encre); border-radius: 0; font-family: var(--mono); }
.case-nl .form-control:focus { box-shadow: 3px 3px 0 var(--tmp-encre); border-color: var(--tmp-encre); }

a.tampon { text-decoration: none; }
a.tampon:hover { color: var(--tmp-encre); border-color: var(--tmp-encre); }

/* Footer — colophon de l'imprimerie */
.pied { margin-top: 5rem; }
.pied .folio { margin-bottom: .6rem; }
.cell-logo { display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; }
.logo-pied { width: 100%; max-width: 200px; height: auto; }
.cell-logo .signature { font-family: var(--mono); font-size: .9375rem; line-height: 1.55; margin: 0; color: var(--tmp-encre); }
.cell-coord { background: var(--tmp-creme); }
.cell-coord .mono a { color: var(--tmp-bleu); text-decoration: none; }
.cell-coord .mono a:hover { text-decoration: underline; text-underline-offset: .18em; }
.pied-nav { display: flex; flex-wrap: wrap; padding: 0 !important; }
.pied-nav a {
    flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: .55em;
    padding: 1.4rem 1.25rem; text-decoration: none;
    font-family: var(--mono); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .875rem;
    color: var(--tmp-papier); border-right: var(--filet) solid var(--fla-filet);
    transition: background .2s ease-out, color .2s ease-out;
}
.pied-nav a:last-child { border-right: 0; }
.pied-nav a:hover { background: var(--tmp-jaune); color: var(--tmp-encre); }
.pied-nav .fl {
    width: 1.2em; height: .85em; background: currentColor;
    -webkit-mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    transition: transform .2s ease-out;
}
.pied-nav a:hover .fl { transform: translate(3px, -3px); }
.pied-acheve { text-align: center; font-family: var(--mono); font-size: .75rem; letter-spacing: .06em; opacity: .6; margin: 0; padding: 1.4rem 1rem 0; color: var(--tmp-encre); }

/* Plan du site */
.case-titre-plan { display: flex; align-items: center; }
.case-titre-plan h1 { color: var(--tmp-papier); text-transform: uppercase; letter-spacing: .03em; font-size: 1.6rem; font-weight: 700; margin: 0; }
.plan-liste { list-style: none; margin: 0; padding: 0; }
.plan-liste li { border-bottom: var(--filet) solid var(--fla-filet); }
.plan-liste li:last-child { border-bottom: 0; }
.plan-liste a { display: flex; align-items: baseline; gap: .55em; padding: .75rem 0; text-decoration: none; color: var(--tmp-encre); font-weight: 700; transition: color .2s ease-out, padding-left .2s ease-out; }
.plan-liste a::before { content: "—"; color: var(--fla-pop); font-family: var(--mono); }
.plan-liste a:hover { color: var(--tmp-bleu); padding-left: .4em; }
.plan-sous { list-style: none; margin: 0 0 .55rem; padding: 0 0 0 1.7em; }
.plan-sous li, .plan-sous li:last-child { border-bottom: 0; }
.plan-sous a { padding: .28rem 0; font-weight: 500; font-size: .9375rem; color: color-mix(in oklab, var(--tmp-encre) 78%, transparent); }
.plan-sous a::before { content: "\00b7"; color: var(--fla-pop); opacity: .7; }
.plan-sous a:hover { color: var(--tmp-bleu); }

@media (max-width: 767.98px) {
    .planche { grid-template-columns: repeat(2, 1fr); }
    .sp-3, .sp-4, .sp-6, .manchette, .case-affiche { grid-column: span 2; }
    .case-nl { grid-row: auto; }
    .case-affiche { min-height: 340px; }
    .case-rubrique { grid-column: span 1; min-height: 160px; }
    .planche-rubriques .case-rubrique:last-child:nth-child(odd) { grid-column: span 2; }
    .case-contact { flex-direction: column; }
    .contact-portrait { align-self: flex-start; order: -1; }
    .manchette { padding: 1.5rem !important; }
    .depeche { gap: .85rem; }
    .pied-nav a { flex: 1 1 100%; justify-content: flex-start; border-right: 0; border-bottom: var(--filet) solid var(--fla-filet); }
    .pied-nav a:last-child { border-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .btn-imp, .btn-imp .fl, .case-rubrique, .case-lien .fl, .depeche, .depeche h3, .depeche h3::before { transition: none; }
}

/* ————— Page Contact ————— */
.page-contact .case-adresse, .page-inscriptions .case-adresse { display: flex; flex-direction: column; justify-content: center; }
.case-adresse h1 {
    font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 700; text-transform: uppercase;
    letter-spacing: .01em; line-height: 1.02; margin: 0 0 1.1rem; color: var(--tmp-papier);
}
.case-adresse p { max-width: 42ch; margin: 0; }

.case-info { display: flex; flex-direction: column; }
.case-info .etiquette { color: var(--tmp-encre); opacity: .7; margin: 0; }
.info-forte { font-size: 1.375rem; font-weight: 700; line-height: 1.2; margin: .3rem 0 0; color: var(--tmp-encre); }
.info-forte a { color: inherit; text-decoration: none; transition: color .2s ease-out; }
.info-forte a:hover { color: var(--tmp-bleu); }
.filet-info { border: 0; border-top: var(--filet) solid var(--fla-filet); margin: 1.1rem 0; opacity: 1; }
.lien-fleche {
    margin-top: 1.25rem; font-family: var(--mono); font-weight: 700; text-transform: uppercase;
    font-size: .8125rem; letter-spacing: .06em; color: var(--fla-pop); text-decoration: none;
}
.lien-fleche:hover { color: var(--tmp-bleu); }

.case-contact { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; }
.case-contact .contact-txt { min-width: 0; }
.contact-portrait {
    flex: 0 0 auto; width: 106px; margin: 0;
    background: #fff; padding: 6px;
    box-shadow: 0 8px 16px -10px rgba(35, 39, 70, .5);
    transform: rotate(-2deg);
    transition: transform .3s cubic-bezier(.22, 1, .36, 1);
}
.case-contact:hover .contact-portrait { transform: rotate(0deg); }
.contact-portrait img { display: block; width: 100%; height: 132px; object-fit: cover; }
.portrait-attente {
    display: flex; align-items: center; justify-content: center; height: 132px;
    background: var(--tmp-creme); color: var(--acc, var(--fla-pop));
    font-family: var(--mono); font-weight: 700; font-size: 1.5rem; letter-spacing: .06em;
}
.case-contact .role { margin: 0; color: var(--acc, var(--fla-pop)); }
.case-contact .role::after { content: ""; display: block; width: 2.2rem; height: 3px; background: var(--acc, var(--fla-pop)); margin-top: .55rem; }
.case-contact h3 { font-size: 1.25rem; font-weight: 700; margin: .9rem 0 .45rem; color: var(--tmp-encre); }
.lien-mail {
    font-family: var(--mono); font-size: .875rem; color: var(--tmp-bleu); text-decoration: none;
    word-break: break-word; border-bottom: var(--filet) solid transparent; transition: border-color .2s ease-out;
}
.lien-mail:hover { border-bottom-color: var(--tmp-bleu); }

/* ————— Page Inscriptions scolaires ————— */
.case-etat { display: flex; flex-direction: column; justify-content: center; gap: 1rem; }
.case-etat .tampon { align-self: flex-start; }
.case-etat p { max-width: 38ch; }
.case-etat .btn-imp { align-self: flex-start; }

.case-acces { display: flex; flex-direction: column; align-items: flex-start; }
.case-acces .btn-imp { margin-top: auto; }
.case-carte { padding: 0 !important; display: flex; }
.case-carte iframe {
    width: 100%; height: 100%; min-height: 460px; border: 0; display: block;
    filter: grayscale(1) contrast(1.03); transition: filter .45s ease-out;
}
.case-carte:hover iframe { filter: none; }
@media (max-width: 991px) { .case-carte iframe { min-height: 340px; } }
@media (prefers-reduced-motion: reduce) { .case-carte iframe { transition: none; } }

/* ————— Bouton « remonter » : barre de repérage d'imprimeur ————— */
.remonter {
    position: fixed; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem); z-index: 1020;
    width: 60px; height: 60px; padding: 0; cursor: pointer;
    border: var(--filet) solid var(--tmp-encre); border-radius: 0;
    /* Les 5 encres de la charte en repères de calage */
    background: repeating-linear-gradient(90deg,
        var(--tmp-jaune)    0    20%,
        var(--tmp-rouge)    20%  40%,
        var(--tmp-rose-vif) 40%  60%,
        var(--tmp-vert)     60%  80%,
        var(--tmp-bleu)     80%  100%);
    box-shadow: 4px 4px 0 var(--tmp-encre);
    display: grid; place-items: center;
    opacity: 0; pointer-events: none;
    transform: translateY(1rem) rotate(-3deg);
    transition: opacity .3s ease-out, transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .15s ease-out;
}
.remonter.visible { opacity: 1; pointer-events: auto; transform: translateY(0) rotate(-3deg); }
.remonter:hover { transform: translateY(0) rotate(0deg); box-shadow: 2px 2px 0 var(--tmp-encre); }
.remonter:active { transform: translate(2px, 2px) rotate(0deg); box-shadow: 1px 1px 0 var(--tmp-encre); }
.remonter:focus-visible { outline: 3px solid var(--tmp-encre); outline-offset: 3px; }
.remonter-chip {
    width: 32px; height: 32px; background: var(--tmp-papier);
    border: var(--filet) solid var(--tmp-encre);
    display: grid; place-items: center;
}
.remonter-chip svg { width: 20px; height: 20px; color: var(--tmp-encre); display: block; transition: transform .25s cubic-bezier(.22, 1, .36, 1); }
.remonter:hover .remonter-chip svg { transform: translateY(-2px); }
@media (max-width: 575px) { .remonter { width: 52px; height: 52px; } .remonter-chip { width: 27px; height: 27px; } }
@media (prefers-reduced-motion: reduce) {
        }

/* ——— Planche rubriques reprise en en-tête (hors accueil) ——— */
.rubriques-entete .planche-rubriques { position: static; }

/* Rubrique de la page courante */
.h-association.active { background: var(--tmp-bleu); color: #fff; }
.h-association.active .num { color: var(--tmp-jaune); }
.h-actions.active { background: var(--tmp-vert); color: #fff; }
.h-actions.active .num { color: var(--tmp-jaune); }
.h-actus.active { background: var(--tmp-jaune); }
.h-partenaires.active { background: var(--tmp-cyan); }
.h-presse.active { background: var(--tmp-rose-vif); }

/* Case logo en tete de planche (en-tete hors accueil) */
@media (min-width: 768px) {
    .rubriques-entete .planche-rubriques { grid-template-columns: repeat(6, 1fr); }
}
.case-logo img { height: auto; max-height: 130px; max-width: 100%; margin: auto; transition: transform .2s ease-out; }
.case-logo:hover { background: var(--tmp-papier); }
.case-logo:hover img { transform: rotate(-2deg) scale(1.04); }
@media (max-width: 767.98px) {
    .rubriques-entete .case-logo { grid-column: 1 / -1; min-height: 0; }
    .case-logo img { max-height: 96px; }
}
@media (prefers-reduced-motion: reduce) {
    .case-logo img { transition: none; }
    .case-logo:hover img { transform: none; }
}

/* Pied courrier des pages interieures : la coordonnees ne s'etire pas sur mobile */
@media (max-width: 767.98px) {
    .cell-coord.rw-2 { grid-row: auto; }
}

/* Acheve d'imprimer : copyright a gauche, logo une-ligne en signature a droite */
.pied-acheve { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; max-width: none; padding-bottom: 2.75rem; }
.pied-acheve img { height: 20px; width: auto; }

/* Planche rubriques en en-tête : le conteneur colle et se compacte comme sur la home */
body:not(.home) .zone-une { display: contents; }
.rubriques-entete { padding-top: 1rem; }
@media (min-width: 992px) {
    .rubriques-entete { position: sticky; top: 0; z-index: 1030; }
    body.admin-bar .rubriques-entete { top: var(--wp-admin--admin-bar--height, 32px); }
    .rubriques-entete.epinglee { padding-top: 0; }
    .planche-rubriques.epinglee .case-logo img { height: 28px; max-height: 28px; margin: auto; }
}

/* ————— Pages internes génériques (page.php) : titre planche + sommaire sticky ————— */
.case-titre-page { display: flex; align-items: center; gap: 1.1rem; }
/* Picto de rubrique : brut, sans cadre */
.picto-rubrique { flex: 0 0 auto; width: 64px; height: 64px; object-fit: contain; }
.titre-avec-picto { display: flex; align-items: center; gap: 1rem; }
/* En grand au-dessus du sommaire des pages internes */
.picto-sidebar { display: block; width: 100%; height: auto; margin: 0 0 1.6rem; }
@media (max-width: 991.98px) {
    .picto-sidebar { max-width: 200px; margin-bottom: 1.2rem; }
}
@media (max-width: 575.98px) {
    .picto-rubrique { width: 52px; height: 52px; }
}
.case-titre-page h1 { color: var(--tmp-papier); text-transform: uppercase; letter-spacing: .03em; font-size: 1.6rem; font-weight: 700; margin: 0; }

.contenu-page { max-width: 68ch; }
.contenu-page h2 {
    font-weight: 700; color: var(--tmp-bleu); font-size: 1.45rem;
    margin: 2.2rem 0 .9rem; scroll-margin-top: 130px;
    padding-bottom: .35rem; border-bottom: var(--filet) solid var(--fla-filet);
}
.contenu-page > h2:first-child { margin-top: 0; }
.contenu-page p { line-height: 1.65; }

.sommaire-page {
    position: sticky; top: 120px;
    border: var(--filet) solid var(--fla-filet); background: var(--tmp-papier);
    padding: 1.25rem 1.5rem;
}
.sommaire-page .etiquette { opacity: .7; }
.sommaire-page ul { list-style: none; margin: 0; padding: 0; }
.sommaire-page li { border-bottom: var(--filet) solid var(--fla-filet); }
.sommaire-page li:last-child { border-bottom: 0; }
.sommaire-page a {
    display: flex; align-items: baseline; gap: .55em; padding: .65rem 0;
    color: var(--tmp-encre); font-weight: 700; text-decoration: none;
    transition: color .2s ease-out, padding-left .2s ease-out;
}
.sommaire-page a::before { content: "—"; color: var(--fla-pop); font-family: var(--mono); }
.sommaire-page a:hover { color: var(--tmp-bleu); padding-left: .4em; }
.sommaire-page a.actif { color: var(--tmp-bleu); padding-left: .4em; }
@media (max-width: 991.98px) { .sommaire-page { position: static; } }
@media (prefers-reduced-motion: reduce) { .sommaire-page a { transition: none; } }

/* ═══════════════════════════════════════════════════════════════════
   Mur de coupures — masonry (accueil section 03 + page Actualités)
   Chaque visuel garde sa proportion naturelle. Article sans visuel =
   coupure typographique sur aplat. Filet d'encre + index couleur.
   ═══════════════════════════════════════════════════════════════════ */
.actu-tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .4rem 1.5rem; margin-bottom: 1.3rem; }
.titre-actu { font-size: clamp(1.9rem, 3.4vw, 2.8rem); font-weight: 700; letter-spacing: -.02em; color: var(--tmp-encre); margin: 0; line-height: 1.05; }
.actu-tete .folio { margin: 0; }

.barre-filtres { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 1.7rem; }
.filtre {
    font-family: var(--mono); text-transform: uppercase; font-size: .8125rem; letter-spacing: .06em;
    padding: .42rem .8rem; border: var(--filet) solid var(--tmp-encre); background: var(--tmp-papier);
    color: var(--tmp-encre); text-decoration: none; display: inline-flex; align-items: center; gap: .5rem;
    transition: background .15s ease-out, color .15s ease-out;
}
.filtre:hover { background: var(--tmp-encre); color: var(--tmp-papier); }
.filtre.on { background: var(--tmp-encre); color: var(--tmp-papier); animation: filtre-loupe 1.15s ease-in-out infinite alternate; }
/* Survol du filtre déjà actif : bascule au bleu de marque, distinct du hover encre */
.filtre.on:hover { background: var(--tmp-bleu); }
/* Loupe infinie sur le filtre actif : l'œil retrouve tout de suite la rubrique en cours */
@keyframes filtre-loupe {
    from { transform: scale(1); }
    to   { transform: scale(1.07); }
}
@media (prefers-reduced-motion: reduce) {
    .filtre.on { animation: none; }
}
.filtre .pastille { width: .6rem; height: .6rem; border: 1.5px solid currentColor; background: var(--c, transparent); flex: none; }

.mur { --gc: 1.2rem; column-gap: var(--gc); }
@media (min-width: 576px)  { .mur { column-count: 2; } }
@media (min-width: 992px)  { .mur { column-count: 3; } }
@media (min-width: 1500px) { .mur { column-count: 4; } }
.mur-home { --gc: 1.2rem; column-gap: var(--gc); }
@media (min-width: 576px)  { .mur-home { column-count: 2; } }
@media (min-width: 992px)  { .mur-home { column-count: 3; } }

.coupure {
    display: block; break-inside: avoid; margin-bottom: var(--gc, 1.2rem);
    background: var(--tmp-papier); border: var(--filet) solid var(--tmp-encre);
    color: var(--tmp-encre); text-decoration: none;
    box-shadow: 3px 3px 0 rgba(35, 39, 70, .12);
    transition: transform .2s cubic-bezier(.22, 1, .36, 1), box-shadow .2s cubic-bezier(.22, 1, .36, 1);
}
.coupure:hover { transform: translateY(-5px) rotate(-.5deg); box-shadow: 7px 9px 0 rgba(35, 39, 70, .16); }
.coupure img { display: block; width: 100%; height: auto; } /* proportion naturelle conservée */
.coupure .corps { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .6rem; }
.coupure .cat {
    display: flex; align-items: center; gap: .5rem;
    font-family: var(--mono); font-weight: 700; text-transform: uppercase; font-size: .72rem; letter-spacing: .08em; color: var(--tmp-encre);
}
.coupure .cat::before { content: ''; width: .6rem; height: .6rem; background: var(--c, var(--fla-pop)); border: 1.5px solid var(--tmp-encre); flex: none; }
.coupure h3 { font-size: 1.12rem; line-height: 1.16; font-weight: 700; letter-spacing: -.01em; margin: 0; color: var(--tmp-encre); }
.coupure:hover h3 { color: var(--tmp-bleu); }
.coupure .date { font-family: var(--mono); font-size: .8rem; opacity: .68; }

.coupure-une .corps { padding: 1.35rem 1.4rem 1.5rem; gap: .85rem; }
.coupure-une h3 { font-size: clamp(1.35rem, 2.1vw, 1.8rem); line-height: 1.08; }
.coupure-une .chapo { margin: 0; font-size: .975rem; line-height: 1.5; opacity: .82; }
/* Article ÉPINGLÉ seulement (pas la simple tête d'affiche) : filet et pince à la couleur
   de la rubrique — même teinte que la pastille carrée, via --c posé sur la carte.
   L'ombre reste à l'encre : c'est le papier qui la projette, pas un tracé. */
.coupure-epinglee { border-color: var(--c, var(--fla-pop)); }
.coupure-epinglee .pince { background: repeating-linear-gradient(90deg, var(--c, var(--fla-pop)) 0 14px, transparent 14px 22px); }

.coupure-typo .corps { min-height: 190px; justify-content: space-between; gap: 1.2rem; }
.coupure-typo h3 { font-size: clamp(1.3rem, 1.9vw, 1.65rem); line-height: 1.1; }

.pince { display: block; height: 6px; background: repeating-linear-gradient(90deg, var(--tmp-encre) 0 14px, transparent 14px 22px); opacity: .9; }

/* Le CTA doit occuper toute la largeur pour se centrer : le plafond de lecture
   « p, li { max-width: 68ch } » (custom.css) le rétrécissait et le décalait à gauche. */
.voir-tout-actu { margin-top: 1.7rem; text-align: center; max-width: none; }
@media (prefers-reduced-motion: reduce) { .coupure { transition: none; } }

/* Pagination « gazette » v2 : la rubrique signe sa gazette (--c-cat posé par index.php) */
.pagination-gazette { margin-top: 2.6rem; }
.pg-pince { display: block; height: 6px; margin-bottom: var(--filet); background: repeating-linear-gradient(90deg, var(--c-cat, var(--tmp-encre)) 0 14px, transparent 14px 22px); }
.pg-barre { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--filet); background: var(--fla-filet); border: var(--filet) solid var(--fla-filet); }
.pg-barre > * { background: var(--tmp-papier); }
.pg-sens {
    display: flex; align-items: center; gap: .65rem; padding: 1.15rem 1.35rem; text-decoration: none;
    font-family: var(--mono); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .875rem;
    color: var(--tmp-encre); transition: background .15s ease-out, color .15s ease-out;
}
.pg-sens.suiv { justify-content: flex-end; text-align: right; }
.pg-sens .fl {
    width: 1.35rem; height: .9rem; flex: none; background: currentColor;
    -webkit-mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    transition: transform .22s cubic-bezier(.22, 1, .36, 1);
}
.pg-sens.prec .fl { transform: scaleX(-1); }
.pg-sens:hover { background: var(--tmp-encre); color: var(--tmp-papier); }
.pg-sens:hover .fl { transform: translateX(4px); }
.pg-sens.prec:hover .fl { transform: scaleX(-1) translateX(4px); }
.pg-sens[aria-disabled="true"] { opacity: .3; pointer-events: none; }
.pg-cadran { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; padding: .85rem 1.9rem; }
.pg-cadran .lbl {
    display: flex; align-items: center; gap: .5rem;
    font-family: var(--mono); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
}
.pg-cadran .lbl .pastille { width: .6rem; height: .6rem; border: 1.5px solid var(--tmp-encre); background: var(--c-cat, var(--tmp-encre)); flex: none; }
.pg-cadran .val { font-family: var(--mono); font-weight: 700; font-size: 1.7rem; line-height: 1; letter-spacing: .04em; }
.pg-cadran .val small { font-size: .9rem; opacity: .5; }
.pg-reglure { display: grid; grid-template-columns: repeat(auto-fill, minmax(3.1rem, 1fr)); gap: var(--filet); margin-top: var(--filet); background: var(--fla-filet); border: var(--filet) solid var(--fla-filet); }
.pg-reglure a, .pg-reglure span {
    text-align: center; padding: .6rem .2rem; background: var(--tmp-papier);
    font-family: var(--mono); font-size: .8125rem; letter-spacing: .05em; color: var(--tmp-encre); text-decoration: none;
    transition: background .15s ease-out, color .15s ease-out;
}
.pg-reglure a:hover { background: var(--tmp-encre); color: var(--tmp-papier); }
.pg-reglure .actu { background: var(--tmp-encre); color: var(--tmp-papier); font-weight: 700; box-shadow: inset 0 -3px 0 var(--c-cat, var(--tmp-encre)); }
@media (max-width: 575px) {
    .pg-barre { grid-template-columns: 1fr; }
    .pg-cadran { order: -1; border-bottom: var(--filet) solid var(--fla-filet); }
    .pg-sens { padding: .95rem 1.35rem; }
}

/* ————— Page charte (styleguide vivant) ————— */
#charte .planche-rubriques { position: static; }
#charte .pot { display: flex; flex-direction: column; justify-content: flex-end; gap: .1rem; min-height: 132px; }
#charte .pot strong { font-size: 1rem; }
#charte .pot .code { font-family: var(--mono); font-size: .72rem; opacity: .85; }
#charte .role-encre { display: flex; align-items: baseline; gap: .55em; padding: .5rem 0; border-bottom: var(--filet) solid var(--fla-filet); }
#charte .role-encre:last-child { border-bottom: 0; padding-bottom: 0; }
#charte .role-encre .puce { width: .9em; height: .9em; align-self: center; background: var(--c); border: 2px solid var(--tmp-encre); flex: 0 0 auto; }
#charte .role-encre code { font-family: var(--mono); font-size: .8125rem; color: var(--fla-pop); }
#charte .note-charte { font-family: var(--mono); font-size: .8125rem; opacity: .75; margin: .9rem 0 0; max-width: 72ch; }
#charte .note-charte code { color: var(--fla-pop); }
#charte code { font-family: var(--mono); font-size: .875em; color: var(--fla-pop); }

/* Carnet d'adresses : fiche impaire en fin de planche, la dernière prend toute la largeur */
@media (min-width: 768px) {
    .page-contact .planche .case-contact:last-child:nth-child(odd) { grid-column: span 6; }
}

/* ————— Page Le Festival ————— */
.page-festival .case-edition { display: flex; flex-direction: column; justify-content: center; }
.page-festival .case-edition h1 {
    font-size: clamp(1.9rem, 3.4vw, 2.9rem); line-height: 1.06; letter-spacing: -0.015em;
    font-weight: 700; color: var(--tmp-papier); margin: .35rem 0 .9rem;
}
.page-festival .edition-texte p { margin: 0 0 .8rem; max-width: 56ch; line-height: 1.6; }
.page-festival .edition-texte p:last-child { margin-bottom: 0; }
/* L'affiche remplit sa case sans jamais rogner son titre */
.case-affiche-festival img { object-position: center top; }
.page-festival .case-repere { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .7rem; text-align: center; }
.page-festival .case-scolaires .scolaires-texte p { margin: 0 0 1.2rem; max-width: 68ch; line-height: 1.6; }
@media (max-width: 767.98px) {
    .case-affiche-festival { grid-row: auto; }
}

/* ————— Gabarit article « la dépêche » (single.php) ————— */
.article-depeche .colonne-lecture { max-width: 46rem; margin: 0 auto; }
.depeche-tete { border: var(--filet) solid var(--fla-filet); background: var(--tmp-papier); margin-bottom: 2rem; }
.depeche-pince { display: block; height: 6px; background: repeating-linear-gradient(90deg, var(--c-cat, var(--tmp-encre)) 0 14px, transparent 14px 22px); }
.depeche-tete .interieur { padding: 1.8rem 2rem 1.6rem; }
.depeche-rub {
    display: inline-flex; align-items: center; gap: .5rem; margin-bottom: .9rem; text-decoration: none; color: inherit;
    font-family: var(--mono); font-weight: 700; text-transform: uppercase; font-size: .78rem; letter-spacing: .08em;
}
.depeche-rub::before { content: ''; width: .65rem; height: .65rem; background: var(--c-cat, var(--tmp-encre)); border: 1.5px solid var(--tmp-encre); }
.depeche-rub:hover { color: var(--tmp-bleu); }
.depeche-tete h1 { font-size: clamp(1.6rem, 3.2vw, 2.5rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.1; margin: 0 0 1rem; color: var(--tmp-encre); }
.depeche-date { font-family: var(--mono); font-size: .8rem; opacity: .68; }
.depeche-visuel { margin: 0 0 2rem; background: var(--tmp-papier); border: var(--filet) solid var(--tmp-encre); box-shadow: 5px 6px 0 rgba(35, 39, 70, .14); }
.depeche-visuel img { display: block; width: 100%; height: auto; }
.depeche-corps { font-size: 1.0625rem; line-height: 1.65; }
.depeche-corps p { margin-bottom: 1.15rem; }
.depeche-corps a { color: var(--tmp-bleu); }
.depeche-corps ul, .depeche-corps ol { margin: 0 0 1.15rem; padding-left: 1.4rem; }
.depeche-corps li { margin-bottom: .4rem; }
.depeche-corps li::marker { color: var(--c-cat, var(--tmp-encre)); font-weight: 700; }
.depeche-corps h2, .depeche-corps h3 { font-weight: 700; letter-spacing: -.01em; margin: 1.8rem 0 .8rem; }
.depeche-corps h2 { font-size: 1.45rem; border-bottom: var(--filet) solid var(--fla-filet); padding-bottom: .45rem; }
.depeche-corps h3 { font-size: 1.2rem; }
.depeche-corps blockquote { margin: 1.6rem 0; padding: 1.2rem 1.5rem; background: var(--tmp-creme); font-size: 1.15rem; line-height: 1.4; font-weight: 500; }
.depeche-corps blockquote p:last-child { margin: 0; }
.depeche-corps blockquote cite { display: block; margin-top: .6rem; font-style: normal; font-family: var(--mono); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; opacity: .7; }
.depeche-corps img { max-width: 100%; height: auto; border: var(--filet) solid var(--tmp-encre); box-shadow: 4px 5px 0 rgba(35, 39, 70, .12); }
.depeche-corps figure { margin: 1.6rem 0; }
.depeche-corps figcaption { font-family: var(--mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; opacity: .7; margin-top: .6rem; }
.depeche-corps hr { border: 0; height: 6px; margin: 2rem 0; background: repeating-linear-gradient(90deg, var(--fla-filet) 0 14px, transparent 14px 22px); opacity: .5; }

/* Navigation entre dépêches : cartes vignette + titre, cadran cliquable */
.nav-depeches { margin-top: 3rem; }
.pg-carte {
    display: flex; align-items: center; gap: 1.1rem; padding: 1.1rem 1.3rem;
    text-decoration: none; color: var(--tmp-encre); background: var(--tmp-papier);
    transition: background .15s ease-out, color .15s ease-out;
}
.pg-carte.suiv { flex-direction: row-reverse; text-align: right; }
.pg-carte .vignette {
    flex: none; width: 84px; height: 84px; object-fit: cover; border: var(--filet) solid var(--tmp-encre); background: var(--c-cat, var(--tmp-creme));
    box-shadow: 3px 3px 0 rgba(35, 39, 70, .12); transition: box-shadow .2s cubic-bezier(.22, 1, .36, 1);
}
/* Le mouvement (flottement + accent au survol) est piloté en JS (vignettes-nav.js, WAAPI) : pas de transform ici, pour ne pas entrer en conflit avec l'animation continue. */
.pg-carte:hover .vignette { box-shadow: 6px 7px 0 rgba(35, 39, 70, .22); }
.pg-carte .sens {
    display: flex; align-items: center; gap: .5rem; margin-bottom: .45rem;
    font-family: var(--mono); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; font-size: .72rem; opacity: .75;
}
.pg-carte.suiv .sens { justify-content: flex-end; }
.pg-carte .fl {
    width: 1.15rem; height: .8rem; flex: none; background: currentColor;
    -webkit-mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    transition: transform .22s cubic-bezier(.22, 1, .36, 1);
}
.pg-carte.prec .fl { transform: scaleX(-1); }
.pg-carte .titre-lien {
    font-weight: 700; line-height: 1.22; font-size: .975rem;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pg-carte:hover { background: var(--tmp-encre); color: var(--tmp-papier); }
.pg-carte:hover .fl { transform: translateX(4px); }
.pg-carte.prec:hover .fl { transform: scaleX(-1) translateX(4px); }
a.pg-cadran { text-decoration: none; color: inherit; transition: background .15s ease-out; }
a.pg-cadran:hover { background: var(--tmp-creme); }
a.pg-cadran .val-lien { font-family: var(--mono); font-weight: 700; font-size: .9rem; letter-spacing: .05em; }
a.pg-cadran:hover .val-lien { color: var(--tmp-bleu); }
@media (max-width: 767px) {
    .nav-depeches .pg-barre { grid-template-columns: 1fr; }
    .nav-depeches .pg-cadran { order: -1; border-bottom: var(--filet) solid var(--fla-filet); }
}

/* ————— Grain de papier : bruit SVG en surimpression fixe, teinte encre ————— */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 2000;
    pointer-events: none;
    opacity: .5;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='grain-papier'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.14 0 0 0 0 0.15 0 0 0 0 0.27 0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23grain-papier)'/></svg>");
}
/* ————— Partage de la dépêche : le tampon de diffusion (sticky, bord gauche) ————— */
.partage {
    position: fixed; left: clamp(.9rem, 2.2vw, 1.8rem); top: 50%; transform: translateY(-50%);
    z-index: 1020; display: flex; flex-direction: column; align-items: center; gap: .55rem;
}
.partage-tampon {
    width: 56px; height: 56px; padding: 0; cursor: pointer; position: relative;
    color: var(--tmp-encre); background: var(--tmp-papier);
    border: var(--filet) solid var(--tmp-encre); border-radius: 0;
    box-shadow: 4px 4px 0 rgba(35, 39, 70, .16);
    display: grid; place-items: center;
    transform: rotate(2deg);
    transition: transform .25s cubic-bezier(.22, 1, .36, 1), background .15s ease-out, color .15s ease-out, box-shadow .15s ease-out;
}
/* La pince de la rubrique signe le tampon */
.partage-tampon::before {
    content: ''; position: absolute; top: 4px; left: 6px; right: 6px; height: 4px;
    background: repeating-linear-gradient(90deg, var(--c-cat, var(--tmp-encre)) 0 8px, transparent 8px 13px);
}
.partage-tampon svg { width: 24px; height: 24px; display: block; }
.partage-tampon:hover { background: var(--tmp-encre); color: var(--tmp-papier); transform: rotate(0deg); box-shadow: 2px 2px 0 var(--tmp-encre); }
.partage-tampon:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--tmp-encre); }
.partage-tampon:focus-visible, .partage-volet:focus-visible { outline: 3px solid var(--tmp-encre); outline-offset: 3px; }
.partage.ouvert .partage-tampon { background: var(--tmp-encre); color: var(--tmp-papier); transform: rotate(0deg); }

.partage-volets { display: flex; flex-direction: column; gap: .45rem; }
.partage-volet {
    width: 44px; height: 44px; padding: 0; cursor: pointer; position: relative;
    color: var(--tmp-encre); background: var(--tmp-papier);
    border: var(--filet) solid var(--tmp-encre); border-radius: 0;
    box-shadow: 3px 3px 0 rgba(35, 39, 70, .12);
    display: grid; place-items: center;
    visibility: hidden; opacity: 0; transform: translateY(8px);
    transition: opacity .22s ease-out, transform .28s cubic-bezier(.22, 1, .36, 1), background .15s ease-out, color .15s ease-out, visibility 0s linear .3s;
}
.partage.ouvert .partage-volet { visibility: visible; opacity: 1; transform: translateY(0); transition-delay: 0s; }
/* Dépliage échelonné, du tampon vers le haut */
.partage.ouvert .partage-volet:nth-child(4) { transition-delay: 0s; }
.partage.ouvert .partage-volet:nth-child(3) { transition-delay: .04s; }
.partage.ouvert .partage-volet:nth-child(2) { transition-delay: .08s; }
.partage.ouvert .partage-volet:nth-child(1) { transition-delay: .12s; }
.partage-volet svg { width: 20px; height: 20px; display: block; }
.partage-volet:hover { background: var(--tmp-encre); color: var(--tmp-papier); }

/* Étiquette de confirmation du copieur */
.partage-volet .etiquette {
    position: absolute; left: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(-6px);
    padding: .35rem .6rem; white-space: nowrap;
    font-family: var(--mono); font-weight: 700; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em;
    color: var(--tmp-encre); background: var(--tmp-jaune); border: var(--filet) solid var(--tmp-encre);
    box-shadow: 2px 2px 0 rgba(35, 39, 70, .18);
    opacity: 0; pointer-events: none;
    transition: opacity .18s ease-out, transform .22s cubic-bezier(.22, 1, .36, 1);
}
.partage-volet.copie .etiquette { opacity: 1; transform: translateY(-50%) translateX(0); }
.partage-volet.copie { background: var(--tmp-jaune); color: var(--tmp-encre); }

/* Sous 992px : la marge disparaît, le tampon rejoint le bas, pendant du « remonter » */
@media (max-width: 991px) {
    .partage { top: auto; bottom: clamp(1rem, 3vw, 2rem); transform: none; }
    .partage-tampon { width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
    .partage-tampon, .partage.ouvert .partage-tampon, .partage-tampon:hover, .partage-tampon:active { transition: background .15s ease-out, color .15s ease-out; transform: rotate(2deg); }
    .partage-volet, .partage.ouvert .partage-volet { transition: opacity .2s linear, visibility 0s linear .2s; transform: none; transition-delay: 0s; }
    .partage.ouvert .partage-volet { transition-delay: 0s; }
    .partage-volet .etiquette, .partage-volet.copie .etiquette { transition: opacity .15s linear; transform: translateY(-50%); }
}
/* ————— Mur de la rubrique : pied des pages internes adossées à une catégorie ————— */
.mur-rubrique { margin-top: 3.5rem; }
.mur-rubrique .pg-pince { margin-bottom: 1.2rem; }
/* Oiseau à l'enveloppe : pied de la case jaune « Y venir » du Contact */
.case-acces .picto-contact { display: block; width: clamp(110px, 48%, 170px); height: auto; margin: 1.8rem 0 0 auto; }
/* ————— Sur les réseaux : Facebook Feed + Instagram Feed (Smash Balloon) ————— */
.planche-reseaux { align-items: stretch; }
.case-reseau { display: flex; flex-direction: column; }
.reseau-tete {
    display: flex; align-items: center; gap: .6rem; margin-bottom: 1.2rem;
    padding-bottom: 1rem; border-bottom: var(--filet) solid var(--fla-filet);
}
.reseau-tete .pastille { width: .75rem; height: .75rem; border: 1.5px solid var(--tmp-encre); background: var(--c-net); flex: none; }
.reseau-tete .etiquette { flex: 1 1 auto; font-size: .95rem; letter-spacing: .06em; }
.reseau-suivre {
    display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; color: var(--tmp-encre);
    font-family: var(--mono); font-size: .78rem; font-weight: 700; letter-spacing: .03em;
    padding: .3rem .7rem; border: var(--filet) solid var(--tmp-encre); transition: background .15s ease-out, color .15s ease-out;
}
.reseau-suivre:hover { background: var(--c-net); color: #fff; border-color: var(--c-net); }
.reseau-suivre .fl {
    width: .9rem; height: .65rem; background: currentColor;
    -webkit-mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
    mask: url('../img/deco/fleche-courte-rouge.svg') no-repeat center / contain;
}
/* Le rendu du plugin tiers hérite de la typo du site et perd ses coins arrondis (aucun arrondi sur ce site) */
.reseau-flux { flex: 1 1 auto; font-family: var(--bs-body-font-family); }
.reseau-flux, .reseau-flux * { border-radius: 0 !important; }
.reseau-flux img { display: block; }
@media (max-width: 767px) {
    .case-reseau.sp-3 { grid-column: span 6; }
}
/* Titre des pages internes : dans la colonne principale, pas sur le conteneur entier (28/07 -> 29/07 remonté) */
.titre-page-interne {
    font-size: clamp(1.9rem, 3.4vw, 2.8rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.05;
    color: var(--tmp-encre);
    margin: 0 0 1.6rem;
}
