:root {
  --bg: #F7F9F6;
  --tx: #232B26;
  --mu: #56655B;
  --ac: #96AA99;
  --ac-fonce: #46604C;
  --ac-survol: #86998A;
  --bd: #D8E1DA;
  --an: #E8EEE9;
  --bl: #FFFFFF;
  --r: 10px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--tx);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.6;
}

/* Colonne étroite, centrée sur grand écran */
.page { max-width: 44rem; margin: 0 auto; background: var(--bg); }
@media (min-width: 46rem) {
  .page { min-height: 100vh; border-left: .5px solid var(--bd); border-right: .5px solid var(--bd); }
}

a { color: var(--ac-fonce); }
a:focus-visible { outline: 3px solid var(--ac-fonce); outline-offset: 2px; }

.aller-contenu { position: absolute; left: -999px; top: 0; z-index: 10; padding: .75rem 1rem; background: var(--ac); color: var(--tx); }
.aller-contenu:focus { left: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* En-tête et menu par silo */
.entete { padding: .75rem 1rem; border-bottom: .5px solid var(--bd); }
.logo { margin: 0; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; text-align: center; }
.logo a { display: inline-block; color: var(--tx); text-decoration: none; }
.logo img { display: block; margin: 0 auto; width: auto; max-width: 100%; height: 67px; }

.silos ul { display: flex; gap: .5rem; margin: 0; padding: .75rem 1rem; list-style: none; border-bottom: .5px solid var(--bd); }
.silos li { flex: 1; }
.silos a, .silos span {
  display: flex; align-items: center; justify-content: center;
  min-height: 2.75rem; padding: .5rem;
  background: var(--bl); color: var(--tx);
  border: .5px solid var(--bd); border-radius: var(--r);
  font-size: .9375rem; text-align: center; text-decoration: none;
}
.silos [aria-current] { background: var(--ac); border-color: var(--ac); color: var(--tx); }

main { padding: 1rem; }

/* Fil d'Ariane */
.ariane { margin: 0 0 1rem; font-size: .875rem; color: var(--mu); }
.ariane ol { display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: 0; padding: 0; list-style: none; }
.ariane li + li::before { content: "›"; margin-right: .5rem; }
.ariane a { color: var(--mu); }

/* Titres */
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.3; color: var(--tx); }
h1 { margin: 0 0 .75rem; font-size: 1.5rem; }
h2 { margin: 1.75rem 0 .625rem; font-size: 1.25rem; }
h3 { margin: 0 0 .375rem; font-size: 1.0625rem; }
p { margin: 0 0 .75rem; }

/* La réponse tout de suite */
.reponse { margin: 0 0 1rem; padding: 1rem; background: var(--an); border-radius: var(--r); }
.reponse p:last-of-type { margin-bottom: 0; }

/* Bouton Amazon */
.bouton {
  display: flex; align-items: center; justify-content: center;
  min-height: 2.75rem; margin-top: .75rem; padding: .5rem 1rem;
  background: var(--ac); color: var(--tx);
  border-radius: var(--r); font-weight: 500; text-decoration: none;
}
.bouton:hover { background: var(--ac-survol); }
.bouton:focus-visible { outline: 3px solid var(--tx); outline-offset: 2px; }

/* Sommaire */
.sommaire { margin: 0 0 1rem; padding: .75rem 1rem; background: var(--bl); border: .5px solid var(--bd); border-radius: var(--r); }
.sommaire p { margin: 0 0 .25rem; font-weight: 500; }
.sommaire ol { margin: 0; padding-left: 1.25rem; }
.sommaire li { padding: .125rem 0; }

/* Toutes les pages du rayon (mère du silo) : navigation en bas de page */
.rayon { margin: 2rem 0 0; padding: .75rem 1rem; background: var(--bl); border: .5px solid var(--bd); border-radius: var(--r); }
.rayon p { margin: 0 0 .25rem; font-weight: 500; }
.rayon ul { margin: 0; padding-left: 1.25rem; }
.rayon li { padding: .125rem 0; }

/* Encadré produit : toujours identique */
.produit { margin: 0 0 1rem; padding: 1rem; background: var(--bl); border: .5px solid var(--bd); border-radius: var(--r); }
.produit h3 { margin-top: 0; }
.etiquette { font-weight: 500; }
.produit ul { margin: 0 0 .75rem; padding-left: 1.25rem; }
.defaut { margin: 0 0 .25rem; padding: .5rem .75rem; background: var(--an); border-radius: 6px; }
.note-prix { margin: .5rem 0 0; color: var(--mu); font-size: .875rem; }

/* Tableau comparatif : fiches sur téléphone, 4 colonnes au maximum sur grand écran */
.tableau { width: 100%; margin: 0 0 1rem; border-collapse: collapse; background: var(--bl); }
.tableau caption { text-align: left; }
.tableau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tableau, .tableau tbody, .tableau tr, .tableau th, .tableau td { display: block; }
.tableau tr { padding: .75rem 1rem; border: .5px solid var(--bd); border-bottom: 0; }
.tableau tr:first-child { border-top-left-radius: var(--r); border-top-right-radius: var(--r); }
.tableau tr:last-child { border-bottom: .5px solid var(--bd); border-bottom-left-radius: var(--r); border-bottom-right-radius: var(--r); }
.tableau th[scope="row"] { margin-bottom: .25rem; font-weight: 500; text-align: left; }
.tableau td { display: flex; gap: .5rem; padding: .125rem 0; }
.tableau td::before { content: attr(data-label); flex: 0 0 6rem; color: var(--mu); }

@media (min-width: 40rem) {
  .tableau { display: table; font-size: .9375rem; }
  .tableau thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: table-header-group; }
  .tableau tbody { display: table-row-group; }
  .tableau tr { display: table-row; padding: 0; border: 0; }
  .tableau th, .tableau td { display: table-cell; padding: .625rem .75rem; border: .5px solid var(--bd); vertical-align: top; text-align: left; }
  .tableau thead th { background: var(--an); font-weight: 500; }
  .tableau th[scope="row"] { margin: 0; }
  .tableau td::before { content: none; }
}

/* Questions fréquentes */
.faq { padding: .75rem 0; border-top: .5px solid var(--bd); }
.faq:last-of-type { border-bottom: .5px solid var(--bd); }
.faq h3 { font-family: var(--sans); font-size: 1rem; }
.faq p { margin: 0; }

/* Conclusion et pages proches */
.liens-proches { margin: 0; padding: 0; list-style: none; }
.liens-proches a { display: flex; align-items: center; min-height: 2.75rem; }

/* Pied de page */
.pied { padding: 1rem; background: var(--an); border-top: .5px solid var(--bd); }
.pied p { margin: 0; font-size: .875rem; }
.pied-liens { display: flex; flex-wrap: wrap; gap: 0 1rem; margin: .5rem 0 0; padding: 0; list-style: none; font-size: .875rem; }
.pied-liens a { display: flex; align-items: center; min-height: 2.5rem; }

/* Pages obligatoires */
.texte-legal h2 { margin-top: 1.5rem; }
.texte-legal dl { margin: 0 0 .75rem; }
.texte-legal dt { margin-top: .5rem; font-weight: 500; }
.texte-legal dd { margin: 0; }
.texte-legal ul { margin: 0 0 .75rem; padding-left: 1.25rem; }

/* Champs à compléter : bien visibles pour ne pas les oublier */
.champ { padding: 0 .2em; background: #FBEBC8; border-radius: 4px; }

/* Page d'accueil : une entrée par page */
.entrees { display: grid; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.entrees a { display: block; min-height: 2.75rem; padding: .75rem 1rem; background: var(--bl); border: .5px solid var(--bd); border-radius: var(--r); color: var(--tx); text-decoration: none; }
.entrees a:hover { border-color: var(--ac); }
.entrees strong { display: block; color: var(--ac-fonce); font-weight: 500; }
.entrees span { font-size: .9375rem; }

/* Bannière de consentement compacte : « Refuser » et « Accepter » ont exactement le même aspect.
   Hauteur visée : 15 % de l'écran au maximum à 375 px. Elle disparaît dès le choix ; tant qu'elle est là, le JS réserve
   un espace en bas de page (padding-bottom du body et scroll-padding-bottom) pour qu'elle ne cache jamais un bouton Amazon. */
.cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: .375rem .75rem; background: var(--bl); border-top: 1px solid var(--tx); box-shadow: 0 -2px 10px rgba(46, 40, 36, .15); }
.cookies[hidden] { display: none; }
.cookies-contenu { max-width: 44rem; margin: 0 auto; }
.cookies p { margin: 0 0 .375rem; font-size: .8125rem; line-height: 1.35; }
.cookies-boutons { display: flex; gap: .5rem; }
.cookies-bouton {
  flex: 1; min-height: 2.75rem; padding: .25rem .75rem;
  background: var(--bl); color: var(--tx);
  border: 2px solid var(--tx); border-radius: var(--r);
  font: inherit; font-size: .9375rem; font-weight: 500; cursor: pointer;
}
.cookies-bouton:hover { background: var(--an); }
.cookies-bouton:focus-visible { outline: 3px solid var(--ac-fonce); outline-offset: 2px; }
.lien-cookies { display: flex; align-items: center; min-height: 2.5rem; padding: 0; background: none; border: 0; color: var(--ac-fonce); font: inherit; text-decoration: underline; cursor: pointer; }

/* ---------- Refonte v2 : en-tête de page, cartes, boutons de tableau ---------- */
.verifie { margin: 0 0 .125rem; color: var(--mu); font-size: .875rem; }
.non-teste { margin: 0 0 1rem; color: var(--mu); font-size: .875rem; }

.cartes { display: grid; gap: .75rem; margin: 0 0 .5rem; }
@media (min-width: 40rem) { .cartes { grid-template-columns: 1fr 1fr; } }
.carte { display: flex; flex-direction: column; margin: 0; }
.reponse .carte { margin: .75rem 0 0; }
.badge { align-self: flex-start; margin: 0 0 .5rem; padding: .125rem .625rem; background: var(--an); color: var(--ac-fonce); border-radius: 999px; font-size: .8125rem; font-weight: 500; line-height: 1.5; }
.carte-nom { margin: 0 0 .375rem; font-family: var(--serif); font-size: 1.0625rem; font-weight: 500; line-height: 1.3; }
.carte .pour-qui, .carte .fait { margin: 0 0 .375rem; }
.carte .bouton { margin-top: auto; }
.carte .fait + .bouton { margin-top: .5rem; }

.verdict-bouton { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.verdict-bouton .bouton { flex: 1 1 14rem; margin-top: 0; }
.lien-avis { margin: 0 0 .25rem; font-size: .9375rem; }
.tableau .bouton { margin-top: 0; min-height: 2.75rem; padding: .5rem .75rem; font-size: .9375rem; }
.tableau td[data-label="Voir"]::before { content: none; }
.tableau td[data-label="Voir"] { display: block; }
.icone { vertical-align: middle; margin-right: .5rem; }

@media (max-width: 30rem) {
  .silos ul { gap: .375rem; padding: .625rem .75rem; }
  .silos a, .silos span { padding: .375rem .25rem; font-size: .8125rem; }
}
