/* =========================================================================
   EMBACHILEVE — système « rucher » (préfixe eb-)
   Vocabulaire : le rucher et la ruche. Corps (largeur utile), porche
   (en-tête), rayons (nav), hausse (couverture d’accueil), chemin (fil),
   ruche (section numérotée), alvéole (carte), carnet/fiche (flux daté),
   préface (tête d’article), gravure (image pleine largeur), texte (lecture),
   relevé (tableau), coche (check-list), piqure (erreurs fréquentes),
   envol (à lire ensuite), terrasse (pied). Thème miel/cire/lin, aucun bleu.
   Aucune requête externe, aucun script, dark-mode automatique.
   ========================================================================= */

:root {

  /* ---- 1. COULEURS : cire, lin, miel, encre brune ----------------------- */
  --lin:           #f2ead6;  /* le lin clair, fond de toutes les pages      */
  --cire:          #f9f4e2;  /* papier vif, réserves et lignes paires       */
  --cire-creuse:   #e9ddbb;  /* sections alternées, encadrés                */
  --encre:         #33270f;  /* encre brune : titres et texte principal     */
  --encre-douce:   #6e5c39;  /* légendes, chapôs, mentions                  */
  --miel:          #8a570c;  /* ambre profond : liens, filets d’appui       */
  --miel-appuye:   #6d4408;  /* survol : plus foncé que l’accent            */
  --ambre:         #c98f26;  /* ambre clair : ornements, lettrines          */
  --trait:         #d9c99e;  /* hairlines du carnet                         */
  --terrasse-fond: #2c2110;  /* le pied, bois sombre du rucher              */
  --terrasse-texte:#ecdfbe;
  --terrasse-lien: #d9a844;

  /* ---- 2. TYPOGRAPHIE (piles système, aucune police distante) ----------- */
  --titre-police: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --texte-police: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Arial, sans-serif;

  --caps-interlettrage: 0.2em;
  --corps-taille: clamp(1.02rem, 0.97rem + 0.22vw, 1.13rem);
  --corps-interligne: 1.64;

  /* ---- 3. RYTHME ET MESURES --------------------------------------------- */
  --mesure:        64ch;
  --mesure-large:  1380px;
  --marge-page:    clamp(1.1rem, 4vw, 4rem);
  --gouttiere:     clamp(0.9rem, 2.2vw, 2.1rem);
  --souffle:       clamp(3rem, 7vw, 6.6rem);
  --pente-h:       clamp(1.4rem, 3.4vw, 3.6rem);

  /* ---- 4. DÉTAILS -------------------------------------------------------- */
  --rayon:     0;                       /* le rucher reste à angles droits  */
  --filet:     1px solid var(--trait);
  --filet-double: 3px double var(--trait);
  --transition: 150ms ease;
}

@media (prefers-color-scheme: dark) {
  :root {
    --lin:           #191307;
    --cire:          #211a0c;
    --cire-creuse:   #28200d;
    --encre:         #ecdfbe;
    --encre-douce:   #bda878;
    --miel:          #e0a83c;
    --miel-appuye:   #f0c063;
    --ambre:         #b98a24;
    --trait:         #4a3b1e;
    --terrasse-fond: #120d05;
    --terrasse-texte:#e4d5ae;
    --terrasse-lien: #e0a83c;
  }
}

/* =========================================================================
   BASE
   ========================================================================= */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--lin);
  color: var(--encre);
  font-family: var(--texte-police);
  font-size: var(--corps-taille);
  line-height: var(--corps-interligne);
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  font-family: var(--titre-police);
  font-weight: 600;
  letter-spacing: 0.004em;
  line-height: 1.1;
  margin: 0;
}
h1 { font-size: clamp(2.1rem, 1.2rem + 3.6vw, 4.1rem); }
h2 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.35rem); }
h3 { font-size: clamp(1.13rem, 1.02rem + 0.55vw, 1.46rem); }
h4 { font-size: 1.03rem; }

p, ul, ol { margin: 0 0 1.12em; }
a { color: var(--miel); text-decoration-thickness: 1px; text-underline-offset: 0.18em; transition: color var(--transition); }
a:hover { color: var(--miel-appuye); }
::selection { background: var(--ambre); color: #211a0c; }
:focus-visible { outline: 2px solid var(--miel); outline-offset: 3px; }
hr { border: 0; border-top: var(--filet); margin: var(--souffle) 0; }

/* =========================================================================
   OSSATURE
   ========================================================================= */

/* Lien d’évitement. NE PAS SUPPRIMER. */
.eb-evite {
  position: absolute; left: -9999px; top: 0;
  background: var(--encre); color: var(--lin);
  padding: 0.7rem 1.1rem; z-index: 50;
}
.eb-evite:focus { left: 0.6rem; top: 0.6rem; }

/* Le corps : la partie habitée de la ruche, largeur utile de tout contenu. */
.eb-corps {
  width: 100%;
  max-width: var(--mesure-large);
  margin-inline: auto;
  padding-inline: var(--marge-page);
}

/* --- Porche (en-tête) ----------------------------------------------------- */
.eb-porche { border-bottom: var(--filet); padding-block: clamp(0.85rem, 1.9vw, 1.5rem); }
.eb-porche__rang {
  display: flex; flex-wrap: wrap;
  align-items: baseline; justify-content: space-between;
  gap: 0.7rem 1.8rem;
}
.eb-marque {
  font-family: var(--titre-police);
  font-size: clamp(1.3rem, 1.05rem + 0.95vw, 1.85rem);
  font-weight: 600;
  color: var(--encre); text-decoration: none;
  display: inline-flex; align-items: baseline; gap: 0.55rem;
  transition: color var(--transition);
}
.eb-marque:hover { color: var(--miel); }
.eb-marque .eb-glyphe--abeille { width: 1.15em; height: 1.15em; align-self: center; color: var(--ambre); }
.eb-marque span {
  display: block;
  font-family: var(--texte-police);
  font-size: 0.66rem;
  letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase;
  color: var(--encre-douce);
  margin-top: 0.3rem;
}
.eb-rayons ul {
  display: flex; flex-wrap: wrap;
  gap: 0.45rem 1.4rem;
  list-style: none; margin: 0; padding: 0;
}
.eb-rayons a {
  font-size: 0.76rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--encre); text-decoration: none;
  padding-bottom: 0.22rem; border-bottom: 1px solid transparent;
  transition: color var(--transition), border-color var(--transition);
}
.eb-rayons a:hover, .eb-rayons [aria-current="page"] {
  border-bottom-color: var(--miel); color: var(--miel);
}

/* --- Chemin (fil d’Ariane) ------------------------------------------------ */
.eb-chemin { font-size: 0.78rem; color: var(--encre-douce); padding-block: 1.15rem; }
.eb-chemin ol {
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.55rem;
  list-style: none; margin: 0; padding: 0;
}
.eb-chemin li + li::before { content: "›"; margin-right: 0.55rem; color: var(--ambre); }

/* =========================================================================
   HAUSSE : la couverture typographique de l’accueil
   ========================================================================= */

.eb-hausse { position: relative; background: var(--cire-creuse); overflow: hidden; }
.eb-hausse::before {
  content: ""; position: absolute; inset: 0; opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='none' stroke='%2333250f' stroke-opacity='0.08'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");
}
.eb-hausse__texte {
  position: relative;
  padding-block: clamp(2.2rem, 5vw, 3.6rem) clamp(1.8rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem 3rem;
  align-items: end;
}
.eb-hausse__kicker {
  margin: 0 0 0.9rem;
  font-size: 0.72rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; color: var(--encre-douce);
}
.eb-hausse__texte h1 {
  font-size: clamp(3rem, 1.6rem + 7vw, 6.4rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  max-width: 14ch;
}
.eb-hausse__texte h1 .eb-accens { color: var(--miel); }
.eb-hausse__deck {
  margin: 1.1rem 0 0;
  max-width: 62ch;
  font-size: clamp(1rem, 0.96rem + 0.28vw, 1.16rem);
  color: var(--encre);
}
.eb-hausse__verbes {
  margin: 1.2rem 0 0;
  font-size: 0.72rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; color: var(--encre-douce);
}
.eb-hausse__orne {
  color: var(--ambre);
  width: clamp(5.5rem, 4rem + 7vw, 10rem);
  height: auto;
  margin-bottom: 0.4rem;
}
.eb-hausse__edition {
  position: relative;
  border-top: var(--filet-double);
  padding-block: 0.75rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem;
  font-size: 0.72rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; color: var(--encre-douce);
}
.eb-hausse__edition .eb-glyphe { width: 1.15em; height: 1.15em; color: var(--ambre); }

/* =========================================================================
   RUCHE : une section numérotée de page
   ========================================================================= */

.eb-ruche { margin-top: clamp(2rem, 4.4vw, 3.6rem); }
.eb-ruche--creuse {
  background: var(--cire-creuse);
  padding-block: clamp(1.6rem, 3.6vw, 2.8rem);
  margin-top: clamp(2.4rem, 5vw, 4rem);
}
.eb-ruche__bandeau {
  display: flex; flex-wrap: wrap;
  align-items: end; justify-content: space-between;
  gap: 0.6rem 2rem;
  border-top: var(--filet-double);
  padding-top: 0.9rem;
  margin-bottom: clamp(1.5rem, 3.2vw, 2.7rem);
}
.eb-ruche__titre { display: flex; align-items: baseline; gap: 0.9rem; max-width: 34ch; }
.eb-ruche__numero {
  font-family: var(--titre-police);
  font-size: clamp(1.5rem, 1rem + 2vw, 2.6rem);
  font-variant-numeric: tabular-nums;
  color: var(--ambre);
  letter-spacing: 0.02em;
}
.eb-ruche__note { font-size: 0.8rem; color: var(--encre-douce); max-width: 44ch; margin: 0; }

/* Surtitre petites capitales. */
.eb-tampon {
  display: block;
  font-size: 0.68rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; color: var(--encre-douce);
  margin-bottom: 0.55rem;
}

/* =========================================================================
   ALVEOLES : la mosaïque asymétrique de cartes
   ========================================================================= */

.eb-alveoles {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--gouttiere);
  align-items: start;
  list-style: none; margin: 0; padding: 0;
}
.eb-alveole { grid-column: span 2; margin: 0; position: relative; }
.eb-alveole--plein   { grid-column: span 6; }
.eb-alveole--large   { grid-column: span 4; }
.eb-alveole--moitie  { grid-column: span 3; }
.eb-alveole--petit   { grid-column: span 2; }

/* Pentes : désalignement vertical, la grille ne tombe jamais au cordeau. */
.eb-alveole--pente  { margin-top: var(--pente-h); }
.eb-alveole--pente2 { margin-top: calc(var(--pente-h) * 2); }

.eb-alveole__cellule { overflow: hidden; background: var(--cire-creuse); border-radius: var(--rayon); }
.eb-alveole__vue {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--transition);
}
.eb-alveole__cellule--portrait { aspect-ratio: 3 / 4; }
.eb-alveole__cellule--paysage  { aspect-ratio: 4 / 3; }
.eb-alveole__cellule--carre    { aspect-ratio: 1 / 1; }
.eb-alveole__cellule--pano     { aspect-ratio: 21 / 9; }
.eb-alveole__cellule--haut     { aspect-ratio: 2 / 3; }

/* Plaque : la légende sous l’image, un seul lien par alvéole. */
.eb-alveole__plaque { padding-top: 0.8rem; margin-top: 0.8rem; border-top: var(--filet); }
.eb-alveole__titre {
  font-family: var(--titre-police);
  font-size: clamp(1.04rem, 0.95rem + 0.5vw, 1.32rem);
  line-height: 1.16; margin: 0;
}
.eb-alveole--plein .eb-alveole__titre,
.eb-alveole--large .eb-alveole__titre { font-size: clamp(1.3rem, 1.02rem + 1.1vw, 1.95rem); }
.eb-alveole__lien { color: var(--encre); text-decoration: none; transition: color var(--transition); }
.eb-alveole__lien:hover { color: var(--miel); }
.eb-alveole__lien::after { content: ""; position: absolute; inset: 0; }
.eb-alveole:hover .eb-alveole__vue { transform: scale(1.02); }
.eb-alveole__note { margin: 0.5rem 0 0; color: var(--encre-douce); font-size: 0.86rem; max-width: 46ch; }
.eb-alveole__indication {
  margin: 0.55rem 0 0;
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--encre-douce);
}
.eb-alveoles--denses { --gouttiere: clamp(0.7rem, 1.5vw, 1.3rem); }

/* =========================================================================
   CARNET : le flux daté de l’accueil
   ========================================================================= */

.eb-carnet {
  list-style: none; margin: 0; padding: 0;
  columns: 2; column-gap: clamp(1.8rem, 4vw, 3.4rem);
}
.eb-fiche {
  position: relative;
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: clamp(0.9rem, 2vw, 1.6rem);
  padding-block: clamp(0.95rem, 2vw, 1.4rem);
  border-top: var(--filet);
  break-inside: avoid;
}
.eb-fiche:first-child { border-top: 0; }
.eb-fiche__vue {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--cire-creuse);
}
.eb-jour {
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--encre-douce); margin: 0 0 0.3rem;
  font-variant-numeric: tabular-nums;
}
.eb-fiche h3 { margin: 0 0 0.35rem; font-size: clamp(1.05rem, 1rem + 0.4vw, 1.28rem); }
.eb-fiche h3 a { color: var(--encre); text-decoration: none; transition: color var(--transition); }
.eb-fiche h3 a:hover { color: var(--miel); }
.eb-fiche p { margin: 0; color: var(--encre-douce); font-size: 0.9rem; max-width: 70ch; }

/* =========================================================================
   PRÉFACE, GRAVURE ET TEXTE : la page de lecture
   ========================================================================= */

.eb-preface { padding-block: clamp(1.4rem, 3.6vw, 3rem) clamp(1.2rem, 2.6vw, 2.2rem); max-width: 56rem; }
.eb-preface__chapo {
  font-size: clamp(1.06rem, 1rem + 0.5vw, 1.3rem);
  color: var(--encre-douce); margin-top: 1rem; max-width: 58ch;
}
.eb-indications {
  display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem;
  list-style: none; margin: 1.4rem 0 0; padding: 0;
  font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--encre-douce);
}
.eb-indications a { color: var(--encre-douce); }

/* Gravure : image pleine largeur, enfant direct de la scène. */
.eb-gravure { margin: 0; }
.eb-gravure__vue { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--cire-creuse); }
.eb-gravure__legende {
  max-width: var(--mesure-large); margin-inline: auto;
  padding: 0.7rem var(--marge-page) 0;
  font-size: 0.78rem; color: var(--encre-douce);
}

/* Texte : colonne de lecture avec lettrine. */
.eb-texte { max-width: var(--mesure); margin-top: var(--souffle); }
.eb-texte h2 { margin-top: 2.4rem; }
.eb-texte h3 { margin-top: 1.9rem; }
.eb-texte h2:first-child, .eb-texte h3:first-child { margin-top: 0; }
.eb-texte ul, .eb-texte ol { padding-left: 1.15rem; }
.eb-texte li { margin-bottom: 0.44em; }
.eb-texte strong { color: var(--encre); }

.eb-texte > p:first-of-type::first-letter {
  font-family: var(--titre-police);
  font-size: 3.3em;
  line-height: 0.82;
  float: left;
  padding-right: 0.14em;
  padding-top: 0.06em;
  color: var(--miel);
  font-weight: 600;
}

/* Exergue, note, coche, piqure. */
.eb-exergue {
  margin: 2.2rem 0; padding-left: 1.3rem;
  border-left: 3px solid var(--ambre);
  font-family: var(--titre-police);
  font-size: clamp(1.15rem, 1rem + 0.8vw, 1.6rem);
  line-height: 1.32;
}
.eb-note { background: var(--cire); padding: clamp(1.1rem, 2.8vw, 1.9rem); margin: 2.3rem 0; border: var(--filet); }
.eb-note > :last-child { margin-bottom: 0; }

.eb-coche {
  background: var(--cire);
  border: var(--filet);
  border-top: 3px solid var(--ambre);
  padding: clamp(1.1rem, 2.6vw, 1.8rem);
  margin: 2.3rem 0;
}
.eb-coche h3 { margin-bottom: 0.7rem; }
.eb-coche ul { list-style: none; margin: 0; padding: 0; }
.eb-coche li {
  margin-bottom: 0.55em;
  padding-left: 1.5rem;
  position: relative;
}
.eb-coche li::before {
  content: "";
  position: absolute; left: 0; top: 0.5em;
  width: 0.62em; height: 0.62em;
  background: var(--ambre);
  transform: rotate(45deg);
}

.eb-piqure {
  background: var(--cire-creuse);
  border-left: 4px solid var(--miel);
  padding: clamp(1.1rem, 2.6vw, 1.8rem);
  margin: 2.3rem 0;
}
.eb-piqure h3 {
  font-size: 0.8rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; margin-bottom: 0.7rem;
}
.eb-piqure ul { margin-bottom: 0; }
.eb-piqure li { margin-bottom: 0.55em; }

/* Relevé : le tableau défilant, façon carnet de mesures. */
.eb-releve {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  margin: 2.2rem 0; border-top: var(--filet-double); border-bottom: var(--filet-double);
}
.eb-releve table { border-collapse: collapse; width: 100%; min-width: 36rem; font-size: 0.92rem; font-variant-numeric: tabular-nums; }
.eb-releve caption {
  caption-side: top; text-align: left;
  padding: 0.6rem 0;
  font-size: 0.68rem; letter-spacing: var(--caps-interlettrage);
  text-transform: uppercase; color: var(--encre-douce);
}
.eb-releve th, .eb-releve td {
  text-align: left; padding: 0.62rem 1rem 0.62rem 0;
  border-bottom: 1px solid var(--trait); vertical-align: top;
}
.eb-releve tr:last-child td { border-bottom: 0; }
.eb-releve th {
  font-weight: 600; font-size: 0.7rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--terrasse-texte);
  background: var(--terrasse-fond);
  padding-left: 0.55rem;
}
.eb-releve th[scope="row"], .eb-releve tr th { color: var(--terrasse-texte); }

/* Envol : à lire ensuite. */
.eb-envol { border-top: var(--filet-double); margin-top: var(--souffle); padding-top: 1.2rem; }
.eb-envol h2 { font-size: clamp(1.2rem, 1rem + 0.8vw, 1.6rem); }
.eb-envol ul { list-style: none; margin: 0.7rem 0 0; padding: 0; }
.eb-envol li { margin-bottom: 0.65rem; }

/* Fleuron : séparateur orné entre grandes sections. */
.eb-fleuron {
  display: flex; align-items: center; justify-content: center;
  gap: 0.9rem;
  margin: clamp(1.6rem, 3.4vw, 2.6rem) auto 0;
  max-width: 24rem;
  color: var(--ambre);
}
.eb-fleuron::before, .eb-fleuron::after {
  content: ""; flex: 1; border-top: var(--filet);
}
.eb-fleuron .eb-glyphe { width: 1.2em; height: 1.2em; }

/* Glyphes : ornements SVG inline. */
.eb-glyphe { display: inline-block; width: 1.3em; height: 1.3em; vertical-align: -0.26em; }
.eb-glyphe--alveole, .eb-glyphe--abeille, .eb-glyphe--tilleul, .eb-glyphe--fumisseur { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* =========================================================================
   TERRASSE (pied de page)
   ========================================================================= */

.eb-terrasse {
  margin-top: var(--souffle);
  position: relative;
  background: var(--terrasse-fond);
  color: var(--terrasse-texte);
  border-top: 3px solid var(--ambre);
  padding-block: clamp(2.2rem, 5.5vw, 4rem) 1.4rem;
}
.eb-terrasse::before {
  content: ""; position: absolute; inset: 0; opacity: 0.35; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill='none' stroke='%23ecdfbe' stroke-opacity='0.06'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/svg%3E");
}
.eb-terrasse__rang { position: relative; }
.eb-terrasse__rang,
.eb-terrasse .eb-corps { display: block; }
.eb-terrasse__colonnes {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: clamp(1.5rem, 4vw, 3.4rem);
}
.eb-terrasse h2 { font-size: 1.12rem; margin-bottom: 0.85rem; color: var(--terrasse-texte); }
.eb-terrasse ul { list-style: none; margin: 0; padding: 0; }
.eb-terrasse li { margin-bottom: 0.5rem; }
.eb-terrasse a {
  color: var(--terrasse-lien); text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--transition), color var(--transition);
}
.eb-terrasse a:hover { border-bottom-color: var(--terrasse-lien); }
.eb-terrasse p { color: var(--terrasse-texte); font-size: 0.9rem; max-width: 52ch; }
.eb-terrasse__bas {
  position: relative;
  margin-top: clamp(1.8rem, 4.5vw, 3rem); padding-top: 1.1rem;
  border-top: 1px solid var(--trait);
  font-size: 0.74rem; color: var(--terrasse-texte);
  display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; align-items: center;
}
.eb-terrasse__bas .eb-glyphe--abeille { width: 1.1em; height: 1.1em; color: var(--terrasse-lien); }

/* =========================================================================
   RESPONSIVE : la grille se replie, aucun débordement horizontal
   ========================================================================= */

@media (max-width: 980px) {
  .eb-alveoles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .eb-alveole, .eb-alveole--moitie, .eb-alveole--petit { grid-column: span 2; }
  .eb-alveole--large, .eb-alveole--plein { grid-column: span 4; }
  .eb-alveole--pente, .eb-alveole--pente2 { margin-top: calc(var(--pente-h) / 2); }
  .eb-hausse__texte { grid-template-columns: minmax(0, 1fr); }
  .eb-hausse__orne { width: 5.5rem; }
}
@media (max-width: 640px) {
  .eb-alveoles { grid-template-columns: minmax(0, 1fr); }
  .eb-alveole, .eb-alveole--petit, .eb-alveole--moitie,
  .eb-alveole--large, .eb-alveole--plein { grid-column: span 1; }
  .eb-alveole--pente, .eb-alveole--pente2 { margin-top: 0; }
  .eb-alveole__cellule--haut { aspect-ratio: 3 / 4; }
  .eb-carnet { columns: 1; }
  .eb-fiche { grid-template-columns: 1fr; }
  .eb-fiche__vue { max-width: 320px; }
  .eb-texte > p:first-of-type::first-letter { float: none; font-size: 1em; color: inherit; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  .eb-alveole:hover .eb-alveole__vue { transform: none; }
}

/* =========================================================================
   IMPRESSION
   ========================================================================= */

@media print {
  body { background: #fff; color: #000; }
  .eb-porche, .eb-terrasse, .eb-evite, .eb-fleuron, .eb-hausse__orne { display: none; }
  .eb-hausse::before, .eb-terrasse::before { display: none; }
  .eb-hausse { background: #fff; }
  a { color: #000; text-decoration: none; }
  .eb-releve { overflow: visible; }
  .eb-releve table { min-width: 0; font-size: 0.8rem; }
  .eb-alveole, .eb-fiche { break-inside: avoid; }
  .eb-texte { max-width: none; }
}
