/* ==========================================================================
   Milliema, feuille de style unique
   Univers : plan de division de lotissement posé à plat, papier crème,
   quadrillage cadastral, double filet d'arpentage, perforations de pellicule.
   Vocabulaire des classes : plan, parcelle, ilot, borne, filet, cartouche,
   contenance, releve, perfos, onde.
   ========================================================================== */

:root {
  --papier: #FAF6EF;
  --papier-calque: #F1EADD;
  --feuille: #FFFFFF;
  --encre: #22201C;
  --encre-douce: #5A5348;
  --carmin: #A3164B;
  --carmin-fonce: #8A0F3F;
  --carmin-clair: rgba(163, 22, 75, 0.10);
  --ardoise: #2E4A5A;
  --ardoise-clair: rgba(46, 74, 90, 0.12);
  --olive: #D3CCBB;
  --olive-trait: rgba(211, 204, 187, 0.55);
  --olive-trame: rgba(155, 145, 118, 0.22);
  --olive-trame-douce: rgba(155, 145, 118, 0.08);

  --titre: "Teko", "Oswald", "Arial Narrow", sans-serif;
  --courant: "Fira Sans", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --juridique: "Cardo", "Iowan Old Style", Georgia, "Times New Roman", serif;

  --colonne: 1180px;
  --gouttiere: 28px;
  --rang: 72px;
  --entete-h: 72px;
  --courbe: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Assises */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 96px; }

body {
  margin: 0;
  background-color: var(--papier);
  color: var(--encre);
  font-family: var(--courant);
  font-size: 1.0625rem;
  line-height: 1.65;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  font-family: var(--titre);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 0.95;
  color: var(--ardoise);
  margin: 0 0 0.5em;
}

h1 { font-size: 4.2rem; color: var(--encre); }
h2 { font-size: 2.9rem; }
h3 { font-size: 1.7rem; font-weight: 500; }
h4 { font-size: 1.28rem; font-weight: 500; }

p { margin: 0 0 1.05em; max-width: 68ch; }

a { color: var(--carmin); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--carmin-fonce); }

ul { margin: 0 0 1.05em; padding-left: 1.15em; }
li { margin-bottom: 0.35em; }

strong { font-weight: 600; }

:focus-visible {
  outline: 2px solid var(--ardoise);
  outline-offset: 3px;
}

.evite {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ardoise);
  color: #FFFFFF;
  padding: 12px 20px;
  z-index: 90;
  font-weight: 600;
}
.evite:focus { left: 12px; top: 12px; }

.hors-vue {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Trame de fond, cartouches, filets, surtitres */

.tenue {
  width: min(100% - 2 * var(--gouttiere), var(--colonne));
  margin-inline: auto;
}

.surtitre {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.95rem;
  font-variant: small-caps;
  letter-spacing: 0.12em;
  color: var(--carmin);
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
}
.surtitre::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--olive);
  flex: 0 0 24px;
}

.chapeau {
  font-size: 1.15rem;
  color: var(--encre-douce);
  max-width: 62ch;
}

.note-texte {
  font-family: var(--juridique);
  font-size: 0.98rem;
  color: var(--encre-douce);
  border-top: 1px solid var(--olive);
  padding-top: 12px;
  margin-top: 26px;
  max-width: 70ch;
}
.note-texte em { font-style: italic; }

/* Cartouche d'arpentage : double filet ardoise et olive, coin ouvert */
.cartouche {
  position: relative;
  background: var(--feuille);
  border: 1px solid var(--olive);
  padding: 30px 28px 28px;
}
.cartouche::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
}
.cartouche::after {
  content: "";
  position: absolute;
  top: -1px;
  left: 12px;
  width: 14px;
  height: 5px;
  background: var(--feuille);
}
.cartouche-calque { background: var(--papier); }
.cartouche-calque::after { background: var(--papier); }

.etiquette-lot {
  position: absolute;
  top: -12px;
  left: 26px;
  background: var(--papier);
  padding: 0 8px;
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  color: var(--ardoise);
  text-transform: uppercase;
}
.cartouche .etiquette-lot { background: var(--feuille); }
.cartouche-calque .etiquette-lot { background: var(--papier); }

/* Motif signature : perforations de pellicule sur les bords */
.perfos { position: relative; }
.perfos::before,
.perfos::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22px;
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 0 6px,
      var(--olive) 6px 7px,
      transparent 7px 16px,
      var(--olive) 16px 17px,
      transparent 17px 24px),
    repeating-linear-gradient(to right,
      var(--olive) 0 1px,
      transparent 1px 7px,
      var(--olive) 7px 8px);
  background-size: 8px 24px, 8px 24px;
  background-position: center top;
  background-repeat: repeat-y;
  opacity: 0.85;
  pointer-events: none;
}
.perfos::before { left: 0; }
.perfos::after { right: 0; }

/* Boutons et onde circulaire */

.bouton {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--courant);
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: 0.03em;
  padding: 14px 26px;
  border-radius: 0;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.bouton-carmin {
  background: var(--carmin);
  color: #FFFFFF;
  box-shadow: inset 0 0 0 1px rgba(250, 246, 239, 0.45);
  box-shadow: inset 0 0 0 1px rgba(250, 246, 239, 0.45), inset 0 0 0 3px var(--carmin);
}
.bouton-carmin:hover,
.bouton-carmin:focus-visible {
  background: var(--carmin-fonce);
  color: #FFFFFF;
  box-shadow: inset 0 0 0 1px rgba(250, 246, 239, 0.95), inset 0 0 0 3px var(--carmin-fonce);
}

.bouton-filet {
  background: transparent;
  color: var(--ardoise);
  border: 1px solid var(--ardoise);
  box-shadow: inset 0 0 0 3px var(--papier), inset 0 0 0 4px var(--olive);
}
.bouton-filet:hover,
.bouton-filet:focus-visible {
  background: var(--papier-calque);
  color: var(--carmin);
  box-shadow: inset 0 0 0 3px var(--papier-calque), inset 0 0 0 4px var(--olive);
}

.bouton-large { width: 100%; }

.onde {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  animation: onde-arpente 520ms var(--courbe);
  pointer-events: none;
  background: rgba(250, 246, 239, 0.55);
}
.onde-secondaire { background: rgba(163, 22, 75, 0.18); }
.onde-olive { background: rgba(211, 204, 187, 0.55); }

@keyframes onde-arpente {
  to { transform: scale(1); opacity: 0; }
}

/* En tete */

.entete-plan {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--entete-h);
  background: rgba(250, 246, 239, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--ardoise);
  box-shadow: 0 1px 0 0 var(--papier), 0 2px 0 0 var(--olive);
  z-index: 60;
  transition: height 180ms ease, box-shadow 180ms ease;
}
.entete-plan.entete-serree {
  height: 58px;
  box-shadow: none;
}

.rang-entete {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.logotype {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--ardoise);
}
.logotype svg { display: block; flex: 0 0 auto; }
.marque {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 1.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
}

.nav-parcelles {
  display: flex;
  align-items: center;
  gap: 22px;
}
.nav-lien {
  font-size: 0.9375rem;
  color: var(--encre);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.nav-lien:hover,
.nav-lien:focus-visible { color: var(--carmin); border-bottom-color: var(--carmin); }

.entete-action { display: flex; align-items: center; gap: 14px; }
.entete-action .bouton { padding: 10px 20px; }

.bouton-menu {
  display: none;
  background: transparent;
  border: 1px solid var(--ardoise);
  color: var(--ardoise);
  font-family: var(--courant);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 9px 14px;
  cursor: pointer;
}

.panneau-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(88vw, 400px);
  background: var(--papier);
  border-left: 1px solid var(--ardoise);
  padding: 26px 26px 40px;
  transform: translateX(102%);
  transition: transform 280ms var(--courbe);
  z-index: 80;
  overflow-y: auto;
}
.panneau-nav[data-ouvert="oui"] { transform: translateX(0); }
.panneau-nav .nav-lien {
  display: block;
  padding: 16px 0;
  border-bottom: 1px solid var(--olive);
  font-size: 1.05rem;
}
.panneau-tete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.bouton-fermer {
  background: transparent;
  border: 1px solid var(--olive);
  color: var(--ardoise);
  font-family: var(--courant);
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 8px 12px;
  cursor: pointer;
}
.voile-nav {
  position: fixed;
  inset: 0;
  background: rgba(34, 32, 28, 0.42);
  opacity: 0;
  visibility: hidden;
  transition: opacity 240ms ease, visibility 240ms ease;
  z-index: 70;
}
.voile-nav[data-ouvert="oui"] { opacity: 1; visibility: visible; }

/* Hero, plan quadrillé de type cadastre */

.plan-hero {
  position: relative;
  padding-top: calc(var(--entete-h) + 46px);
  padding-bottom: 40px;
  background: var(--papier);
  overflow: hidden;
}

.grille-cadastre {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: minmax(var(--rang), auto);
  border-left: 1px solid var(--olive-trame);
  border-top: 1px solid var(--olive-trame);
}
.grille-cadastre::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(to right, var(--olive-trame) 0 1px, transparent 1px calc(100% / 12)),
    repeating-linear-gradient(to bottom, var(--olive-trame) 0 1px, transparent 1px var(--rang));
  background-size: calc(100% / 12 * 12) 100%, 100% 100%;
  pointer-events: none;
}
.grille-cadastre > * { position: relative; z-index: 1; }

.cellule-titre {
  grid-column: 1 / 8;
  grid-row: 1 / 5;
  padding: 26px 34px 26px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cellule-actions {
  grid-column: 1 / 8;
  grid-row: 5 / 6;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-right: 24px;
}
.cellule-reassurance {
  grid-column: 1 / 8;
  grid-row: 6 / 8;
  padding: 20px 24px 20px 0;
}
.cellule-photo {
  grid-column: 8 / 13;
  grid-row: 1 / 7;
  padding: 14px 0 14px 14px;
  display: flex;
  align-items: stretch;
}
.repere-lot {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  color: var(--encre-douce);
  text-transform: uppercase;
  display: flex;
  align-items: flex-end;
  padding: 6px 8px;
}
.repere-a { grid-column: 8 / 10; grid-row: 7 / 8; }
.repere-b { grid-column: 10 / 12; grid-row: 7 / 8; color: var(--carmin); }
.repere-c { grid-column: 12 / 13; grid-row: 7 / 8; background: var(--carmin-clair); }

.hero-titre {
  margin-bottom: 18px;
  max-width: 20ch;
  font-size: clamp(2.7rem, 4.6vw, 4.2rem);
}
.hero-titre .ligne-carmin { color: var(--carmin); display: block; }

.reassurance {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
  border-top: 1px solid var(--ardoise);
  padding-top: 16px;
}
.reassurance div { min-width: 150px; }
.reassurance b {
  display: block;
  font-family: var(--titre);
  font-weight: 600;
  font-size: 2.1rem;
  line-height: 1;
  color: var(--ardoise);
  letter-spacing: 0.02em;
}
.reassurance span {
  font-size: 0.875rem;
  color: var(--encre-douce);
  display: block;
  max-width: 24ch;
}

/* Photographie arpentée : cadre strict, double filet, perforations */
.photo-arpentee {
  position: relative;
  border: 1px solid var(--olive);
  padding: 14px 0;
  background: var(--papier);
  width: 100%;
}
.photo-arpentee::before,
.photo-arpentee::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 14px;
  background-image:
    repeating-linear-gradient(to right,
      transparent 0 5px,
      var(--olive) 5px 6px,
      transparent 6px 12px,
      var(--olive) 12px 13px,
      transparent 13px 18px),
    repeating-linear-gradient(to bottom,
      var(--olive) 0 1px,
      transparent 1px 7px,
      var(--olive) 7px 8px);
  background-size: 18px 8px, 18px 8px;
  background-position: left center;
  background-repeat: repeat-x;
  pointer-events: none;
}
.photo-arpentee::before { top: 3px; }
.photo-arpentee::after { bottom: 3px; }
.photo-arpentee img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.85) contrast(1.02);
  border-top: 1px solid var(--ardoise-clair);
  border-bottom: 1px solid var(--ardoise-clair);
}
.legende-photo {
  font-family: var(--juridique);
  font-size: 0.9rem;
  color: var(--encre-douce);
  padding: 10px 14px 0;
  margin: 0;
  max-width: 60ch;
}

/* Rythme des sections */

.feuille {
  position: relative;
  padding: 88px 0;
  border-top: 1px solid var(--olive);
}
.feuille-calque {
  background: var(--papier-calque);
}
.feuille-trame::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(to right, var(--olive-trame-douce) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(to bottom, var(--olive-trame-douce) 0 1px, transparent 1px 96px);
  pointer-events: none;
  z-index: 0;
}
.feuille > .tenue { position: relative; z-index: 1; }

.tete-section {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 46px;
  border-bottom: 1px solid var(--olive);
  padding-bottom: 26px;
}
.tete-section h2 { margin-bottom: 0; }
.tete-section p { margin-bottom: 0; }

/* Section problème : trois îlots de largeurs inégales */
.ilots {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1.18fr;
  gap: 0;
  border: 1px solid var(--olive);
  background: var(--feuille);
}
.ilot {
  padding: 34px 30px;
  border-right: 1px solid var(--olive);
}
.ilot:last-child { border-right: 0; }
.ilot-haut { padding-top: 52px; }
.ilot-bas { padding-bottom: 54px; }
.ilot h3 { color: var(--encre); }
.ilot p:last-child { margin-bottom: 0; }
.numero-ilot {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  color: var(--carmin);
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}

.citation-texte {
  position: relative;
  font-family: var(--juridique);
  font-size: 1.02rem;
  color: var(--ardoise);
  margin: 26px 0 0;
  padding: 4px 0 4px 26px;
  border-left: 1px solid var(--ardoise);
  max-width: 66ch;
}
.citation-texte::before {
  content: "";
  position: absolute;
  left: -11px;
  top: 0;
  bottom: 0;
  width: 8px;
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 0 4px,
      var(--olive) 4px 5px,
      transparent 5px 12px,
      var(--olive) 12px 13px,
      transparent 13px 18px),
    repeating-linear-gradient(to right,
      var(--olive) 0 1px,
      transparent 1px 5px,
      var(--olive) 5px 6px);
  background-size: 6px 18px, 6px 18px;
  background-repeat: repeat-y;
}
.citation-texte cite { font-style: italic; display: block; margin-top: 8px; font-size: 0.92rem; color: var(--encre-douce); }

.debord-photo {
  margin-top: 54px;
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 40px;
  align-items: center;
}
.debord-photo .photo-arpentee { margin-left: -32px; }

/* Solution : bandes de tableau de contenance */
.bandes-contenance {
  border-top: 1px solid var(--ardoise);
}
.bande {
  display: grid;
  grid-template-columns: 92px minmax(0, 4fr) minmax(0, 6fr);
  gap: 28px;
  padding: 30px 0;
  border-bottom: 1px solid var(--olive);
  align-items: start;
}
.bande:nth-child(even) { background: rgba(255, 255, 255, 0.55); }
.bande-numero {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 3.4rem;
  line-height: 0.8;
  color: var(--olive);
  padding-left: 6px;
  border-left: 3px solid var(--carmin);
}
.bande h3 { margin-bottom: 6px; }
.bande p:last-child { margin-bottom: 0; }
.bande-detail {
  font-family: var(--juridique);
  color: var(--encre-douce);
  font-size: 0.98rem;
}

/* Fonctionnalités : six parcelles de largeur alternée */
.parcelles-modules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--olive);
  background: var(--feuille);
}
.parcelle {
  position: relative;
  padding: 34px 28px;
  border-right: 1px solid var(--olive);
  border-bottom: 1px solid var(--olive);
}
.parcelle:nth-child(3n) { border-right: 0; }
.parcelle:nth-child(n+4) { border-bottom: 0; }
.parcelle:nth-child(2),
.parcelle:nth-child(4),
.parcelle:nth-child(6) { background: rgba(241, 234, 221, 0.5); }
.parcelle h3 {
  font-size: 1.42rem;
  color: var(--encre);
  margin-bottom: 10px;
  padding-top: 6px;
}
.parcelle p:last-child { margin-bottom: 0; }
.borne-parcelle {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 7px;
  height: 7px;
  background: var(--carmin);
}
.reference-parcelle {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ardoise);
  display: block;
}

/* Avantages */
.releve-effets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}
.effet {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid var(--olive);
  align-items: start;
}
.effet-valeur {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 0.9;
  color: var(--carmin);
  letter-spacing: 0.02em;
}
.effet h3 { font-size: 1.28rem; color: var(--encre); margin-bottom: 6px; }
.effet p { margin-bottom: 0; font-size: 1rem; }

/* Preuve sociale */
.temoins {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}
.temoin {
  margin: 0;
  background: var(--feuille);
  border: 1px solid var(--olive);
  padding: 30px 26px 24px;
  position: relative;
}
.temoin::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
}
.temoin blockquote {
  margin: 0 0 18px;
  font-family: var(--juridique);
  font-size: 1.06rem;
  color: var(--encre);
}
.temoin blockquote p:last-child { margin-bottom: 0; }
.temoin figcaption {
  border-top: 1px solid var(--olive);
  padding-top: 12px;
  font-size: 0.9rem;
  color: var(--encre-douce);
}
.temoin figcaption b {
  display: block;
  font-family: var(--courant);
  font-weight: 600;
  color: var(--ardoise);
  font-size: 0.98rem;
}

.bandeau-chiffres {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--ardoise);
  background: var(--feuille);
}
.chiffre {
  padding: 26px 22px;
  border-right: 1px solid var(--olive);
}
.chiffre:last-child { border-right: 0; }
.chiffre b {
  display: block;
  font-family: var(--titre);
  font-weight: 600;
  font-size: 2.6rem;
  line-height: 1;
  color: var(--ardoise);
  letter-spacing: 0.02em;
}
.chiffre span {
  display: block;
  font-size: 0.9rem;
  color: var(--encre-douce);
  margin-top: 6px;
}

/* Tarifs : trois parcelles, la centrale déborde vers le haut */
.grille-tarifs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
  padding-top: 24px;
}
.formule {
  position: relative;
  background: var(--feuille);
  border: 1px solid var(--olive);
  padding: 34px 26px 30px;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.formule::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
}
.formule-avancee {
  margin-top: -24px;
  border-color: var(--carmin);
}
.formule-avancee::before { border-color: rgba(163, 22, 75, 0.25); }
.fanion {
  position: absolute;
  top: -1px;
  right: -1px;
  background: var(--carmin);
  color: #FFFFFF;
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 12px;
}
.formule h3 { color: var(--encre); margin-bottom: 4px; font-size: 2rem; }
.formule-cible {
  font-size: 0.92rem;
  color: var(--encre-douce);
  min-height: 3.6em;
  margin-bottom: 16px;
}
.prix {
  display: flex;
  align-items: baseline;
  gap: 8px;
  border-top: 1px solid var(--olive);
  border-bottom: 1px solid var(--olive);
  padding: 14px 0;
  margin-bottom: 18px;
}
.prix b {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 3.4rem;
  line-height: 0.85;
  color: var(--carmin);
}
.prix span { font-size: 0.9rem; color: var(--encre-douce); }
.inclus {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  flex: 1 1 auto;
}
.inclus li {
  position: relative;
  padding-left: 20px;
  font-size: 0.97rem;
  margin-bottom: 10px;
  color: var(--encre);
}
.inclus li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border: 1px solid var(--ardoise);
  background: var(--papier-calque);
}
.mention-tarif {
  font-family: var(--juridique);
  color: var(--encre-douce);
  font-size: 0.96rem;
  margin-top: 30px;
  border-top: 1px solid var(--olive);
  padding-top: 16px;
}

/* FAQ */
.registre-faq {
  max-width: 68ch;
  margin: 0 auto;
}
.article-faq {
  border-bottom: 1px solid var(--olive);
  background: transparent;
}
.article-faq:first-of-type { border-top: 1px solid var(--ardoise); }
.article-faq > summary {
  position: relative;
  overflow: hidden;
  list-style: none;
  cursor: pointer;
  padding: 20px 46px 20px 4px;
  font-family: var(--courant);
  font-weight: 600;
  font-size: 1.06rem;
  color: var(--ardoise);
  transition: background-color 160ms ease;
}
.article-faq > summary::-webkit-details-marker { display: none; }
.article-faq > summary::after {
  content: "+";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--titre);
  font-size: 1.9rem;
  line-height: 1;
  color: var(--carmin);
  transition: transform 200ms var(--courbe);
}
.article-faq[open] > summary::after { transform: translateY(-50%) rotate(45deg); }
.article-faq > summary:hover { background: rgba(211, 204, 187, 0.28); }
.reponse-faq {
  padding: 0 46px 24px 4px;
}
.reponse-faq p:last-child { margin-bottom: 0; }

/* Contact */
.plan-contact {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 46px;
  align-items: start;
}
.formulaire { display: grid; gap: 18px; }
.duo-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.champ { display: flex; flex-direction: column; gap: 6px; }
.champ label,
.libelle {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ardoise);
  letter-spacing: 0.02em;
}
.champ input,
.champ select,
.champ textarea {
  font-family: var(--courant);
  font-size: 1rem;
  color: var(--encre);
  background: var(--feuille);
  border: 1px solid var(--olive);
  border-bottom-color: var(--ardoise);
  padding: 11px 13px;
  border-radius: 0;
}
.champ textarea { resize: vertical; min-height: 130px; }
.champ input:focus,
.champ select:focus,
.champ textarea:focus {
  outline: 2px solid var(--ardoise);
  outline-offset: 1px;
  border-color: var(--ardoise);
}
.champ-consentement {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  font-size: 0.92rem;
  color: var(--encre-douce);
}
.champ-consentement input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--carmin); }
.aide-formulaire {
  font-family: var(--juridique);
  font-size: 0.96rem;
  color: var(--encre-douce);
  margin: 0;
}
.releve-contact { list-style: none; padding: 0; margin: 22px 0 0; }
.releve-contact li {
  padding: 12px 0;
  border-top: 1px solid var(--olive);
  font-size: 0.97rem;
}
.releve-contact li b { display: block; color: var(--ardoise); }

/* Pied de page */

.pied-plan {
  background: var(--ardoise);
  color: #E8E4DA;
  padding: 62px 0 0;
  border-top: 4px solid var(--carmin);
}
.pied-plan a { color: #F3EFE6; text-decoration: none; }
.pied-plan a:hover { color: #FFFFFF; text-decoration: underline; }
.colonnes-pied {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
  gap: 38px;
  padding-bottom: 46px;
}
.colonnes-pied h2,
.colonnes-pied h3 {
  color: #FFFFFF;
  font-size: 1.25rem;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(232, 228, 218, 0.28);
  padding-bottom: 8px;
}
.colonnes-pied ul { list-style: none; padding: 0; margin: 0; }
.colonnes-pied li { margin-bottom: 9px; font-size: 0.95rem; }
.colonnes-pied p { font-size: 0.95rem; color: #D8D3C7; }
.logotype-pied { color: #FFFFFF; margin-bottom: 14px; }
.liens-profils { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; font-size: 0.9rem; }
.coordonnees-editeur { font-size: 0.88rem; line-height: 1.6; color: #D8D3C7; }
.barre-pied {
  border-top: 1px solid rgba(232, 228, 218, 0.28);
  padding: 20px 0 26px;
  font-size: 0.8125rem;
  color: #D8D3C7;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  justify-content: space-between;
}

/* Pages internes */

.entete-interne {
  padding: calc(var(--entete-h) + 56px) 0 40px;
  border-bottom: 1px solid var(--olive);
  background:
    repeating-linear-gradient(to right, var(--olive-trame-douce) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(to bottom, var(--olive-trame-douce) 0 1px, transparent 1px 96px),
    var(--papier);
}
.fil-ariane {
  font-family: var(--juridique);
  font-size: 0.9rem;
  color: var(--encre-douce);
  margin-bottom: 14px;
}
.fil-ariane a { color: var(--ardoise); }

.corps-texte {
  padding: 56px 0 84px;
}
.corps-texte h2 { margin-top: 46px; font-size: 2.1rem; }
.corps-texte h3 { margin-top: 30px; }
.corps-texte h2:first-child { margin-top: 0; }
.corps-texte ul { max-width: 68ch; }
.corps-texte li { font-size: 1rem; }

.duo-auteur {
  display: grid;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  margin-bottom: 44px;
}
.portrait-auteur {
  border: 1px solid var(--olive);
  padding: 12px;
  background: var(--feuille);
}
.portrait-auteur img { width: 100%; filter: saturate(0.85); }

.releve-liens { list-style: none; padding: 0; }
.releve-liens li {
  border-top: 1px solid var(--olive);
  padding: 14px 0;
}
.releve-liens li b { display: block; font-size: 1.05rem; }
.releve-liens li span { color: var(--encre-douce); font-size: 0.96rem; }

.page-etroite { max-width: 74ch; }

.bloc-merci {
  padding: calc(var(--entete-h) + 70px) 0 90px;
  text-align: left;
}
.bloc-merci .cartouche { max-width: 720px; }

/* Animations au défilement */

.au-defilement {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 620ms var(--courbe), transform 620ms var(--courbe);
}
.au-defilement.arpentee { opacity: 1; transform: none; }

/* Adaptations */

@media (max-width: 1080px) {
  .colonnes-pied { grid-template-columns: 1fr 1fr; }
  .releve-effets { grid-template-columns: 1fr; }
  .bandeau-chiffres { grid-template-columns: repeat(2, 1fr); }
  .chiffre:nth-child(2) { border-right: 0; }
  .chiffre:nth-child(1), .chiffre:nth-child(2) { border-bottom: 1px solid var(--olive); }
}

@media (max-width: 900px) {
  h1 { font-size: 2.7rem; }
  h2 { font-size: 2.1rem; }
  .nav-parcelles { display: none; }
  .entete-action .bouton-carmin { display: none; }
  .bouton-menu { display: inline-flex; }
  .grille-cadastre { display: block; border: 0; }
  .grille-cadastre::before { display: none; }
  .cellule-titre, .cellule-actions, .cellule-reassurance, .cellule-photo { padding: 0 0 26px; }
  .repere-lot { display: none; }
  .plan-hero { padding-top: calc(var(--entete-h) + 30px); }
  .ilots { grid-template-columns: 1fr; }
  .ilot { border-right: 0; border-bottom: 1px solid var(--olive); padding: 28px 24px; }
  .ilot:last-child { border-bottom: 0; }
  .parcelles-modules { grid-template-columns: 1fr; }
  .parcelle { border-right: 0; border-bottom: 1px solid var(--olive); }
  .parcelle:nth-child(n+4) { border-bottom: 1px solid var(--olive); }
  .parcelle:last-child { border-bottom: 0; }
  .temoins { grid-template-columns: 1fr; }
  .grille-tarifs { grid-template-columns: 1fr; }
  .formule-avancee { margin-top: 0; }
  .plan-contact { grid-template-columns: 1fr; gap: 34px; }
  .tete-section { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .debord-photo { grid-template-columns: 1fr; }
  .debord-photo .photo-arpentee { margin-left: 0; }
  .duo-auteur { grid-template-columns: 1fr; }
  .bande { grid-template-columns: 64px minmax(0, 1fr); gap: 18px; }
  .bande > .bande-corps { grid-column: 2 / 3; }
  .perfos::before, .perfos::after { display: none; }
  .feuille { padding: 62px 0; }
}

@media (max-width: 620px) {
  :root { --gouttiere: 18px; }
  .duo-champs { grid-template-columns: 1fr; }
  .colonnes-pied { grid-template-columns: 1fr; }
  .bandeau-chiffres { grid-template-columns: 1fr; }
  .chiffre { border-right: 0; border-bottom: 1px solid var(--olive); }
  .chiffre:last-child { border-bottom: 0; }
  .prix b { font-size: 2.8rem; }
  .marque { font-size: 1.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .au-defilement { opacity: 1; transform: none; transition: none; }
  .onde { display: none; }
  .bouton { transition: background-color 120ms linear; }
  .panneau-nav { transition: none; }
}

@media print {
  .entete-plan, .panneau-nav, .voile-nav, .bouton { display: none; }
  body { background: #FFFFFF; }
}

/* ==========================================================================
   Le Cahier des Colotis, section magazine
   Ajout en fin de feuille, aucune regle precedente n'est modifiee.
   Meme papier creme, meme cartouche d'arpentage a double filet, memes
   perforations de pellicule, meme onde circulaire au clic que le reste du site.
   Vocabulaire des classes : cahier, fiche, parution, releve, exergue, borne.
   ========================================================================== */

/* Entete de la page d'index et des articles */

.entete-cahier {
  padding: calc(var(--entete-h) + 54px) 0 42px;
  border-bottom: 1px solid var(--olive);
  background:
    repeating-linear-gradient(to right, var(--olive-trame-douce) 0 1px, transparent 1px 96px),
    repeating-linear-gradient(to bottom, var(--olive-trame-douce) 0 1px, transparent 1px 96px),
    var(--papier);
}
.entete-cahier .chapeau { max-width: 68ch; }
.entete-cahier h1 { max-width: 22ch; }

.releve-parution {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 22px;
  margin: 22px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--ardoise);
  font-family: var(--juridique);
  font-size: 0.92rem;
  color: var(--encre-douce);
  max-width: 68ch;
}
.releve-parution b {
  font-family: var(--juridique);
  font-weight: 700;
  font-variant: small-caps;
  letter-spacing: 0.1em;
  color: var(--ardoise);
}
.releve-parution .parution-angle {
  color: var(--carmin);
  font-weight: 700;
  font-variant: small-caps;
  letter-spacing: 0.12em;
}

/* Grille de cartes d'article, parcelles alignees sur la trame */

.grille-cahier {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  align-items: stretch;
}

.fiche-cahier {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--feuille);
  border: 1px solid var(--olive);
  transition: border-color 180ms ease, transform 180ms var(--courbe);
}
.fiche-cahier::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
  z-index: 2;
}
.fiche-cahier:hover,
.fiche-cahier:focus-within {
  border-color: var(--carmin);
  transform: translateY(-2px);
}
.fiche-cahier:hover::after,
.fiche-cahier:focus-within::after { border-color: rgba(163, 22, 75, 0.24); }

/* Photographie de carte : cadre strict et perforations de pellicule reduites */
.visuel-fiche {
  position: relative;
  margin: 3px 3px 0;
  padding: 9px 0;
  background: var(--papier);
  border-bottom: 1px solid var(--olive);
}
.visuel-fiche::before,
.visuel-fiche::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 8px;
  background-image:
    repeating-linear-gradient(to right,
      transparent 0 4px,
      var(--olive) 4px 5px,
      transparent 5px 9px,
      var(--olive) 9px 10px,
      transparent 10px 14px),
    repeating-linear-gradient(to bottom,
      var(--olive) 0 1px,
      transparent 1px 5px,
      var(--olive) 5px 6px);
  background-size: 14px 6px, 14px 6px;
  background-position: left center;
  background-repeat: repeat-x;
  pointer-events: none;
  z-index: 1;
}
.visuel-fiche::before { top: 1px; }
.visuel-fiche::after { bottom: 1px; }
.visuel-fiche img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(0.85) contrast(1.02);
  border-top: 1px solid var(--ardoise-clair);
  border-bottom: 1px solid var(--ardoise-clair);
}
.repere-fiche {
  position: absolute;
  top: 15px;
  right: 0;
  z-index: 2;
  background: var(--papier);
  border-left: 1px solid var(--olive);
  border-bottom: 1px solid var(--olive);
  padding: 4px 10px;
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ardoise);
}

.corps-fiche {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 22px 24px 20px;
}
.angle-fiche {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.85rem;
  font-variant: small-caps;
  letter-spacing: 0.12em;
  color: var(--carmin);
}
.angle-fiche::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--olive);
  flex: 0 0 18px;
}
.titre-fiche {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.02;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 0 0 12px;
  max-width: none;
}
.titre-fiche a {
  color: var(--ardoise);
  text-decoration: none;
}
.titre-fiche a:hover,
.titre-fiche a:focus-visible { color: var(--carmin); }
.extrait-fiche {
  font-size: 0.98rem;
  color: var(--encre-douce);
  margin: 0 0 18px;
  max-width: none;
  flex: 1 1 auto;
}
.pied-fiche {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  border-top: 1px solid var(--olive);
  padding-top: 12px;
  font-family: var(--juridique);
  font-size: 0.86rem;
  color: var(--encre-douce);
}
.pied-fiche .duree-fiche { color: var(--ardoise); font-weight: 700; }

/* Section Derniers articles de la page d'accueil */

.derniers-cahiers .grille-cahier { margin-bottom: 34px; }
.appel-index-cahier {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px 26px;
  border-top: 1px solid var(--ardoise);
  padding-top: 22px;
}
.appel-index-cahier p {
  font-family: var(--juridique);
  color: var(--encre-douce);
  margin: 0;
  max-width: 58ch;
}

/* Corps d'un article : HTML nu, aucune classe, mesure de lecture de 68 caracteres */

.corps-article {
  padding: 52px 0 20px;
}
.corps-article > * { max-width: 68ch; }

.corps-article h2 {
  position: relative;
  font-size: 2.1rem;
  margin: 54px 0 16px;
  padding-top: 20px;
  border-top: 1px solid var(--olive);
  max-width: 30ch;
}
.corps-article h2::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 38px;
  height: 3px;
  background: var(--carmin);
}
.corps-article h2:first-child { margin-top: 0; }
.corps-article h3 {
  font-size: 1.45rem;
  color: var(--encre);
  margin: 34px 0 10px;
  max-width: 34ch;
}
.corps-article p { margin: 0 0 1.15em; }
.corps-article a { color: var(--carmin); text-decoration: underline; }
.corps-article a:hover,
.corps-article a:focus-visible { color: var(--carmin-fonce); }
.corps-article strong { font-weight: 600; color: var(--encre); }
.corps-article em {
  font-family: var(--juridique);
  font-style: italic;
  color: var(--ardoise);
}

.corps-article ul,
.corps-article ol {
  margin: 0 0 1.35em;
  padding-left: 0;
  list-style: none;
}
.corps-article li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 0.55em;
}
.corps-article ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border: 1px solid var(--ardoise);
  background: var(--papier-calque);
}
.corps-article ol { counter-reset: parcelle; }
.corps-article ol > li { counter-increment: parcelle; padding-left: 34px; }
.corps-article ol > li::before {
  content: counter(parcelle, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  color: var(--carmin);
  border-right: 1px solid var(--olive);
  padding-right: 8px;
  line-height: 1.85;
}
.corps-article li > ul,
.corps-article li > ol { margin: 0.5em 0 0.2em; }

/* Tableau recapitulatif, etat de contenance pose sur la surface blanche */
.corps-article table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  background: var(--feuille);
  border: 1px solid var(--olive);
  margin: 0 0 1.6em;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}
.corps-article thead th {
  background: var(--papier-calque);
  border-bottom: 1px solid var(--ardoise);
  font-family: var(--courant);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ardoise);
  text-align: left;
  padding: 12px 14px;
}
.corps-article tbody th {
  font-weight: 600;
  color: var(--ardoise);
  text-align: left;
}
.corps-article td,
.corps-article tbody th {
  border-top: 1px solid var(--olive);
  padding: 11px 14px;
  vertical-align: top;
}
.corps-article tbody tr:nth-child(even) { background: rgba(241, 234, 221, 0.42); }

/* Encadre : cartouche d'arpentage a double filet et borne carmin */
.corps-article aside {
  position: relative;
  background: var(--papier-calque);
  border: 1px solid var(--olive);
  padding: 26px 26px 20px;
  margin: 34px 0;
}
.corps-article aside::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
}
.corps-article aside::after {
  content: "";
  position: absolute;
  top: 13px;
  right: 14px;
  width: 7px;
  height: 7px;
  background: var(--carmin);
}
.corps-article aside p { font-size: 1rem; }
.corps-article aside p:last-child,
.corps-article aside ul:last-child,
.corps-article aside ol:last-child { margin-bottom: 0; }

/* Citation d'un texte de loi, tranche gauche perforee */
.corps-article blockquote {
  position: relative;
  margin: 32px 0;
  padding: 6px 0 6px 28px;
  border-left: 1px solid var(--ardoise);
  font-family: var(--juridique);
  font-size: 1.06rem;
  color: var(--ardoise);
}
.corps-article blockquote::before {
  content: "";
  position: absolute;
  left: -11px;
  top: 0;
  bottom: 0;
  width: 8px;
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 0 4px,
      var(--olive) 4px 5px,
      transparent 5px 12px,
      var(--olive) 12px 13px,
      transparent 13px 18px),
    repeating-linear-gradient(to right,
      var(--olive) 0 1px,
      transparent 1px 5px,
      var(--olive) 5px 6px);
  background-size: 6px 18px, 6px 18px;
  background-repeat: repeat-y;
}
.corps-article blockquote p:last-child { margin-bottom: 0; }

.corps-article figure {
  margin: 34px 0;
  border: 1px solid var(--olive);
  padding: 12px;
  background: var(--papier);
}
.corps-article figcaption {
  font-family: var(--juridique);
  font-size: 0.92rem;
  color: var(--encre-douce);
  padding-top: 10px;
}

/* Exergue du chapeau */

.exergue-chapo {
  position: relative;
  font-family: var(--juridique);
  font-size: 1.22rem;
  line-height: 1.55;
  color: var(--ardoise);
  border-top: 1px solid var(--olive);
  border-bottom: 1px solid var(--olive);
  padding: 20px 0 20px 26px;
  margin: 26px 0 0;
  max-width: 66ch;
}
.exergue-chapo::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  background: var(--carmin);
}

/* Photographie a la une d'un article */

.une-article { margin: 34px 0 0; }
.une-article .photo-arpentee img { max-height: 520px; }

/* Appel a l'action de fin d'article */

.appel-cahier {
  position: relative;
  background: var(--feuille);
  border: 1px solid var(--ardoise);
  padding: 34px 30px 30px;
  margin: 46px 0 0;
  max-width: 68ch;
}
.appel-cahier::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--olive);
  pointer-events: none;
}
.titre-appel {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 1.9rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ardoise);
  margin: 0 0 12px;
}
.appel-cahier p { color: var(--encre-douce); }
.appel-cahier .bouton { margin-top: 8px; }

/* Encart auteur */

.encart-auteur {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  border-top: 1px solid var(--ardoise);
  border-bottom: 1px solid var(--olive);
  padding: 26px 0;
  margin: 46px 0 0;
  max-width: 68ch;
}
.encart-auteur img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border: 1px solid var(--olive);
  padding: 3px;
  background: var(--papier);
  filter: saturate(0.85);
}
.nom-auteur {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ardoise);
  margin: 0 0 4px;
}
.role-auteur {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.84rem;
  font-variant: small-caps;
  letter-spacing: 0.12em;
  color: var(--carmin);
  margin: 0 0 10px;
}
.encart-auteur p { font-size: 0.99rem; }
.encart-auteur p:last-child { margin-bottom: 0; }

/* Bloc A lire aussi */

.bloc-lire-aussi {
  margin: 56px 0 0;
  padding-top: 30px;
  border-top: 1px solid var(--ardoise);
}
.titre-lire-aussi {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ardoise);
  margin: 0 0 22px;
  max-width: none;
}
.grille-lire-aussi {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.fiche-lire-aussi {
  position: relative;
  background: var(--feuille);
  border: 1px solid var(--olive);
  padding: 0 0 18px;
}
.fiche-lire-aussi::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--ardoise-clair);
  pointer-events: none;
  z-index: 2;
}
.visuel-lie {
  position: relative;
  margin: 3px 3px 0;
  padding: 8px 0;
  background: var(--papier);
  border-bottom: 1px solid var(--olive);
}
.visuel-lie::before,
.visuel-lie::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 8px;
  background-image:
    repeating-linear-gradient(to right,
      transparent 0 4px,
      var(--olive) 4px 5px,
      transparent 5px 9px,
      var(--olive) 9px 10px,
      transparent 10px 14px),
    repeating-linear-gradient(to bottom,
      var(--olive) 0 1px,
      transparent 1px 5px,
      var(--olive) 5px 6px);
  background-size: 14px 6px, 14px 6px;
  background-position: left center;
  background-repeat: repeat-x;
  pointer-events: none;
  z-index: 1;
}
.visuel-lie::before { top: 0; }
.visuel-lie::after { bottom: 0; }
.visuel-lie img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(0.85) contrast(1.02);
}
.titre-lie {
  font-family: var(--titre);
  font-weight: 500;
  font-size: 1.28rem;
  line-height: 1.05;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 16px 20px 8px;
  max-width: none;
}
.titre-lie a { color: var(--ardoise); text-decoration: none; }
.titre-lie a:hover,
.titre-lie a:focus-visible { color: var(--carmin); }
.accroche-lie {
  font-family: var(--juridique);
  font-size: 0.94rem;
  color: var(--encre-douce);
  margin: 0 20px;
  max-width: none;
}

/* Releve des parutions, page de l'auteur et plan du site */

.releve-cahier { list-style: none; padding: 0; margin: 0; }
.releve-cahier li {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 6px 22px;
  border-top: 1px solid var(--olive);
  padding: 14px 0;
  align-items: baseline;
}
.releve-cahier li:last-child { border-bottom: 1px solid var(--olive); }
.releve-cahier .date-parution {
  font-family: var(--juridique);
  font-weight: 700;
  font-size: 0.88rem;
  font-variant: small-caps;
  letter-spacing: 0.1em;
  color: var(--ardoise);
}
.releve-cahier b { display: block; font-size: 1.05rem; }
.releve-cahier .resume-parution {
  display: block;
  color: var(--encre-douce);
  font-size: 0.95rem;
}

/* Intitule de colonne du pied de page, quand aucune balise de titre n'est admise */

.colonnes-pied .titre-colonne-pied {
  font-family: var(--titre);
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 0.95;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin: 0 0 16px;
  border-bottom: 1px solid rgba(232, 228, 218, 0.28);
  padding-bottom: 8px;
}

/* Adaptations du magazine */

@media (max-width: 1080px) {
  .grille-cahier,
  .grille-lire-aussi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .entete-cahier { padding-top: calc(var(--entete-h) + 34px); }
  .corps-article h2 { font-size: 1.85rem; }
  .titre-lire-aussi { font-size: 1.7rem; }
  .encart-auteur { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .grille-cahier,
  .grille-lire-aussi { grid-template-columns: 1fr; }
  .releve-cahier li { grid-template-columns: 1fr; }
  .corps-article table { display: block; overflow-x: auto; }
  .exergue-chapo { font-size: 1.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .fiche-cahier { transition: none; }
  .fiche-cahier:hover,
  .fiche-cahier:focus-within { transform: none; }
}

@media print {
  .fiche-cahier, .fiche-lire-aussi, .appel-cahier { border-color: #000000; }
  .bloc-lire-aussi { display: none; }
}

/* Page complete d un article du magazine */

.page-article { padding-bottom: 88px; }
