/* EzWebStudio — mise en page commune à tous les thèmes.
   Les thèmes (theme.css) et les réglages du site (site.css) ne changent que les variables. */

:root {
  --ez-primaire: #1f2933;
  --ez-secondaire: #52606d;
  --ez-accent: #0f62ae;
  --ez-fond: #ffffff;
  --ez-surface: #f5f7fa;
  --ez-texte: #1f2933;
  --ez-texte-doux: #52606d;
  --ez-bord: #d9e2ec;
  --ez-sur-primaire: #ffffff;
  --ez-sur-accent: #ffffff;
  --ez-avertissement: #b54708;
  --ez-sur-avertissement: #ffffff;
  --ez-alerte-fond: #fdecea;
  --ez-alerte-texte: #8a1c13;
  --ez-ombre: rgb(0 0 0 / .08);
  --ez-marqueur-fond: #fff3b0;
  --ez-marqueur-texte: #6b4e00;
  --ez-police-secours: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ez-police-secours-serif: Georgia, "Times New Roman", serif;
  --ez-police-titres: var(--ez-police-secours);
  --ez-police-texte: var(--ez-police-secours);
  --ez-rayon: 8px;
  --ez-densite: 1;
  --ez-espace: calc(1.5rem * var(--ez-densite));
  --ez-largeur: 72rem;
  --ez-hauteur-entete: 4.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--ez-fond);
  color: var(--ez-texte);
  font-family: var(--ez-police-texte);
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--ez-police-titres); line-height: 1.2; margin: 0 0 .6em; color: var(--ez-primaire); }
h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3rem); }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.3vw, 2rem); }
h3 { font-size: 1.2rem; }
/* Titres d'éléments remontés en h2 sur les pages de liste : même taille qu'un h3. */
:is(.ez-carte, .ez-evenement, .ez-personne, .ez-offre, .ez-publication, .ez-competence, .ez-chronologie) h2 { font-size: 1.2rem; font-style: normal; }
.ez-contenu :is(.ez-carte, .ez-evenement, .ez-personne, .ez-offre, .ez-publication, .ez-competence, .ez-chronologie) h2::after { content: none; }
p, ul, ol, dl { margin: 0 0 1em; }
a { color: var(--ez-accent); text-underline-offset: .15em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }

.ez-masque { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ez-conteneur { width: 100%; max-width: var(--ez-largeur); margin: 0 auto; padding: 0 1rem; }
@media (min-width: 48rem) { .ez-conteneur { padding: 0 1.5rem; } }

/* Lien d'évitement */
.ez-evitement { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--ez-primaire); color: var(--ez-sur-primaire); padding: .6rem 1rem; border-radius: var(--ez-rayon); }
.ez-evitement:focus { top: 1rem; }

/* Repère des informations manquantes */
.ez-a-completer { background: var(--ez-marqueur-fond); color: var(--ez-marqueur-texte); padding: 0 .3em; border-radius: 3px; font-weight: 600; font-size: .9em; }
.ez-image-manquante { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 12rem; background: repeating-linear-gradient(45deg, var(--ez-surface), var(--ez-surface) 12px, var(--ez-fond) 12px, var(--ez-fond) 24px); border: 2px dashed var(--ez-bord); border-radius: var(--ez-rayon); color: var(--ez-texte-doux); text-align: center; padding: 1rem; }

/* En-tête et menu */
.ez-entete { position: sticky; top: 0; z-index: 50; background: var(--ez-fond); border-bottom: 1px solid var(--ez-bord); }
.ez-entete-ligne { display: flex; align-items: center; gap: 1rem; min-height: var(--ez-hauteur-entete); }
.ez-marque { display: flex; align-items: center; text-decoration: none; color: var(--ez-primaire); font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.2rem; margin-right: auto; }
.ez-logo { max-height: 2.75rem; width: auto; margin-right: .6rem; }
@media (max-width: 30rem) { .ez-nom-site { font-size: 1rem; } }
.ez-menu { display: flex; align-items: center; gap: 1.25rem; }
.ez-navigation ul, .ez-langues ul { list-style: none; margin: 0; padding: 0; }
.ez-navigation > ul { display: flex; flex-wrap: wrap; gap: .25rem; }
.ez-navigation li { position: relative; }
.ez-navigation a { display: block; padding: .5rem .6rem; border-radius: var(--ez-rayon); color: var(--ez-texte); text-decoration: none; font-weight: 500; }
.ez-navigation a:hover { background: var(--ez-surface); }
.ez-navigation a[aria-current="page"], .ez-navigation a[aria-current="true"], .ez-navigation .ez-actif > a { color: var(--ez-accent); }
.ez-a-sous-menu { display: flex; align-items: center; }
.ez-bouton-sous-menu { border: 0; background: transparent; width: 1.75rem; height: 1.75rem; margin-left: -.4rem; cursor: pointer; border-radius: var(--ez-rayon); color: var(--ez-texte); }
.ez-bouton-sous-menu::before { content: ""; display: inline-block; width: .45rem; height: .45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.ez-bouton-sous-menu[aria-expanded="true"]::before { transform: translateY(1px) rotate(-135deg); }
.ez-sous-menu { position: absolute; top: 100%; left: 0; min-width: 14rem; background: var(--ez-fond); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); box-shadow: 0 8px 24px var(--ez-ombre); padding: .35rem; display: none; z-index: 60; }
.ez-a-sous-menu:hover > .ez-sous-menu, .ez-a-sous-menu:focus-within > .ez-sous-menu, .ez-bouton-sous-menu[aria-expanded="true"] + .ez-sous-menu { display: block; }
.js .ez-a-sous-menu:hover > .ez-sous-menu { display: block; }
.ez-langues ul { display: flex; gap: .25rem; }
.ez-langues a { display: block; padding: .3rem .5rem; font-size: .85rem; font-weight: 600; text-decoration: none; color: var(--ez-texte-doux); border: 1px solid transparent; border-radius: var(--ez-rayon); }
.ez-langues a[aria-current="true"] { color: var(--ez-primaire); border-color: var(--ez-bord); }
.ez-bouton-menu { display: none; border: 1px solid var(--ez-bord); background: var(--ez-fond); width: 2.75rem; height: 2.75rem; border-radius: var(--ez-rayon); cursor: pointer; color: var(--ez-texte); }
.ez-icone-menu, .ez-icone-menu::before, .ez-icone-menu::after { display: block; width: 1.25rem; height: 2px; background: currentColor; margin: 0 auto; position: relative; transition: transform .2s; }
.ez-icone-menu::before, .ez-icone-menu::after { content: ""; position: absolute; left: 0; }
.ez-icone-menu::before { top: -6px; } .ez-icone-menu::after { top: 6px; }
.ez-bouton-menu[aria-expanded="true"] .ez-icone-menu { background: transparent; }
.ez-bouton-menu[aria-expanded="true"] .ez-icone-menu::before { transform: translateY(6px) rotate(45deg); }
.ez-bouton-menu[aria-expanded="true"] .ez-icone-menu::after { transform: translateY(-6px) rotate(-45deg); }

/* Menu compact (« burger ») : activé par le script sur petit écran ou quand le menu ne tient pas sur une ligne. */
.ez-burger .ez-bouton-menu { display: block; }
.ez-burger .ez-entete-ligne { flex-wrap: wrap; }
.ez-burger .ez-menu { width: 100%; flex-direction: column; align-items: stretch; gap: .5rem; padding-bottom: 1rem; display: none; }
.ez-burger .ez-menu.ez-ouvert { display: flex; max-height: calc(100vh - var(--ez-hauteur-entete)); overflow-y: auto; }
.ez-burger .ez-navigation > ul { flex-direction: column; }
.ez-burger .ez-a-sous-menu { flex-wrap: wrap; }
.ez-burger .ez-a-sous-menu > a { flex: 1; }
.ez-burger .ez-bouton-sous-menu { width: 2.75rem; height: 2.75rem; margin: 0; }
.ez-burger .ez-sous-menu { position: static; width: 100%; box-shadow: none; border: 0; border-left: 2px solid var(--ez-bord); border-radius: 0; margin-left: .7rem; padding: 0 0 0 .5rem; }
.ez-burger .ez-a-sous-menu:hover > .ez-sous-menu, .ez-burger .ez-a-sous-menu:focus-within > .ez-sous-menu { display: none; }
.ez-burger .ez-a-sous-menu > .ez-bouton-sous-menu[aria-expanded="true"] + .ez-sous-menu { display: block; }
.ez-nom-site { white-space: nowrap; }

/* Contenu */
.ez-contenu:focus { outline: none; }
.ez-titre-page { max-width: var(--ez-largeur); margin: calc(var(--ez-espace) * 1.6) auto calc(var(--ez-espace) * .4); padding: 0 1rem; }
@media (min-width: 48rem) { .ez-titre-page { padding: 0 1.5rem; } }
.ez-bloc { padding: calc(var(--ez-espace) * 1.6) 0; }
.ez-bloc + .ez-bloc { padding-top: calc(var(--ez-espace) * .6); }
.ez-bloc-hero + .ez-bloc { padding-top: calc(var(--ez-espace) * 1.6); }
.ez-texte { max-width: 46rem; }
.ez-texte ul { padding-left: 1.25rem; }

/* Bannière */
.ez-bloc-hero { position: relative; padding: calc(var(--ez-espace) * 3) 0; background: var(--ez-surface); overflow: hidden; }
.ez-bloc-hero.ez-hero-avec-image { color: #fff; min-height: 24rem; display: flex; align-items: flex-end; }
.ez-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ez-hero-avec-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / .05) 20%, rgb(0 0 0 / .62)); }
.ez-hero-avec-image .ez-conteneur { position: relative; z-index: 1; }
.ez-hero-avec-image h1, .ez-hero-avec-image h2 { color: #fff; }
.ez-hero-texte { max-width: 44rem; }
.ez-hero-sous-titre { font-size: 1.2rem; }
.ez-hero-avec-image .ez-hero-sous-titre { color: #fff; }

/* Boutons */
.ez-bouton { display: inline-block; background: var(--ez-accent); color: var(--ez-sur-accent); padding: .7rem 1.25rem; border-radius: var(--ez-rayon); text-decoration: none; font-weight: 600; border: 0; cursor: pointer; font: inherit; font-weight: 600; }
.ez-bouton:hover { filter: brightness(1.1); }
.ez-bouton-inactif { opacity: .8; cursor: default; }

/* Grilles et cartes */
.ez-grille { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-carte, .ez-tarif { background: var(--ez-fond); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; display: flex; flex-direction: column; }
.ez-carte-image { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.ez-carte-corps, .ez-tarif { padding: calc(var(--ez-espace) * .9); }
.ez-carte-corps > :last-child, .ez-tarif > :last-child { margin-bottom: 0; }
.ez-tarif-prix { font-size: 1.6rem; font-weight: 700; color: var(--ez-primaire); }
.ez-grille-chiffres { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); text-align: center; }
.ez-chiffre-valeur { display: block; font-family: var(--ez-police-titres); font-size: 2.4rem; font-weight: 700; color: var(--ez-accent); line-height: 1.1; }
.ez-chiffre-libelle { color: var(--ez-texte-doux); }

/* Texte et image */
.ez-texte-image { display: grid; gap: calc(var(--ez-espace) * 1.5); align-items: center; }
@media (min-width: 48rem) {
  .ez-texte-image { grid-template-columns: 1fr 1fr; }
  .ez-image-gauche .ez-figure { order: -1; }
}
.ez-figure { margin: 0; }
.ez-figure img { border-radius: var(--ez-rayon); width: 100%; }

/* Appel à l'action */
.ez-appel { background: var(--ez-primaire); color: var(--ez-sur-primaire); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * 1.5); }
.ez-appel h2 { color: var(--ez-sur-primaire); }
.ez-appel .ez-bouton { background: var(--ez-sur-primaire); color: var(--ez-primaire); }

/* FAQ */
.ez-faq { max-width: 46rem; }
.ez-question { border-bottom: 1px solid var(--ez-bord); }
.ez-question summary { cursor: pointer; padding: 1rem 0; font-weight: 600; list-style-position: outside; }
.ez-question[open] summary { color: var(--ez-accent); }

/* Frise */
.ez-frise { list-style: none; padding: 0; border-left: 2px solid var(--ez-bord); margin-left: .5rem; }
.ez-etape { position: relative; padding: 0 0 var(--ez-espace) 1.5rem; }
.ez-etape::before { content: ""; position: absolute; left: -.5rem; top: .35rem; width: .85rem; height: .85rem; border-radius: 50%; background: var(--ez-accent); border: 3px solid var(--ez-fond); }
.ez-etape-date { font-weight: 700; color: var(--ez-accent); }

/* Contenus externes chargés au clic */
.ez-externe { background: var(--ez-surface); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * 1.2); aspect-ratio: 16 / 9; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; max-width: 52rem; }
.ez-externe-type { font-weight: 700; margin-bottom: .3rem; }
.ez-externe-avis { color: var(--ez-texte-doux); font-size: .95rem; max-width: 36rem; }
.ez-externe iframe { width: 100%; height: 100%; border: 0; border-radius: var(--ez-rayon); }
.ez-externe.ez-charge { padding: 0; background: #000; }
.ez-legende { color: var(--ez-texte-doux); font-size: .95rem; margin-top: .5rem; }

/* Module à venir */
.ez-a-venir { color: var(--ez-texte-doux); font-style: italic; border: 1px dashed var(--ez-bord); border-radius: var(--ez-rayon); padding: 1rem; }

/* Pages légales */
.ez-liste-legale { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.5rem; }
.ez-liste-legale dt { font-weight: 600; }
.ez-liste-legale dd { margin: 0; }
@media (max-width: 36rem) { .ez-liste-legale { grid-template-columns: 1fr; } .ez-liste-legale dd { margin-bottom: .6rem; } }

/* 404 */
.ez-404 + .ez-404 { border-top: 1px solid var(--ez-bord); }

/* Pied de page */
.ez-pied { margin-top: calc(var(--ez-espace) * 2); background: var(--ez-surface); border-top: 1px solid var(--ez-bord); font-size: .95rem; }
.ez-pied-grille { display: grid; gap: var(--ez-espace); padding-top: calc(var(--ez-espace) * 1.5); padding-bottom: var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.ez-pied p { margin: 0 0 .35rem; }
.ez-pied-nom { font-weight: 700; color: var(--ez-primaire); }
.ez-pied ul { list-style: none; padding: 0; margin: 0; }
.ez-pied li { margin-bottom: .35rem; }
.ez-pied-bas { border-top: 1px solid var(--ez-bord); padding-top: .8rem; padding-bottom: 1rem; }
.ez-mention-ezwebstudio { color: var(--ez-texte-doux); font-size: .85rem; }
.ez-mention-ezwebstudio a { color: inherit; }

/* ===== Modules ===== */
[hidden] { display: none !important; }
.ez-surplus { display: none !important; }
.ez-meta { color: var(--ez-texte-doux); font-size: .92rem; margin-bottom: .4rem; }
.ez-vide { color: var(--ez-texte-doux); font-style: italic; }
.ez-tout-voir { margin-top: var(--ez-espace); font-weight: 600; }
.ez-tout-voir a { text-decoration: none; }
.ez-h3 { font-size: 1.05rem; margin-bottom: .3rem; }
.ez-boutons { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: var(--ez-espace); }
.ez-bouton-secondaire { background: transparent; color: var(--ez-accent); box-shadow: inset 0 0 0 2px var(--ez-accent); }
.ez-carte :is(h2, h3) a { color: inherit; text-decoration: none; }
.ez-carte :is(h2, h3) a:hover { color: var(--ez-accent); }
.ez-carte :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; }
.ez-carte { position: relative; }
.ez-carte a:not(h2 a, h3 a) { position: relative; z-index: 1; }
.ez-prix { font-weight: 700; color: var(--ez-primaire); }

/* Évènements */
.ez-evenements { display: grid; gap: calc(var(--ez-espace) * .75); margin-bottom: var(--ez-espace); }
.ez-evenement { display: flex; gap: 1rem; align-items: flex-start; padding: calc(var(--ez-espace) * .75); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-evenement :is(h2, h3) { margin-bottom: .25rem; }
.ez-evenement :is(h2, h3) a { color: inherit; text-decoration: none; }
.ez-evenement :is(h2, h3) a:hover { color: var(--ez-accent); }
.ez-evenement-corps > :last-child { margin-bottom: 0; }
.ez-pastille { flex: none; width: 4rem; text-align: center; border-radius: var(--ez-rayon); background: var(--ez-accent); color: var(--ez-sur-accent); padding: .45rem 0; line-height: 1.1; }
.ez-pastille-jour { display: block; font-size: 1.6rem; font-weight: 700; }
.ez-pastille-mois { display: block; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
.ez-evenements-passes .ez-pastille { background: var(--ez-texte-doux); }
.ez-evenements-passes .ez-evenement { opacity: .85; }

/* Équipe */
.ez-grille-equipe { grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.ez-personne { text-align: center; }
.ez-personne-photo, .ez-personne-initiales { width: 8.5rem; height: 8.5rem; border-radius: 50%; object-fit: cover; margin: 0 auto 1rem; }
.ez-personne-initiales { display: flex; align-items: center; justify-content: center; background: var(--ez-surface); color: var(--ez-primaire); font-size: 2rem; font-weight: 700; border: 1px solid var(--ez-bord); }
.ez-personne :is(h2, h3) { margin-bottom: .2rem; }

/* Témoignages */
.ez-grille-temoignages { grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.ez-temoignage { margin: 0; padding: calc(var(--ez-espace) * 1); background: var(--ez-surface); border-radius: var(--ez-rayon); border-left: 4px solid var(--ez-accent); }
.ez-temoignage blockquote { margin: 0 0 .8rem; font-size: 1.08rem; }
.ez-temoignage blockquote p::before { content: "« "; } .ez-temoignage blockquote p::after { content: " »"; }
.ez-temoignage figcaption span { display: block; color: var(--ez-texte-doux); font-size: .92rem; }

/* Partenaires */
.ez-logos { list-style: none; padding: 0; display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); align-items: center; }
.ez-partenaire a, .ez-partenaire > img, .ez-partenaire > span { display: flex; align-items: center; justify-content: center; min-height: 5rem; padding: .75rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); text-decoration: none; color: var(--ez-texte); }
.ez-logo-partenaire { max-height: 3.5rem; width: auto; object-fit: contain; }

/* Documents */
.ez-documents { list-style: none; padding: 0; display: grid; gap: .6rem; max-width: 52rem; }
.ez-document { display: flex; gap: 1rem; align-items: flex-start; padding: .8rem 1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); }
.ez-document p { margin: .2rem 0 0; }
.ez-document .ez-meta { margin: .1rem 0 0; }
.ez-document-icone { flex: none; width: 3rem; height: 3rem; border-radius: var(--ez-rayon); background: var(--ez-surface); color: var(--ez-accent); display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; }
.ez-document-lien { font-weight: 600; }

/* Offres */
.ez-offres { display: grid; gap: .8rem; max-width: 52rem; }
.ez-offre { padding: 1rem 1.2rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); }
.ez-offre :is(h2, h3) { margin: 0 0 .3rem; }
.ez-offre > :last-child { margin-bottom: 0; }

/* Calendrier sportif */
.ez-tableau-defilant { overflow-x: auto; margin-bottom: var(--ez-espace); }
.ez-tableau-sport { width: 100%; border-collapse: collapse; min-width: 34rem; }
.ez-tableau-sport td { padding: .65rem .6rem; border-bottom: 1px solid var(--ez-bord); vertical-align: middle; }
.ez-equipe-domicile { text-align: right; }
.ez-score { text-align: center; white-space: nowrap; width: 5.5rem; font-variant-numeric: tabular-nums; }
/* Petit écran : chaque match sur trois lignes (date ; équipes et score ; compétition), sans défilement */
@media (max-width: 40rem) {
  .ez-tableau-sport { min-width: 0; }
  .ez-tableau-sport tr { display: grid; grid-template-columns: 1fr auto 1fr; gap: .25rem .6rem; padding: .7rem .4rem;
    border-bottom: 1px solid var(--ez-bord); }
  .ez-tableau-sport td { border: 0; padding: 0; }
  .ez-tableau-sport .ez-date, .ez-tableau-sport .ez-meta { grid-column: 1 / -1; font-size: .9rem; }
  .ez-tableau-sport .ez-score { width: auto; }
}

/* Contact */
.ez-contact { display: grid; gap: calc(var(--ez-espace) * 1.5); }
@media (min-width: 52rem) { .ez-contact:has(.ez-contact-carte) { grid-template-columns: 1fr 1.3fr; } }
.ez-contact-infos > div { margin-bottom: var(--ez-espace); }
.ez-contact-carte .ez-externe { aspect-ratio: 4 / 3; }

/* CV : compétences, langues, liens, publications */
.ez-grille-competences { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.ez-etiquettes { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.ez-etiquettes li { background: var(--ez-surface); border: 1px solid var(--ez-bord); border-radius: 999px; padding: .2rem .75rem; font-size: .92rem; }
.ez-langues-parlees { list-style: none; padding: 0; display: grid; gap: .5rem; max-width: 34rem; }
.ez-langue-parlee { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-langue-parlee span { color: var(--ez-texte-doux); }
.ez-liens { list-style: none; padding: 0; display: grid; gap: .7rem; max-width: 30rem; }
.ez-bouton-lien { display: block; text-align: center; }
.ez-publications { list-style: none; padding: 0; max-width: 52rem; }
.ez-publication { padding: 1rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-publication :is(h2, h3) { margin-bottom: .3rem; }
.ez-publication > :last-child { margin-bottom: 0; }

/* Actualités : archives, RSS, pagination */
.ez-archives { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-archives ul { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.ez-archives a { display: inline-block; padding: .15rem .55rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); text-decoration: none; }
.ez-archives a[aria-current="page"] { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: var(--ez-accent); }
/* Lot 7 bis : filtre combiné (période, catégorie, filtres libres) */
.ez-filtre-combine { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: center; margin-top: .75rem; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-filtre-combine[hidden] { display: none; }
.ez-filtre-combine select { font: inherit; padding: .2rem .4rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond, #fff); color: inherit; }
.ez-filtre-combine .ez-vide { flex-basis: 100%; margin: .25rem 0 0; }
.ez-filtre-cache { display: none !important; }
.ez-rss { max-width: var(--ez-largeur); margin: .3rem auto 0; padding: 0 1rem; font-size: .9rem; }
@media (min-width: 48rem) { .ez-rss { padding: 0 1.5rem; } }
.ez-pagination { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: calc(var(--ez-espace) * 1.2); }
.ez-pagination a { padding: .4rem .75rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); text-decoration: none; }
.ez-pagination a[aria-current="page"] { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: var(--ez-accent); }

/* Galerie et visionneuse */
.ez-galerie { list-style: none; padding: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); margin: var(--ez-espace) 0; }
.ez-galerie figure { margin: 0; }
.ez-galerie img { aspect-ratio: 1; object-fit: cover; width: 100%; border-radius: var(--ez-rayon); transition: opacity .2s; }
.ez-galerie a:hover img { opacity: .85; }
.ez-galerie figcaption { font-size: .88rem; color: var(--ez-texte-doux); margin-top: .3rem; }
.ez-visionneuse { border: 0; padding: 0; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; background: rgb(10 12 16 / .94); color: #fff; }
.ez-visionneuse::backdrop { background: rgb(10 12 16 / .94); }
.ez-visionneuse figure { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3.5rem 4rem 1.5rem; }
.ez-visionneuse img { max-width: 100%; max-height: calc(100vh - 7rem); object-fit: contain; }
.ez-visionneuse figcaption { margin-top: .8rem; text-align: center; }
.ez-visionneuse button { position: absolute; background: rgb(255 255 255 / .12); color: #fff; border: 0; width: 3rem; height: 3rem; border-radius: 50%; font-size: 1.5rem; cursor: pointer; }
.ez-visionneuse button:hover { background: rgb(255 255 255 / .25); }
.ez-visionneuse-fermer { top: 1rem; right: 1rem; }
.ez-visionneuse-prec { left: 1rem; top: 50%; transform: translateY(-50%); }
.ez-visionneuse-suiv { right: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 36rem) { .ez-visionneuse figure { padding: 4rem .5rem 1rem; } .ez-visionneuse-prec, .ez-visionneuse-suiv { top: auto; bottom: 1rem; transform: none; } }

/* Pages de détail */
.ez-detail { padding: calc(var(--ez-espace) * 1.2) 0; }
.ez-retour { font-size: .95rem; margin-bottom: var(--ez-espace); }
.ez-retour a { text-decoration: none; }
.ez-detail-titre { margin-bottom: .4rem; }
.ez-conteneur-large { max-width: calc(var(--ez-largeur) + 0rem); margin: var(--ez-espace) auto; padding: 0 1rem; }
@media (min-width: 48rem) { .ez-conteneur-large { padding: 0 1.5rem; } }
.ez-detail-image { width: 100%; max-height: 32rem; object-fit: cover; border-radius: var(--ez-rayon); }
.ez-fiche { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; margin: var(--ez-espace) 0; padding: 1rem 1.2rem; background: var(--ez-surface); border-radius: var(--ez-rayon); max-width: 46rem; }
.ez-fiche dt { font-weight: 600; } .ez-fiche dd { margin: 0; }
.ez-alerte { padding: .8rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-alerte-fond); color: var(--ez-alerte-texte); font-weight: 600; }

/* Bandeau d'annonce */
.ez-annonce { background: var(--ez-accent); color: var(--ez-sur-accent); font-size: .95rem; }
.ez-annonce p { margin: 0; padding: .6rem 0; }
.ez-annonce a { color: inherit; font-weight: 600; }
.ez-annonce-warning, .ez-annonce-important { background: var(--ez-avertissement); color: var(--ez-sur-avertissement); }
.ez-annonce-urgent { background: #b42318; color: #fff; }

/* ===== Lot 4 : one page, menus, recherche ===== */
.ez-section { scroll-margin-top: calc(var(--ez-hauteur-entete) + .5rem); }
.ez-style-one-page-scroll .ez-section + .ez-section { border-top: 1px solid var(--ez-bord); }
.ez-titre-section { padding-top: calc(var(--ez-espace) * 1.6); }
.ez-titre-section + .ez-bloc { padding-top: calc(var(--ez-espace) * .4); }
.ez-section > .ez-bloc-module:first-child, .ez-section > h1 + .ez-bloc-module { padding-top: calc(var(--ez-espace) * 1.6); }

/* One page à sections : une section visible à la fois (seulement avec le script) */
.js [data-ez-sections] .ez-section { display: none; }
.js [data-ez-sections] .ez-section.ez-section-active { display: block; animation: ez-fondu .35s ease; }
@keyframes ez-fondu { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .js [data-ez-sections] .ez-section.ez-section-active { animation: none; } }
.js [data-ez-sections] .ez-contenu { min-height: calc(100vh - var(--ez-hauteur-entete) - 12rem); }

/* Page de liens */
.ez-page-liens { background: var(--ez-surface); }
.ez-page-liens .ez-entete-simple { background: transparent; border: 0; position: static; }
.ez-carte-liens { text-align: center; padding-top: calc(var(--ez-espace) * 2); }
.ez-carte-liens .ez-conteneur { max-width: 34rem; background: var(--ez-fond); border-radius: calc(var(--ez-rayon) * 2); padding: calc(var(--ez-espace) * 2) 1.5rem; box-shadow: 0 10px 30px rgb(0 0 0 / .06); }
.ez-liens-photo { width: 7.5rem; height: 7.5rem; object-fit: cover; border-radius: 50%; margin: 0 auto 1rem; }
.ez-liens-accroche { color: var(--ez-texte-doux); }
.ez-carte-liens .ez-liens { margin: calc(var(--ez-espace) * 1.2) auto 0; }
.ez-liens-reseaux { list-style: none; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem; margin-top: var(--ez-espace); }

/* Loupe de recherche */
.ez-loupe { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .55rem; border-radius: var(--ez-rayon); color: var(--ez-texte); text-decoration: none; }
.ez-loupe:hover, .ez-loupe[aria-current="page"] { background: var(--ez-surface); color: var(--ez-accent); }
.ez-icone-loupe { width: 1rem; height: 1rem; border: 2px solid currentColor; border-radius: 50%; position: relative; flex: none; }
.ez-icone-loupe::after { content: ""; position: absolute; width: 2px; height: .45rem; background: currentColor; right: -.3rem; bottom: -.4rem; transform: rotate(-45deg); }
.ez-loupe-texte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ez-menu { order: 3; }
.ez-loupe { order: 4; }
.ez-bouton-menu { order: 5; }
.ez-burger .ez-loupe { order: 2; }
.ez-burger .ez-bouton-menu { order: 3; }
.ez-burger .ez-menu { order: 4; }
.ez-lateral:not(.ez-burger) .ez-loupe-texte { position: static; width: auto; height: auto; clip: auto; }
.ez-lateral:not(.ez-burger) .ez-nom-site { white-space: normal; }

/* Page de recherche */
.ez-recherche { max-width: 40rem; }
.ez-recherche label { display: block; font-weight: 600; margin-bottom: .4rem; }
.ez-recherche-ligne { display: flex; gap: .5rem; }
.ez-recherche input { flex: 1; min-width: 0; font: inherit; padding: .65rem .8rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); }
.ez-recherche input:focus { outline: 3px solid var(--ez-accent); outline-offset: 1px; }
.ez-recherche-statut { margin-top: var(--ez-espace); color: var(--ez-texte-doux); }
.ez-resultats { list-style: none; padding: 0; max-width: 46rem; }
.ez-resultats li { padding: .9rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-resultats a { font-weight: 600; font-size: 1.1rem; }
.ez-resultats p { margin: .25rem 0 0; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-resultats .ez-meta { margin: 0 0 .15rem; font-size: .85rem; }
.ez-resultats mark { background: var(--ez-marqueur-fond); color: inherit; padding: 0 .1em; }

/* Menu vertical latéral (grand écran) */
@media (min-width: 60.01rem) {
  .ez-lateral:not(.ez-burger) body { display: grid; grid-template-columns: 17rem 1fr; grid-template-rows: auto 1fr auto; }
  .ez-lateral:not(.ez-burger) .ez-evitement { grid-column: 1 / -1; }
  .ez-lateral:not(.ez-burger) .ez-entete { grid-column: 1; grid-row: 1 / span 3; position: sticky; top: 0; height: 100vh; overflow-y: auto; border-bottom: 0; border-right: 1px solid var(--ez-bord); }
  .ez-lateral:not(.ez-burger) .ez-entete-ligne { flex-direction: column; align-items: stretch; padding: 1.5rem 1rem; gap: 1.5rem; }
  .ez-lateral:not(.ez-burger) .ez-marque { margin: 0; }
  .ez-lateral:not(.ez-burger) .ez-menu { flex-direction: column; align-items: stretch; }
  .ez-lateral:not(.ez-burger) .ez-navigation > ul { flex-direction: column; }
  .ez-lateral:not(.ez-burger) .ez-a-sous-menu { flex-wrap: wrap; }
  .ez-lateral:not(.ez-burger) .ez-a-sous-menu > a { flex: 1; }
  .ez-lateral:not(.ez-burger) .ez-sous-menu { position: static; display: block; width: 100%; border: 0; box-shadow: none; padding: 0 0 0 .8rem; }
  .ez-lateral:not(.ez-burger) .ez-bouton-sous-menu { display: none; }
  .ez-lateral:not(.ez-burger) .ez-annonce, .ez-lateral:not(.ez-burger) .ez-contenu, .ez-lateral:not(.ez-burger) .ez-pied { grid-column: 2; min-width: 0; }
  .ez-lateral:not(.ez-burger) .ez-pied { margin-top: 0; }
}

/* Mode sombre : les thèmes définissent leurs couleurs sombres sous .ez-sombre-auto (prefers-color-scheme). */
@media (prefers-color-scheme: dark) {
  :root.ez-sombre-auto { color-scheme: dark; }
  .ez-sombre-auto .ez-image-manquante { background: repeating-linear-gradient(45deg, var(--ez-surface), var(--ez-surface) 12px, var(--ez-fond) 12px, var(--ez-fond) 24px); }
  .ez-sombre-auto .ez-a-completer { background: #ffe066; color: #3d2e00; }
}

/* Images en plusieurs tailles (lot 6) : <picture> ne crée pas de boîte, l'image garde sa mise en page */
picture { display: contents; }

/* Boutons à icône (1.2) : contact et pied de page, commun.json → display.*.icons ;
   forme : apparence.json → icon_buttons (round par défaut, rounded, square, plain) ou style.css */
.ez-icones { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; padding: 0; margin: var(--ez-espace) 0 0; }
.ez-pied .ez-icones { margin-top: .35rem; }
.ez-pied .ez-icones li { margin: 0; }
.ez-bouton-icone { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: var(--ez-icone-rayon, 50%); background: var(--ez-icone-fond, var(--ez-accent)); color: var(--ez-icone-couleur, var(--ez-sur-accent)); text-decoration: none; transition: transform .15s ease, filter .15s ease; }
.ez-bouton-icone:hover { transform: translateY(-2px); filter: brightness(1.08); }
.ez-bouton-icone:focus-visible { outline: 3px solid var(--ez-primaire); outline-offset: 3px; }
.ez-icone { width: 1.25rem; height: 1.25rem; display: block; }
.ez-contact-intro { margin-bottom: var(--ez-espace); max-width: 46rem; }
.ez-texte h3, .ez-texte h4 { margin: 1.4em 0 .4em; }
.ez-texte > h3:first-child, .ez-texte > h4:first-child { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .ez-bouton-icone { transition: none; } .ez-bouton-icone:hover { transform: none; } }

/* ===== 1.4 : formulaire de contact ===== */
.ez-formulaire { max-width: 40rem; display: grid; gap: var(--ez-espace); }
.ez-champ label { display: block; font-weight: 600; margin-bottom: .4rem; }
.ez-formulaire input, .ez-formulaire select, .ez-formulaire textarea { width: 100%; box-sizing: border-box; font: inherit; padding: .65rem .8rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); }
.ez-formulaire textarea { resize: vertical; min-height: 8rem; }
.ez-formulaire input:focus, .ez-formulaire select:focus, .ez-formulaire textarea:focus { outline: 3px solid var(--ez-accent); outline-offset: 1px; }
.ez-formulaire p { margin: 0; }
.ez-formulaire-aide, .ez-formulaire-note { color: var(--ez-texte-doux); font-size: .9em; }
/* Piège à robots : hors de l'écran (pas display:none, que certains robots repèrent). */
.ez-pot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Articles en sections (actualités, depuis la 1.5) */
.ez-article { max-width: 46rem; display: flex; flex-direction: column; gap: var(--ez-espace); margin-top: var(--ez-espace); }
.ez-article > * { margin-top: 0; margin-bottom: 0; }
.ez-article-sous-titre { margin-top: calc(var(--ez-espace) * .5); }
.ez-article-photo { margin: 0; }
.ez-article-photo img { width: 100%; border-radius: var(--ez-rayon); }
.ez-article-photo figcaption, .ez-article-texte-image figcaption { color: var(--ez-texte-doux); font-size: .92rem; margin-top: .4rem; }
@media (min-width: 60rem) { .ez-article-photo-large { width: min(calc(var(--ez-largeur) - 3rem), calc(100vw - 3rem)); max-width: none; } }
.ez-article .ez-texte-image { align-items: start; }
.ez-article .ez-galerie { margin: 0; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.ez-citation { margin: 0; padding: calc(var(--ez-espace) * .8) calc(var(--ez-espace) * 1); border-left: 4px solid var(--ez-accent); background: var(--ez-surface); border-radius: var(--ez-rayon); }
.ez-citation blockquote { margin: 0; font-size: 1.15rem; font-style: italic; }
.ez-citation blockquote p { margin: 0; }
.ez-citation figcaption { margin-top: .5rem; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-citation figcaption::before { content: "— "; }
.ez-article .ez-fiche { margin: 0; }
.ez-article-document .ez-meta { margin: 0 0 0 .5rem; display: inline; }
.ez-categories { margin-bottom: .5rem; }

/* Agenda (depuis la 1.5) : statut, outils, calendrier par mois, dates clés */
.ez-statut { display: inline-block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .1rem .45rem; border-radius: var(--ez-rayon); margin-bottom: .3rem; background: var(--ez-surface); border: 1px solid var(--ez-bord); color: var(--ez-texte); }
.ez-statut-cancelled { background: var(--ez-alerte-fond); color: var(--ez-alerte-texte); border-color: transparent; }
.ez-statut-postponed { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: transparent; }
.ez-evenement-annule h3, .ez-evenement-annule h2, .ez-cal-annule { text-decoration: line-through; }
.ez-statut-note { font-weight: 600; margin: .2rem 0; }
.ez-outils-agenda { margin: .5rem auto; }
.ez-outils-agenda .ez-boutons { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .4rem; }
.ez-aide { color: var(--ez-texte-doux); font-size: .9rem; max-width: 46rem; }
.ez-adresse-agenda { display: inline-block; word-break: break-all; font-size: .85rem; }
.ez-dates-suivantes { margin: .4rem 0 0; padding-left: 1.1rem; }
.ez-cal-nav { margin: .5rem 0 1rem; }
.ez-calendrier { width: 100%; border-collapse: collapse; table-layout: fixed; min-width: 40rem; }
.ez-calendrier caption { font-weight: 700; font-size: 1.2rem; text-align: left; padding-bottom: .5rem; }
.ez-calendrier th { font-size: .85rem; color: var(--ez-texte-doux); padding: .3rem; text-align: left; }
.ez-calendrier th abbr { text-decoration: none; }
.ez-calendrier td { vertical-align: top; border: 1px solid var(--ez-bord); height: 6rem; padding: .3rem; font-size: .85rem; }
.ez-calendrier ul { list-style: none; margin: .2rem 0 0; padding: 0; display: grid; gap: .2rem; }
.ez-cal-numero { font-weight: 600; font-size: .85rem; }
.ez-cal-weekend { background: var(--ez-surface); }
.ez-cal-vide { background: transparent; border-color: transparent !important; }
.ez-cal-evenement { background: var(--ez-surface); border-left: 3px solid var(--ez-accent); padding: .1rem .3rem; border-radius: 3px; line-height: 1.3; }
.ez-cal-evenement .ez-statut { font-size: .65rem; padding: 0 .25rem; margin: 0; }
.ez-cal-date { color: var(--ez-texte-doux); font-style: italic; line-height: 1.3; }
.ez-cal-heure { font-weight: 600; }
td.ez-aujourdhui { outline: 2px solid var(--ez-accent); outline-offset: -2px; }
@media (max-width: 47.99rem) {
  /* Petit écran : le mois devient une liste des jours qui ont quelque chose. */
  .ez-calendrier { min-width: 0; }
  .ez-calendrier thead { display: none; }
  .ez-calendrier, .ez-calendrier tbody, .ez-calendrier tr, .ez-calendrier td { display: block; width: auto; height: auto; }
  .ez-calendrier td:not(.ez-cal-occupe) { display: none; }
  .ez-calendrier td { border-width: 0 0 1px; padding: .5rem 0; }
  .ez-calendrier caption { display: block; }
  .ez-cal-numero { font-size: 0; }
  .ez-cal-numero::after { content: attr(aria-label); font-size: .95rem; font-weight: 600; }
}
.ez-dates-cles { width: 100%; border-collapse: collapse; margin-bottom: calc(var(--ez-espace) * 1.2); }
.ez-dates-cles th, .ez-dates-cles td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid var(--ez-bord); vertical-align: top; }
.ez-dates-cles th { font-size: .85rem; color: var(--ez-texte-doux); }
.ez-date-passee { color: var(--ez-texte-doux); }
.ez-etiquette-date { display: inline-block; font-size: .8rem; padding: .05rem .45rem; border-radius: var(--ez-rayon); border: 1px solid var(--ez-bord); white-space: nowrap; }
.ez-etiquette-holiday { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: transparent; }

/* Menus (depuis la 1.5) */
.ez-menu-semaine { margin-bottom: calc(var(--ez-espace) * 1.2); }
.ez-menu-jours { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.ez-menu-jour { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: .8rem 1rem; background: var(--ez-fond); }
.ez-menu-jour h3, .ez-menu-jour h4 { font-size: 1rem; margin: 0 0 .5rem; }
.ez-menu-jour.ez-aujourdhui { border: 2px solid var(--ez-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ez-accent) 20%, transparent); }
.ez-menu-jour-ferme { background: var(--ez-surface); color: var(--ez-texte-doux); }
.ez-menu-plats { margin: 0; }
.ez-menu-plats dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--ez-texte-doux); margin-top: .4rem; }
.ez-menu-plats dd { margin: 0; }
.ez-menu-allergenes, .ez-menu-note { font-size: .82rem; color: var(--ez-texte-doux); margin: .5rem 0 0; }
.ez-menu-ferme { margin: 0; font-style: italic; }
.ez-menu-outils { margin-top: var(--ez-espace); }
@media print {
  .ez-menu-outils, .ez-outils-agenda, .ez-cal-nav { display: none !important; }
  .ez-menu-semaine.ez-surplus, .ez-menu-semaine[hidden] { display: none !important; }
  .ez-menu-jour { break-inside: avoid; }
}

/* --- Documents : bibliothèques, présentations, « Nouveau » (depuis la 1.5) --- */
.ez-doc-pdf { background: #fdecea; color: #a12a1e; }
.ez-doc-texte { background: #e7effa; color: #1d4f91; }
.ez-doc-tableur { background: #e6f4ea; color: #1e6b34; }
.ez-doc-presentation { background: #fdf0e6; color: #9a4a0b; }
.ez-doc-image, .ez-doc-video, .ez-doc-son { background: #f1ecfa; color: #5b3a99; }
.ez-doc-archive, .ez-doc-autre { background: var(--ez-surface); color: var(--ez-texte-doux); }
.ez-nouveau { display: inline-block; margin-left: .4rem; padding: .05rem .45rem; border-radius: 999px; background: var(--ez-accent); color: var(--ez-sur-accent); font-size: .75rem; font-weight: 700; vertical-align: middle; }
.ez-vignettes-documents { grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.ez-vignette-document .ez-carte-image { aspect-ratio: 4 / 3; object-fit: cover; }
.ez-vignette-icone { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; background: var(--ez-surface); border-radius: var(--ez-rayon) var(--ez-rayon) 0 0; }
.ez-vignette-icone .ez-document-icone { width: 4.5rem; height: 4.5rem; font-size: 1rem; }
.ez-vignette-document h3 { font-size: 1.05rem; margin: 0; }
.ez-vignette-document .ez-meta { margin-top: .4rem; }
.ez-tableau-documents { width: 100%; border-collapse: collapse; }
.ez-tableau-documents th { text-align: left; border-bottom: 2px solid var(--ez-bord); padding: 0; }
.ez-tableau-documents th button { all: unset; box-sizing: border-box; display: block; width: 100%; padding: .55rem .6rem; font-weight: 700; cursor: pointer; }
.ez-tableau-documents th button:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: -2px; }
.ez-tableau-documents th button::after { content: " ↕"; color: var(--ez-texte-doux); font-weight: 400; }
.ez-tableau-documents th[aria-sort="ascending"] button::after { content: " ↑"; color: var(--ez-accent); }
.ez-tableau-documents th[aria-sort="descending"] button::after { content: " ↓"; color: var(--ez-accent); }
.ez-tableau-documents td { padding: .55rem .6rem; border-bottom: 1px solid var(--ez-bord); vertical-align: middle; }
.ez-doc-nom { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ez-tableau-documents .ez-document-icone { width: 2.2rem; height: 2.2rem; font-size: .65rem; }
@media (max-width: 40rem) {
  .ez-tableau-documents thead { display: none; }
  .ez-tableau-documents tr { display: block; padding: .6rem 0; border-bottom: 1px solid var(--ez-bord); }
  .ez-tableau-documents td { display: inline; border: 0; padding: 0 .4rem 0 0; font-size: .9rem; color: var(--ez-texte-doux); }
  .ez-tableau-documents td:first-child { display: block; color: inherit; font-size: 1rem; margin-bottom: .3rem; }
}
.ez-bibliotheque { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); margin-bottom: 1rem; }
.ez-bibliotheque > summary { cursor: pointer; padding: .9rem 1.1rem; font-size: 1.15rem; display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap; }
.ez-bibliotheque > summary::marker { color: var(--ez-accent); }
.ez-bibliotheque-nom { font-weight: 700; }
.ez-bibliotheque[open] > summary { border-bottom: 1px solid var(--ez-bord); }
.ez-bibliotheque > :not(summary) { margin: 1rem 1.1rem; }
.ez-bibliotheque-intro { color: var(--ez-texte-doux); }
@media print { .ez-bibliotheque > summary { list-style: none; } .ez-bibliotheque:not([open]) > :not(summary) { display: block; } }

/* ===== 1.6 : widgets (compteurs, barres, anneaux, graphiques, compte à rebours, étapes, avant / après, avis) =====
   Couleur d'un widget : --ez-widget-couleur (accent du thème par défaut ; « color » du bloc ou d'un élément).
   html.ez-widgets est posé par ezwebstudio-widgets.js : sans ce script, tout s'affiche directement à sa valeur finale.
   Les animations ne jouent qu'une fois et jamais pour les visiteurs qui demandent moins d'animations. */
.ez-widget { --ez-widget-couleur: var(--ez-accent); --ez-duree: 2s; }
.ez-fond-surface { background: var(--ez-surface); }
.ez-fond-primary { background: var(--ez-primaire); color: var(--ez-sur-primaire); --ez-widget-couleur: var(--ez-sur-primaire); }
.ez-fond-accent { background: var(--ez-accent); color: var(--ez-sur-accent); --ez-widget-couleur: var(--ez-sur-accent); }
.ez-fond-primary :is(h2, h3, a), .ez-fond-accent :is(h2, h3, a) { color: inherit; }
.ez-fond-primary .ez-bouton { background: var(--ez-sur-primaire); color: var(--ez-primaire); border-color: var(--ez-sur-primaire); }
.ez-fond-accent .ez-bouton { background: var(--ez-sur-accent); color: var(--ez-accent); border-color: var(--ez-sur-accent); }
.ez-bloc.ez-widget:is(.ez-fond-surface, .ez-fond-primary, .ez-fond-accent) { padding: calc(var(--ez-espace) * 2) 0; }
.ez-couleur-accent { --ez-widget-couleur: var(--ez-accent); }
.ez-couleur-primary { --ez-widget-couleur: var(--ez-primaire); }
.ez-couleur-secondary { --ez-widget-couleur: var(--ez-secondaire); }
.ez-serie-1 { --ez-widget-couleur: var(--ez-accent); }
.ez-serie-2 { --ez-widget-couleur: var(--ez-primaire); }
.ez-serie-3 { --ez-widget-couleur: var(--ez-secondaire); }
.ez-serie-4 { --ez-widget-couleur: color-mix(in srgb, var(--ez-accent) 55%, var(--ez-fond)); }
.ez-serie-5 { --ez-widget-couleur: color-mix(in srgb, var(--ez-primaire) 55%, var(--ez-fond)); }
.ez-serie-6 { --ez-widget-couleur: color-mix(in srgb, var(--ez-secondaire) 55%, var(--ez-fond)); }
.ez-serie-7 { --ez-widget-couleur: var(--ez-texte-doux); }
.ez-serie-8 { --ez-widget-couleur: color-mix(in srgb, var(--ez-accent) 30%, var(--ez-fond)); }
.ez-widget-intro { max-width: 46rem; margin-bottom: var(--ez-espace); }
.ez-bloc-counters > .ez-conteneur > h2, .ez-bloc-rings > .ez-conteneur > h2, .ez-bloc-countdown > .ez-conteneur > h2 { text-align: center; }
.ez-bloc-counters .ez-widget-intro, .ez-bloc-rings .ez-widget-intro, .ez-bloc-countdown .ez-widget-intro { margin-left: auto; margin-right: auto; text-align: center; }
.ez-widget-icone { display: flex; justify-content: center; color: var(--ez-widget-couleur); margin-bottom: .5rem; }
.ez-widget-icone .ez-icone { width: 2.25rem; height: 2.25rem; }

/* Compteurs */
.ez-compteurs { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ez-espace); text-align: center; }
.ez-compteur { flex: 1 1 9rem; max-width: 18rem; }
.ez-compteur-valeur { margin: 0 0 .2rem; font-family: var(--ez-police-titres); font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.4rem); font-weight: 700; line-height: 1.1; color: var(--ez-widget-couleur); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ez-compteur-libelle { margin: 0; color: var(--ez-texte-doux); font-size: 1.05rem; }
.ez-fond-primary .ez-compteur-libelle, .ez-fond-accent .ez-compteur-libelle { color: inherit; opacity: .9; }

/* Barres de progression */
.ez-progressions { display: grid; gap: calc(var(--ez-espace) * .9); max-width: 48rem; }
.ez-progression-entete { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0 0 .4rem; }
.ez-progression-libelle { font-weight: 600; }
.ez-progression-valeur { font-weight: 700; color: var(--ez-widget-couleur); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ez-barre { display: block; width: 100%; height: .8rem; border-radius: 999px; overflow: hidden; }
.ez-barre-fond { fill: var(--ez-bord); }
.ez-fond-primary .ez-barre-fond, .ez-fond-accent .ez-barre-fond { fill: rgb(255 255 255 / .25); }
.ez-barre-rempli { fill: var(--ez-widget-couleur); transform-box: fill-box; transform-origin: left center;
  transition: transform var(--ez-duree) cubic-bezier(.2, .7, .2, 1); }

/* Anneaux */
.ez-anneaux { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ez-espace); text-align: center; }
.ez-anneau { flex: 0 1 12rem; min-width: 9rem; }
.ez-anneau { margin: 0; }
.ez-anneau-dessin { display: grid; place-items: center; width: min(100%, 10rem); margin: 0 auto .6rem; }
.ez-anneau-dessin > * { grid-area: 1 / 1; }
.ez-anneau-dessin svg { width: 100%; height: auto; display: block; }
.ez-anneau-fond { fill: none; stroke: var(--ez-bord); stroke-width: 12; }
.ez-fond-primary .ez-anneau-fond, .ez-fond-accent .ez-anneau-fond { stroke: rgb(255 255 255 / .25); }
.ez-anneau-arc { fill: none; stroke: var(--ez-widget-couleur); stroke-width: 12; stroke-linecap: round;
  transition: stroke-dasharray var(--ez-duree) cubic-bezier(.2, .7, .2, 1); }
.ez-anneau-valeur { font-family: var(--ez-police-titres); font-size: 1.6rem; font-weight: 700; color: var(--ez-widget-couleur); font-variant-numeric: tabular-nums; }
.ez-anneau figcaption { font-weight: 600; }

/* Graphiques */
.ez-graphique { margin: 0; }
.ez-graphique-dessin { display: block; width: 100%; max-width: 50rem; height: auto; overflow: visible; }
.ez-graphique-dessin text { font-family: var(--ez-police-texte); }
.ez-graphique-compact { display: none; }
@media (max-width: 36rem) { .ez-graphique-large { display: none; } .ez-graphique-compact { display: block; } }
.ez-graphique-dessin.ez-graphique-compact text { font-size: 12px; }
.ez-graphique-dessin .ez-graphique-axe { fill: var(--ez-texte-doux); font-size: 13px; }
.ez-graphique-dessin .ez-graphique-categorie { fill: var(--ez-texte); font-size: 13px; }
.ez-graphique-dessin .ez-graphique-valeur { fill: var(--ez-texte); font-size: 12.5px; font-weight: 600; }
.ez-fond-primary .ez-graphique-dessin text, .ez-fond-accent .ez-graphique-dessin text { fill: currentColor; }
.ez-graphique-grille { stroke: var(--ez-bord); stroke-width: 1; }
.ez-graphique-zero { stroke: var(--ez-texte-doux); }
.ez-graphique-colonne, .ez-graphique-part, .ez-graphique-marque, .ez-graphique-barre .ez-barre-rempli { fill: var(--ez-widget-couleur); }
.ez-graphique-colonne { transform-box: fill-box; transform-origin: center bottom; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.ez-graphique-colonne.ez-negatif { transform-origin: center top; }
.ez-graphique-ligne { fill: none; stroke: var(--ez-widget-couleur); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round;
  stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.6s ease-out; }
.ez-graphique-point { fill: var(--ez-fond); stroke: var(--ez-widget-couleur); stroke-width: 2.5; }
.ez-graphique-point, .ez-graphique-valeur { transition: opacity .5s ease .9s; }
.ez-graphique-camembert { display: grid; gap: var(--ez-espace); align-items: center; }
@media (min-width: 40rem) { .ez-graphique-camembert { grid-template-columns: minmax(10rem, 16rem) 1fr; } }
.ez-graphique-camembert .ez-graphique-dessin { max-width: 16rem; margin: 0 auto; }
.ez-graphique-part { stroke: var(--ez-fond); stroke-width: 2; transform-origin: 100px 100px; transition: transform 1s cubic-bezier(.2, .7, .2, 1), opacity 1s; }
.ez-graphique-camembert circle.ez-graphique-part { fill: none; stroke: var(--ez-widget-couleur); }
.ez-graphique-legende { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; list-style: none; padding: 0; margin: 0 0 .9rem; font-size: .95rem; }
.ez-graphique-legende li { display: flex; align-items: center; gap: .45rem; }
.ez-graphique-legende svg { width: .9rem; height: .9rem; flex: none; border-radius: 2px; }
.ez-graphique-legende-parts { flex-direction: column; margin: 0; font-size: 1rem; }
.ez-graphique-ligne-barres { display: grid; gap: .3rem 1rem; align-items: center; margin-bottom: .8rem; }
@media (min-width: 36rem) { .ez-graphique-ligne-barres { grid-template-columns: minmax(7rem, 14rem) 1fr; } }
.ez-graphique-ligne-barres > p { margin: 0; font-weight: 600; }
.ez-graphique-barres-series { display: grid; gap: .3rem; }
.ez-graphique-barre { display: flex; align-items: center; gap: .6rem; }
.ez-graphique-barre svg { flex: 1; height: 1rem; display: block; }
.ez-graphique-barre span { flex: none; width: 6rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ez-graphique-source { margin-top: .6rem; color: var(--ez-texte-doux); font-size: .9rem; }
.ez-graphique-donnees { margin-top: .9rem; font-size: .95rem; }
.ez-graphique-donnees summary { cursor: pointer; color: var(--ez-accent); font-weight: 600; }
.ez-fond-primary .ez-graphique-donnees summary, .ez-fond-accent .ez-graphique-donnees summary { color: inherit; }
.ez-graphique-donnees table { border-collapse: collapse; margin-top: .6rem; }
.ez-graphique-donnees :is(th, td) { padding: .35rem .8rem; border-bottom: 1px solid var(--ez-bord); text-align: left; }
.ez-graphique-donnees td { text-align: right; font-variant-numeric: tabular-nums; }

/* Compte à rebours (sans script : seule la date s'affiche) */
.ez-bloc-countdown { text-align: center; }
.ez-rebours-date { font-weight: 600; font-size: 1.1rem; }
html:not(.ez-widgets) .ez-rebours { display: none; }
.ez-rebours { display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(.5rem, 2vw, 1.25rem); margin: var(--ez-espace) 0; }
.ez-rebours-unite { display: flex; flex-direction: column; min-width: 5.5rem; padding: .9rem .6rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-fond-surface .ez-rebours-unite { background: var(--ez-fond); }
.ez-fond-primary .ez-rebours-unite, .ez-fond-accent .ez-rebours-unite { background: rgb(255 255 255 / .14); }
.ez-rebours-nombre { font-family: var(--ez-police-titres); font-size: clamp(2rem, 1.5rem + 2vw, 3rem); font-weight: 700; line-height: 1.1; color: var(--ez-widget-couleur); font-variant-numeric: tabular-nums; }
.ez-rebours-libelle { font-size: .9rem; color: var(--ez-texte-doux); }
.ez-fond-primary .ez-rebours-libelle, .ez-fond-accent .ez-rebours-libelle { color: inherit; }
.ez-rebours-fin { font-family: var(--ez-police-titres); font-size: 1.5rem; font-weight: 700; color: var(--ez-widget-couleur); margin: var(--ez-espace) 0; }

/* Étapes : en ligne sur grand écran, l'une sous l'autre sur téléphone */
.ez-etapes { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--ez-espace); }
.ez-etapes-element { position: relative; display: grid; grid-template-columns: 3rem 1fr; column-gap: 1rem; align-items: start; }
.ez-etapes-element > :not(.ez-etapes-marque) { grid-column: 2; }
.ez-etapes-element h3 { margin: .55rem 0 .4rem; }
.ez-etapes-marque { grid-row: 1 / span 3; position: relative; z-index: 1; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%;
  background: var(--ez-widget-couleur); color: var(--ez-sur-accent); font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.25rem; }
.ez-fond-primary .ez-etapes-marque { color: var(--ez-primaire); }
.ez-fond-accent .ez-etapes-marque { color: var(--ez-accent); }
.ez-etapes-marque .ez-widget-icone { margin: 0; color: inherit; }
.ez-etapes-marque .ez-widget-icone .ez-icone { width: 1.5rem; height: 1.5rem; }
.ez-etapes-point { width: .8rem; height: .8rem; border-radius: 50%; background: currentColor; }
.ez-etapes-element:not(:last-child)::after { content: ""; position: absolute; left: calc(1.5rem - 1px); top: 3rem; bottom: calc(var(--ez-espace) * -1); width: 2px; background: var(--ez-bord); }
@media (min-width: 48rem) {
  .ez-etapes[data-ez-n="2"] { grid-template-columns: repeat(2, 1fr); }
  .ez-etapes[data-ez-n="3"] { grid-template-columns: repeat(3, 1fr); }
  .ez-etapes[data-ez-n="4"] { grid-template-columns: repeat(4, 1fr); }
  .ez-etapes[data-ez-n="5"] { grid-template-columns: repeat(5, 1fr); }
  .ez-etapes[data-ez-n="6"] { grid-template-columns: repeat(3, 1fr); }
  .ez-etapes:not([data-ez-n="1"]) .ez-etapes-element { display: block; text-align: center; }
  .ez-etapes:not([data-ez-n="1"]) .ez-etapes-marque { margin: 0 auto .4rem; }
  .ez-etapes:not([data-ez-n="1"]) .ez-etapes-element:not(:last-child)::after { left: calc(50% + 2rem); right: calc(-50% - var(--ez-espace) + 2rem); top: calc(1.5rem - 1px); bottom: auto; width: auto; height: 2px; }
  .ez-etapes[data-ez-n="6"] .ez-etapes-element:nth-child(3)::after { content: none; }
}

/* Avant / après : deux photos côte à côte sans script, curseur de comparaison avec le script */
.ez-avant-apres { margin: 0; }
.ez-avant-apres-cadre { display: grid; gap: .75rem; }
@media (min-width: 36rem) { .ez-avant-apres-cadre { grid-template-columns: 1fr 1fr; } }
.ez-avant-apres-vue { position: relative; }
.ez-avant-apres-image { width: 100%; border-radius: var(--ez-rayon); }
.ez-avant-apres-etiquette { position: absolute; top: .6rem; left: .6rem; padding: .2rem .65rem; border-radius: var(--ez-rayon); background: rgb(0 0 0 / .68); color: #fff; font-size: .85rem; font-weight: 600; }
.ez-avant-apres figcaption { margin-top: .6rem; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-avant-apres.ez-pret .ez-avant-apres-cadre { display: block; position: relative; overflow: hidden; border-radius: var(--ez-rayon); max-width: 60rem; touch-action: pan-y; }
.ez-avant-apres.ez-pret .ez-avant-apres-image { border-radius: 0; }
.ez-avant-apres.ez-pret .ez-avant-apres-apres { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--ez-position, 50%)); }
.ez-avant-apres.ez-pret .ez-avant-apres-apres .ez-avant-apres-image { width: 100%; height: 100%; object-fit: cover; }
.ez-avant-apres.ez-pret .ez-avant-apres-apres .ez-avant-apres-etiquette { left: auto; right: .6rem; }
.ez-avant-apres-poignee { position: absolute; top: 0; bottom: 0; left: var(--ez-position, 50%); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 6px rgb(0 0 0 / .4); pointer-events: none; }
.ez-avant-apres-poignee::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #fff; color: #222; font-weight: 700; letter-spacing: .1em; box-shadow: 0 1px 6px rgb(0 0 0 / .35); }
.ez-avant-apres-curseur { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.ez-avant-apres-cadre:focus-within { outline: 3px solid var(--ez-accent); outline-offset: 3px; }

/* Avis étoilés */
.ez-avis-resume { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-bottom: var(--ez-espace); }
.ez-avis-note { margin: 0; font-family: var(--ez-police-titres); color: var(--ez-widget-couleur); line-height: 1; }
.ez-avis-score { font-size: 3rem; font-weight: 700; }
.ez-avis-sur { font-size: 1.3rem; margin-left: .15rem; opacity: .75; }
.ez-avis-details { margin: 0; color: var(--ez-texte-doux); }
.ez-fond-primary .ez-avis-details, .ez-fond-accent .ez-avis-details { color: inherit; }
.ez-etoiles { display: inline-block; vertical-align: middle; }
.ez-etoiles svg { display: block; width: 6rem; height: 1.2rem; }
.ez-etoiles-grandes svg { width: 9rem; height: 1.8rem; }
.ez-etoiles-vides polygon { fill: var(--ez-bord); }
.ez-etoiles-pleines polygon { fill: var(--ez-widget-couleur, var(--ez-accent)); }
.ez-temoignage .ez-etoiles { margin-bottom: .6rem; }
.ez-carrousel-piste { display: grid; grid-auto-flow: column; grid-auto-columns: 85%; gap: var(--ez-espace); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .6rem; scrollbar-width: thin; }
@media (min-width: 48rem) { .ez-carrousel-piste { grid-auto-columns: calc((100% - var(--ez-espace) * 2) / 3); } }
.ez-carrousel-piste { position: relative; }
.ez-carrousel-piste > * { scroll-snap-align: start; position: relative; }
.ez-carrousel-piste:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-carrousel-commandes { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .6rem; }
.ez-carrousel-bouton { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.ez-carrousel-bouton:hover { border-color: var(--ez-accent); color: var(--ez-accent); }

/* Animations, seulement si le visiteur ne demande pas moins d'animations ; état de départ avant l'arrivée à l'écran */
@media (prefers-reduced-motion: no-preference) {
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-barre-rempli { transform: scaleX(0); }
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-anneau-arc { stroke-dasharray: 0 100; }
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-graphique-colonne { transform: scaleY(0); }
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-graphique-ligne { stroke-dashoffset: 1; }
  .ez-widgets [data-ez-anime]:not(.ez-vu) :is(.ez-graphique-point, .ez-graphique-valeur) { opacity: 0; }
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-graphique-part { transform: scale(.85); opacity: 0; }
  .ez-widgets [data-ez-anime]:not(.ez-vu) .ez-etapes-element { opacity: 0; transform: translateY(1rem); }
  .ez-etapes-element { transition: opacity .6s ease, transform .6s ease; }
  .ez-etapes-element:nth-child(2) { transition-delay: .15s; } .ez-etapes-element:nth-child(3) { transition-delay: .3s; }
  .ez-etapes-element:nth-child(4) { transition-delay: .45s; } .ez-etapes-element:nth-child(5) { transition-delay: .6s; }
  .ez-etapes-element:nth-child(n+6) { transition-delay: .75s; }
}
@media (prefers-reduced-motion: reduce) { .ez-widget *, .ez-widget *::after { transition: none !important; animation: none !important; } .ez-carrousel-piste { scroll-behavior: auto; } }
@media print {
  .ez-widget * { transition: none !important; }
  .ez-widgets [data-ez-anime] :is(.ez-barre-rempli, .ez-graphique-colonne, .ez-graphique-part, .ez-etapes-element) { transform: none !important; opacity: 1 !important; }
  .ez-carrousel-commandes, .ez-avant-apres-curseur { display: none; }
}


/* ===== 1.8 — Module Vente : produits, formules, prix, comparatif, paliers, options, calculateur, devis ===== */
.ez-vente-partie { margin-bottom: calc(var(--ez-espace) * 1.5); }
.ez-vente-partie:last-child { margin-bottom: 0; }
.ez-chapeau { font-size: 1.15rem; color: var(--ez-texte-doux); max-width: 46rem; }
.ez-prix-vente { margin: .4rem 0 .8rem; }
.ez-prix-montant { font-size: 1.6rem; font-weight: 700; color: var(--ez-primaire); line-height: 1.2; }
.ez-prix-carte .ez-prix-montant, .ez-prix-option .ez-prix-montant { font-size: 1.15rem; }
.ez-prix-depuis, .ez-prix-complement, .ez-prix-jusqua { color: var(--ez-texte-doux); font-size: .9rem; }
.ez-prix-jusqua { display: block; margin-top: .2rem; }
.ez-prix-promo del { color: var(--ez-texte-doux); margin-right: .25rem; }
.ez-prix-promo ins { text-decoration: none; }
.ez-prix-seul .ez-prix-montant { font-size: 2rem; }
.ez-badge { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: .15rem .55rem; border-radius: var(--ez-rayon); background: var(--ez-accent); color: var(--ez-sur-accent); margin: 0 0 .5rem; }
.ez-badge-promo { margin: 0 .3rem 0 0; vertical-align: middle; }
.ez-badge-indisponible { background: var(--ez-surface); color: var(--ez-texte); border: 1px solid var(--ez-bord); }
.ez-points-forts { list-style: none; padding: 0; margin: .6rem 0 1rem; }
.ez-points-forts li { position: relative; padding-left: 1.6rem; margin-bottom: .4rem; }
.ez-points-forts li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--ez-accent); font-weight: 700; }
.ez-grille-vente .ez-carte-suite { margin-top: auto; }
.ez-formules { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); align-items: stretch; }
.ez-formule { display: flex; flex-direction: column; background: var(--ez-fond); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * .9); }
.ez-formule-nom { margin-top: 0; }
.ez-formule > .ez-badge { align-self: flex-start; }
.ez-formule-mise-en-avant { border: 2px solid var(--ez-accent); box-shadow: 0 6px 18px var(--ez-ombre); }
.ez-formule-indisponible { opacity: .72; }
.ez-formule-indisponible .ez-prix-montant { color: var(--ez-texte-doux); }
.ez-formule-note { font-size: .9rem; color: var(--ez-texte-doux); margin-top: 0; }
.ez-formule-action { margin: auto 0 0; padding-top: .6rem; }
.ez-formule-action .ez-bouton { display: block; text-align: center; }
.ez-comparatif, .ez-paliers { width: 100%; border-collapse: collapse; background: var(--ez-fond); }
.ez-comparatif th, .ez-comparatif td, .ez-paliers th, .ez-paliers td { padding: .6rem .8rem; border-bottom: 1px solid var(--ez-bord); text-align: left; }
.ez-comparatif thead th { font-weight: 700; color: var(--ez-primaire); }
.ez-comparatif td { text-align: center; }
.ez-comparatif tbody th { font-weight: 600; }
.ez-comparatif .ez-oui { color: var(--ez-accent); font-weight: 700; }
.ez-comparatif .ez-non { color: var(--ez-texte-doux); }
.ez-paliers { max-width: 36rem; }
.ez-paliers td { font-weight: 700; color: var(--ez-primaire); white-space: nowrap; }
.ez-paliers tbody th { font-weight: 400; }
.ez-options { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.ez-option { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1.2rem; padding: .8rem 1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-option-texte { flex: 1 1 18rem; }
.ez-option-texte > :last-child, .ez-option .ez-prix-vente { margin-bottom: 0; }
.ez-option-nom { font-weight: 700; margin: 0 0 .2rem; }
.ez-option .ez-prix-vente { margin-top: 0; text-align: right; }
.ez-simulateur { display: grid; gap: .9rem; max-width: 34rem; padding: calc(var(--ez-espace) * .9); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-simulateur[hidden] { display: none; }
.ez-simulateur p { margin: 0; }
.ez-simulateur input, .ez-simulateur select { width: 100%; box-sizing: border-box; font: inherit; padding: .65rem .8rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); }
.ez-simulateur input:focus, .ez-simulateur select:focus { outline: 3px solid var(--ez-accent); outline-offset: 1px; }
.ez-simulateur-libelle { font-weight: 600; }
.ez-simulateur-unite { color: var(--ez-texte-doux); font-size: .9rem; }
.ez-simulateur-sansjs { color: var(--ez-texte-doux); font-style: italic; }
.js .ez-simulateur-sansjs { display: none; }
.ez-conditions { display: grid; gap: .6rem; }
.ez-encadre { border-left: 4px solid var(--ez-accent); background: var(--ez-surface); padding: .7rem 1rem; border-radius: 0 var(--ez-rayon) var(--ez-rayon) 0; }
.ez-encadre > :first-child { margin-top: 0; } .ez-encadre > :last-child { margin-bottom: 0; }
.ez-bloc-offer.ez-fond-surface { padding: calc(var(--ez-espace) * 2) 0; }
.ez-fond-surface .ez-simulateur, .ez-fond-surface .ez-encadre { background: var(--ez-fond); }
/* Pied de page (1.8) : informations de l'organisation et colonnes de liens libres */
.ez-pied-titre { font-weight: 700; color: var(--ez-primaire); }
.ez-iban { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media print {
  .ez-simulateur-bloc, .ez-devis, .ez-formule-action { display: none; }
  .ez-formule { break-inside: avoid; }
}

/* ===== 2.2 ===================================================================================== */

/* Fond « secondaire » (sections, colonne latérale, bandeau commun) */
:root { --ez-sur-secondaire: #ffffff; }
.ez-fond-secondary { background: var(--ez-secondaire); color: var(--ez-sur-secondaire); --ez-widget-couleur: var(--ez-sur-secondaire); }
.ez-fond-secondary :is(h2, h3, a) { color: inherit; }
.ez-fond-secondary .ez-bouton { background: var(--ez-sur-secondaire); color: var(--ez-secondaire); border-color: var(--ez-sur-secondaire); }
/* Sections et colonne latérale sur fond coloré : titres, intros et « Tout voir » dans la couleur lisible sur ce fond,
   même si un style complémentaire colore les titres ; les cartes gardent leurs propres couleurs */
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent).ez-section-fond > .ez-conteneur > h2,
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent):is(.ez-section-fond, .ez-cote) .ez-bloc > .ez-conteneur > :is(h2, .ez-intro, .ez-tout-voir),
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent):is(.ez-section-fond, .ez-cote) .ez-bloc > .ez-conteneur > .ez-tout-voir a { color: inherit; }
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent) :is(.ez-carte, .ez-evenement, .ez-menu-jour) { color: var(--ez-texte); }

/* Sections en colonnes (1, 2, 3 ou 4 colonnes, 1/3 - 2/3, 2/3 - 1/3) ; empilées sur téléphone */
.ez-section { padding: calc(var(--ez-espace) * 1.2) 0; }
.ez-section-fond { padding: calc(var(--ez-espace) * 2) 0; }
.ez-section + .ez-section:not(.ez-section-fond) { padding-top: 0; }
.ez-colonnes { display: grid; gap: calc(var(--ez-espace) * 1.2); align-items: start; }
.ez-colonne { min-width: 0; }
@media (min-width: 48rem) {
  .ez-section-2 .ez-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ez-section-3 .ez-colonnes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ez-section-4 .ez-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ez-section-1-2 .ez-colonnes { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .ez-section-2-1 .ez-colonnes { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}
@media (min-width: 64rem) { .ez-section-4 .ez-colonnes { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Blocs placés dans une colonne : ni marge latérale ni largeur maximale propres */
:is(.ez-colonne, .ez-principal, .ez-cote) .ez-conteneur { max-width: none; padding: 0; }
:is(.ez-colonne, .ez-principal, .ez-cote) > .ez-bloc { padding: 0 0 calc(var(--ez-espace) * 1.2); }
:is(.ez-colonne, .ez-principal, .ez-cote) > .ez-bloc:last-child { padding-bottom: 0; }
:is(.ez-colonne, .ez-cote) .ez-grille { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }

/* Colonne latérale sur toute la hauteur de la page (1/3), à gauche ou à droite ; après le contenu sur téléphone */
.ez-avec-cote { padding: calc(var(--ez-espace) * 1.6) 0; }
.ez-cote-grille { display: grid; gap: calc(var(--ez-espace) * 1.6); align-items: start; }
.ez-principal { min-width: 0; }
.ez-cote { min-width: 0; }
.ez-cote.ez-section-fond { padding: calc(var(--ez-espace) * 1.2); border-radius: var(--ez-rayon); }
@media (min-width: 64rem) {
  .ez-cote-droite .ez-cote-grille { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .ez-cote-gauche .ez-cote-grille { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .ez-cote-gauche .ez-cote { grid-column: 1; grid-row: 1; }
  .ez-cote-gauche .ez-principal { grid-column: 2; grid-row: 1; }
}

/* Bannière toujours visible, ou réduite à une bande au défilement (le script calcule la course) */
@media (min-width: 48rem) {
  .ez-hero-fixe { position: sticky; top: var(--ez-decalage-entete, var(--ez-hauteur-entete)); z-index: 40; }
  .ez-hero-reductible { position: sticky; top: calc(var(--ez-decalage-entete, var(--ez-hauteur-entete)) - var(--ez-hero-course, 0px)); z-index: 40; }
  .ez-hero-reductible .ez-hero-texte { transform-origin: left center;
    transform: translateY(calc(var(--ez-hero-p, 0) * var(--ez-hero-course, 0px) / 2)) scale(calc(1 - var(--ez-hero-p, 0) * .38)); }
  .ez-hero-reductible .ez-hero-sous-titre, .ez-hero-reductible .ez-bouton { opacity: calc(1 - var(--ez-hero-p, 0) * 2); }
}

/* Bandeau commun à toutes les pages (réglé une fois dans site.json → banner) */
.ez-bandeau-site { padding: .9rem 0; }
.ez-bandeau-site-texte { margin: 0; font-family: var(--ez-police-titres); font-weight: 700; font-size: clamp(1.2rem, 1rem + 1vw, 1.75rem); line-height: 1.25; }
.ez-bandeau-site-texte a { color: inherit; text-decoration: none; }
.ez-bandeau-site-sous-titre { margin: .2rem 0 0; opacity: .92; }
.ez-bandeau-site.ez-fond-surface { color: var(--ez-primaire); border-bottom: 1px solid var(--ez-bord); }
.ez-bandeau-site-fixe { position: sticky; top: var(--ez-decalage-entete, var(--ez-hauteur-entete)); z-index: 40; }

/* Annonces : plusieurs messages dans une seule bande, l'un après l'autre */
.ez-annonces { position: relative; }
.js .ez-annonces.ez-rotation > .ez-annonce:not(.ez-annonce-courante) { display: none; }
.js .ez-annonces.ez-rotation > .ez-annonce-courante { animation: ez-annonce-fondu .5s ease both; }
@keyframes ez-annonce-fondu { from { opacity: 0; } to { opacity: 1; } }
.ez-annonces.ez-rotation .ez-annonce .ez-conteneur { padding-right: 3.5rem; }
.ez-annonces-pause { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; border-radius: 50%; border: 2px solid currentColor; background: transparent; color: var(--ez-sur-accent); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.ez-annonces-pause::before { content: ""; width: .55rem; height: .7rem; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.ez-annonces-pause[aria-pressed="true"]::before { width: 0; height: 0; border: 0; border-left: .6rem solid currentColor; border-top: .4rem solid transparent; border-bottom: .4rem solid transparent; margin-left: .15rem; }
@media (prefers-reduced-motion: reduce) { .js .ez-annonces.ez-rotation > .ez-annonce-courante { animation: none; } }

/* Contenus externes : image de fond facultative, boutons regroupés */
.ez-externe { position: relative; }
.ez-externe-avec-image:not(.ez-charge) { overflow: hidden; justify-content: flex-end; color: #fff; border: 0; }
.ez-externe-avec-image:not(.ez-charge) > :not(picture):not(img) { position: relative; z-index: 1; }
.ez-externe-avec-image:not(.ez-charge)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .78), rgb(0 0 0 / .25) 55%, rgb(0 0 0 / 0)); }
.ez-externe-fond, .ez-externe picture { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ez-externe picture img { width: 100%; height: 100%; object-fit: cover; }
.ez-externe-avec-image .ez-externe-avis { color: #fff; }
.ez-externe-avec-image a { color: #fff; }
.ez-externe-avec-image .ez-externe-boutons { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: 0; }

/* Pied de page : ligne du bas (copyright, liens légaux, mention EzWebStudio) */
.ez-pied-bas-ligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem 1.2rem; }
.ez-pied-bas-ligne p { margin: 0; }
.ez-pied-legal-ligne ul { display: flex; flex-wrap: wrap; gap: .2rem 0; }
.ez-pied-legal-ligne li { margin: 0; }
.ez-pied-legal-ligne li + li::before { content: "·"; margin: 0 .6rem; }
.ez-pied-bas-ligne .ez-mention-ezwebstudio { margin-left: auto; }

/* Outils de navigation */
.ez-ariane { font-size: .92rem; padding-top: .9rem; }
.ez-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem; color: var(--ez-texte-doux); }
.ez-ariane li + li::before { content: "›"; margin: 0 .45rem 0 .25rem; }
.ez-ariane [aria-current] { color: var(--ez-texte); font-weight: 600; }
.ez-sommaire { margin: 0 0 var(--ez-espace); }
.ez-sommaire .ez-conteneur > * { max-width: 46rem; }
.ez-sommaire-titre { font-weight: 700; margin: 0 0 .4rem; color: var(--ez-primaire); }
.ez-sommaire ol { margin: 0; padding: .8rem 1rem .8rem 2.2rem; background: var(--ez-surface); border-radius: var(--ez-rayon); border-left: 4px solid var(--ez-accent); }
.ez-sommaire li { margin: .15rem 0; }
.ez-contenu h2[id] { scroll-margin-top: calc(var(--ez-decalage-entete, var(--ez-hauteur-entete)) + 1rem); }
.ez-prec-suiv .ez-conteneur { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding-top: var(--ez-espace); padding-bottom: var(--ez-espace); border-top: 1px solid var(--ez-bord); }
.ez-prec-suiv a { display: flex; flex-direction: column; gap: .2rem; text-decoration: none; padding: .7rem .9rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); }
.ez-prec-suiv a:hover { background: var(--ez-surface); }
.ez-suiv { text-align: right; grid-column: 2; }
.ez-prec-suiv-libelle { font-size: .85rem; color: var(--ez-texte-doux); }
.ez-prec-suiv-titre { font-weight: 600; }
@media (max-width: 40rem) { .ez-prec-suiv .ez-conteneur { grid-template-columns: 1fr; } .ez-suiv { grid-column: 1; } }
.ez-haut { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 60; width: 3rem; height: 3rem; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); box-shadow: 0 .3rem .9rem rgb(0 0 0 / .25); display: flex; align-items: center; justify-content: center; text-decoration: none; transition: opacity .25s, transform .25s, visibility .25s; }
.ez-haut::before { content: ""; width: .8rem; height: .8rem; border-left: 3px solid currentColor; border-top: 3px solid currentColor; transform: translateY(.2rem) rotate(45deg); }
.ez-haut:hover { transform: translateY(-2px); }
.js .ez-haut:not(.ez-visible) { opacity: 0; visibility: hidden; transform: translateY(.5rem); }
@media (max-width: 47.99rem) { .ez-haut-sans-mobile { display: none; } }
@media (prefers-reduced-motion: reduce) { .ez-haut { transition: none; } }
body > .ez-progression { position: fixed; top: 0; left: 0; right: 0; height: 4px; z-index: 70; pointer-events: none; }
body > .ez-progression span { display: block; height: 100%; background: var(--ez-accent); transform-origin: left center; transform: scaleX(var(--ez-lu, 0)); }
.no-js body > .ez-progression { display: none; }
@media print { .ez-haut, body > .ez-progression, .ez-sommaire, .ez-prec-suiv, .ez-annonces-pause { display: none; } }

/* --- 2.8 : rendu proche d'un site d'inspiration (options facultatives) --- */
/* Étiquette au-dessus du titre (« eyebrow », tout bloc) */
.ez-surtitre { display: inline-block; margin: 0 0 .7rem; padding: .3rem .75rem; border-radius: 999px; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); background: color-mix(in srgb, var(--ez-accent) 9%, transparent); }
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent, .ez-hero-degrade, .ez-hero-primaire, .ez-hero-avec-image) .ez-surtitre { color: inherit; background: rgb(255 255 255 / .16); }
/* Fond d'un bloc ordinaire (« background ») */
.ez-bloc.ez-bloc-fond { padding: calc(var(--ez-espace) * 2.4) 0; }
.ez-bloc.ez-bloc-fond + .ez-bloc { padding-top: calc(var(--ez-espace) * 2); }
:is(.ez-fond-primary, .ez-fond-secondary, .ez-fond-accent).ez-bloc-fond :is(h2, h3, p, li) { color: inherit; }
/* Bouton secondaire (contour) et rangée de boutons */
.ez-boutons { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ez-bouton.ez-bouton-secondaire { background: transparent; color: var(--ez-accent); box-shadow: inset 0 0 0 1.5px currentColor; }
.ez-bouton.ez-bouton-secondaire:hover { background: var(--ez-accent); color: var(--ez-sur-accent); filter: none; }
:is(.ez-hero-avec-image, .ez-hero-degrade, .ez-hero-primaire, .ez-appel:not(.ez-appel-clair), .ez-fond-primary, .ez-fond-accent) .ez-bouton.ez-bouton-secondaire { color: inherit; }
/* Partie du titre mise en valeur (« title_highlight ») */
.ez-surligne { color: var(--ez-accent); }
/* Bannière : image à côté du texte (« layout: side ») */
.ez-bloc-hero.ez-hero-cote .ez-hero-grille { display: grid; gap: calc(var(--ez-espace) * 2); align-items: center; }
.ez-hero-visuel { margin: 0; display: flex; justify-content: center; }
.ez-hero-visuel-image { width: min(100%, 17rem); height: auto; object-fit: contain; }
@media (min-width: 48rem) {
  .ez-bloc-hero.ez-hero-cote .ez-hero-grille { grid-template-columns: 1.15fr .85fr; }
  .ez-hero-image-gauche .ez-hero-visuel { order: -1; }
}
@media (max-width: 47.99rem) {
  .ez-hero-cote .ez-hero-visuel { order: -1; }
  .ez-hero-visuel-image { width: min(60%, 12rem); }
}
/* Bannière : fond (« backdrop ») ; plus fort que les thèmes, qui ne visent que la bannière sans image */
.ez-bloc-hero.ez-hero-doux:not(.ez-hero-avec-image) { background: radial-gradient(56rem 26rem at 85% -10%, color-mix(in srgb, var(--ez-secondaire) 22%, transparent), transparent 60%), radial-gradient(44rem 24rem at -10% 110%, color-mix(in srgb, var(--ez-accent) 14%, transparent), transparent 60%), var(--ez-surface); }
.ez-bloc-hero.ez-hero-degrade:not(.ez-hero-avec-image) { background: var(--ez-degrade, var(--ez-primaire)); }
.ez-bloc-hero.ez-hero-primaire:not(.ez-hero-avec-image) { background: var(--ez-primaire); }
.ez-bloc-hero.ez-hero-sans-fond:not(.ez-hero-avec-image) { background: transparent; }
.ez-bloc-hero:is(.ez-hero-doux, .ez-hero-sans-fond):not(.ez-hero-avec-image) :is(h1, h2) { color: var(--ez-primaire); }
.ez-bloc-hero:is(.ez-hero-doux, .ez-hero-sans-fond):not(.ez-hero-avec-image) .ez-hero-sous-titre { color: var(--ez-texte-doux); }
.ez-bloc-hero:is(.ez-hero-degrade, .ez-hero-primaire):not(.ez-hero-avec-image) :is(h1, h2, .ez-hero-sous-titre) { color: var(--ez-sur-primaire); }
:is(.ez-hero-degrade, .ez-hero-primaire) .ez-bouton:not(.ez-bouton-secondaire) { background: var(--ez-sur-primaire); color: var(--ez-primaire); }
:is(.ez-hero-degrade, .ez-hero-primaire, .ez-hero-avec-image) .ez-surligne { background: none; color: inherit; text-decoration: underline; text-decoration-color: var(--ez-secondaire); }
/* Cartes : nombre de colonnes (« columns ») */
@media (min-width: 48rem) {
  .ez-grille.ez-grille-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ez-grille.ez-grille-3, .ez-grille.ez-grille-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
  .ez-grille.ez-grille-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ez-grille.ez-grille-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Cartes : icône, badge, bouton, styles */
.ez-carte-icone { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin-bottom: .9rem; border-radius: calc(var(--ez-rayon) + 4px); color: var(--ez-accent); background: linear-gradient(135deg, color-mix(in srgb, var(--ez-accent) 12%, transparent), color-mix(in srgb, var(--ez-secondaire) 18%, transparent)); }
.ez-carte-icone .ez-icone { width: 1.35rem; height: 1.35rem; }
.ez-carte-entete { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; margin-bottom: .6em; }
.ez-carte-entete h3 { margin: 0; }
.ez-carte-badge { display: inline-block; font-size: .75rem; font-weight: 700; padding: .2rem .6rem; border-radius: 999px; background: color-mix(in srgb, var(--ez-accent) 10%, var(--ez-fond)); color: var(--ez-accent); }
.ez-carte-avec-bouton .ez-carte-corps { display: flex; flex-direction: column; align-items: flex-start; height: 100%; }
.ez-carte-avec-bouton .ez-carte-corps > p:last-child { margin-top: auto; padding-top: .5rem; }
.ez-carte.ez-carte-pointilles { border-style: dashed; background: transparent; }
.ez-carte.ez-carte-vedette { background: var(--ez-degrade, var(--ez-primaire)); border-color: transparent; color: var(--ez-sur-primaire); }
.ez-carte-vedette :is(h3, h3 a, p, li) { color: inherit; }
.ez-carte-vedette .ez-bouton:not(.ez-bouton-secondaire) { background: var(--ez-sur-primaire); color: var(--ez-primaire); }
.ez-carte-vedette .ez-carte-badge { background: rgb(255 255 255 / .18); color: inherit; }
.ez-carte.ez-carte-simple { border-color: transparent; background: var(--ez-surface); }
/* Appel à l'action : bandeau et version claire (« style ») */
.ez-appel.ez-appel-bandeau { background: var(--ez-degrade, var(--ez-primaire)); text-align: center; border-radius: calc(var(--ez-rayon) * 1.6); padding: calc(var(--ez-espace) * 2.3) calc(var(--ez-espace) * 1.2); }
.ez-appel-bandeau > * { margin-left: auto; margin-right: auto; max-width: 38rem; }
.ez-appel-bandeau .ez-boutons { justify-content: center; }
.ez-appel.ez-appel-clair { background: var(--ez-surface); color: var(--ez-texte); border: 1px solid var(--ez-bord); }
.ez-appel.ez-appel-clair h2 { color: var(--ez-primaire); }
.ez-appel.ez-appel-clair .ez-bouton:not(.ez-bouton-secondaire) { background: var(--ez-accent); color: var(--ez-sur-accent); }
/* En-tête : logo seul, entrée de menu en bouton */
.ez-logo.ez-logo-seul { margin-right: 0; }
.ez-navigation .ez-menu-bouton > a.ez-bouton { color: var(--ez-sur-accent); padding: .5rem 1.1rem; margin-left: .3rem; }
.ez-navigation .ez-menu-bouton > a.ez-bouton:hover { background-color: var(--ez-accent); filter: brightness(1.1); }
.ez-burger .ez-menu-bouton > a.ez-bouton { display: inline-block; margin: .4rem 0 0; }

/* ===== 2.9 ===== */
/* Bandeau supérieur (site.json → top_bar), au-dessus du menu, visible aussi sur téléphone */
.ez-bandeau-haut { font-size: .875rem; --ez-bandeau-haut-texte: var(--ez-fond); }
.ez-bandeau-haut-dark { background: var(--ez-texte); color: var(--ez-fond); }
.ez-bandeau-haut-primary { background: var(--ez-primaire); color: var(--ez-sur-primaire); --ez-bandeau-haut-texte: var(--ez-sur-primaire); }
.ez-bandeau-haut-accent { background: var(--ez-accent); color: var(--ez-sur-accent); --ez-bandeau-haut-texte: var(--ez-sur-accent); }
.ez-bandeau-haut-secondary { background: var(--ez-secondaire); color: #ffffff; --ez-bandeau-haut-texte: #ffffff; }
.ez-bandeau-haut-surface { background: var(--ez-surface); color: var(--ez-texte); --ez-bandeau-haut-texte: var(--ez-texte); }
.ez-bandeau-haut-ligne { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .35rem 1rem; min-height: 2.5rem; padding-top: .3rem; padding-bottom: .3rem; }
.ez-bandeau-haut-texte { margin: 0 auto 0 0; }
.ez-bandeau-haut-liens { display: flex; flex-wrap: wrap; gap: .25rem 1rem; list-style: none; margin: 0; padding: 0; }
.ez-bandeau-haut a { color: inherit; }
.ez-bandeau-haut-bouton { display: inline-block; padding: .25rem .9rem; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; font-weight: 600; }
.ez-bandeau-haut-bouton:hover, .ez-bandeau-haut-bouton:focus-visible { background: var(--ez-bandeau-haut-texte); color: var(--ez-texte); }
.ez-bandeau-haut .ez-langues a { color: inherit; opacity: .85; }
.ez-bandeau-haut .ez-langues a[aria-current="true"] { color: inherit; opacity: 1; border-color: currentColor; }
@media (max-width: 30rem) { .ez-bandeau-haut-ligne { justify-content: center; } .ez-bandeau-haut-texte { margin: 0; width: 100%; text-align: center; } }

/* Logo dans le pied de page (commun.json → display.footer.logo) */
.ez-pied-logo { margin: 0 0 .5rem; }
.ez-logo-pied { display: block; max-height: 3rem; width: auto; }

/* Actualités : présentations (site.json → news_settings.presentation, ou bloc) et « Lire plus… » */
.ez-lire-plus { margin: .5rem 0 0; font-weight: 600; }
.ez-actus-compact { list-style: none; margin: 0; padding: 0; }
.ez-actu-compacte { padding: .75rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-actu-compacte :is(h2, h3) { margin: .15rem 0 0; font-size: 1.05rem; }
.ez-actu-compacte .ez-meta { margin: 0; }
.ez-actus-side { display: grid; gap: var(--ez-espace); }
@media (min-width: 40rem) {
  .ez-carte-cote { display: grid; grid-template-columns: minmax(10rem, 1fr) 2fr; align-items: start; }
  .ez-carte-cote > .ez-carte-image { height: 100%; }
}
.ez-actus-featured { display: grid; gap: var(--ez-espace); grid-template-columns: 1fr; }
@media (min-width: 48rem) {
  .ez-actus-featured { grid-template-columns: 2fr 1fr; }
  .ez-actus-featured > .ez-carte-une { grid-row: span 2; }
  .ez-actus-featured > .ez-carte:nth-child(n+4) { grid-column: auto; }
}
.ez-carte-une :is(h2, h3) { font-size: 1.4rem; }
.ez-actus-carousel { overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
.ez-actus-carousel:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: 2px; }
.ez-actus-carousel > ul { display: flex; gap: var(--ez-espace); list-style: none; margin: 0; padding: 0; }
.ez-actus-carousel > ul > li { flex: 0 0 min(85%, 20rem); scroll-snap-align: start; }
.ez-actus-carousel .ez-carte { height: 100%; }

/* Page d'un article (2.20) : chapô, auteur et partage, actualités liées */
.ez-article-cat { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); margin: 0 0 .3rem; }
.ez-article-cat a { color: inherit; text-decoration: none; }
.ez-article-chapo { font-size: 1.15rem; line-height: 1.5; color: var(--ez-texte); max-width: 46rem; margin: .4rem 0 .8rem; }
.ez-article-auteur { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.ez-article-auteur .ez-meta { margin: 0; }
.ez-partage { margin: 0 0 0 auto; }
@media (max-width: 36rem) { .ez-partage { margin-left: 0; } }
.ez-partage .ez-bouton-icone { width: 2.5rem; height: 2.5rem; }
.ez-actus-liees { margin-top: calc(var(--ez-espace) * 1.6); padding-top: var(--ez-espace); border-top: 1px solid var(--ez-bord); }
.ez-actus-liees h2 { font-size: 1.25rem; }
@media print { .ez-partage, .ez-actus-liees { display: none; } }
