/*
Theme Name:   Un Coin Tranquille
Theme URI:    https://coffeeandquietcorners.org
Description:  Guides de ville par type de lieu calme (où se poser en voyage). Thème enfant GeneratePress. Prototype « Le Fichier » : catalogue de bibliothèque (tiroirs à porte-étiquette, fiches réglées perforées, cotes de rangement). Castoro + Gentium Book Plus + DM Mono ; papier d'archive, encre bleu-noir, un seul accent carmin.
Author:       Un Coin Tranquille
Template:     generatepress
Version:      1.0.0
Text Domain:  coffeeandquietcorners-fr
*/

/* ============================================================
   UN COIN TRANQUILLE - SYSTÈME DE DESIGN
   Prototype « Le Fichier » (catalogue de bibliothèque).
   Trois signatures, toutes en CSS pur, zéro image décorative :
   1. Tiroir de fichier : façade sombre + porte-étiquette clair + poignée.
   2. Fiche réglée perforée : filet carmin d'en-tête, réglure bleu-gris,
      trou de tringle en bas au centre.
   3. Cote de rangement : code de trois lettres par type de lieu (DM Mono).
   Un seul rayon (4px), un seul accent (carmin), animation = survol CSS
   + barre de progression ; tout se fige sous prefers-reduced-motion.
   ============================================================ */

:root{
  /* papier et surfaces */
  --papier:#E6E8E0;        /* fond de page : papier d'archive vert-gris pâle */
  --papier-fonce:#D9DCD2;  /* bandes claires teintées */
  --fiche:#F4F5EF;         /* carton de fiche */
  --reglure:rgba(64,92,128,.14);
  /* encre */
  --encre:#1B2232;         /* texte + bandes sombres */
  --encre-nuit:#121826;    /* pied de page */
  --encre-tiroir:#262E40;  /* façade de tiroir */
  --doux:#545E5C;          /* texte secondaire (AA sur papier) */
  --filet:#C6CBBF;
  --sur-encre:#E4E7DF;
  --sur-encre-doux:#A9B1BE;
  /* accent unique */
  --carmin:#B4162C; --carmin-fonce:#8E1022; --carmin-pale:#EBB8BF;

  --r:4px;
  --ombre:0 1px 0 rgba(27,34,50,.06), 0 10px 24px -14px rgba(27,34,50,.35);

  /* SIGNATURE 2 : réglure de fiche (lignes bleu-gris tous les 1.7rem) */
  --reglage:repeating-linear-gradient(180deg, transparent 0 calc(1.7rem - 1px), var(--reglure) calc(1.7rem - 1px) 1.7rem);

  --font-titre:'Castoro', 'Iowan Old Style', Georgia, serif;
  --font-texte:'Gentium Book Plus', 'Iowan Old Style', Georgia, serif;
  --font-cote:'DM Mono', 'Menlo', 'Consolas', monospace;

  --max-w:1240px; --max-w-narrow:720px;

  /* alias pour composants hérités */
  --color-primary:#B4162C; --color-bg:#E6E8E0; --color-ink:#1B2232; --color-line:#C6CBBF;
}

/* ============================================================ GLOBAL */
html{ scroll-behavior:smooth; }
body, .entry-content, .widget{
  font-family:var(--font-texte); color:var(--encre); background:var(--papier);
  font-size:18px; line-height:1.7;
}
body{ background:var(--papier); }
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-titre); font-weight:400; color:var(--encre);
  line-height:1.16; letter-spacing:-0.005em;
}
h1{ font-size:clamp(2.1rem,4.4vw,3.4rem); }
h2{ font-size:clamp(1.7rem,3vw,2.35rem); }
h3{ font-size:1.32rem; }
a{ color:var(--carmin-fonce); text-decoration:none; transition:color .18s; }
a:hover{ color:var(--carmin); }
p{ margin:0 0 1.1em; }
img{ max-width:100%; height:auto; }
figure{ margin:2em 0; }
figcaption{ font-family:var(--font-cote); font-size:.72rem; color:var(--doux); margin-top:.55rem; letter-spacing:.02em; }
em, i{ font-style:italic; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }

/* cote : code de rangement (DM Mono, petites majuscules) */
.uct-cote{
  display:inline-block; font-family:var(--font-cote); font-size:.7rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--carmin-fonce);
}
.uct-cote.sur-encre{ color:var(--carmin-pale); }

/* ligne de données RÉELLES : rubrique, date, durée de lecture */
.uct-meta{
  display:flex; flex-wrap:wrap; gap:.3rem .9rem; margin-top:.7rem;
  font-family:var(--font-cote); font-size:.68rem; letter-spacing:.04em; color:var(--doux);
}
.uct-meta b{ font-weight:500; color:var(--carmin-fonce); }
.uct-meta.sur-encre{ color:var(--sur-encre-doux); }
.uct-meta.sur-encre b{ color:var(--carmin-pale); }

/* champs de catalogue (ville / quartier / moment) : affichés seulement si renseignés */
.uct-champs{ list-style:none; margin:.8rem 0 0; padding:0; font-family:var(--font-cote); font-size:.72rem; color:var(--encre); }
.uct-champs li{ margin:0; padding:.18rem 0; display:flex; gap:.6rem; }
.uct-champs li span{ color:var(--doux); min-width:5.4rem; }
.uct-ville{ font-family:var(--font-cote); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--carmin-fonce); display:block; margin-bottom:.3rem; }

/* boutons : un accent, rayon unique */
.uct-btn{
  display:inline-block; background:var(--carmin); color:#FFF7F4; border:0; cursor:pointer;
  padding:.85rem 1.45rem; border-radius:var(--r); font-family:var(--font-cote); font-weight:500;
  font-size:.78rem; letter-spacing:.06em; white-space:nowrap;
  transition:background .18s, transform .18s;
}
.uct-btn:hover{ background:var(--carmin-fonce); color:#FFF7F4; }
.uct-btn:active{ transform:translateY(1px); }
.uct-btn.ligne{ background:transparent; color:var(--encre); box-shadow:inset 0 0 0 1px var(--encre); }
.uct-btn.ligne:hover{ background:var(--encre); color:var(--fiche); }
.uct-lire{
  display:inline-block; font-family:var(--font-cote); font-size:.74rem; color:var(--carmin-fonce);
  border-bottom:1px solid var(--carmin); padding-bottom:1px;
}

/* repli d'image : carton réglé, jamais de trou */
.uct-ph{
  display:block; width:100%; height:100%; min-height:180px;
  background-color:var(--fiche); background-image:var(--reglage);
}

/* SIGNATURE 2 : fiche réglée perforée */
.uct-fiche{
  position:relative; background-color:var(--fiche); background-image:var(--reglage);
  background-position:0 3.4rem; background-repeat:repeat;
  border-radius:var(--r); box-shadow:var(--ombre);
  padding:1.15rem 1.6rem 2.6rem;
}
.uct-fiche::before{ /* filet d'en-tête carmin */
  content:""; position:absolute; left:0; right:0; top:3rem; height:2px; background:var(--carmin); opacity:.75;
}
.uct-fiche::after{ /* trou de tringle */
  content:""; position:absolute; left:50%; bottom:.75rem; width:14px; height:14px; margin-left:-7px;
  border-radius:50%; background:var(--papier); box-shadow:inset 0 1px 2px rgba(27,34,50,.35);
}
.uct-fiche > *{ position:relative; }

/* barre de progression (CSS pur, scroll-driven si supporté) */
.uct-progress{
  position:fixed; top:0; left:0; right:0; height:3px; background:var(--carmin);
  transform-origin:0 50%; transform:scaleX(0); z-index:9990; pointer-events:none;
}
@supports (animation-timeline: scroll()){
  .uct-progress{ animation:uct-progress linear both; animation-timeline:scroll(root); }
}
@keyframes uct-progress{ to{ transform:scaleX(1); } }
@supports not (animation-timeline: scroll()){ .uct-progress{ display:none; } }

/* ============================================================ EN-TÊTE */
.uct-mast{ background:var(--papier); padding:1.5rem 0 1.1rem; }
.uct-mast-in{
  max-width:var(--max-w); margin:0 auto; padding:0 1.6rem;
  display:flex; align-items:flex-end; justify-content:space-between; gap:1.2rem; flex-wrap:wrap;
}
.uct-np{ display:flex; align-items:baseline; gap:.9rem; flex-wrap:wrap; }
.uct-np a.uct-np-nom{
  font-family:var(--font-titre); font-style:italic; font-size:clamp(1.75rem,3.3vw,2.5rem);
  color:var(--encre); line-height:1.1; padding-bottom:.08em;
}
.uct-np a.uct-np-nom:hover{ color:var(--carmin-fonce); }
.uct-np-tag{ font-family:var(--font-cote); font-size:.7rem; color:var(--doux); letter-spacing:.02em; }
.uct-mast-lien a{
  font-family:var(--font-cote); font-size:.74rem; color:var(--encre);
  border-bottom:1px solid var(--carmin); padding-bottom:1px;
}

/* navigation en onglets de guide (une ligne sur bureau) */
.uct-nav{ background:var(--papier); border-bottom:2px solid var(--encre); }
.uct-nav-in{ max-width:var(--max-w); margin:0 auto; padding:0 1.6rem; }
.uct-nav-menu{ list-style:none; margin:0; padding:0; display:flex; gap:4px; flex-wrap:nowrap; }
.uct-nav-menu li{ list-style:none; margin:0; padding:0; flex:1 1 auto; }
.uct-nav-menu li a{
  display:flex; align-items:baseline; justify-content:center; gap:.4rem; white-space:nowrap;
  padding:.6rem .55rem .5rem; background:var(--papier-fonce); color:var(--encre);
  border-radius:var(--r) var(--r) 0 0; font-family:var(--font-titre); font-size:.98rem;
  transition:background .15s, color .15s;
}
.uct-nav-menu li a small{ font-family:var(--font-cote); font-size:.62rem; letter-spacing:.1em; color:var(--carmin-fonce); }
.uct-nav-menu li a:hover, .uct-nav-menu li.current-menu-item > a{ background:var(--encre); color:var(--fiche); }
.uct-nav-menu li a:hover small, .uct-nav-menu li.current-menu-item > a small{ color:var(--carmin-pale); }
@media (max-width:1100px){
  .uct-nav-in{ padding:0; }
  .uct-nav-menu{ overflow-x:auto; scrollbar-width:none; padding:0 1rem; }
  .uct-nav-menu::-webkit-scrollbar{ display:none; }
  .uct-nav-menu li{ flex:0 0 auto; }
}

/* ============================================================ COQUE */
.uct-main{ display:block; width:100%; }
.uct-wrap{ max-width:var(--max-w); margin:0 auto; padding:0 1.6rem; }
.uct-sec{ padding:4.6rem 0; }
.uct-sec-head{ max-width:62ch; margin-bottom:2.2rem; }
.uct-sec-head h2{ margin:0; }
.uct-sec-head p{ color:var(--doux); margin:.65rem 0 0; font-size:1.02rem; }
.uct-sombre{ background:var(--encre); color:var(--sur-encre); }
.uct-sombre h2, .uct-sombre h3, .uct-sombre h4{ color:var(--fiche); }
.uct-sombre .uct-sec-head p{ color:var(--sur-encre-doux); }

/* ============================================================ 1. HÉRO : photo + fiche en débord */
.uct-hero{ padding:2.4rem 0 4rem; }
.uct-hero-in{ display:grid; grid-template-columns:7fr 5fr; align-items:center; }
.uct-hero-img{ grid-column:1 / 2; grid-row:1; margin:0; }
.uct-hero-img img, .uct-hero-img .uct-ph{
  width:100%; aspect-ratio:4/3; max-height:600px; object-fit:cover; border-radius:var(--r); display:block;
}
.uct-hero-fiche{ grid-column:2 / 3; grid-row:1; margin-left:-5.5rem; z-index:2; }
.uct-hero-fiche .uct-cote{ display:block; height:1.9rem; line-height:1.9rem; }
.uct-hero-fiche h1{ font-size:clamp(2rem,3.5vw,3rem); line-height:1.12; margin:1.15rem 0 .9rem; padding-bottom:.05em; }
.uct-hero-fiche h1 em{ color:var(--carmin-fonce); }
.uct-hero-fiche p{ font-size:1.06rem; line-height:1.7rem; margin:0 0 1.5rem; color:var(--encre); max-width:40ch; }

/* ============================================================ 2. LE FICHIER (huit tiroirs, bande sombre) */
.uct-fichier{ padding:4.6rem 0 5rem; }
.uct-tiroirs{ display:grid; grid-template-columns:repeat(4,1fr); gap:2.4rem 1.4rem; }
.uct-tiroir{ display:block; color:inherit; }
.uct-tiroir-fiche{ /* la fiche qui dépasse du tiroir */
  display:block; margin:0 .8rem; padding:.45rem .45rem 0; background:var(--fiche);
  border-radius:var(--r) var(--r) 0 0; transition:transform .25s ease;
}
.uct-tiroir-fiche img, .uct-tiroir-fiche .uct-ph{
  display:block; width:100%; aspect-ratio:4/3; object-fit:cover; min-height:0; border-radius:2px 2px 0 0;
}
.uct-tiroir:hover .uct-tiroir-fiche{ transform:translateY(-6px); }
.uct-tiroir-face{ /* SIGNATURE 1 : façade du tiroir */
  position:relative; display:block; background:var(--encre-tiroir); border-radius:var(--r);
  padding:1rem 1rem 2.1rem; box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 -1px 0 rgba(0,0,0,.4);
}
.uct-etiquette{ /* porte-étiquette */
  display:block; background:var(--fiche); color:var(--encre); border-radius:2px;
  padding:.55rem .7rem .6rem; box-shadow:inset 0 0 0 1px rgba(27,34,50,.25), 0 0 0 3px #3A4357;
}
.uct-etiquette .uct-cote{ font-size:.66rem; }
.uct-etiquette strong{ display:block; font-family:var(--font-titre); font-weight:400; font-size:1.08rem; line-height:1.2; margin-top:.15rem; }
.uct-tiroir-face::after{ /* poignée */
  content:""; position:absolute; left:50%; bottom:.75rem; width:46px; height:8px; margin-left:-23px;
  border-radius:var(--r); background:#3A4357; box-shadow:inset 0 2px 2px rgba(0,0,0,.45);
}
.uct-tiroir-note{ display:block; font-size:.92rem; color:var(--sur-encre-doux); line-height:1.45; margin-top:.7rem; }
.uct-tiroir-compte{ display:block; font-family:var(--font-cote); font-size:.66rem; color:var(--carmin-pale); margin-top:.35rem; }

/* ============================================================ 3. À LA UNE (texte gauche, image droite) */
.uct-une{ display:grid; grid-template-columns:5fr 7fr; gap:3rem; align-items:center; }
.uct-une-texte h3{ font-size:clamp(1.6rem,2.6vw,2.2rem); margin:.4rem 0 .9rem; }
.uct-une-texte h3 a{ color:var(--encre); }
.uct-une-texte h3 a:hover{ color:var(--carmin-fonce); }
.uct-une-texte p{ color:var(--doux); }
.uct-une-texte .uct-champs{ border-top:1px solid var(--filet); border-bottom:1px solid var(--filet); padding:.5rem 0; margin:1rem 0 1.2rem; }
.uct-une-img{ display:block; }
.uct-une-img img, .uct-une-img .uct-ph{ width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:var(--r); display:block; }

/* ============================================================ 4. MOSAÏQUE (big / tall / wide, sans trou) */
.uct-mos{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(150px,auto); gap:1.3rem; grid-auto-flow:dense; }
.uct-mi{ display:flex; flex-direction:column; color:inherit; background:var(--fiche); border-radius:var(--r); box-shadow:var(--ombre); overflow:hidden; }
.uct-mi-img{ display:block; position:relative; flex:1 1 auto; min-height:170px; overflow:hidden; }
.uct-mi-img img, .uct-mi-img .uct-ph{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; min-height:0; transition:transform .5s ease; }
.uct-mi:hover .uct-mi-img img{ transform:scale(1.03); }
.uct-mi-b{ padding:.9rem 1rem 1rem; border-top:2px solid var(--carmin); }
.uct-mi-b h3{ font-size:1.12rem; line-height:1.28; margin:0; color:var(--encre); }
.uct-mi:hover .uct-mi-b h3{ color:var(--carmin-fonce); }
.uct-mi .uct-ex{ display:block; font-size:.95rem; color:var(--doux); margin-top:.5rem; line-height:1.5; }
.uct-mi.grand{ grid-column:span 2; grid-row:span 2; }
.uct-mi.grand .uct-mi-b h3{ font-size:1.55rem; }
.uct-mi.haut{ grid-row:span 2; }
.uct-mi.large{ grid-column:span 2; }
.uct-plus{ margin-top:2.2rem; }

/* ============================================================ 5. CITATION (bande sombre) */
.uct-citation{ padding:4rem 0; }
.uct-citation blockquote{
  max-width:34ch; margin:0; font-family:var(--font-titre); font-style:italic;
  font-size:clamp(1.5rem,2.8vw,2.15rem); line-height:1.32; color:var(--fiche); padding:0; border:0;
}
.uct-citation .uct-sig{ display:block; margin-top:1.2rem; font-family:var(--font-cote); font-size:.74rem; color:var(--carmin-pale); }
.uct-citation-in{ display:grid; grid-template-columns:3fr 9fr; gap:2rem; align-items:start; }
.uct-citation-in .uct-cote{ padding-top:.8rem; border-top:2px solid var(--carmin); }

/* ============================================================ 6. CARTE DE LECTEUR (module auteur) */
.uct-lecteur{ background:var(--papier-fonce); }
.uct-lecteur-in{ display:grid; grid-template-columns:4fr 8fr; gap:0; align-items:stretch; }
.uct-lecteur figure{ margin:0; position:relative; min-height:400px; }
.uct-lecteur figure img, .uct-lecteur figure .uct-ph{ position:absolute; inset:0; width:100%; height:100%; min-height:0; object-fit:cover; border-radius:var(--r) 0 0 var(--r); display:block; }
.uct-lecteur .uct-fiche{ border-radius:0 var(--r) var(--r) 0; padding:1.15rem 2.2rem 2.8rem; }
.uct-lecteur .uct-fiche .uct-cote{ display:block; height:1.9rem; line-height:1.9rem; }
.uct-lecteur h2{ margin:1.2rem 0 .3rem; }
.uct-lecteur .uct-champs{ margin:.4rem 0 1rem; }
.uct-lecteur p{ line-height:1.7rem; max-width:60ch; }

/* ============================================================ 7. PAR TYPE DE LIEU (bande sombre, onglets) */
.uct-types{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.uct-type{ display:block; color:inherit; }
.uct-type-onglet{
  display:inline-block; background:var(--fiche); color:var(--encre); border-radius:var(--r) var(--r) 0 0;
  padding:.35rem .8rem .25rem; font-family:var(--font-titre); font-size:.95rem;
}
.uct-type-onglet .uct-cote{ font-size:.6rem; margin-right:.35rem; }
.uct-type-img{ display:block; border-top:3px solid var(--fiche); }
.uct-type-img img, .uct-type-img .uct-ph{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; border-radius:0 0 var(--r) var(--r); min-height:0; }
.uct-type h4{ font-size:1.12rem; line-height:1.3; margin:.8rem 0 0; color:var(--fiche); }
.uct-type:hover h4{ color:var(--carmin-pale); }

/* ============================================================ 8. ENGAGEMENTS (rangée, pas de cartes) */
.uct-engagements{ padding:3.6rem 0; border-bottom:1px solid var(--filet); }
.uct-eng-in{ display:grid; grid-template-columns:3fr 9fr; gap:2rem; }
.uct-eng-in h2{ font-size:1.6rem; margin:0; }
.uct-egrid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1.2fr 1fr 1fr; }
.uct-egrid li{ margin:0; padding:0 1.4rem; border-left:1px solid var(--filet); }
.uct-egrid strong{ display:block; font-family:var(--font-titre); font-weight:400; font-size:1.15rem; }
.uct-egrid p{ font-size:.95rem; color:var(--doux); margin:.4rem 0 .6rem; line-height:1.55; }

/* ============================================================ 9. LA LETTRE */
.uct-lettre{ display:grid; grid-template-columns:1fr 1fr; background:var(--fiche); }
.uct-lettre-img{ position:relative; min-height:380px; }
.uct-lettre-img img, .uct-lettre-img .uct-ph{ position:absolute; inset:0; width:100%; height:100%; min-height:0; object-fit:cover; display:block; }
.uct-lettre-corps{ padding:3.6rem 3rem; max-width:560px; }
.uct-lettre-corps h2{ margin:0 0 .6rem; }
.uct-lettre-corps p{ color:var(--doux); }
.uct-form{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.3rem; }
.uct-form label{ display:block; width:100%; font-family:var(--font-cote); font-size:.72rem; color:var(--encre); }
.uct-form input[type=email]{
  flex:1 1 220px; min-width:0; padding:.8rem .9rem; border:1px solid #8C948F; border-radius:var(--r);
  background:#FFFFFF; color:var(--encre); font-family:var(--font-texte); font-size:1rem;
}
.uct-form input[type=email]::placeholder{ color:#5E6664; }
.uct-form input[type=email]:focus{ outline:2px solid var(--carmin); outline-offset:1px; }
.uct-note{ font-size:.85rem; color:var(--doux); margin-top:.8rem; }

/* ============================================================ PIED DE PAGE */
.site-footer.uct-pied{ background:var(--encre-nuit); color:var(--sur-encre-doux); padding:4rem 0 0; }
.uct-pied-in{ max-width:var(--max-w); margin:0 auto; padding:0 1.6rem 2.6rem; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.2rem; }
.uct-pied-marque{ font-family:var(--font-titre); font-style:italic; font-size:1.65rem; color:var(--fiche); }
.uct-pied-blurb{ font-size:.95rem; line-height:1.6; margin:.7rem 0 0; color:var(--sur-encre-doux); }
.uct-pied h5{ font-family:var(--font-cote); font-weight:500; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--carmin-pale); margin:0 0 .9rem; }
.uct-pied ul{ list-style:none; margin:0; padding:0; }
.uct-pied li{ margin:0 0 .45rem; }
.uct-pied a{ color:var(--sur-encre); font-size:.95rem; }
.uct-pied a:hover{ color:var(--carmin-pale); }
.uct-pied-rgpd{
  max-width:var(--max-w); margin:0 auto; padding:1.2rem 1.6rem 1.6rem; border-top:1px solid rgba(228,231,223,.14);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--font-cote); font-size:.7rem;
}
.uct-pied-rgpd a{ font-size:.7rem; text-decoration:underline; text-underline-offset:2px; }

/* ============================================================ ARTICLE */
.uct-article-tete{ max-width:var(--max-w-narrow); margin:2.6rem auto 1.4rem; padding:0 1.6rem; }
.uct-ariane{ font-family:var(--font-cote); font-size:.7rem; color:var(--doux); margin-bottom:1rem; }
.uct-ariane a{ color:var(--doux); border-bottom:1px solid var(--filet); }
.uct-article-tete h1{ font-size:clamp(2rem,3.9vw,2.9rem); line-height:1.14; margin:.5rem 0 .9rem; padding-bottom:.05em; }
.uct-article-tete .uct-champs{ display:flex; flex-wrap:wrap; gap:.2rem 1.4rem; border-top:1px solid var(--filet); border-bottom:1px solid var(--filet); padding:.55rem 0; }
.uct-article-tete .uct-champs li span{ min-width:0; }
.uct-article-couv{ max-width:1100px; margin:1.6rem auto 2.6rem; padding:0 1.6rem; }
.uct-article-couv img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--r); display:block; }
.single .entry-content, .page .entry-content{ max-width:var(--max-w-narrow); margin:0 auto; padding:0 1.6rem; font-size:1.08rem; line-height:1.78; }
.single .entry-content h2{ font-size:1.75rem; margin:2.4rem 0 .8rem; }
.single .entry-content h3{ font-size:1.32rem; margin:2rem 0 .6rem; }
.single .entry-content a{ text-decoration:underline; text-decoration-color:var(--carmin); text-underline-offset:3px; }
.single .entry-content blockquote{
  margin:2rem 0; padding:.2rem 0 .2rem 1.3rem; border-left:2px solid var(--carmin);
  font-family:var(--font-titre); font-style:italic; font-size:1.3rem; line-height:1.45; color:var(--encre);
}
.entry-content img{ border-radius:var(--r); }
.ftc-disclosure{
  background:var(--fiche); border-left:3px solid var(--carmin); border-radius:var(--r);
  padding:.8rem 1rem; margin:0 0 1.8rem; font-size:.94rem; color:var(--doux);
}
.ftc-disclosure p{ margin:0; }
.ftc-disclosure a{ color:var(--carmin-fonce); text-decoration:underline; }

.uct-signe{ max-width:var(--max-w-narrow); margin:3rem auto 0; padding:0 1.6rem; }
.uct-signe .uct-fiche{ padding:1.15rem 1.6rem 2.6rem; }
.uct-signe .uct-cote{ display:block; height:1.9rem; line-height:1.9rem; }
.uct-signe h4{ margin:1.1rem 0 .4rem; font-size:1.35rem; }
.uct-signe p{ font-size:.98rem; line-height:1.7rem; color:var(--encre); margin:0 0 .6rem; }

.uct-lies{ max-width:var(--max-w); margin:4.2rem auto 3rem; padding:0 1.6rem; }
.uct-lies h3{ font-size:1.5rem; margin:0 0 1.4rem; }
.uct-lies-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:1.4rem; }
.uct-lie{ display:block; color:inherit; }
.uct-lie-img img, .uct-lie-img .uct-ph{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r); display:block; min-height:0; }
.uct-lie h4{ font-size:1.15rem; line-height:1.3; margin:.7rem 0 0; }
.uct-lie:hover h4{ color:var(--carmin-fonce); }

.uct-post-lettre{ background:var(--papier-fonce); padding:3.4rem 0; }
.uct-post-lettre-in{ max-width:var(--max-w-narrow); margin:0 auto; padding:0 1.6rem; }
.uct-post-lettre h3{ margin:0 0 .5rem; font-size:1.6rem; }

/* ============================================================ ARCHIVE */
.uct-archive-tete{ padding:3rem 0 2.4rem; border-bottom:2px solid var(--encre); }
.uct-archive-tete .uct-onglet{
  display:inline-flex; gap:.5rem; align-items:baseline; background:var(--encre); color:var(--fiche);
  border-radius:var(--r) var(--r) 0 0; padding:.4rem .9rem .3rem; font-family:var(--font-cote); font-size:.7rem;
}
.uct-archive-tete .uct-onglet .uct-cote{ color:var(--carmin-pale); }
.uct-archive-tete h1{ margin:.9rem 0 .5rem; }
.uct-archive-tete p{ color:var(--doux); max-width:62ch; margin:0; }
.uct-archive-une{ padding:3rem 0 1rem; }
.uct-archive-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem 1.5rem; padding:2rem 0 1rem; }
.uct-carte{ display:block; color:inherit; }
.uct-carte-img img, .uct-carte-img .uct-ph{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r) var(--r) 0 0; display:block; min-height:0; }
.uct-carte .uct-fiche{ border-radius:0 0 var(--r) var(--r); padding:1rem 1.2rem 2.4rem; }
.uct-carte .uct-fiche::before{ top:0; height:2px; }
.uct-carte h3{ font-size:1.2rem; line-height:1.28; margin:.2rem 0 .4rem; }
.uct-carte:hover h3{ color:var(--carmin-fonce); }
.uct-carte p{ font-size:.95rem; color:var(--doux); margin:0; line-height:1.7rem; }
.uct-vide{ padding:3rem 0; color:var(--doux); }
.uct-pagination{ padding:1rem 0 4rem; font-family:var(--font-cote); font-size:.8rem; }
.uct-pagination .nav-links{ display:flex; gap:.5rem; flex-wrap:wrap; }
.uct-pagination .page-numbers{ padding:.45rem .75rem; border-radius:var(--r); background:var(--fiche); color:var(--encre); }
.uct-pagination .page-numbers.current{ background:var(--encre); color:var(--fiche); }

/* ============================================================
   PAGES DE CONFIANCE : traitement « Registre » (préfixe uct-registre)
   Fiche de catalogue en tête (cote + filet carmin + trou de tringle),
   corps à gauche, sommaire en onglets de guide collé à droite,
   bloc d'identité en fiche dactylographiée, renvois en porte-étiquettes.
   ============================================================ */
.uct-registre{ max-width:1080px; margin:0 auto; padding:2.6rem 1.6rem 4rem; }
.uct-registre-tete.uct-fiche{ padding:1.15rem 2rem 3rem; }
.uct-registre-tete .uct-registre-cote{ display:flex; justify-content:space-between; gap:1rem; height:1.9rem; line-height:1.9rem; font-family:var(--font-cote); font-size:.7rem; color:var(--carmin-fonce); letter-spacing:.1em; text-transform:uppercase; }
.uct-registre-tete h1{ margin:1.3rem 0 .4rem; font-size:clamp(2rem,4vw,3rem); padding-bottom:.05em; }
.uct-registre-maj{ font-family:var(--font-cote); font-size:.74rem; color:var(--doux); margin:0; line-height:1.7rem; }
.uct-registre-grille{ display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:3rem; margin-top:2.6rem; align-items:start; }
.uct-registre-sommaire{ position:sticky; top:1.4rem; grid-column:2; grid-row:1; }
.uct-registre-sommaire > span{ display:block; font-family:var(--font-cote); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--doux); margin-bottom:.6rem; }
.uct-registre-sommaire ol{ list-style:none; margin:0; padding:0; counter-reset:onglet; }
.uct-registre-sommaire li{ margin:0 0 4px; counter-increment:onglet; }
.uct-registre-sommaire a{
  display:flex; gap:.6rem; align-items:baseline; padding:.5rem .8rem; background:var(--papier-fonce);
  border-radius:0 var(--r) var(--r) 0; border-left:3px solid var(--encre); color:var(--encre); font-size:.92rem; line-height:1.35;
  transition:background .15s, border-color .15s;
}
.uct-registre-sommaire a::before{ content:counter(onglet, upper-alpha); font-family:var(--font-cote); font-size:.66rem; color:var(--carmin-fonce); }
.uct-registre-sommaire a:hover{ background:var(--fiche); border-left-color:var(--carmin); }
.uct-registre-corps{ grid-column:1; grid-row:1; font-size:1.04rem; line-height:1.78; min-width:0; }
.uct-registre-corps h2{ font-size:1.5rem; margin:2.4rem 0 .7rem; padding-top:.7rem; border-top:1px solid var(--filet); scroll-margin-top:1.4rem; }
.uct-registre-corps h2:first-child{ margin-top:0; }
.uct-registre-corps h3{ font-size:1.18rem; margin:1.6rem 0 .5rem; }
.uct-registre-corps ul, .uct-registre-corps ol{ padding-left:1.3rem; margin:0 0 1.1rem; }
.uct-registre-corps li{ margin-bottom:.35rem; }
.uct-registre-corps a{ text-decoration:underline; text-decoration-color:var(--carmin); text-underline-offset:3px; }
/* bloc d'identité : fiche dactylographiée (Raison sociale, Siège...) */
.uct-registre-corps > p:has(> strong:first-child){
  position:relative; background-color:var(--fiche); background-image:var(--reglage);
  border-radius:var(--r); box-shadow:var(--ombre); border-left:4px solid var(--carmin);
  font-family:var(--font-cote); font-size:.86rem; line-height:1.7rem; padding:.9rem 1.4rem 1rem; margin:0 0 1.4rem;
}
.uct-registre-corps > p > strong:first-child{ font-weight:500; color:var(--carmin-fonce); }
.uct-registre-corps table{ width:100%; border-collapse:collapse; font-size:.95rem; margin:0 0 1.4rem; }
.uct-registre-corps th, .uct-registre-corps td{ text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--filet); vertical-align:top; }
.uct-registre-corps th{ font-family:var(--font-cote); font-weight:500; font-size:.74rem; color:var(--doux); }
.uct-registre-pied{ margin-top:3.6rem; padding-top:1.8rem; border-top:2px solid var(--encre); }
.uct-registre-pied h2{ font-size:1.35rem; margin:0 0 1.1rem; }
.uct-registre-liens{ display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.uct-registre-lien{
  display:block; background:var(--encre-tiroir); border-radius:var(--r); padding:.6rem .6rem 1.1rem; position:relative; color:var(--encre);
}
.uct-registre-lien span{ display:block; background:var(--fiche); border-radius:2px; padding:.45rem .6rem; box-shadow:0 0 0 2px #3A4357; font-size:.93rem; line-height:1.3; }
.uct-registre-lien::after{ content:""; position:absolute; left:50%; bottom:.4rem; width:28px; height:4px; margin-left:-14px; border-radius:2px; background:#3A4357; }
.uct-registre-lien:hover span{ background:#FFFFFF; color:var(--carmin-fonce); }
.uct-registre-note{ margin:1.4rem 0 0; font-size:.95rem; color:var(--doux); }

/* ============================================================ RESPONSIVE */
@media (max-width:1024px){
  .uct-tiroirs{ grid-template-columns:repeat(2,1fr); }
  .uct-types{ grid-template-columns:repeat(2,1fr); }
  .uct-mos{ grid-template-columns:repeat(2,1fr); }
  .uct-pied-in{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .uct-hero-in{ grid-template-columns:1fr; }
  .uct-hero-img{ grid-column:1; grid-row:1; }
  .uct-hero-fiche{ grid-column:1; grid-row:2; margin:-3rem 1rem 0; }
  .uct-une, .uct-lecteur-in, .uct-citation-in, .uct-eng-in, .uct-lettre{ grid-template-columns:1fr; }
  .uct-une{ gap:1.6rem; }
  .uct-une-img{ grid-row:1; }
  .uct-lecteur figure{ min-height:0; aspect-ratio:4/3; }
  .uct-lecteur figure img, .uct-lecteur figure .uct-ph{ border-radius:var(--r) var(--r) 0 0; }
  .uct-lecteur .uct-fiche{ border-radius:0 0 var(--r) var(--r); padding:1.15rem 1.3rem 2.8rem; }
  .uct-egrid{ grid-template-columns:1fr; gap:1.2rem; }
  .uct-egrid li{ padding:0 0 0 1rem; }
  .uct-lettre-img{ min-height:0; aspect-ratio:16/9; }
  .uct-lettre-corps{ padding:2.4rem 1.2rem; }
  .uct-archive-grid, .uct-lies-grid{ grid-template-columns:1fr 1fr; }
  .uct-registre-grille{ grid-template-columns:1fr; gap:1.6rem; }
  .uct-registre-sommaire{ position:static; grid-column:1; grid-row:1; }
  .uct-registre-corps{ grid-row:2; }
  .uct-registre-liens{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  body{ font-size:17px; }
  .uct-wrap, .uct-mast-in{ padding:0 1rem; }
  .uct-sec, .uct-fichier{ padding:3.2rem 0; }
  .uct-tiroirs{ grid-template-columns:1fr 1fr; gap:1.6rem .8rem; }
  .uct-tiroir-fiche{ margin:0 .4rem; }
  .uct-tiroir-note{ display:none; }
  .uct-etiquette strong{ font-size:.95rem; }
  .uct-mos{ grid-template-columns:1fr; }
  .uct-mi.grand, .uct-mi.large{ grid-column:auto; }
  .uct-mi.grand, .uct-mi.haut{ grid-row:auto; }
  .uct-mi-img{ min-height:0; aspect-ratio:4/3; flex:none; }
  .uct-types{ grid-template-columns:1fr 1fr; gap:1.2rem .8rem; }
  .uct-type-onglet{ font-size:.82rem; padding:.3rem .5rem .2rem; }
  .uct-archive-grid, .uct-lies-grid{ grid-template-columns:1fr; }
  .uct-pied-in{ grid-template-columns:1fr; padding:0 1rem 2rem; }
  .uct-registre{ padding:1.8rem 1rem 3rem; }
  .uct-registre-tete.uct-fiche{ padding:1.15rem 1.2rem 3rem; }
  .uct-registre-liens{ grid-template-columns:1fr; }
  .uct-hero-fiche{ margin:-2.4rem .6rem 0; }
  .uct-fiche{ padding-left:1.15rem; padding-right:1.15rem; }
}

/* ============================================================
   BANDEAU COOKIES : tiroir vertical collé au bord gauche
   Étroit et haut, boutons empilés, en bas de la moitié gauche.
   (tarteaucitron injecte son CSS après le nôtre -> !important)
   On ne force JAMAIS display : la lib masque/affiche #tarteaucitronAlertBig en ligne.
   ============================================================ */
#tarteaucitronRoot #tarteaucitronAlertBig{
  position:fixed !important; left:0 !important; right:auto !important; top:auto !important; bottom:9vh !important;
  transform:none !important; margin:0 !important;
  width:236px !important; max-width:calc(100vw - 24px) !important; min-width:0 !important; box-sizing:border-box !important;
  max-height:calc(100vh - 24px) !important; overflow-y:auto !important;
  background-color:var(--fiche) !important; background-image:var(--reglage) !important; background-position:0 3.1rem !important;
  color:var(--encre) !important;
  border:0 !important; border-left:6px solid var(--carmin) !important; border-radius:0 var(--r) var(--r) 0 !important;
  box-shadow:0 18px 40px -16px rgba(27,34,50,.55), 0 0 0 1px rgba(27,34,50,.12) !important;
  padding:0 16px 18px 16px !important; text-align:left !important;
  font-family:var(--font-texte) !important; line-height:1.45 !important; z-index:2147483640 !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig::before{
  content:"Avant de vous asseoir"; display:block; height:3.1rem; line-height:3.3rem; margin:0 0 .6rem;
  border-bottom:2px solid rgba(180,22,44,.7);
  font-family:var(--font-cote); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--carmin-fonce);
}
#tarteaucitronRoot #tarteaucitronDisclaimerAlert,
#tarteaucitronRoot #tarteaucitronDisclaimerAlert *{
  color:var(--encre) !important; font-size:.9rem !important; line-height:1.45 !important;
  text-align:left !important; font-family:var(--font-texte) !important;
}
#tarteaucitronRoot #tarteaucitronDisclaimerAlert{ display:block !important; margin:0 0 14px !important; padding:0 !important; }
#tarteaucitronRoot #tarteaucitronAlertBig br{ display:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCross{ display:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig button{
  display:block !important; width:100% !important; box-sizing:border-box !important;
  margin:0 0 7px !important; padding:9px 12px !important; border-radius:var(--r) !important;
  font-family:var(--font-cote) !important; font-size:.76rem !important; font-weight:500 !important; line-height:1.25 !important;
  letter-spacing:.02em !important; text-transform:none !important; text-align:left !important; cursor:pointer !important;
  border:0 !important; background:transparent !important; color:var(--encre) !important;
  box-shadow:inset 0 0 0 1px rgba(27,34,50,.55) !important; white-space:normal !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2{ background:var(--carmin) !important; color:#FFF7F4 !important; box-shadow:none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover{ background:var(--carmin-fonce) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover{ background:var(--papier) !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl{
  box-shadow:none !important; padding:6px 0 0 !important; margin:4px 0 0 !important; color:var(--doux) !important;
  font-family:var(--font-cote) !important; font-size:.72rem !important; font-weight:400 !important; line-height:1.3 !important;
  text-decoration:underline !important; text-underline-offset:3px !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover{ color:var(--carmin-fonce) !important; }

/* bouton de réouverture : languette verticale au bord gauche, à mi-hauteur (texte lu de bas en haut, étroite pour ne pas couvrir le texte) */
#tarteaucitronIcon{
  left:0 !important; right:auto !important; top:50% !important; bottom:auto !important;
  transform:translateY(-50%) !important; width:auto !important; height:auto !important;
}
#tarteaucitronIcon #tarteaucitronManager img{ display:none !important; }
#tarteaucitronIcon #tarteaucitronManager{
  width:auto !important; height:auto !important; padding:12px 7px 12px 6px !important; line-height:1 !important;
  writing-mode:vertical-rl !important; transform:rotate(180deg) !important;
  background:var(--encre) !important; border:0 !important; border-right:4px solid var(--carmin) !important;
  border-radius:var(--r) 0 0 var(--r) !important; box-shadow:var(--ombre) !important;
}
#tarteaucitronIcon #tarteaucitronManager::after{
  content:"Revoir les cookies"; font-family:var(--font-cote); font-size:.7rem; font-weight:500; color:var(--fiche);
}

/* ============================================================ MOUVEMENT RÉDUIT */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ transition:none !important; animation:none !important; }
  .uct-progress{ display:none; }
  .uct-tiroir:hover .uct-tiroir-fiche, .uct-mi:hover .uct-mi-img img{ transform:none; }
}

/* tiroir cookies sur téléphone : plus étroit, plus bas, le titre du héros reste lisible */
@media (max-width:600px){
  #tarteaucitronRoot #tarteaucitronAlertBig{ width:208px !important; bottom:12px !important; padding:0 12px 12px 12px !important; }
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert,
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert *{ font-size:.84rem !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig button{ padding:8px 10px !important; font-size:.72rem !important; }
  .uct-tiroir{ display:flex; flex-direction:column; }
  .uct-tiroir-face{ flex:1 1 auto; }
}

/* le corps du registre ne prend pas la largeur étroite des articles */
.page .uct-registre-corps.entry-content{ max-width:none; margin:0; padding:0; font-size:1.04rem; }
.uct-registre-main{ display:block; }
