/* Polices hébergées avec le site (licences dans assets/polices/) */
@font-face { font-family: "Nunito"; src: url("polices/nunito/nunito-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Nunito"; src: url("polices/nunito/nunito-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Nunito"; src: url("polices/nunito/nunito-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* Réglages propres au site (config/apparence.json) */
:root {

}

/* ==== EzWebStudio 2.11 — présentations des cartes, services, témoignages, équipe et contact ; 2.13 : FAQ ; 2.14 : galerie, albums, partenaires ; 2.15 : évènements, vente, grille de tarifs, horaires ; 2.16 : diaporama, onglets, mosaïque, bouton flottant, fenêtre d'annonce ; 2.17 : planning, carte du restaurant, chambres ====
   Ajouté à site.css seulement si le site utilise une de ces présentations ou un des nouveaux champs. */

/* --- Carrousels (cartes, équipe, témoignages) : flèches, jamais de défilement automatique --- */
.ez-pres.ez-carrousel .ez-carrousel-piste > * { height: 100%; }
.ez-carrousel-un .ez-carrousel-piste { grid-auto-columns: 100%; }
@media (min-width: 48rem) { .ez-carrousel-un .ez-carrousel-piste { grid-auto-columns: 100%; } }
.ez-carrousel-points { display: flex; justify-content: center; gap: .5rem; margin-top: .8rem; }
.ez-carrousel-point { width: .8rem; height: .8rem; padding: 0; border-radius: 50%; border: 2px solid var(--ez-accent); background: transparent; cursor: pointer; }
.ez-carrousel-point[aria-current="true"] { background: var(--ez-accent); }
.ez-carrousel-un + .ez-carrousel-commandes, .ez-carrousel-un .ez-carrousel-commandes { justify-content: center; }

/* --- Cartes et services --- */
/* Icônes sans cadre et pastille centrée : l'icône prend la place de l'image ; liste horizontale : l'image celle de l'icône */
.ez-cartes-pres:is(.ez-pres-icons, .ez-pres-centered) .ez-carte:has(.ez-carte-icone) .ez-carte-image,
.ez-cartes-pres.ez-pres-rows .ez-carte:has(.ez-carte-image) .ez-carte-icone { display: none; }
.ez-cartes-pres.ez-pres-icons .ez-carte { border: 0; background: transparent; overflow: visible; }
.ez-cartes-pres.ez-pres-icons .ez-carte-corps { padding: 0; }
.ez-cartes-pres.ez-pres-icons .ez-carte-image { border-radius: var(--ez-rayon); margin-bottom: .8rem; }
.ez-cartes-pres.ez-pres-icons .ez-carte-icone { width: auto; height: auto; background: none; border-radius: 0; margin-bottom: .6rem; }
.ez-cartes-pres.ez-pres-icons .ez-carte-icone .ez-icone { width: 2.6rem; height: 2.6rem; stroke-width: 1.6; }

.ez-cartes-pres.ez-pres-overlay .ez-carte { position: relative; min-height: 19rem; justify-content: flex-end; border: 0; color: #fff; background: var(--ez-degrade, var(--ez-primaire)); isolation: isolate; }
.ez-cartes-pres.ez-pres-overlay .ez-carte-image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; z-index: -2; }
.ez-cartes-pres.ez-pres-overlay .ez-carte::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(0 0 0 / .78), rgb(0 0 0 / .15) 70%); }
.ez-cartes-pres.ez-pres-overlay :is(h3, h3 a, p, li, .ez-prix, .ez-meta) { color: #fff; }
.ez-cartes-pres.ez-pres-overlay .ez-carte-icone { color: #fff; background: rgb(255 255 255 / .18); }
.ez-cartes-pres.ez-pres-overlay .ez-carte-corps > p:last-child a:not(.ez-bouton) { color: #fff; }

.ez-liste-cartes { display: grid; gap: calc(var(--ez-espace) * 1.2); }
.ez-cartes-pres.ez-pres-zigzag .ez-carte { border: 0; background: transparent; display: grid; gap: calc(var(--ez-espace) * 1.2); align-items: center; }
.ez-cartes-pres.ez-pres-zigzag .ez-carte-image { border-radius: var(--ez-rayon); }
.ez-cartes-pres.ez-pres-zigzag .ez-carte-corps { padding: 0; }
@media (min-width: 48rem) {
  .ez-cartes-pres.ez-pres-zigzag .ez-carte:has(.ez-carte-image) { grid-template-columns: 1fr 1fr; }
  .ez-cartes-pres.ez-pres-zigzag .ez-carte:nth-child(even) .ez-carte-image { order: 2; }
  .ez-cartes-pres.ez-pres-zigzag .ez-carte:not(:has(.ez-carte-image)) { padding: var(--ez-espace); background: var(--ez-surface); border-radius: var(--ez-rayon); }
}

.ez-cartes-pres.ez-pres-rows { gap: 0; border-top: 1px solid var(--ez-bord); }
.ez-cartes-pres.ez-pres-rows .ez-carte { flex-direction: row; align-items: center; gap: var(--ez-espace); border: 0; border-bottom: 1px solid var(--ez-bord); border-radius: 0; background: transparent; padding: .9rem 0; }
.ez-cartes-pres.ez-pres-rows .ez-carte-image { width: 6.5rem; aspect-ratio: 1; border-radius: var(--ez-rayon); flex: none; }
.ez-cartes-pres.ez-pres-rows .ez-carte-corps { padding: 0; flex: 1; display: grid; grid-template-columns: auto 1fr; column-gap: 0; align-items: center; }
.ez-cartes-pres.ez-pres-rows .ez-carte-corps > * { grid-column: 1 / -1; margin-top: 0; }
.ez-cartes-pres.ez-pres-rows .ez-carte-icone { grid-column: 1; grid-row: 1 / span 2; margin: 0 1rem 0 0; }
.ez-cartes-pres.ez-pres-rows .ez-carte:not(:has(.ez-carte-image)) .ez-carte-icone ~ * { grid-column: 2; }
.ez-cartes-pres.ez-pres-rows :is(h3, .ez-carte-entete) { margin-bottom: .2rem; }
.ez-cartes-pres.ez-pres-rows .ez-carte-corps > p { margin-bottom: .2rem; }
@media (min-width: 40rem) {
  .ez-cartes-pres.ez-pres-rows .ez-carte-corps { grid-template-columns: auto 1fr auto; }
  .ez-cartes-pres.ez-pres-rows .ez-carte-corps > * { grid-column: 1 / 3; }
  .ez-cartes-pres.ez-pres-rows .ez-carte:not(:has(.ez-carte-image)) .ez-carte-icone ~ * { grid-column: 2 / 3; }
  .ez-cartes-pres.ez-pres-rows .ez-carte-corps > :is(.ez-prix, p:last-child:has(a)) { grid-column: 3; grid-row: 1 / span 3; text-align: right; margin: 0 0 0 1.5rem; padding: 0; }
  .ez-cartes-pres.ez-pres-rows .ez-carte-corps > .ez-prix:not(:last-child) { grid-row: 1 / span 2; }
  .ez-cartes-pres.ez-pres-rows .ez-carte-corps > .ez-prix + p:last-child { grid-row: 3; }
}
.ez-cartes-pres.ez-pres-rows .ez-prix { font-weight: 700; color: var(--ez-primaire); white-space: nowrap; }

.ez-cartes-pres.ez-pres-accent .ez-carte { background: color-mix(in srgb, var(--ez-accent) 6%, var(--ez-fond)); border: 0; border-left: 4px solid var(--ez-accent); }
.ez-cartes-pres.ez-pres-accent :is(h3:has(a), .ez-carte-corps > p:last-child:has(> a:not(.ez-bouton)))::after { content: " →"; color: var(--ez-accent); }
.ez-cartes-pres.ez-pres-accent :is(h3 a, .ez-carte-corps > p:last-child a:not(.ez-bouton)) { text-decoration: none; }
.ez-cartes-pres.ez-pres-accent .ez-carte-icone { background: var(--ez-fond); }

.ez-cartes-pres.ez-pres-centered .ez-carte { text-align: center; align-items: stretch; }
.ez-cartes-pres.ez-pres-centered .ez-carte-corps { align-items: center; }
.ez-cartes-pres.ez-pres-centered .ez-carte-icone { width: 4.5rem; height: 4.5rem; border-radius: 50%; color: var(--ez-sur-accent); background: var(--ez-accent); margin: 0 auto 1rem; }
.ez-cartes-pres.ez-pres-centered .ez-carte-icone .ez-icone { width: 2rem; height: 2rem; }
.ez-cartes-pres.ez-pres-centered .ez-carte-entete { justify-content: center; }
.ez-cartes-pres.ez-pres-centered .ez-carte-avec-bouton .ez-carte-corps { align-items: center; }

.ez-cartes-pres.ez-carrousel .ez-carte { height: 100%; }

/* --- Témoignages et avis --- */
.ez-temoignage-avec-auteur figcaption { display: flex; align-items: center; gap: .75rem; }
.ez-temoignage figcaption .ez-avatar { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; font-size: 1rem; font-weight: 700; color: var(--ez-sur-accent); background: var(--ez-accent); line-height: 1; }
.ez-temoignage figcaption .ez-temoignage-auteur { display: block; }
.ez-temoignage figcaption .ez-temoignage-auteur > span { display: block; }
.ez-temoignage-source, .ez-temoignage-source a { color: var(--ez-texte-doux); font-size: .85rem; }

.ez-temoignages-pres.ez-pres-quotes .ez-temoignage { background: var(--ez-fond); border: 1px solid var(--ez-bord); border-left: 1px solid var(--ez-bord); position: relative; padding-top: 3rem; display: flex; flex-direction: column; }
.ez-temoignages-pres.ez-pres-quotes .ez-temoignage::before { content: "“"; position: absolute; top: -.4rem; left: 1rem; font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: var(--ez-accent); }
.ez-temoignages-pres.ez-pres-quotes blockquote p::before, .ez-temoignages-pres.ez-pres-quotes blockquote p::after { content: none; }
.ez-temoignages-pres.ez-pres-quotes figcaption { margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--ez-bord); }

.ez-temoignages-pres.ez-pres-spotlight .ez-temoignage { background: transparent; border: 0; text-align: center; max-width: 46rem; margin: 0 auto; padding: 1rem 0; }
.ez-temoignages-pres.ez-pres-spotlight blockquote { font-size: clamp(1.2rem, 2.4vw, 1.6rem); font-family: var(--ez-police-titres); line-height: 1.4; }
.ez-temoignages-pres.ez-pres-spotlight figcaption { justify-content: center; text-align: left; }
.ez-temoignages-pres.ez-pres-spotlight .ez-etoiles { display: block; margin: 0 auto .8rem; }
.ez-temoignages-pres.ez-pres-spotlight .ez-avatar { width: 3.6rem; height: 3.6rem; }

.ez-temoignages-pres.ez-pres-carousel .ez-temoignage { height: 100%; display: flex; flex-direction: column; }
.ez-temoignages-pres.ez-pres-carousel figcaption { margin-top: auto; }

.ez-mur-avis { columns: 3 17rem; column-gap: var(--ez-espace); }
.ez-mur-avis .ez-temoignage { break-inside: avoid; margin: 0 0 var(--ez-espace); background: var(--ez-fond); border: 1px solid var(--ez-bord); box-shadow: 0 2px 10px var(--ez-ombre); }
.ez-mur-avis .ez-temoignage:nth-child(3n+2) { background: var(--ez-surface); }

.ez-liste-temoignages { display: grid; gap: calc(var(--ez-espace) * 1.4); }
.ez-temoignages-pres.ez-pres-portrait .ez-temoignage { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "photo note" "photo texte" "photo auteur"; column-gap: calc(var(--ez-espace) * 1.2); align-items: start; background: transparent; border: 0; padding: 0; }
.ez-temoignages-pres.ez-pres-portrait .ez-etoiles { grid-area: note; }
.ez-temoignages-pres.ez-pres-portrait blockquote { grid-area: texte; font-size: 1.2rem; }
.ez-temoignages-pres.ez-pres-portrait figcaption { display: contents; }
.ez-temoignages-pres.ez-pres-portrait figcaption .ez-avatar { grid-area: photo; width: 7.5rem; height: 7.5rem; font-size: 2rem; border-radius: var(--ez-rayon); }
.ez-temoignages-pres.ez-pres-portrait .ez-temoignage-auteur { grid-area: auteur; }
@media (max-width: 36rem) { .ez-temoignages-pres.ez-pres-portrait figcaption .ez-avatar { width: 4.5rem; height: 4.5rem; font-size: 1.3rem; } }

.ez-temoignages-pres.ez-pres-score .ez-avis-resume { margin-bottom: calc(var(--ez-espace) * 1.2); }
.ez-temoignages-pres.ez-pres-score .ez-temoignage { background: var(--ez-fond); border: 1px solid var(--ez-bord); border-left: 1px solid var(--ez-bord); }
.ez-temoignages-pres.ez-pres-score .ez-temoignage blockquote { font-size: 1rem; }

/* --- Équipe --- */
.ez-personne-competences { color: var(--ez-texte-doux); font-size: .92rem; }
.ez-personne-contacts { list-style: none; padding: 0; margin: .6rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.ez-personne-contacts a { display: inline-grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; border: 1px solid var(--ez-bord); color: var(--ez-accent); }
.ez-personne-contacts a:hover { border-color: var(--ez-accent); }
.ez-personne-contacts .ez-icone { width: 1.1rem; height: 1.1rem; }
.ez-personne-contacts-texte { display: grid; gap: .2rem; justify-content: start; margin: 0; }
.ez-personne-contacts-texte a { display: inline-flex; width: auto; height: auto; border: 0; border-radius: 0; gap: .4rem; align-items: center; color: inherit; }
.ez-personne-contacts-texte .ez-icone { color: var(--ez-accent); flex: none; }
.ez-personne-role { margin-top: 0; }

.ez-equipe-pres .ez-personne-portrait .ez-personne-photo, .ez-equipe-pres .ez-personne-portrait .ez-personne-initiales,
.ez-equipe-pres .ez-personne-sur-photo .ez-personne-photo, .ez-equipe-pres .ez-personne-sur-photo .ez-personne-initiales { width: 100%; height: auto; aspect-ratio: 3 / 4; border-radius: var(--ez-rayon); margin: 0 0 .8rem; font-size: 3rem; }
.ez-equipe-pres .ez-personne-portrait { text-align: left; }

.ez-personne-sur-photo { position: relative; color: #fff; border-radius: var(--ez-rayon); overflow: hidden; }
.ez-equipe-pres .ez-personne-sur-photo .ez-personne-photo, .ez-equipe-pres .ez-personne-sur-photo .ez-personne-initiales { margin: 0; border: 0; }
.ez-personne-legende { position: absolute; inset: auto 0 0 0; padding: 2.5rem 1rem 1rem; text-align: left; background: linear-gradient(to top, rgb(0 0 0 / .8), transparent); }
.ez-personne-legende :is(h2, h3, h4, p) { color: #fff; margin: 0; }

.ez-personne-fiche { text-align: left; padding: var(--ez-espace); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-personne-fiche .ez-personne-photo, .ez-personne-fiche .ez-personne-initiales { width: 5.5rem; height: 5.5rem; margin: 0 0 .8rem; font-size: 1.5rem; }
.ez-personne-fiche .ez-personne-contacts { justify-content: flex-start; }
.ez-lire-suite summary { cursor: pointer; color: var(--ez-accent); font-weight: 600; margin: .3rem 0; }
.ez-lire-suite[open] summary { margin-bottom: .6rem; }

.ez-annuaire { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ez-bord); }
.ez-personne-ligne { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; align-items: center; text-align: left; padding: .8rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-personne-ligne .ez-personne-photo, .ez-personne-ligne .ez-personne-initiales { width: 3.2rem; height: 3.2rem; margin: 0; font-size: 1rem; }
.ez-personne-ligne :is(h2, h3, h4, p) { margin: 0; }
.ez-personne-ligne .ez-personne-contacts-texte { grid-column: 2; font-size: .95rem; }
@media (min-width: 48rem) {
  .ez-personne-ligne { grid-template-columns: auto minmax(12rem, 1fr) auto; }
  .ez-personne-ligne .ez-personne-contacts-texte { grid-column: 3; grid-auto-flow: column; gap: 1.5rem; }
}

.ez-personne-une { display: grid; gap: calc(var(--ez-espace) * 1.2); align-items: center; text-align: left; margin-bottom: calc(var(--ez-espace) * 1.5); padding: var(--ez-espace); background: var(--ez-surface); border-radius: calc(var(--ez-rayon) * 1.5); }
.ez-personne-une .ez-personne-photo, .ez-personne-une .ez-personne-initiales { width: 100%; height: auto; aspect-ratio: 4 / 5; max-width: 22rem; border-radius: var(--ez-rayon); margin: 0; font-size: 4rem; }
.ez-personne-une .ez-personne-contacts { justify-content: flex-start; }
@media (min-width: 48rem) { .ez-personne-une { grid-template-columns: minmax(14rem, 22rem) 1fr; } }

.ez-equipe-groupe + .ez-equipe-groupe { margin-top: calc(var(--ez-espace) * 1.6); }
.ez-equipe-groupe-titre { padding-bottom: .4rem; border-bottom: 2px solid var(--ez-accent); display: inline-block; }

.ez-grille-cartes-visite { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); }
.ez-carte-visite { display: flex; flex-direction: column; text-align: left; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); overflow: hidden; box-shadow: 0 2px 8px var(--ez-ombre); }
.ez-carte-visite-haut { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.2rem .4rem; }
.ez-carte-visite-haut .ez-personne-photo, .ez-carte-visite-haut .ez-personne-initiales { width: 5.5rem; height: 5.5rem; margin: 0; flex: none; font-size: 1.5rem; }
.ez-carte-visite .ez-personne-identite { flex: 1; text-align: right; }
.ez-carte-visite :is(h3, h4) { margin: 0; text-transform: uppercase; letter-spacing: .03em; color: var(--ez-primaire); font-size: 1.05rem; }
.ez-carte-visite .ez-personne-role { margin: .2rem 0 0; text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; color: var(--ez-accent); }
.ez-carte-visite .ez-personne-competences { padding: 0 1.2rem; margin: .6rem 0 1rem; text-align: right; flex: 1; }
.ez-carte-visite-bas { margin-top: auto; background: var(--ez-surface); border-top: 1px solid var(--ez-bord); padding: .55rem 1.2rem; min-height: 2.9rem; }
.ez-carte-visite-bas .ez-personne-contacts { margin: 0; justify-content: flex-end; }
.ez-carte-visite-bas .ez-personne-contacts a { width: 1.9rem; height: 1.9rem; border: 0; color: var(--ez-texte-doux); }
.ez-carte-visite-bas .ez-personne-contacts a:hover { color: var(--ez-accent); }

/* --- Contact --- */
.ez-contact-ligne { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: var(--ez-espace); }
.ez-contact-ligne > .ez-icone { flex: none; color: var(--ez-accent); margin-top: .2rem; }
.ez-contact-ligne :is(h2, .ez-h3) { margin: 0 0 .15rem; }
.ez-contact-ligne .ez-contact-valeur > :is(p, ul):first-child { margin-top: 0; }
.ez-contact-ligne .ez-contact-valeur > :last-child { margin-bottom: 0; }
.ez-contact-carte-large { margin-top: calc(var(--ez-espace) * 1.4); }
.ez-contact-carte-large .ez-externe { aspect-ratio: 21 / 9; max-width: none; }
@media (max-width: 48rem) { .ez-contact-carte-large .ez-externe { aspect-ratio: 4 / 3; } }

.ez-contact-tuiles { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.ez-contact-tuile { padding: calc(var(--ez-espace) * .9); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-contact-tuile-icone { display: inline-grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; color: var(--ez-sur-accent); background: var(--ez-accent); margin-bottom: .7rem; }
.ez-contact-tuile :is(h2, .ez-h3) { margin: 0 0 .3rem; }
.ez-contact-tuile .ez-contact-valeur > :first-child { margin-top: 0; }
.ez-contact-tuile .ez-contact-valeur > :last-child { margin-bottom: 0; }
.ez-tuile-action { margin: .6rem 0 0; font-weight: 600; }

.ez-contact-cote { display: grid; gap: calc(var(--ez-espace) * 1.6); align-items: start; }
@media (min-width: 52rem) { .ez-contact-cote { grid-template-columns: 1fr 1.25fr; } }
.ez-contact-cote .ez-contact-carte { margin-top: var(--ez-espace); }
.ez-contact-cote .ez-contact-carte .ez-externe { aspect-ratio: 4 / 3; max-width: none; }
.ez-formulaire-boite { padding: calc(var(--ez-espace) * 1.1); background: var(--ez-surface); border-radius: calc(var(--ez-rayon) * 1.5); }
.ez-formulaire-boite > h2 { margin-top: 0; }

.ez-contact-grande-carte { position: relative; display: grid; }
.ez-contact-grande-carte .ez-contact-carte .ez-externe { aspect-ratio: auto; min-height: 32rem; max-width: none; }
@media (min-width: 52rem) { .ez-contact-grande-carte .ez-contact-carte .ez-externe:not(.ez-charge) { padding-left: calc(min(24rem, 42%) + var(--ez-espace) * 2.5); } }
.ez-contact-encart { background: var(--ez-fond); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * 1.1); box-shadow: 0 8px 30px rgb(0 0 0 / .18); }
@media (min-width: 52rem) {
  .ez-contact-grande-carte:not(.ez-sans-carte) > * { grid-area: 1 / 1; }
  .ez-contact-grande-carte:not(.ez-sans-carte) .ez-contact-encart { align-self: center; justify-self: start; margin: var(--ez-espace); width: min(24rem, 42%); position: relative; z-index: 2; }
  .ez-contact-grande-carte .ez-contact-carte, .ez-contact-grande-carte .ez-contact-carte .ez-externe { height: 100%; }
}
@media (max-width: 52rem) {
  .ez-contact-grande-carte .ez-contact-carte .ez-externe { min-height: 18rem; }
  .ez-contact-grande-carte .ez-contact-encart { margin-top: -1.5rem; position: relative; margin-inline: .6rem; }
}
.ez-sans-carte .ez-contact-encart { max-width: 36rem; background: var(--ez-surface); box-shadow: none; }

.ez-contact-bandeau { display: flex; flex-wrap: wrap; gap: var(--ez-espace); align-items: center; justify-content: space-between; padding: var(--ez-espace) calc(var(--ez-espace) * 1.2); background: var(--ez-degrade, var(--ez-primaire)); color: var(--ez-sur-primaire); border-radius: calc(var(--ez-rayon) * 1.5); }
.ez-contact-bandeau-infos { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .7rem 1.8rem; }
.ez-contact-bandeau-infos li { display: flex; gap: .5rem; align-items: center; }
.ez-contact-bandeau-infos li > span > p { margin: 0; display: inline; }
.ez-contact-bandeau a { color: inherit; }
.ez-contact-bandeau .ez-boutons { margin: 0; }
.ez-contact-bandeau .ez-bouton { background: var(--ez-sur-primaire); color: var(--ez-primaire); }
.ez-contact-bandeau .ez-bouton.ez-bouton-secondaire { background: transparent; color: var(--ez-sur-primaire); border: 1px solid currentColor; }

.ez-gros-boutons { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin-bottom: calc(var(--ez-espace) * 1.2); }
.ez-gros-bouton { display: flex; gap: .9rem; align-items: center; padding: 1.05rem 1.2rem; min-height: 4.2rem; border-radius: calc(var(--ez-rayon) * 1.4); border: 2px solid var(--ez-accent); color: var(--ez-accent); background: var(--ez-fond); text-decoration: none; font-size: 1.1rem; }
.ez-gros-bouton .ez-icone { width: 1.7rem; height: 1.7rem; flex: none; }
.ez-gros-bouton strong { display: block; }
.ez-gros-bouton small { display: block; font-size: .85rem; color: var(--ez-texte-doux); }
.ez-gros-bouton.ez-gros-bouton-principal { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-gros-bouton.ez-gros-bouton-principal small { color: inherit; opacity: .9; }
.ez-contact-reste { display: grid; gap: 0 var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
@media print { .ez-carrousel-points { display: none; } }
.ez-temoignages-pres.ez-pres-spotlight .ez-temoignage > .ez-etoiles { display: flex; justify-content: center; }

/* ==== 2.13 — questions fréquentes (bloc « faq » et module « faq ») ==== */
[data-ez-faq] [hidden] { display: none !important; }
.ez-faq-cartes { display: grid; gap: .7rem; max-width: 50rem; }
.ez-faq-cartes .ez-question { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-surface); transition: border-color var(--ez-duree, .2s); }
.ez-faq-cartes .ez-question[open] { border-color: var(--ez-accent); }
:is(.ez-faq-cartes, .ez-faq-lignes) .ez-question summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
:is(.ez-faq-cartes, .ez-faq-lignes) .ez-question summary::-webkit-details-marker { display: none; }
.ez-faq-cartes .ez-question summary { padding: 1rem 1.1rem; }
.ez-faq-cartes .ez-faq-r { padding: 0 1.1rem 1rem; }
.ez-faq-lignes .ez-faq-r { padding: 0 0 1rem; }
.ez-question summary:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: 2px; border-radius: var(--ez-rayon); }
.ez-faq-signe { flex: none; position: relative; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: color-mix(in srgb, var(--ez-accent) 14%, transparent); transition: transform var(--ez-duree, .2s); }
.ez-faq-signe::before, .ez-faq-signe::after { content: ""; position: absolute; left: 50%; top: 50%; width: .7rem; height: 2px; margin: -1px 0 0 -.35rem; background: var(--ez-accent); border-radius: 2px; }
.ez-faq-signe::after { transform: rotate(90deg); }
.ez-question[open] .ez-faq-signe { transform: rotate(45deg); }
.ez-faq-lignes .ez-faq-signe { background: none; }
.ez-question[open] summary .ez-faq-q { color: var(--ez-accent); }

/* Deux colonnes : texte et bouton à gauche, questions à droite */
.ez-faq-split { display: grid; gap: calc(var(--ez-espace) * 1.5); }
@media (min-width: 48rem) {
  .ez-faq-split { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: start; }
  .ez-faq-split-texte { position: sticky; top: calc(var(--ez-hauteur-entete, 0px) + 1rem); }
}
.ez-faq-split-texte h2 { margin-top: 0; }
.ez-faq-split .ez-faq-lignes { max-width: none; }

/* Onglets par catégorie */
.ez-faq-pastilles { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.2rem; }
.ez-faq-pastille { font: inherit; font-weight: 600; font-size: .95rem; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: transparent; color: var(--ez-texte); cursor: pointer; }
.ez-faq-pastille[aria-selected="true"] { background: var(--ez-accent); border-color: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-faq-pastille:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: 2px; }
.ez-faq-nombre { margin-left: .45rem; font-weight: 500; opacity: .75; }
.ez-faq-groupe + .ez-faq-groupe { margin-top: 1.5rem; }
.ez-faq-groupe-titre { font-size: 1.15rem; margin: 0 0 .8rem; }
.ez-faq-onglets-actifs .ez-faq-groupe-titre { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ez-faq-onglets-actifs .ez-faq-groupe + .ez-faq-groupe { margin-top: 0; }

/* Recherche instantanée */
.ez-faq-champ { margin: 0 0 1.2rem; max-width: 50rem; }
.ez-faq-champ input { width: 100%; font: inherit; padding: .8rem 1rem .8rem 2.6rem; border: 1.5px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-surface) no-repeat .9rem 50% / 1.1rem; color: var(--ez-texte);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); }
.ez-faq-champ input:focus { outline: none; border-color: var(--ez-accent); }
.ez-faq-aucun { max-width: 50rem; padding: 1rem; border: 1px dashed var(--ez-bord); border-radius: var(--ez-rayon); color: var(--ez-texte-doux); }
mark.ez-faq-trouve { background: color-mix(in srgb, var(--ez-accent) 25%, transparent); color: inherit; border-radius: 2px; padding: 0 .1em; }

/* Grille de cartes ouvertes */
.ez-faq-grille { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.ez-faq-tuile { background: var(--ez-surface); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: 1.2rem; }
.ez-faq-tuile > :is(h2, h3, h4) { font-size: 1.05rem; margin: 0 0 .5rem; }
.ez-faq-tuile .ez-texte > :last-child { margin-bottom: 0; }

/* Centre d'aide : sommaire et réponses ouvertes */
.ez-faq-aide { display: grid; gap: calc(var(--ez-espace) * 1.5); }
@media (min-width: 48rem) {
  .ez-faq-aide { grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr); align-items: start; }
  .ez-faq-sommaire { position: sticky; top: calc(var(--ez-hauteur-entete, 0px) + 1rem); }
}
.ez-faq-sommaire ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.ez-faq-sommaire a { display: block; padding: .45rem .7rem; border-left: 3px solid var(--ez-bord); color: var(--ez-texte); text-decoration: none; }
.ez-faq-sommaire a:hover, .ez-faq-sommaire a:focus-visible { border-left-color: var(--ez-accent); color: var(--ez-accent); }
.ez-faq-aide-corps { display: grid; gap: calc(var(--ez-espace) * 1.2); min-width: 0; }
.ez-faq-aide .ez-faq-groupe { display: grid; gap: .9rem; scroll-margin-top: calc(var(--ez-hauteur-entete, 0px) + 1rem); }
.ez-faq-aide .ez-faq-groupe + .ez-faq-groupe { margin-top: 0; }
.ez-faq-aide .ez-faq-groupe-titre { color: var(--ez-accent); }
.ez-faq-qr { padding-bottom: .9rem; border-bottom: 1px solid var(--ez-bord); scroll-margin-top: calc(var(--ez-hauteur-entete, 0px) + 1rem); }
.ez-faq-qr > :is(h2, h3, h4) { font-size: 1.05rem; margin: 0 0 .4rem; }
.ez-faq-qr .ez-texte > :last-child { margin-bottom: 0; }
.ez-faq-lien { margin-left: .3rem; color: var(--ez-texte-doux); text-decoration: none; opacity: 0; font-weight: 400; }
.ez-faq-qr:hover .ez-faq-lien, .ez-faq-lien:focus-visible { opacity: 1; }
.ez-faq-qr:target, .ez-question:target { scroll-margin-top: calc(var(--ez-hauteur-entete, 0px) + 1rem); }
@media (prefers-reduced-motion: reduce) { .ez-faq-signe, .ez-faq-cartes .ez-question { transition: none; } }
@media print {
  .ez-faq-pastilles, .ez-faq-champ, .ez-faq-sommaire { display: none !important; }
  .ez-faq-groupe[hidden], .ez-question[hidden] { display: block !important; }
}

/* ==== 2.14 : galerie de photos ==== */
.ez-galerie-boite { margin: var(--ez-espace) 0; }
.ez-galerie-boite > .ez-galerie { margin: 0; }
.ez-galerie figure { position: relative; }
.ez-galerie-landscape img { aspect-ratio: 4 / 3; }
.ez-galerie-portrait img { aspect-ratio: 3 / 4; }
.ez-galerie-tout { margin-top: .8rem; }
/* Mosaïque : photos entières, en colonnes */
.ez-galerie.ez-pres-masonry { display: block; columns: 2; column-gap: .6rem; }
@media (min-width: 48rem) { .ez-galerie.ez-pres-masonry { columns: 3; } }
@media (min-width: 72rem) { .ez-galerie.ez-pres-masonry { columns: 4; } }
.ez-galerie.ez-pres-masonry li { break-inside: avoid; margin-bottom: .6rem; }
.ez-galerie.ez-pres-masonry img { aspect-ratio: auto; height: auto; }
/* Grille éditoriale : une grande, des petites */
.ez-galerie.ez-pres-editorial { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 9rem; grid-auto-flow: dense; }
@media (min-width: 48rem) { .ez-galerie.ez-pres-editorial { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 11rem; } }
.ez-galerie.ez-pres-editorial li, .ez-galerie.ez-pres-editorial figure, .ez-galerie.ez-pres-editorial a, .ez-galerie.ez-pres-editorial picture { height: 100%; display: block; }
.ez-galerie.ez-pres-editorial img { aspect-ratio: auto; height: 100%; }
.ez-galerie.ez-pres-editorial li:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
.ez-galerie.ez-pres-editorial li:nth-child(6n + 4) { grid-column: span 2; }
.ez-galerie.ez-pres-editorial figcaption, .ez-galerie.ez-pres-fullwidth figcaption, .ez-galerie.ez-pres-preview figcaption { position: absolute; inset: auto 0 0 0; margin: 0; padding: 1.6rem .7rem .5rem; color: #fff; font-weight: 600; background: linear-gradient(to top, rgb(0 0 0 / .7), transparent); border-radius: 0 0 var(--ez-rayon) var(--ez-rayon); pointer-events: none; }
/* Bande défilante */
.ez-galerie-bande { margin: var(--ez-espace) 0; }
.ez-galerie-pres .ez-galerie-diapo figure { margin: 0; }
.ez-galerie-pres .ez-galerie-diapo img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; border-radius: var(--ez-rayon); }
.ez-galerie-pres .ez-galerie-diapo figcaption { font-size: .88rem; color: var(--ez-texte-doux); margin-top: .3rem; }
@media (min-width: 48rem) { .ez-galerie-pres .ez-carrousel-piste { grid-auto-columns: calc((100% - var(--ez-espace)) / 2.3); } }
/* Grande photo et vignettes */
.ez-galerie-vue { margin: var(--ez-espace) 0; }
.ez-galerie-vue-piste { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: var(--ez-rayon); scrollbar-width: none; }
.ez-galerie-vue-piste:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-galerie-vue-diapo { margin: 0; position: relative; scroll-snap-align: start; }
.ez-galerie-vue-diapo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
@media (min-width: 48rem) { .ez-galerie-vue-diapo img { aspect-ratio: 16 / 8; } }
.ez-galerie-vue-diapo figcaption { position: absolute; inset: auto 0 0 0; padding: 2rem 1rem .8rem; color: #fff; font-weight: 600; background: linear-gradient(to top, rgb(0 0 0 / .65), transparent); }
.ez-galerie-vignettes { display: grid; grid-auto-flow: column; grid-auto-columns: 4.5rem; gap: .5rem; overflow-x: auto; margin-top: .6rem; padding: .2rem; }
@media (min-width: 48rem) { .ez-galerie-vignettes { grid-auto-columns: 6rem; } }
.ez-galerie-vignette { padding: 0; border: 0; background: none; cursor: pointer; border-radius: calc(var(--ez-rayon) * .6); overflow: hidden; opacity: .6; transition: opacity .2s; }
.ez-galerie-vignette img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ez-galerie-vignette:hover, .ez-galerie-vignette[aria-current="true"] { opacity: 1; }
.ez-galerie-vignette[aria-current="true"] { outline: 3px solid var(--ez-accent); outline-offset: -3px; }
.ez-galerie-vignette:focus-visible { outline: 3px solid var(--ez-accent); opacity: 1; }
/* Pleine largeur, légende au survol (toujours visible sur un écran tactile) */
.ez-bloc-gallery:has(.ez-pres-fullwidth) { overflow-x: clip; }
.ez-galerie.ez-pres-fullwidth { gap: 2px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 48rem) { .ez-galerie.ez-pres-fullwidth { grid-template-columns: repeat(4, 1fr); } }
.ez-bloc-gallery .ez-galerie-boite:has(> .ez-pres-fullwidth) { margin-inline: calc(50% - 50vw); }
.ez-galerie.ez-pres-fullwidth img { border-radius: 0; }
.ez-galerie.ez-pres-fullwidth figcaption { border-radius: 0; }
@media (hover: hover) {
  .ez-galerie.ez-pres-fullwidth figcaption { opacity: 0; transition: opacity .2s; }
  .ez-galerie.ez-pres-fullwidth li:is(:hover, :focus-within) figcaption { opacity: 1; }
}
/* Aperçu court « + N photos » */
.ez-galerie.ez-pres-preview { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 8rem; }
@media (min-width: 48rem) { .ez-galerie.ez-pres-preview { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 11rem; } }
.ez-galerie.ez-pres-preview li:first-child { grid-column: span 2; grid-row: span 2; }
@media (min-width: 48rem) { .ez-galerie.ez-pres-preview li:first-child { grid-column: auto; } }
.ez-galerie.ez-pres-preview li, .ez-galerie.ez-pres-preview figure, .ez-galerie.ez-pres-preview a, .ez-galerie.ez-pres-preview picture { height: 100%; display: block; }
.ez-galerie.ez-pres-preview img { aspect-ratio: auto; height: 100%; }
.ez-galerie-plus { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #fff; background: rgb(10 15 25 / .55); border-radius: var(--ez-rayon); pointer-events: none; }
.ez-galerie-plus strong { font-size: 1.6rem; }
.ez-galerie-plus small { font-size: .85rem; font-weight: 600; }
.ez-galerie.ez-pres-preview li:has(.ez-galerie-plus) figcaption { display: none; }

/* ==== 2.14 : albums ==== */
.ez-albums-pres.ez-pres-cover .ez-carte { position: relative; min-height: 16rem; justify-content: flex-end; border: 0; color: #fff; background: var(--ez-degrade, var(--ez-primaire)); isolation: isolate; }
.ez-albums-pres.ez-pres-cover .ez-carte-image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; z-index: -2; }
.ez-albums-pres.ez-pres-cover .ez-carte::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(0 0 0 / .75), rgb(0 0 0 / 0) 65%); }
.ez-albums-pres.ez-pres-cover :is(h3, h3 a, .ez-meta) { color: #fff; }
.ez-album-nb { position: absolute; top: .7rem; right: .7rem; background: rgb(0 0 0 / .55); color: #fff; font-size: .8rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; }
.ez-albums-pres.ez-pres-stack .ez-carte { border: 0; background: transparent; overflow: visible; text-align: center; }
.ez-albums-pres.ez-pres-stack .ez-carte-corps { padding: .9rem 0 0; }
.ez-album-pile { position: relative; margin: .8rem .8rem 0; }
.ez-album-pile::before, .ez-album-pile::after { content: ""; position: absolute; inset: 0; border-radius: var(--ez-rayon); border: 4px solid var(--ez-fond); background: color-mix(in srgb, var(--ez-accent) 30%, var(--ez-surface)); box-shadow: 0 4px 12px rgb(15 30 60 / .12); }
.ez-album-pile::before { transform: rotate(-5deg); }
.ez-album-pile::after { transform: rotate(4deg); background: color-mix(in srgb, var(--ez-primaire) 25%, var(--ez-surface)); }
.ez-album-pile .ez-carte-image { position: relative; z-index: 1; border-radius: var(--ez-rayon); border: 4px solid var(--ez-fond); box-shadow: 0 6px 18px rgb(15 30 60 / .18); }
.ez-album-pile picture { position: relative; z-index: 1; display: block; }
.ez-album-ligne { display: grid; gap: var(--ez-espace); padding: .8rem; align-items: center; }
@media (min-width: 40rem) { .ez-album-ligne { grid-template-columns: 13rem 1fr; } }
.ez-album-ligne > :is(.ez-carte-image, picture, .ez-image-manquante) { border-radius: calc(var(--ez-rayon) * .7); }
@media (max-width: 39.99rem) { .ez-album-ligne > :is(.ez-carte-image, picture) { display: none; } }
.ez-album-ligne .ez-carte-corps { padding: 0; }
.ez-album-vignettes { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 6.5rem)); gap: .4rem; }
.ez-album-vignettes img { aspect-ratio: 1; border-radius: calc(var(--ez-rayon) * .5); }
.ez-albums-pres.ez-pres-featured { display: grid; gap: var(--ez-espace); }
@media (min-width: 48rem) { .ez-albums-pres.ez-pres-featured:has(.ez-album-autres) { grid-template-columns: 3fr 2fr; } }
.ez-album-une { position: relative; min-height: 22rem; justify-content: flex-end; border: 0; color: #fff; background: var(--ez-degrade, var(--ez-primaire)); isolation: isolate; }
.ez-album-une .ez-carte-image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; z-index: -2; }
.ez-album-une::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(0 0 0 / .78), rgb(0 0 0 / 0) 70%); }
.ez-album-une :is(h3, h3 a, .ez-meta, p) { color: #fff; }
.ez-album-une h3 { font-size: 1.5rem; }
.ez-album-autres { display: grid; gap: .8rem; align-content: start; }
.ez-album-mini { display: grid; grid-template-columns: 7rem 1fr; align-items: center; border: 0; background: transparent; }
.ez-album-mini .ez-carte-image { border-radius: calc(var(--ez-rayon) * .6); aspect-ratio: 4 / 3; }
.ez-album-mini .ez-carte-corps { padding: 0 0 0 .8rem; }
.ez-album-mini h3 { font-size: 1rem; margin: 0 0 .2rem; }
.ez-album-annee + .ez-album-annee { margin-top: calc(var(--ez-espace) * 1.6); }
.ez-album-annee-titre { display: flex; align-items: center; gap: .9rem; font-size: 1.3rem; }
.ez-album-annee-titre::after { content: ""; flex: 1; height: 2px; background: var(--ez-bord); }
/* Lot 7 : catégories d'un album (categories.json → albums), au-dessus du titre de la carte */
.ez-album-categories { margin: 0 0 .35rem; font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.ez-album-categories a { color: var(--ez-primaire); text-decoration: none; }
.ez-album-categories a:hover, .ez-album-categories a:focus-visible { text-decoration: underline; }

/* ==== 2.14 : partenaires ==== */
.ez-partenaires-pres.ez-pres-greyscale .ez-partenaire > :is(a, img, span) { border: 0; background: transparent; }
@media (hover: hover) {
  .ez-partenaires-pres.ez-pres-greyscale .ez-partenaire :is(img, .ez-nom-partenaire) { filter: grayscale(1); opacity: .6; transition: filter .25s, opacity .25s; }
  .ez-partenaires-pres.ez-pres-greyscale .ez-partenaire:is(:hover, :focus-within) :is(img, .ez-nom-partenaire) { filter: none; opacity: 1; }
}
.ez-partenaires-pres .ez-logo-partenaire { max-height: 4rem; width: auto; max-width: 100%; object-fit: contain; }
.ez-defile { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ez-defile-piste { display: flex; width: max-content; animation: ez-defile 40s linear infinite; }
.ez-defile .ez-logos { display: flex; gap: var(--ez-espace); padding-right: var(--ez-espace); margin: 0; }
.ez-defile .ez-partenaire { flex: none; width: 10rem; }
.ez-defile:is(:hover, :focus-within, .ez-en-pause) .ez-defile-piste { animation-play-state: paused; }
@keyframes ez-defile { to { transform: translateX(-50%); } }
.ez-defile-pause { position: absolute; right: .3rem; bottom: .3rem; font-size: .8rem; padding: .2rem .6rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); cursor: pointer; }
@media (prefers-reduced-motion: reduce) {
  .ez-defile { -webkit-mask-image: none; mask-image: none; }
  .ez-defile-piste { animation: none; width: auto; }
  .ez-defile .ez-logos { flex-wrap: wrap; }
  .ez-defile .ez-logos[aria-hidden="true"] { display: none; }
}
.ez-defile { padding-bottom: 2rem; }
.ez-partenaire-fiche { padding: calc(var(--ez-espace) * .9); gap: .6rem; }
.ez-partenaire-haut { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding-bottom: .7rem; border-bottom: 1px solid var(--ez-bord); }
.ez-partenaire-haut .ez-nom-partenaire { font-weight: 700; }
.ez-partenaire-site { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.ez-partenaire-fiche p { margin: 0; color: var(--ez-texte-doux); }
.ez-partenaires-niveau { text-align: center; }
.ez-partenaires-niveau + .ez-partenaires-niveau { margin-top: calc(var(--ez-espace) * 1.4); }
.ez-partenaires-niveau-titre { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-partenaires-niveau .ez-logos { display: flex; flex-wrap: wrap; justify-content: center; }
.ez-niveau-1 .ez-partenaire { width: min(100%, 16rem); }
.ez-niveau-1 .ez-partenaire > :is(a, img, span) { min-height: 7.5rem; font-size: 1.25rem; }
.ez-niveau-1 .ez-logo-partenaire { max-height: 5.5rem; }
.ez-niveau-2 .ez-partenaire { width: min(100%, 12rem); }
.ez-niveau-3 .ez-partenaire { width: 9rem; }
.ez-niveau-3 .ez-partenaire > :is(a, img, span) { min-height: 4rem; font-size: .9rem; }
.ez-niveau-3 .ez-logo-partenaire { max-height: 2.6rem; }
.ez-conteneur:has(> .ez-pres-band) { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem calc(var(--ez-espace) * 1.5); background: var(--ez-surface); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * .9) calc(var(--ez-espace) * 1.2); }
.ez-conteneur:has(> .ez-pres-band) > h2 { font-size: 1rem; margin: 0; }
.ez-logos.ez-pres-band { display: flex; flex-wrap: wrap; flex: 1; align-items: center; gap: .6rem 1.6rem; margin: 0; }
.ez-logos.ez-pres-band .ez-partenaire > :is(a, img, span) { min-height: 3rem; padding: .2rem; border: 0; background: transparent; }
.ez-logos.ez-pres-band .ez-logo-partenaire { max-height: 2.6rem; }
/* <picture> ne crée pas de boîte : sa balise <source> ne doit pas prendre une case de grille */
:is(.ez-albums-pres, .ez-partenaires-pres) source { display: none; }
@media (max-width: 40rem) { .ez-conteneur:has(> .ez-pres-band) { flex-direction: column; align-items: stretch; } }
.ez-partenaires-pres .ez-partenaire-haut .ez-logo-partenaire { max-width: 70%; max-height: 3rem; min-width: 0; }

/* ===== 2.15 — Évènements : présentations, couleur par catégorie, évènements passés repliés, calendrier ===== */
/* Couleur d'une catégorie : categories.json → events[].color (style --ez-cat), sinon les couleurs du site à tour de rôle. */
.ez-cat-0, .ez-cat-1 { --ez-cat-defaut: var(--ez-primaire); }
.ez-cat-2 { --ez-cat-defaut: var(--ez-accent); }
.ez-cat-3 { --ez-cat-defaut: var(--ez-secondaire); }
.ez-cat-4 { --ez-cat-defaut: #b45309; }
.ez-cat-5 { --ez-cat-defaut: #15803d; }
.ez-cat-6 { --ez-cat-defaut: #9f1239; }
[class*="ez-cat-"] { --ez-cat-c: var(--ez-cat, var(--ez-cat-defaut)); }
.ez-evenements-pres .ez-statut { align-self: flex-start; justify-self: start; width: max-content; }

/* Évènements passés repliés derrière un bouton */
.ez-passes-replies { margin-top: calc(var(--ez-espace) * 1.5); }
.ez-passes-replies > summary { list-style: none; cursor: pointer; }
.ez-passes-replies > summary::-webkit-details-marker { display: none; }
.ez-passes-replies[open] > summary { margin-bottom: var(--ez-espace); }
.ez-passes-replies .ez-evenements-passes:empty::after { content: attr(data-ez-vide); color: var(--ez-texte-doux); }

/* A — cartes avec image */
.ez-evenements-pres.ez-pres-cards { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-ev-cards, .ez-ev-carousel, .ez-ev-une { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden; }
.ez-ev-visuel { position: relative; aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--ez-cat-c, var(--ez-primaire)), var(--ez-accent)); }
.ez-ev-visuel .ez-ev-image, .ez-ev-visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ez-ev-visuel picture { display: contents; }
.ez-ev-visuel .ez-pastille { position: absolute; left: .8rem; top: .8rem; box-shadow: 0 4px 12px rgb(0 0 0 / .2); }
.ez-ev-cards .ez-evenement-corps, .ez-ev-carousel .ez-evenement-corps { padding: calc(var(--ez-espace) * .8); display: flex; flex-direction: column; gap: .2rem; }
.ez-evenements-pres h3 { margin: 0 0 .2rem; }

/* B — frise */
.ez-evenements-pres.ez-pres-timeline { position: relative; padding-left: 2rem; display: grid; gap: calc(var(--ez-espace) * 1.1); }
.ez-evenements-pres.ez-pres-timeline::before { content: ""; position: absolute; left: .55rem; top: .3rem; bottom: .3rem; width: 2px; background: var(--ez-bord); }
.ez-ev-timeline { display: block; position: relative; padding: 0; border: 0; background: none; }
.ez-ev-timeline::before { content: ""; position: absolute; left: -1.8rem; top: .25rem; width: .9rem; height: .9rem; border-radius: 50%; background: var(--ez-fond); border: 3px solid var(--ez-cat-c, var(--ez-accent)); }
.ez-ev-date { margin: 0 0 .2rem; font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ez-cat-c, var(--ez-accent)); }

/* C — agenda compact */
.ez-evenements-pres.ez-pres-agenda { display: block; border-top: 1px solid var(--ez-bord); }
.ez-ev-agenda { display: grid; grid-template-columns: minmax(8rem, 1.1fr) minmax(5rem, .6fr) 2fr minmax(8rem, 1.2fr); gap: .3rem 1rem; align-items: center; padding: .7rem .3rem; border: 0; border-bottom: 1px solid var(--ez-bord); border-radius: 0; background: none; }
.ez-ev-agenda p { margin: 0; }
.ez-ev-agenda h3 { font-size: 1rem; margin: 0; }
.ez-ev-col-date { font-weight: 700; }
.ez-ev-col-heure, .ez-ev-col-lieu { color: var(--ez-texte-doux); font-size: .92rem; }
@media (max-width: 40rem) {
  .ez-ev-agenda { grid-template-columns: 1fr; gap: .1rem; }
  .ez-ev-col-titre { order: -1; }
}

/* D — prochain à la une */
.ez-evenements-pres.ez-pres-featured { display: grid; gap: var(--ez-espace); }
@media (min-width: 48rem) {
  .ez-evenements-pres.ez-pres-featured { grid-template-columns: 1.3fr 1fr; align-items: start; }
  .ez-evenements-pres.ez-pres-featured .ez-ev-une { grid-row: span 8; }
}

.ez-ev-une .ez-evenement-corps { padding: var(--ez-espace); }
.ez-ev-une h3 { font-size: 1.45rem; }
.ez-ev-dans { margin: 0 0 .4rem; font-weight: 700; color: var(--ez-cat-c, var(--ez-accent)); }
.ez-ev-mini { align-items: center; background: var(--ez-surface); border-color: transparent; }
.ez-ev-mini .ez-pastille { width: 3.2rem; }
.ez-ev-mini .ez-pastille-jour { font-size: 1.25rem; }
.ez-ev-mini h3 { font-size: 1rem; margin: 0; }
.ez-ev-mini .ez-meta { margin: 0; }

/* E — groupés par mois */
.ez-evenements-pres.ez-pres-months { display: block; }
.ez-ev-mois { display: flex; align-items: center; gap: .8rem; margin: calc(var(--ez-espace) * 1.2) 0 .5rem; font-size: 1.15rem; }
.ez-ev-mois:first-child { margin-top: 0; }
.ez-ev-mois::after { content: ""; flex: 1; height: 2px; background: var(--ez-bord); }
.ez-ev-months { border: 0; border-radius: 0; background: none; padding: .6rem 0; align-items: center; }
.ez-ev-months + .ez-ev-months { border-top: 1px dashed var(--ez-bord); }
.ez-ev-jour { flex: none; width: 3.6rem; margin: 0; text-align: center; line-height: 1.1; }
.ez-ev-jour b { display: block; font-size: 1.5rem; color: var(--ez-cat-c, var(--ez-accent)); }
.ez-ev-jour span { font-size: .78rem; color: var(--ez-texte-doux); }
.ez-ev-months h3 { margin: 0; font-size: 1.05rem; }
.ez-ev-months .ez-meta { margin: 0; }

/* F — carrousel */
.ez-evenements-pres.ez-carrousel .ez-ev-carousel { height: 100%; }

/* G — affiches de couleur */
.ez-evenements-pres.ez-pres-posters { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.ez-ev-posters { display: flex; flex-direction: column; gap: .3rem; min-height: 15rem; border: 0; color: #fff; background: var(--ez-cat-c, var(--ez-primaire)); padding: calc(var(--ez-espace) * 1.1); }
.ez-ev-posters :is(h3, h3 a, p, .ez-meta, .ez-meta a) { color: #fff; }
.ez-ev-posters .ez-meta, .ez-ev-posters p { opacity: .92; }
.ez-ev-affiche-mois { margin: 0; font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; }
.ez-ev-affiche-jour { margin: 0; font-family: var(--ez-police-titres); font-weight: 700; font-size: 3.3rem; line-height: 1; }
.ez-ev-posters .ez-statut { background: rgb(255 255 255 / .9); color: #111; }

/* H — calendrier mois, semaine, liste (dessiné par ezwebstudio-presentations.js ; sans script : la liste) */
.ez-agenda-cal-barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .8rem; }
.ez-agenda-cal-titre { margin: 0; font-size: 1.25rem; }
.ez-agenda-cal-groupe { display: flex; gap: .35rem; flex-wrap: wrap; }
.ez-agenda-cal-groupe button { font: inherit; font-weight: 700; font-size: .88rem; padding: .3rem .8rem; border-radius: 999px; border: 1.5px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); cursor: pointer; }
.ez-agenda-cal-groupe button[aria-pressed="true"] { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-agenda-cal-groupe button:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-agenda-mois { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ez-agenda-mois .ez-jn { text-align: center; font-size: .72rem; font-weight: 700; text-transform: uppercase; color: var(--ez-texte-doux); padding-bottom: .2rem; }
.ez-agenda-mois .ez-j { min-height: 5.6rem; border-radius: calc(var(--ez-rayon) * .6); background: var(--ez-surface); padding: .3rem; display: flex; flex-direction: column; gap: 3px; min-width: 0; border: 2px solid transparent; text-align: left; font: inherit; color: inherit; }
.ez-agenda-mois .ez-j.ez-hors { background: transparent; opacity: .45; }
.ez-agenda-mois .ez-j.ez-auj { border-color: var(--ez-accent); }
.ez-agenda-mois .ez-n { font-size: .78rem; font-weight: 700; }
.ez-puce { display: block; font-size: .72rem; font-weight: 600; line-height: 1.25; padding: 2px 5px; border-radius: 5px; background: var(--ez-cat-c, var(--ez-primaire)); color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
a.ez-puce:hover, a.ez-puce:focus-visible { filter: brightness(1.1); text-decoration: underline; }
.ez-puce.ez-barre, .ez-bloc-h.ez-barre { text-decoration: line-through; opacity: .7; }
.ez-agenda-semaine { display: grid; grid-template-columns: 3.2rem repeat(7, minmax(0, 1fr)); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; font-size: .78rem; }
.ez-agenda-semaine .ez-tete { padding: .4rem .2rem; text-align: center; border-bottom: 1px solid var(--ez-bord); background: var(--ez-surface); font-weight: 700; }
.ez-agenda-semaine .ez-tete small { display: block; font-weight: 600; color: var(--ez-texte-doux); text-transform: uppercase; font-size: .68rem; }
.ez-agenda-semaine .ez-tete.ez-auj { color: var(--ez-accent); }
.ez-agenda-semaine .ez-h { grid-column: 1; color: var(--ez-texte-doux); text-align: right; padding: 2px 6px 0 0; height: 2.4rem; border-top: 1px solid var(--ez-bord); box-sizing: border-box; }
.ez-agenda-semaine .ez-col { position: relative; border-left: 1px solid var(--ez-bord); background: repeating-linear-gradient(to bottom, transparent 0 calc(2.4rem - 1px), var(--ez-bord) calc(2.4rem - 1px) 2.4rem); }
.ez-agenda-semaine .ez-journee { grid-column: 2 / -1; display: none; }
.ez-bloc-h { position: absolute; left: 3px; right: 3px; border-radius: 6px; padding: 3px 5px; background: var(--ez-cat-c, var(--ez-primaire)); color: #fff; font-weight: 600; line-height: 1.25; overflow: hidden; text-decoration: none; box-sizing: border-box; }
.ez-bloc-h small { display: block; font-weight: 500; opacity: .9; }
.ez-agenda-jours { display: none; gap: .8rem; }
.ez-agenda-jour { display: grid; grid-template-columns: 3.2rem 1fr; gap: .7rem; align-items: start; }
.ez-agenda-jour > p { margin: 0; text-align: center; line-height: 1.1; }
.ez-agenda-jour > p b { display: block; font-size: 1.3rem; }
.ez-agenda-jour > p span { font-size: .7rem; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-agenda-jour ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.ez-agenda-jour li a, .ez-agenda-jour li span.ez-ligne { display: block; border-radius: 8px; padding: .5rem .7rem; background: var(--ez-cat-c, var(--ez-primaire)); color: #fff; font-weight: 600; text-decoration: none; }
.ez-agenda-jour li small { display: block; font-weight: 500; opacity: .9; }
.ez-agenda-jour .ez-rien { color: var(--ez-texte-doux); font-size: .9rem; margin: .4rem 0 0; }
.ez-agenda-legende { list-style: none; margin: .8rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .85rem; }
.ez-agenda-legende li { display: flex; align-items: center; gap: .35rem; }
.ez-agenda-legende i { width: .7rem; height: .7rem; border-radius: 3px; background: var(--ez-cat-c, var(--ez-primaire)); }
@media (max-width: 40rem) {
  .ez-agenda-mois .ez-j { min-height: 2.9rem; align-items: center; padding: .25rem .1rem; cursor: pointer; }
  .ez-agenda-mois .ez-puce { width: .45rem; height: .45rem; padding: 0; border-radius: 50%; font-size: 0; display: inline-block; }
  .ez-agenda-mois .ez-puces { display: flex; gap: 2px; flex-wrap: wrap; justify-content: center; }
  .ez-agenda-mois .ez-j.ez-choisi { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
  .ez-agenda-semaine { display: none; }
  .ez-agenda-jours { display: grid; }
}
@media (min-width: 40.01rem) { .ez-agenda-jour-choisi { display: none; } .ez-agenda-mois .ez-puces { display: contents; } }

/* ===== 2.15 — Vente : formules, liste des offres, calculateur avec récapitulatif ; bloc « pricing » ===== */

/* Tableau comparatif : nom de chaque formule centré au-dessus de sa colonne */
.ez-comparatif thead th { text-align: center; vertical-align: bottom; }

/* Pastilles communes (onglets, mensuel / annuel, colonne affichée sur téléphone) */
.ez-vente-pastilles { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.2rem; }
.ez-vente-pastilles[hidden] { display: none; }
.ez-vente-pastille { font: inherit; font-weight: 600; font-size: .95rem; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: transparent; color: var(--ez-texte); cursor: pointer; }
.ez-vente-pastille[aria-selected="true"], .ez-vente-pastille[aria-pressed="true"] { background: var(--ez-accent); border-color: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-vente-pastille:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: 2px; }
.ez-vente-pastille em { font-style: normal; font-weight: 500; font-size: .8rem; margin-left: .4rem; opacity: .85; }

.ez-formules-pres .ez-formule-tete > :last-child { margin-bottom: 0; }
.ez-formules-pres .ez-formule-tete .ez-badge { align-self: flex-start; }
.ez-formules-pres .ez-formule-tete { display: flex; flex-direction: column; }
.ez-formule-prix .ez-prix-vente { margin-bottom: .6rem; }

/* A — Formule mise en avant (bandeau en haut, carte plus haute) */
.ez-pres-featured .ez-formule { position: relative; }
.ez-pres-featured .ez-formule-mise-en-avant { padding-top: calc(var(--ez-espace) * .9 + 1.6rem); box-shadow: 0 14px 34px var(--ez-ombre); }
@media (min-width: 48rem) {
  .ez-pres-featured { padding: 1.2rem 0; }
  .ez-pres-featured .ez-formule-mise-en-avant { margin: -1.2rem 0; padding-bottom: calc(var(--ez-espace) * .9 + 1.2rem); }
}
.ez-pres-featured .ez-formule-mise-en-avant .ez-formule-tete > .ez-badge { position: absolute; left: -1px; right: -1px; top: -1px; margin: 0; border-radius: var(--ez-rayon) var(--ez-rayon) 0 0; text-align: center; background: var(--ez-accent); color: var(--ez-sur-accent); padding: .35rem; }
.ez-pres-featured .ez-formule-action { order: 0; }

/* B — Formule mise en avant en couleurs inversées */
.ez-pres-dark .ez-formule-mise-en-avant { background: var(--ez-primaire); color: var(--ez-sur-primaire); border-color: var(--ez-primaire); }
.ez-pres-dark .ez-formule-mise-en-avant .ez-formule-nom,
.ez-pres-dark .ez-formule-mise-en-avant .ez-prix-montant { color: inherit; }
.ez-pres-dark .ez-formule-mise-en-avant .ez-prix-depuis,
.ez-pres-dark .ez-formule-mise-en-avant .ez-prix-complement,
.ez-pres-dark .ez-formule-mise-en-avant .ez-prix-jusqua,
.ez-pres-dark .ez-formule-mise-en-avant del { color: inherit; opacity: .8; }

/* C — Une formule par ligne */
.ez-pres-rows { grid-template-columns: 1fr; gap: .8rem; }
@media (min-width: 48rem) {
  .ez-pres-rows .ez-formule { display: grid; grid-template-columns: minmax(12rem, 1.2fr) minmax(10rem, auto) 2fr auto; gap: 1.2rem; align-items: center; }
  .ez-pres-rows .ez-points-forts { margin: 0; columns: 2; column-gap: 1.2rem; }
  .ez-pres-rows .ez-formule-prix .ez-prix-vente { margin: 0; }
  .ez-pres-rows .ez-prix-promo .ez-badge { display: table; margin: 0 0 .2rem; }
  .ez-pres-rows .ez-formule-action { margin: 0; padding: 0; }
}

/* D — Tableau avec les prix en haut */
.ez-comparatif-formules thead th { vertical-align: top; padding-top: 1rem; }
.ez-comparatif-formules thead .ez-formule-nom { display: block; font-size: 1.1rem; }
.ez-comparatif-formules thead .ez-badge { display: inline-block; margin: 0 0 .4rem; }
.ez-comparatif-formules thead .ez-prix-vente { margin: .3rem 0 .6rem; font-weight: 400; color: var(--ez-texte); }
.ez-comparatif-formules thead .ez-prix-montant { font-size: 1.4rem; }
.ez-comparatif-formules thead .ez-formule-action { margin: 0; padding: 0; }
.ez-comparatif-formules thead .ez-formule-action .ez-bouton { display: inline-block; font-size: .9rem; padding: .45rem .9rem; }
.ez-comparatif-formules .ez-formule-mise-en-avant { background: var(--ez-surface); box-shadow: inset 0 3px 0 var(--ez-accent); }
.ez-comparatif-formules .ez-formule-indisponible { opacity: .72; }
@media (min-width: 40.01rem) { .ez-formules-tableau .ez-vente-pastilles { display: none; } }
@media (max-width: 40rem) { .ez-formules-tableau .ez-col-cachee { display: none; } }

/* E — Onglets : une formule à la fois */
.ez-formules-onglets .ez-formule { display: grid; gap: 1.2rem; }
.ez-formules-onglets .ez-formule + .ez-formule { margin-top: 1rem; }
.ez-formules-onglets .ez-formule[hidden] { display: none; }
.ez-formule-principal { display: flex; flex-direction: column; gap: .4rem; }
.ez-formule-principal .ez-badge { align-self: flex-start; }
.ez-formule-principal > *, .ez-formule-points > :last-child { margin-bottom: 0; }
@media (min-width: 48rem) { .ez-formules-onglets .ez-formule { grid-template-columns: 1fr 1fr; align-items: start; } }

/* F — Bascule mensuel / annuel (sans script : les deux prix restent affichés) */
.ez-facturation-active .ez-prix-annuel, .ez-facturation-active.ez-voir-annuel .ez-prix-mensuel { display: none; }
.ez-facturation-active.ez-voir-annuel .ez-prix-annuel { display: block; }

/* G — Liste des offres : image avec le prix en pastille */
.ez-carte-offre-visuel { position: relative; }
.ez-carte-offre-visuel .ez-carte-image { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ez-carte-offre-visuel .ez-offre-pastille { position: absolute; left: .7rem; bottom: .7rem; background: var(--ez-fond); color: var(--ez-texte); border-radius: var(--ez-rayon); padding: .3rem .7rem; margin-right: .7rem; box-shadow: 0 2px 8px var(--ez-ombre); line-height: 1.3; }
.ez-offre-pastille .ez-prix-vente { margin: 0; }
.ez-offre-pastille .ez-prix-montant { font-size: 1rem; }
.ez-offre-pastille .ez-prix-depuis, .ez-offre-pastille .ez-prix-complement { font-size: .8rem; }
.ez-offre-pastille .ez-prix-jusqua { display: none; }
.ez-carte-offre .ez-carte-corps { display: flex; flex-direction: column; flex: 1; }
.ez-carte-offre-actions { margin: auto 0 0; padding-top: .6rem; display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.ez-lien-devis { color: var(--ez-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* H — Liste des offres en lignes, avec une vignette */
.ez-offres-lignes { display: grid; gap: .7rem; }
.ez-offre-ligne { position: relative; display: grid; grid-template-columns: auto 1fr auto auto; gap: 1rem; align-items: center; padding: .7rem 1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-offre-vignette { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: calc(var(--ez-rayon) * .75); }
.ez-offre-ligne-texte h3 { margin: 0 0 .2rem; font-size: 1.05rem; }
.ez-offre-ligne-texte p { margin: 0; color: var(--ez-texte-doux); font-size: .92rem; }
.ez-offre-ligne-prix { text-align: right; }
.ez-offre-ligne-prix .ez-prix-vente { margin: 0; }
.ez-offre-ligne-prix .ez-prix-montant { font-size: 1.15rem; }
.ez-offre-fleche { color: var(--ez-accent); font-size: 1.2rem; }
.ez-offre-ligne-lien h3 a::after { content: ""; position: absolute; inset: 0; }
.ez-offre-ligne-lien:hover { border-color: var(--ez-accent); }
.ez-offre-ligne-lien:focus-within { outline: 2px solid var(--ez-accent); outline-offset: 2px; }
@media (max-width: 40rem) {
  .ez-offre-ligne { grid-template-columns: auto 1fr; }
  .ez-offre-ligne-prix { grid-column: 2; text-align: left; }
  .ez-offre-fleche { display: none; }
  .ez-offre-vignette { width: 3.5rem; height: 3.5rem; }
}

/* I — Calculateur avec récapitulatif */
.ez-calcul { display: grid; gap: var(--ez-espace); padding: calc(var(--ez-espace) * .9); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-calcul[hidden] { display: none; }
@media (min-width: 48rem) { .ez-calcul { grid-template-columns: 3fr 2fr; align-items: start; } }
.ez-calcul-choix { display: grid; gap: 1rem; }
.ez-calcul-choix .ez-champ { margin: 0; }
.ez-calcul-quantite { display: flex; align-items: stretch; max-width: 14rem; }
.ez-calcul-quantite input { flex: 1; min-width: 0; text-align: center; font: inherit; padding: .6rem; border: 1px solid var(--ez-bord); border-left: 0; border-right: 0; background: var(--ez-fond); color: var(--ez-texte); }
.ez-calcul-pas { font: inherit; font-size: 1.2rem; width: 2.6rem; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); cursor: pointer; }
.ez-calcul-pas:first-child { border-radius: var(--ez-rayon) 0 0 var(--ez-rayon); }
.ez-calcul-pas:last-child { border-radius: 0 var(--ez-rayon) var(--ez-rayon) 0; }
.ez-calcul-pas:focus-visible, .ez-calcul-quantite input:focus, .ez-calcul select:focus { outline: 3px solid var(--ez-accent); outline-offset: 1px; }
.ez-calcul-curseur { width: 100%; margin-top: .6rem; accent-color: var(--ez-accent); }
.ez-calcul select { width: 100%; box-sizing: border-box; font: inherit; padding: .6rem .8rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); }
.ez-calcul-paliers { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.ez-calcul-paliers li { font-size: .85rem; padding: .3rem .7rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: var(--ez-fond); }
.ez-calcul-paliers li.ez-actif { border-color: var(--ez-accent); background: var(--ez-accent); color: var(--ez-sur-accent); font-weight: 600; }
.ez-calcul-options { border: 0; padding: 0; margin: 0; display: grid; gap: .45rem; }
.ez-calcul-options legend { font-weight: 600; padding: 0; margin-bottom: .4rem; }
.ez-calcul-option { display: flex; align-items: center; gap: .55rem; padding: .55rem .8rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); cursor: pointer; }
.ez-calcul-option input { width: 1.1rem; height: 1.1rem; accent-color: var(--ez-accent); flex: none; }
.ez-calcul-option-nom { flex: 1; }
.ez-calcul-option-prix { color: var(--ez-texte-doux); font-size: .9rem; white-space: nowrap; }
.ez-calcul-resume { background: var(--ez-fond); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: 1rem 1.1rem; }
@media (min-width: 48rem) { .ez-calcul-resume { position: sticky; top: calc(var(--ez-hauteur-entete, 0px) + 1rem); } }
.ez-calcul-resume > * { margin: 0 0 .7rem; }
.ez-calcul-resume > :last-child { margin-bottom: 0; }
.ez-calcul-titre { font-weight: 700; }
.ez-calcul-lignes { list-style: none; padding: 0; display: grid; gap: .35rem; font-size: .92rem; }
.ez-calcul-lignes li { display: flex; justify-content: space-between; gap: 1rem; }
.ez-calcul-lignes li span:last-child { white-space: nowrap; }
.ez-calcul-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .6rem; border-top: 1px solid var(--ez-bord); padding-top: .7rem; }
.ez-calcul-total > span:first-child { font-weight: 600; flex-basis: 100%; }
.ez-calcul-resume .ez-bouton { display: block; text-align: center; }
.js .ez-options-calcul { display: none; }
.ez-fond-surface .ez-calcul { background: var(--ez-fond); }
.ez-fond-surface .ez-calcul-resume, .ez-fond-surface .ez-calcul-option { background: var(--ez-surface); }

/* J — Bloc « pricing » : liste de prix à pointillés */
.ez-carte-prix { max-width: 46rem; }
.ez-carte-prix-groupe { margin: 1.6rem 0 .6rem; font-size: 1.15rem; }
.ez-carte-prix-groupe:first-child { margin-top: 0; }
.ez-carte-prix-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.ez-carte-prix-ligne { display: flex; align-items: baseline; gap: .5rem; margin: 0; font-weight: 600; }
.ez-pointilles { flex: 1; min-width: 1.5rem; border-bottom: 2px dotted var(--ez-bord); transform: translateY(-.25rem); }
.ez-carte-prix-montant { color: var(--ez-primaire); white-space: nowrap; }
.ez-carte-prix-texte { color: var(--ez-texte-doux); font-size: .92rem; margin-top: .15rem; }
.ez-carte-prix-texte > :last-child { margin-bottom: 0; }
.ez-carte-prix-lien { display: inline-block; margin-top: .2rem; font-size: .92rem; color: var(--ez-accent); }

@media print {
  .ez-calcul, .ez-vente-pastilles { display: none !important; }
  .js .ez-options-calcul { display: block; }
  .ez-facturation-active .ez-prix-annuel, .ez-formules-onglets .ez-formule[hidden] { display: block !important; }
}

/* ===== 2.15 — Horaires d'ouverture (bloc « hours », Contact, barre du haut, en-tête, pied de page) ===== */
.ez-horaires { --ez-h-ouvert: #15803d; --ez-h-bientot: #b45309; --ez-h-ferme: #b91c1c; }
.ez-horaires-etat { display: flex; align-items: center; gap: .55rem; margin: 0 0 .8rem; font-weight: 600; }
.ez-horaires-etat[hidden] { display: none; }
.ez-horaires-point { width: .6rem; height: .6rem; border-radius: 50%; flex: none; background: currentColor; box-shadow: 0 0 0 .25rem color-mix(in srgb, currentColor 18%, transparent); }
.ez-horaires-etat.ez-ouvert .ez-horaires-point { color: var(--ez-h-ouvert, #15803d); }
.ez-horaires-etat.ez-bientot .ez-horaires-point { color: var(--ez-h-bientot, #b45309); }
.ez-horaires-etat.ez-ferme .ez-horaires-point { color: var(--ez-h-ferme, #b91c1c); }

/* A — Tableau de la semaine */
.ez-horaires-carte { max-width: 30rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: 1.1rem 1.2rem; background: var(--ez-fond); }
.ez-horaires-tableau { width: 100%; border-collapse: collapse; }
.ez-horaires-tableau th, .ez-horaires-tableau td { padding: .45rem .5rem; border-bottom: 1px solid var(--ez-bord); text-align: left; vertical-align: top; }
.ez-horaires-tableau tr:last-child th, .ez-horaires-tableau tr:last-child td { border-bottom: 0; }
.ez-horaires-tableau th { font-weight: 600; white-space: nowrap; }
.ez-horaires-tableau td { text-align: right; }
.ez-horaires-tableau tr.ez-aujourdhui { background: var(--ez-surface); }
.ez-horaires-tableau tr.ez-aujourdhui th, .ez-horaires-tableau tr.ez-aujourdhui td { font-weight: 700; color: var(--ez-accent); }
.ez-horaires-ferme { color: var(--ez-texte-doux); }
.ez-horaires-note { display: block; font-size: .85rem; color: var(--ez-texte-doux); font-weight: 400; }
.ez-contact .ez-horaires-carte { border: 0; padding: 0; background: transparent; }

/* B — Pastille compacte, semaine au clic */
.ez-horaires-pastille { display: inline-block; position: relative; max-width: 100%; }
.ez-horaires-pastille summary { display: inline-flex; align-items: center; gap: .6rem; padding: .4rem .9rem; border: 1px solid var(--ez-bord); border-radius: 999px; cursor: pointer; list-style: none; background: var(--ez-fond); }
.ez-horaires-pastille summary::-webkit-details-marker { display: none; }
.ez-horaires-pastille summary .ez-horaires-etat { margin: 0; }
.ez-horaires-voir { color: var(--ez-texte-doux); font-size: .9rem; }
.ez-horaires-voir::after { content: " ▾"; }
.ez-horaires-pastille[open] .ez-horaires-voir::after { content: " ▴"; }
.ez-horaires-volet { box-sizing: border-box; margin-top: .5rem; min-width: min(17rem, 100%); max-width: 100%; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: .6rem .9rem; background: var(--ez-fond); box-shadow: 0 12px 30px -16px rgb(0 0 0 / .35); }

/* C — Pastilles des jours */
.ez-horaires-jours { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.ez-horaires-jours li { display: flex; flex-direction: column; gap: .2rem; align-items: center; text-align: center; padding: .7rem .3rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); font-size: .85rem; }
.ez-horaires-jours b { text-transform: capitalize; font-size: .95rem; }
.ez-horaires-jours abbr { text-decoration: none; }
.ez-horaires-jours .ez-horaires-jour-ferme { opacity: .55; }
.ez-horaires-jours li.ez-aujourdhui { background: var(--ez-accent); border-color: var(--ez-accent); color: var(--ez-sur-accent); opacity: 1; }
@media (max-width: 40rem) {
  .ez-horaires-jours { grid-template-columns: 1fr; gap: .35rem; }
  .ez-horaires-jours li { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: .2rem .8rem; padding: .5rem .8rem; text-align: right; }
  .ez-horaires-jours b { margin-right: auto; }
}

/* D — Horaires et fermetures exceptionnelles */
.ez-horaires-colonnes { display: grid; gap: var(--ez-espace); }
@media (min-width: 48rem) { .ez-horaires-colonnes { grid-template-columns: 1fr 1fr; align-items: start; } }
.ez-horaires-bandeau { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 1rem; padding: .8rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-alerte-fond); color: var(--ez-alerte-texte); }
.ez-horaires-bandeau[hidden] { display: none; }
.ez-horaires-dates h3 { margin: 0 0 .6rem; font-size: 1.05rem; }
.ez-horaires-liste-dates { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.ez-horaires-liste-dates li { display: flex; gap: .8rem; align-items: center; }
.ez-horaires-liste-dates li[hidden] { display: none; }
.ez-horaires-date { flex: none; min-width: 6rem; text-align: center; padding: .25rem .6rem; border-radius: calc(var(--ez-rayon) * .75); background: var(--ez-surface); font-weight: 700; font-size: .88rem; }

/* E — Plusieurs horaires côte à côte */
.ez-pres-multiple { display: grid; gap: var(--ez-espace); grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.ez-pres-multiple .ez-horaires-carte { max-width: none; }
.ez-pres-multiple h3 { margin: 0 0 .5rem; }

/* F — Ligne regroupée */
.ez-horaires-ligne { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin: 0; }
.ez-pres-line { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.2rem; }
.ez-pres-line .ez-horaires-etat { margin: 0; }

/* État dans la barre du haut, l'en-tête et le pied de page */
.ez-horaires-mini .ez-horaires-etat, .ez-pied-horaires .ez-horaires-etat { margin: 0; font-size: .9rem; }
.ez-bandeau-haut-horaires .ez-horaires-point, .ez-pied-horaires .ez-horaires-point { box-shadow: none; }
.ez-bandeau-haut-horaires .ez-horaires-etat.ez-ouvert .ez-horaires-point { color: #4ade80; }
.ez-bandeau-haut-horaires .ez-horaires-etat.ez-bientot .ez-horaires-point { color: #fbbf24; }
.ez-bandeau-haut-horaires .ez-horaires-etat.ez-ferme .ez-horaires-point { color: #f87171; }
.ez-entete-horaires { margin-right: auto; margin-left: 1rem; font-size: .88rem; }
.ez-entete-horaires .ez-horaires-etat.ez-ouvert .ez-horaires-point { color: #15803d; }
.ez-entete-horaires .ez-horaires-etat.ez-bientot .ez-horaires-point { color: #b45309; }
.ez-entete-horaires .ez-horaires-etat.ez-ferme .ez-horaires-point { color: #b91c1c; }
@media (max-width: 47.99rem) { .ez-entete-horaires { display: none; } }
.ez-pied-horaires .ez-horaires-ligne { display: block; font-size: .92rem; margin-top: .4rem; }
.ez-pied-horaires .ez-horaires-groupe { display: block; }
.ez-pied-horaires .ez-horaires-etat.ez-ouvert .ez-horaires-point { color: #22c55e; }
.ez-pied-horaires .ez-horaires-etat.ez-bientot .ez-horaires-point { color: #f59e0b; }
.ez-pied-horaires .ez-horaires-etat.ez-ferme .ez-horaires-point { color: #ef4444; }
@media print { .ez-horaires-etat, .ez-horaires-bandeau { display: none !important; } .ez-horaires-pastille .ez-horaires-volet { display: block; } }

/* ===== 2.16 — Diaporama (bloc « slideshow ») ===== */
/* Sans JavaScript : diapositives l'une sous l'autre. Le script ajoute .ez-diapo-pret et montre une diapositive à la fois. */
.ez-diapo { position: relative; --ez-diapo-duree: 6s; }
.ez-diapo-piste { display: grid; gap: var(--ez-espace); }
.ez-diapo-item { position: relative; margin: 0; min-width: 0; }
.ez-diapo-media { margin: 0; overflow: hidden; border-radius: var(--ez-rayon); background: var(--ez-surface); aspect-ratio: 16 / 9; }
.ez-diapo-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ez-diapo-texte { padding-top: .9rem; }
.ez-diapo-titre { margin: 0 0 .35rem; }
.ez-diapo-texte-court { margin: 0 0 .9rem; color: var(--ez-texte-doux); }
.ez-diapo-bouton { margin: 0; }
.ez-lien-fleche { font-weight: 600; color: var(--ez-accent); text-decoration: none; }
.ez-lien-fleche::after { content: " →"; }
.ez-lien-fleche:hover { text-decoration: underline; }
.ez-diapo-pret .ez-diapo-piste { gap: 0; }
.ez-diapo-pret:not(.ez-diapo.ez-pres-peek) .ez-diapo-item { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.ez-diapo-pret:not(.ez-diapo.ez-pres-peek) .ez-diapo-item.ez-diapo-actif { opacity: 1; visibility: visible; }
.ez-diapo:focus-visible, .ez-diapo-piste:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
/* Commandes communes */
.ez-diapo-commandes { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-top: .9rem; }
.ez-diapo-fleche, .ez-diapo-pause { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; padding: 0; border-radius: 50%; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); font-size: 1.25rem; line-height: 1; cursor: pointer; flex: none; }
.ez-diapo-fleche:hover, .ez-diapo-pause:hover { border-color: var(--ez-accent); color: var(--ez-accent); }
.ez-diapo-points { display: flex; gap: .5rem; align-items: center; }
.ez-diapo-point { width: .7rem; height: .7rem; padding: 0; border-radius: 999px; border: 2px solid var(--ez-accent); background: transparent; cursor: pointer; transition: width .3s; }
.ez-diapo-point[aria-current="true"] { background: var(--ez-accent); width: 1.6rem; }
.ez-diapo-compteur { font-variant-numeric: tabular-nums; font-size: .9rem; font-weight: 600; }
.ez-diapo-calque { position: absolute; top: 0; left: 0; width: 100%; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: space-between; padding: 0 .8rem; box-sizing: border-box; pointer-events: none; z-index: 2; }
.ez-diapo-calque > * { pointer-events: auto; }
.ez-diapo-calque .ez-diapo-fleche { background: rgb(255 255 255 / .92); border-color: transparent; color: #111; box-shadow: 0 .2rem .8rem rgb(0 0 0 / .2); }
.ez-diapo-calque .ez-diapo-compteur { position: absolute; top: .8rem; right: .8rem; padding: .25rem .65rem; border-radius: 999px; background: rgb(0 0 0 / .6); color: #fff; }

/* B — Dans la page (par défaut) : flèches sur la photo, compteur, texte sous la photo */
.ez-diapo.ez-pres-inline.ez-diapo-pret .ez-diapo-commandes { display: none; }

/* A — Bannière en fondu, E — plein cadre avec zoom lent : pleine largeur, texte sur la photo */
.ez-diapo-large { padding: 0; }
.ez-diapo-large > .ez-conteneur { padding-top: var(--ez-espace); padding-bottom: var(--ez-espace); }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-item { min-height: clamp(24rem, 72vh, 42rem); display: flex; align-items: flex-end; color: #fff; overflow: hidden; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-media { position: absolute; inset: 0; border-radius: 0; aspect-ratio: auto; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .72), rgb(0 0 0 / .25) 55%, rgb(0 0 0 / .1)); }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-texte { position: relative; z-index: 1; width: 100%; max-width: var(--ez-largeur); margin: 0 auto; padding: 2rem 1rem 4.5rem; box-sizing: border-box; }
@media (min-width: 48rem) { :is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-texte { padding: 3rem 1.5rem 5rem; } }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-titre { color: #fff; font-size: clamp(1.8rem, 4.5vw, 3.2rem); max-width: 20ch; text-shadow: 0 2px 12px rgb(0 0 0 / .3); }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-texte-court { color: rgb(255 255 255 / .92); font-size: 1.1rem; max-width: 42rem; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns).ez-diapo-pret .ez-diapo-commandes { position: absolute; left: 0; right: 0; bottom: 1.4rem; z-index: 3; margin: 0; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-point { border-color: #fff; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-point[aria-current="true"] { background: #fff; }
:is(.ez-diapo.ez-pres-fade, .ez-diapo.ez-pres-kenburns) .ez-diapo-pause { background: rgb(0 0 0 / .45); border-color: rgb(255 255 255 / .6); color: #fff; width: 2.3rem; height: 2.3rem; font-size: .9rem; }
.ez-diapo.ez-pres-fade .ez-diapo-fleche { display: none; }
@media (min-width: 48rem) { .ez-diapo.ez-pres-fade .ez-diapo-fleche { display: grid; background: rgb(0 0 0 / .35); border-color: rgb(255 255 255 / .5); color: #fff; } }
/* E — zoom lent et barres de temps */
.ez-diapo.ez-pres-kenburns .ez-diapo-actif .ez-diapo-media img { animation: ez-zoom-lent calc(var(--ez-diapo-duree) + 1.5s) ease-out forwards; }
@keyframes ez-zoom-lent { from { transform: scale(1); } to { transform: scale(1.1); } }
.ez-diapo.ez-pres-kenburns .ez-diapo-commandes { justify-content: flex-start; max-width: var(--ez-largeur); margin: 0 auto !important; padding: 0 1rem; box-sizing: border-box; }
@media (min-width: 48rem) { .ez-diapo.ez-pres-kenburns .ez-diapo-commandes { padding: 0 1.5rem; } }
.ez-diapo.ez-pres-kenburns .ez-diapo-fleche { display: none; }
.ez-diapo-barres { display: flex; gap: .4rem; flex: 1; max-width: 26rem; }
.ez-diapo-barre { flex: 1; height: 1.2rem; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.ez-diapo-barre span { display: block; width: 100%; height: 3px; border-radius: 3px; background: rgb(255 255 255 / .35); overflow: hidden; }
.ez-diapo-barre span::after { content: ""; display: block; height: 100%; width: 100%; background: #fff; transform-origin: left; transform: scaleX(0); }
.ez-diapo-barre.ez-diapo-passee span::after, .ez-diapo-barre[aria-current="true"] span::after { transform: scaleX(1); }
.ez-diapo-lecture .ez-diapo-barre[aria-current="true"] span::after { animation: ez-barre var(--ez-diapo-duree) linear forwards; }
@keyframes ez-barre { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* C — Photo et texte qui changent ensemble */
@media (min-width: 48rem) {
  .ez-diapo.ez-pres-split .ez-diapo-item { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2.5rem; align-items: center; }
  .ez-diapo.ez-pres-split .ez-diapo-media { aspect-ratio: 4 / 3; }
  .ez-diapo.ez-pres-split .ez-diapo-texte { padding: 0 0 4rem; }
  .ez-diapo.ez-pres-split.ez-diapo-pret .ez-diapo-commandes { position: absolute; bottom: 0; left: calc(53.5% + 1.25rem); margin: 0; justify-content: flex-start; }
}
.ez-diapo-num { margin: 0 0 .6rem; font-weight: 700; letter-spacing: .12em; color: var(--ez-accent); font-variant-numeric: tabular-nums; }
.ez-diapo.ez-pres-split .ez-diapo-titre { font-size: clamp(1.5rem, 3vw, 2.2rem); }
.ez-diapo.ez-pres-split .ez-diapo-points { display: none; }

/* D — Diapositive centrée, voisines visibles */
.ez-diapo.ez-pres-peek.ez-diapo-pret { overflow: hidden; padding: .2rem 0; }
.ez-diapo.ez-pres-peek.ez-diapo-pret .ez-diapo-piste { display: flex; gap: 1rem; transition: transform .5s ease; transform: translateX(var(--ez-diapo-decalage, 0)); }
.ez-diapo.ez-pres-peek.ez-diapo-pret .ez-diapo-item { flex: 0 0 78%; opacity: .45; transform: scale(.94); transition: opacity .5s, transform .5s; }
@media (min-width: 48rem) { .ez-diapo.ez-pres-peek.ez-diapo-pret .ez-diapo-item { flex-basis: 64%; } }
.ez-diapo.ez-pres-peek.ez-diapo-pret .ez-diapo-item.ez-diapo-actif { opacity: 1; transform: none; }
.ez-diapo.ez-pres-peek .ez-diapo-media { aspect-ratio: 16 / 10; }
.ez-diapo.ez-pres-peek .ez-diapo-texte { text-align: center; }

/* F — Photo en grand et chapitres */
.ez-diapo.ez-pres-chapters .ez-diapo-item { overflow: hidden; border-radius: var(--ez-rayon); }
.ez-diapo.ez-pres-chapters .ez-diapo-media { border-radius: 0; }
@media (min-width: 48rem) {
  .ez-diapo.ez-pres-chapters .ez-diapo-texte { position: absolute; left: 0; right: 0; bottom: 0; padding: 4rem 1.6rem 1.4rem; color: #fff; background: linear-gradient(to top, rgb(0 0 0 / .7), transparent); }
  .ez-diapo.ez-pres-chapters .ez-diapo-titre { color: #fff; }
  .ez-diapo.ez-pres-chapters .ez-diapo-texte-court { color: rgb(255 255 255 / .9); }
}
.ez-diapo.ez-pres-chapters .ez-diapo-commandes { display: none; }
.ez-diapo-chapitres { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .5rem; margin-top: .8rem; }
.ez-diapo-chapitre { display: flex; flex-direction: column; gap: .15rem; text-align: left; padding: .7rem .2rem .3rem; border: 0; border-top: 3px solid var(--ez-bord); background: none; color: var(--ez-texte-doux); font: inherit; cursor: pointer; }
.ez-diapo-chapitre b { font-size: .8rem; letter-spacing: .1em; color: inherit; }
.ez-diapo-chapitre span { font-weight: 600; line-height: 1.3; }
.ez-diapo-chapitre:hover { color: var(--ez-texte); }
.ez-diapo-chapitre[aria-current="true"] { border-top-color: var(--ez-accent); color: var(--ez-texte); }
.ez-diapo-chapitre[aria-current="true"] b { color: var(--ez-accent); }
@media (max-width: 47.99rem) { .ez-diapo-chapitres { display: flex; overflow-x: auto; } .ez-diapo-chapitre { flex: 0 0 9rem; } }
@media (prefers-reduced-motion: reduce) {
  .ez-diapo *, .ez-diapo *::after { transition: none !important; animation: none !important; }
}
@media print { .ez-diapo-commandes, .ez-diapo-calque, .ez-diapo-chapitres { display: none !important; } .ez-diapo-item { opacity: 1 !important; visibility: visible !important; grid-area: auto !important; } }

/* ===== 2.16 — Onglets (bloc « tabs ») ===== */
/* Sans JavaScript : tous les contenus l'un sous l'autre avec leur nom. */
.ez-onglet-panneau + .ez-onglet-panneau { margin-top: calc(var(--ez-espace) * 1.5); }
.ez-onglet-panneau:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 4px; border-radius: var(--ez-rayon); }
.ez-onglet-titre { margin: 0 0 .8rem; }
.ez-onglet-deplier { all: unset; font: inherit; color: inherit; }
.ez-onglet-contenu > * + * { margin-top: 1.2rem; }
.ez-onglet-media { margin: 0; border-radius: var(--ez-rayon); overflow: hidden; }
.ez-onglet-media img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.ez-onglet-sous-titre { margin: 0 0 .5rem; }
.ez-onglet-resume-panneau { margin: 0 0 .5rem; font-weight: 600; color: var(--ez-accent); }
.ez-onglet-liste { list-style: none; padding: 0; margin: .8rem 0; display: grid; gap: .45rem; }
.ez-onglet-liste li { position: relative; padding-left: 1.7rem; }
.ez-onglet-liste li::before { content: ""; position: absolute; left: .15rem; top: .35em; width: .45rem; height: .8rem; border-right: 2.5px solid var(--ez-accent); border-bottom: 2.5px solid var(--ez-accent); transform: rotate(40deg); }
@media (min-width: 48rem) {
  .ez-onglet-avec-image .ez-onglet-contenu { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
  .ez-onglet-avec-image .ez-onglet-contenu > * + * { margin-top: 0; }
}
/* Avec le script */
.ez-onglets-pret:not(.ez-onglets-accordeon) .ez-onglet-titre { display: none; }
.ez-onglets-pret .ez-onglet-panneau + .ez-onglet-panneau { margin-top: 0; }
.ez-onglets-pret .ez-onglet-panneau[hidden] { display: none; }
.ez-onglets-barre[hidden] { display: none; }
.ez-onglet { font: inherit; cursor: pointer; color: var(--ez-texte-doux); background: none; border: 0; text-align: left; }
.ez-onglet:hover { color: var(--ez-texte); }
.ez-onglet[aria-selected="true"] { color: var(--ez-texte); }
.ez-onglet:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-onglet-nom { font-weight: 600; }
.ez-onglet-resume { display: block; font-size: .88rem; color: var(--ez-texte-doux); margin-top: .2rem; font-weight: 400; }
.ez-onglets-barre { margin-bottom: 1.6rem; }
/* A — Soulignés */
.ez-onglets.ez-pres-underline .ez-onglets-barre { display: flex; gap: 1.6rem; border-bottom: 1px solid var(--ez-bord); overflow-x: auto; scrollbar-width: none; }
.ez-onglets.ez-pres-underline .ez-onglet { padding: .8rem .1rem; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.ez-onglets.ez-pres-underline .ez-onglet[aria-selected="true"] { border-bottom-color: var(--ez-accent); color: var(--ez-accent); }
/* B — Pastilles */
.ez-onglets.ez-pres-pills .ez-onglets-barre { display: flex; flex-wrap: wrap; gap: .5rem; }
.ez-onglets.ez-pres-pills .ez-onglet { padding: .55rem 1.15rem; border-radius: 999px; background: var(--ez-surface); border: 1px solid var(--ez-bord); }
.ez-onglets.ez-pres-pills .ez-onglet[aria-selected="true"] { background: var(--ez-accent); border-color: var(--ez-accent); color: var(--ez-sur-accent); }
/* C — À gauche ; sections dépliables sur téléphone */
@media (min-width: 48rem) {
  .ez-onglets.ez-pres-vertical.ez-onglets-pret { display: grid; grid-template-columns: minmax(11rem, 15rem) 1fr; gap: 2.5rem; align-items: start; }
  .ez-onglets.ez-pres-vertical .ez-onglets-barre { display: flex; flex-direction: column; gap: .2rem; margin: 0; border-left: 1px solid var(--ez-bord); }
  .ez-onglets.ez-pres-vertical .ez-onglet { padding: .7rem 1rem; border-left: 3px solid transparent; margin-left: -2px; }
  .ez-onglets.ez-pres-vertical .ez-onglet[aria-selected="true"] { border-left-color: var(--ez-accent); color: var(--ez-accent); background: color-mix(in srgb, var(--ez-accent) 7%, transparent); }
}
.ez-onglets-accordeon .ez-onglet-panneau { border-bottom: 1px solid var(--ez-bord); }
.ez-onglets-accordeon .ez-onglet-panneau:first-child { border-top: 1px solid var(--ez-bord); }
.ez-onglets-accordeon .ez-onglet-titre { margin: 0; font-size: 1.05rem; }
.ez-onglets-accordeon .ez-onglet-deplier { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; box-sizing: border-box; padding: 1rem .2rem; cursor: pointer; font-weight: 600; }
.ez-onglets-accordeon .ez-onglet-deplier::after { content: ""; width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; flex: none; }
.ez-onglets-accordeon .ez-onglet-deplier[aria-expanded="true"]::after { transform: rotate(-135deg); }
.ez-onglets-accordeon .ez-onglet-deplier:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-onglets-accordeon .ez-onglet-contenu { padding: 0 .2rem 1.2rem; }
.ez-onglets-accordeon .ez-onglet-contenu[hidden] { display: none; }
/* D — Cartes avec icône */
.ez-onglets.ez-pres-cards .ez-onglets-barre { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .8rem; }
.ez-onglets.ez-pres-cards .ez-onglet { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem; border-radius: var(--ez-rayon); border: 1px solid var(--ez-bord); background: var(--ez-fond); transition: border-color .2s, box-shadow .2s; }
.ez-onglets.ez-pres-cards .ez-onglet[aria-selected="true"] { border-color: var(--ez-accent); box-shadow: 0 0 0 1px var(--ez-accent), 0 10px 24px -14px rgb(0 0 0 / .35); }
.ez-onglet-icone { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: calc(var(--ez-rayon) * .8); background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); }
.ez-onglet-icone svg { width: 1.3rem; height: 1.3rem; }
.ez-onglets.ez-pres-cards .ez-onglet-resume { margin: 0; }
@media (max-width: 47.99rem) { .ez-onglets.ez-pres-cards .ez-onglets-barre { display: flex; overflow-x: auto; } .ez-onglets.ez-pres-cards .ez-onglet { flex: 0 0 13rem; } }
/* E — Liste à gauche, grande image à droite */
@media (min-width: 48rem) {
  .ez-onglets.ez-pres-image.ez-onglets-pret { display: grid; grid-template-columns: minmax(14rem, 1fr) 1.4fr; gap: 2.5rem; align-items: start; }
  .ez-onglets.ez-pres-image .ez-onglets-barre { margin: 0; }
}
.ez-onglets.ez-pres-image .ez-onglets-barre { display: flex; flex-direction: column; gap: .5rem; }
.ez-onglets.ez-pres-image .ez-onglet { padding: 1rem 1.1rem; border-radius: var(--ez-rayon); border: 1px solid transparent; }
.ez-onglets.ez-pres-image .ez-onglet[aria-selected="true"] { background: var(--ez-surface); border-color: var(--ez-bord); }
.ez-onglets.ez-pres-image .ez-onglet[aria-selected="true"] .ez-onglet-nom { color: var(--ez-accent); }
.ez-onglets.ez-pres-image .ez-onglet-avec-image .ez-onglet-contenu { display: block; }
.ez-onglets.ez-pres-image .ez-onglet-avec-image .ez-onglet-contenu > * + * { margin-top: 1.2rem; }
.ez-onglets.ez-pres-image .ez-onglet-media img { aspect-ratio: 16 / 11; }
@media (max-width: 47.99rem) { .ez-onglets.ez-pres-image .ez-onglets-barre { flex-direction: row; overflow-x: auto; } .ez-onglets.ez-pres-image .ez-onglet { flex: 0 0 auto; max-width: 15rem; } .ez-onglets.ez-pres-image .ez-onglet-resume { display: none; } }
/* F — Étapes numérotées */
.ez-onglets.ez-pres-steps .ez-onglets-barre { display: flex; justify-content: space-between; gap: .5rem; position: relative; overflow-x: auto; }
.ez-onglets.ez-pres-steps .ez-onglets-barre::before { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; top: 1.25rem; height: 2px; background: var(--ez-bord); }
.ez-onglets.ez-pres-steps .ez-onglet { position: relative; display: flex; flex-direction: column; align-items: center; gap: .45rem; flex: 1; min-width: 5.5rem; text-align: center; padding: 0 .2rem; }
.ez-onglet-num { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 2px solid var(--ez-bord); background: var(--ez-fond); font-weight: 700; color: var(--ez-texte-doux); }
.ez-onglets.ez-pres-steps .ez-onglet.ez-onglet-passe .ez-onglet-num { border-color: var(--ez-accent); color: var(--ez-accent); }
.ez-onglets.ez-pres-steps .ez-onglet[aria-selected="true"] .ez-onglet-num { background: var(--ez-accent); border-color: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-onglets.ez-pres-steps .ez-onglet-nom { font-size: .92rem; }
@media (max-width: 47.99rem) { .ez-onglets.ez-pres-steps .ez-onglet { min-width: 4.2rem; } .ez-onglets.ez-pres-steps .ez-onglet-nom { font-size: .8rem; overflow-wrap: anywhere; } }
.ez-onglets-suite { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--ez-bord); }
@media print { .ez-onglets-barre, .ez-onglets-suite { display: none !important; } .ez-onglet-panneau[hidden], .ez-onglet-contenu[hidden] { display: block !important; } .ez-onglet-titre { display: block !important; } }

/* ===== 2.16 — Mosaïque « bento » (bloc « bento ») ===== */
.ez-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(11.5rem, auto); grid-auto-flow: dense; gap: 1rem; }
.ez-bento-wide { grid-column: span 2; }
.ez-bento-tall { grid-row: span 2; }
.ez-bento-large { grid-column: span 2; grid-row: span 2; }
.ez-bento.ez-pres-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 47.99rem) {
  .ez-bento, .ez-bento.ez-pres-features { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(9.5rem, auto); gap: .75rem; }
  .ez-bento.ez-pres-features .ez-bento-case { grid-column: span 2; }
  .ez-bento-tall { grid-column: span 2; grid-row: span 1; min-height: 14rem; }
  .ez-bento-case { padding: 1rem; }
  .ez-bento-titre { font-size: 1rem; }
  .ez-bento-chiffre { font-size: 1.9rem; }
  .ez-bento-note .ez-bento-chiffre { font-size: 1.6rem; }
  .ez-bento-etoiles { font-size: .9rem; letter-spacing: 0; }
  .ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-media { margin: 1rem -1rem -1rem 1rem; }
}
.ez-bento-case { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: calc(var(--ez-rayon) * 1.4); padding: 1.3rem; background: var(--ez-surface); border: 1px solid var(--ez-bord); transition: transform .2s, box-shadow .2s; min-width: 0; }
.ez-bento-contenu { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; flex: 1; }
.ez-bento-bas { margin-top: auto; width: 100%; }
.ez-bento-titre { margin: 0 0 .3rem; font-size: 1.15rem; }
.ez-bento-large .ez-bento-titre { font-size: clamp(1.3rem, 2.4vw, 1.75rem); }
.ez-bento-texte { margin: 0; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-bento-action { margin: .8rem 0 0; }
.ez-bento-badge { display: inline-block; width: max-content; padding: .25rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-bento-icone { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: calc(var(--ez-rayon) * .8); background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); }
.ez-bento-icone svg { width: 1.4rem; height: 1.4rem; }
.ez-bento-chiffre { margin: 0; font-family: var(--ez-police-titres); font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 800; line-height: 1; color: var(--ez-accent); }
.ez-bento-note { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; }
.ez-bento-note .ez-bento-chiffre { font-size: 2.2rem; }
.ez-bento-etoiles { color: #f5a524; letter-spacing: .1em; font-size: 1.1rem; }
.ez-bento-media { position: absolute; inset: 0; }
.ez-bento-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ez-bento-avec-image { color: #fff; border-color: transparent; background: #1f2937; }
.ez-bento-avec-image .ez-bento-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .72), rgb(0 0 0 / .05) 60%); }
.ez-bento-avec-image :is(.ez-bento-titre, .ez-bento-chiffre) { color: #fff; }
.ez-bento-avec-image .ez-bento-texte { color: rgb(255 255 255 / .88); }
.ez-bento-fond-primary { background: var(--ez-primaire); color: var(--ez-sur-primaire); border-color: transparent; }
.ez-bento-fond-accent { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: transparent; }
:is(.ez-bento-fond-primary, .ez-bento-fond-accent) :is(.ez-bento-titre, .ez-bento-chiffre, .ez-bento-texte) { color: inherit; }
:is(.ez-bento-fond-primary, .ez-bento-fond-accent) .ez-bento-icone { background: rgb(255 255 255 / .18); color: inherit; }
:is(.ez-bento-fond-primary, .ez-bento-fond-accent, .ez-bento-avec-image) .ez-bento-badge { background: rgb(255 255 255 / .92); color: #111; }
.ez-bento-fond-surface { background: var(--ez-surface); }
.ez-bento-cible { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.ez-bento-cible:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-bento-lien:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -18px rgb(0 0 0 / .4); }
/* A — Claire */
.ez-bento.ez-pres-light .ez-bento-case:not(.ez-bento-avec-image, .ez-bento-fond-primary, .ez-bento-fond-accent, .ez-bento-fond-surface) { background: var(--ez-fond); }
/* B — Photos : texte posé sur la photo */
.ez-bento.ez-pres-photos .ez-bento-case:not(.ez-bento-avec-image, .ez-bento-fond-primary, .ez-bento-fond-accent) { background: var(--ez-surface); }
.ez-bento.ez-pres-photos .ez-bento-avec-image .ez-bento-titre { font-size: 1.3rem; }
/* C — Chiffres, avis et icônes : une case en dégradé */
.ez-bento.ez-pres-mixed .ez-bento-fond-primary { background: var(--ez-degrade, linear-gradient(135deg, var(--ez-primaire), var(--ez-accent))); }
.ez-bento.ez-pres-mixed .ez-bento-case:not(.ez-bento-avec-image, .ez-bento-fond-primary, .ez-bento-fond-accent) { background: var(--ez-fond); }
/* D — Fond foncé */
.ez-bento-sombre { background: #0f172a; color: #e2e8f0; border-radius: calc(var(--ez-rayon) * 1.6); padding: clamp(1.4rem, 4vw, 2.8rem); }
.ez-bento-sombre > h2 { color: #fff; }
.ez-bento-sombre > .ez-texte { color: #cbd5e1; margin-bottom: 1.4rem; }
.ez-bento.ez-pres-dark .ez-bento-case { background: rgb(255 255 255 / .05); border-color: rgb(255 255 255 / .1); color: #e2e8f0; }
.ez-bento.ez-pres-dark .ez-bento-titre { color: #fff; }
.ez-bento.ez-pres-dark .ez-bento-texte { color: #94a3b8; }
.ez-bento.ez-pres-dark .ez-bento-chiffre { color: #fff; }
.ez-bento.ez-pres-dark .ez-bento-icone { background: rgb(255 255 255 / .08); color: #fff; }
.ez-bento.ez-pres-dark .ez-bento-fond-primary, .ez-bento.ez-pres-dark .ez-bento-fond-accent { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-bento.ez-pres-dark .ez-bento-fond-primary .ez-bento-texte, .ez-bento.ez-pres-dark .ez-bento-fond-accent .ez-bento-texte { color: inherit; opacity: .9; }
/* E — Fonctionnalités avec captures (3 colonnes, capture sous le texte) */
.ez-bento.ez-pres-features .ez-bento-case { background: var(--ez-fond); }
.ez-bento.ez-pres-features .ez-bento-avec-image { color: var(--ez-texte); background: var(--ez-surface); border-color: var(--ez-bord); }
.ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-media { position: relative; inset: auto; order: 2; margin: 1.2rem -1.3rem -1.3rem 1.3rem; border-radius: var(--ez-rayon) 0 0 0; overflow: hidden; border: 1px solid var(--ez-bord); border-width: 1px 0 0 1px; min-height: 9rem; max-height: 15rem; flex: 1; }
.ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-media::after { display: none; }
.ez-bento.ez-pres-features .ez-bento-avec-image :is(.ez-bento-titre) { color: var(--ez-texte); }
.ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-texte { color: var(--ez-texte-doux); }
.ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-contenu { flex: none; }
.ez-bento.ez-pres-features .ez-bento-avec-image .ez-bento-bas { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .ez-bento-case { transition: none; } .ez-bento-lien:hover { transform: none; } }

/* ===== 2.16 — Bouton flottant (site.json → floating_button) ===== */
.ez-flottant { position: fixed; right: 1.2rem; bottom: 5rem; z-index: 61; display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; font-size: .95rem; }
body.ez-avec-flottant .ez-pied { padding-bottom: 5.5rem; }
.ez-flottant a { text-decoration: none; }
.ez-flottant svg { width: 1.35rem; height: 1.35rem; flex: none; }
.ez-flottant-rond { position: relative; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); box-shadow: 0 .4rem 1.2rem rgb(0 0 0 / .25); transition: transform .2s; }
.ez-flottant-rond svg { width: 1.55rem; height: 1.55rem; }
.ez-flottant-rond:hover { transform: scale(1.06); }
.ez-flottant a:focus-visible, .ez-flottant button:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-flottant-whatsapp .ez-flottant-rond { background: #25d366; color: #fff; }
.ez-flottant-bulle { position: absolute; right: calc(100% + .8rem); top: 50%; transform: translateY(-50%); white-space: nowrap; padding: .5rem .85rem; border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); box-shadow: 0 .4rem 1.4rem rgb(0 0 0 / .18); font-size: .9rem; font-weight: 600; pointer-events: none; }
.ez-flottant-survol { opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; }
.ez-flottant:hover .ez-flottant-survol, .ez-flottant:focus-within .ez-flottant-survol { opacity: 1; visibility: visible; }
@media (hover: none) { .ez-flottant-survol { display: none; } }
/* A — Rond : deux petites ondes à l'arrivée */
.ez-flottant-ondes .ez-flottant-rond::before, .ez-flottant-ondes .ez-flottant-rond::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid currentColor; opacity: 0; animation: ez-onde 1.6s ease-out 1s 2; pointer-events: none; }
.ez-flottant-whatsapp.ez-flottant-ondes .ez-flottant-rond::before, .ez-flottant-whatsapp.ez-flottant-ondes .ez-flottant-rond::after { border-color: #25d366; }
.ez-flottant-ondes .ez-flottant-rond::after { animation-delay: 1.5s; }
@keyframes ez-onde { from { opacity: .7; transform: scale(1); } to { opacity: 0; transform: scale(1.7); } }
/* B — Avec texte */
.ez-flottant-pastille { display: inline-flex; align-items: center; gap: .65rem; padding: .7rem 1.2rem .7rem 1rem; border-radius: 999px; background: var(--ez-accent); color: var(--ez-sur-accent); box-shadow: 0 .4rem 1.2rem rgb(0 0 0 / .25); font-weight: 700; }
.ez-flottant-texte { display: flex; flex-direction: column; line-height: 1.2; }
.ez-flottant-texte small { font-weight: 500; font-size: .8rem; opacity: .9; }
.ez-flottant-pastille:hover { filter: brightness(1.08); }
/* C — Bouton « + » qui se déplie */
.ez-flottant-choix-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-end; gap: .55rem; }
.ez-flottant-choix { display: flex; align-items: center; gap: .6rem; color: var(--ez-texte); }
.ez-flottant-nom { padding: .3rem .7rem; border-radius: calc(var(--ez-rayon) * .7); background: var(--ez-fond); box-shadow: 0 .2rem .8rem rgb(0 0 0 / .15); font-size: .85rem; font-weight: 600; }
.ez-flottant-choix .ez-flottant-rond, .ez-flottant-principal { width: 2.9rem; height: 2.9rem; }
.ez-flottant-choix .ez-flottant-rond { background: var(--ez-fond); color: var(--ez-accent); border: 1px solid var(--ez-bord); box-shadow: 0 .25rem .8rem rgb(0 0 0 / .15); }
.ez-flottant-choix .ez-flottant-rond svg { width: 1.25rem; height: 1.25rem; }
.ez-flottant-principal { display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); box-shadow: 0 .4rem 1.2rem rgb(0 0 0 / .25); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.ez-flottant-principal[hidden] { display: none; }
.ez-flottant-principal span { transition: transform .2s; }
.ez-flottant-principal[aria-expanded="true"] span { transform: rotate(45deg); }
.ez-flottant-dial.ez-flottant-replie .ez-flottant-choix-liste { display: none; }
.ez-flottant-choix-liste li { animation: ez-monte .2s ease-out both; }
@keyframes ez-monte { from { opacity: 0; transform: translateY(.5rem); } to { opacity: 1; transform: none; } }
/* D — Barre d'actions (téléphone), pastilles sur le côté (ordinateur) */
.ez-flottant-bar { gap: .5rem; }
.ez-flottant-action { position: relative; display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%; background: var(--ez-fond); color: var(--ez-accent); border: 1px solid var(--ez-bord); box-shadow: 0 .25rem .8rem rgb(0 0 0 / .15); }
.ez-flottant-action span { position: absolute; right: calc(100% + .6rem); white-space: nowrap; padding: .3rem .7rem; border-radius: calc(var(--ez-rayon) * .7); background: var(--ez-fond); color: var(--ez-texte); box-shadow: 0 .2rem .8rem rgb(0 0 0 / .15); font-size: .85rem; font-weight: 600; opacity: 0; visibility: hidden; transition: opacity .2s; }
.ez-flottant-action:hover span, .ez-flottant-action:focus-visible span { opacity: 1; visibility: visible; }
.ez-flottant-action-principale { background: var(--ez-accent); color: var(--ez-sur-accent); border-color: var(--ez-accent); }
@media (min-width: 48rem) { .ez-flottant.ez-flottant-bar { top: 50%; bottom: auto; transform: translateY(-50%); right: 1rem; } }
@media (max-width: 47.99rem) {
  .ez-flottant.ez-flottant-bar { left: 0; right: 0; bottom: 0; flex-direction: row; align-items: stretch; gap: 0; background: var(--ez-fond); border-top: 1px solid var(--ez-bord); box-shadow: 0 -.3rem 1rem rgb(0 0 0 / .08); padding: .35rem .35rem calc(.35rem + env(safe-area-inset-bottom)); }
  .ez-flottant-bar .ez-flottant-action { flex: 1; width: auto; height: auto; border-radius: var(--ez-rayon); border: 0; box-shadow: none; background: none; gap: .2rem; padding: .35rem .2rem; font-size: .75rem; }
  .ez-flottant-bar .ez-flottant-action span { position: static; opacity: 1; visibility: visible; padding: 0; background: none; box-shadow: none; font-size: .75rem; color: inherit; }
  .ez-flottant-bar .ez-flottant-action-principale { background: var(--ez-accent); color: var(--ez-sur-accent); }
  body.ez-avec-flottant:has(.ez-flottant-bar:not(.ez-flottant-desktop)) .ez-haut { bottom: 5rem; }
}
/* E — Languette sur le bord droit */
.ez-flottant.ez-flottant-tab { right: 0; bottom: auto; top: 50%; transform: translateY(-50%); }
.ez-flottant-languette { display: block; writing-mode: vertical-rl; transform: rotate(180deg); padding: 1.1rem .65rem; border-radius: 0 var(--ez-rayon) var(--ez-rayon) 0; background: var(--ez-accent); color: var(--ez-sur-accent); font-weight: 700; letter-spacing: .03em; box-shadow: 0 .3rem 1rem rgb(0 0 0 / .2); }
.ez-flottant-languette:hover { padding-left: .85rem; }
/* F — Suit les horaires : point de couleur sur le bouton, texte affiché 4 s puis au survol */
.ez-flottant-hours .ez-flottant-rond::after { content: ""; position: absolute; top: .1rem; right: .1rem; width: .8rem; height: .8rem; border-radius: 50%; border: 2px solid #fff; background: #15803d; }
.ez-flottant-hours:has(.ez-bientot) .ez-flottant-rond::after { background: #b45309; }
.ez-flottant-hours:has(.ez-ferme) .ez-flottant-rond::after { background: #b91c1c; }
.ez-flottant-hours:not(:has(.ez-ouvert, .ez-bientot, .ez-ferme)) .ez-flottant-rond::after { display: none; }
.ez-flottant-hours .ez-flottant-bulle { display: flex; flex-direction: column; gap: .15rem; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.ez-flottant-hours .ez-horaires-etat { margin: 0; font-size: .85rem; }
.ez-flottant-hours.ez-flottant-montre .ez-flottant-bulle, .ez-flottant-hours:hover .ez-flottant-bulle, .ez-flottant-hours:focus-within .ez-flottant-bulle { opacity: 1; visibility: visible; }
.ez-flottant-hours .ez-horaires-etat.ez-ouvert .ez-horaires-point { color: #15803d; }
.ez-flottant-hours .ez-horaires-etat.ez-bientot .ez-horaires-point { color: #b45309; }
.ez-flottant-hours .ez-horaires-etat.ez-ferme .ez-horaires-point { color: #b91c1c; }
.ez-flottant-hours a.ez-flottant-si-ferme, .ez-flottant-hours span.ez-flottant-si-ferme { display: none; }
.ez-flottant-repli:has(.ez-ferme) a.ez-flottant-si-ouvert, .ez-flottant-repli:has(.ez-ferme) span.ez-flottant-si-ouvert { display: none; }
.ez-flottant-repli:has(.ez-ferme) a.ez-flottant-si-ferme { display: grid; }
.ez-flottant-repli:has(.ez-ferme) span.ez-flottant-si-ferme { display: inline; }
/* Téléphone ou ordinateur seulement */
@media (min-width: 48rem) { .ez-flottant-mobile { display: none; } }
@media (max-width: 47.99rem) { .ez-flottant-desktop { display: none; } .ez-flottant { right: 1rem; bottom: 4.8rem; } .ez-flottant.ez-flottant-tab { right: 0; bottom: auto; } }
@media (prefers-reduced-motion: reduce) { .ez-flottant *, .ez-flottant *::before, .ez-flottant *::after { animation: none !important; transition: none !important; } }
@media print { .ez-flottant { display: none !important; } }

/* ===== 2.16 — Fenêtre d'annonce (module « Annonce temporaire », popup : true) ===== */
.ez-fenetre-boite { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 1rem; pointer-events: none; }
.ez-fenetre-voile { position: absolute; inset: 0; background: rgb(15 23 42 / .55); opacity: 0; transition: opacity .3s; pointer-events: auto; }
.ez-fenetre { position: relative; box-sizing: border-box; width: 100%; max-width: 30rem; max-height: calc(100vh - 2rem); overflow: auto; border-radius: calc(var(--ez-rayon) * 1.4); background: var(--ez-fond); color: var(--ez-texte); box-shadow: 0 24px 60px -20px rgb(0 0 0 / .5); pointer-events: auto; opacity: 0; transform: translateY(1rem) scale(.98); transition: opacity .3s, transform .3s; }
.ez-fenetre-ouverte .ez-fenetre { opacity: 1; transform: none; }
.ez-fenetre-ouverte .ez-fenetre-voile { opacity: 1; }
.ez-fenetre-fermer { position: absolute; top: .6rem; right: .6rem; z-index: 2; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; padding: 0; border: 0; border-radius: 50%; background: rgb(255 255 255 / .92); color: #111; font-size: 1.4rem; line-height: 1; cursor: pointer; box-shadow: 0 .15rem .5rem rgb(0 0 0 / .15); }
.ez-fenetre-fermer:focus-visible, .ez-fenetre a:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-fenetre-media img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 9; }
.ez-fenetre-corps { padding: 1.5rem; }
.ez-fenetre-badge { display: inline-block; margin: 0 0 .6rem; padding: .25rem .7rem; border-radius: 999px; background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.ez-fenetre-titre { margin: 0 0 .5rem; font-size: 1.4rem; line-height: 1.25; }
.ez-fenetre-message { margin: 0 0 1rem; color: var(--ez-texte-doux); }
.ez-fenetre-action { margin: 0; }
.ez-fenetre-bouton-large { display: block; width: 100%; box-sizing: border-box; text-align: center; }
/* A — Au centre */
.ez-fenetre.ez-pres-center { text-align: center; }
/* B — Dans un coin : en bas à droite, à gauche quand la page a un bouton flottant */
.ez-fenetre-boite-corner { align-items: flex-end; justify-content: flex-end; padding: 1.2rem 1.2rem 5rem; }
body.ez-avec-flottant .ez-fenetre-boite-corner { justify-content: flex-start; padding-bottom: 1.2rem; }
.ez-fenetre.ez-pres-corner { max-width: 21rem; }
.ez-fenetre.ez-pres-corner .ez-fenetre-corps { padding: 1.2rem; }
.ez-fenetre.ez-pres-corner .ez-fenetre-titre { font-size: 1.15rem; padding-right: 2rem; }
.ez-fenetre.ez-pres-corner .ez-fenetre-media + .ez-fenetre-corps .ez-fenetre-titre { padding-right: 0; }
.ez-fenetre.ez-pres-corner .ez-fenetre-message { font-size: .95rem; }
/* C — Barre en bas de l'écran */
.ez-fenetre-boite-bar { align-items: flex-end; padding: 0; }
.ez-fenetre.ez-pres-bar { max-width: none; border-radius: 0; box-shadow: 0 -.4rem 1.5rem rgb(0 0 0 / .15); background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-fenetre.ez-pres-bar .ez-fenetre-corps { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; max-width: var(--ez-largeur); margin: 0 auto; padding: 1rem 4rem 1rem 1rem; }
.ez-fenetre.ez-pres-bar :is(.ez-fenetre-badge, .ez-fenetre-titre, .ez-fenetre-message, .ez-fenetre-action) { margin: 0; }
.ez-fenetre.ez-pres-bar .ez-fenetre-badge { background: rgb(255 255 255 / .18); color: inherit; }
.ez-fenetre.ez-pres-bar .ez-fenetre-titre { font-size: 1.05rem; color: inherit; }
.ez-fenetre.ez-pres-bar .ez-fenetre-message { color: inherit; opacity: .92; flex: 1 1 16rem; }
.ez-fenetre.ez-pres-bar .ez-bouton { background: var(--ez-sur-primaire); color: var(--ez-primaire); }
.ez-fenetre.ez-pres-bar .ez-fenetre-fermer { top: 50%; transform: translateY(-50%); background: rgb(255 255 255 / .16); color: inherit; box-shadow: none; }
/* D — Photo et texte côte à côte */
@media (min-width: 48rem) {
  .ez-fenetre.ez-pres-split { max-width: 48rem; display: grid; grid-template-columns: 1fr 1fr; }
  .ez-fenetre.ez-pres-split .ez-fenetre-media img { aspect-ratio: auto; min-height: 100%; }
  .ez-fenetre.ez-pres-split .ez-fenetre-corps { display: flex; flex-direction: column; justify-content: center; padding: 2.2rem 2rem; }
  .ez-fenetre.ez-pres-split .ez-fenetre-titre { font-size: 1.7rem; }
  .ez-fenetre.ez-pres-split .ez-fenetre-badge { align-self: flex-start; }
}
/* E — Compte à rebours */
.ez-fenetre.ez-pres-countdown { text-align: center; max-width: 32rem; }
.ez-fenetre.ez-pres-countdown .ez-fenetre-corps { padding: 2rem 1.6rem 1.6rem; }
.ez-fenetre-compte { display: flex; justify-content: center; gap: .6rem; margin: 0 0 1.2rem; }
.ez-fenetre-compte:empty { display: none; }
.ez-fenetre-unite { display: flex; flex-direction: column; align-items: center; min-width: 4.4rem; padding: .7rem .4rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-fenetre-unite b { font-size: 1.9rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ez-accent); }
.ez-fenetre-unite small { margin-top: .3rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ez-texte-doux); }
/* Téléphone : jamais en plein écran, fenêtre posée en bas */
@media (max-width: 47.99rem) {
  .ez-fenetre-boite:not(.ez-fenetre-boite-bar) { align-items: flex-end; justify-content: center; padding: 0; }
  .ez-fenetre-boite:not(.ez-fenetre-boite-bar) .ez-fenetre { max-width: none; max-height: 80vh; border-radius: calc(var(--ez-rayon) * 1.4) calc(var(--ez-rayon) * 1.4) 0 0; padding-bottom: env(safe-area-inset-bottom); }
  .ez-fenetre-boite-corner .ez-fenetre { margin: 0 .8rem .8rem; border-radius: calc(var(--ez-rayon) * 1.4) !important; }
  .ez-fenetre-boite-corner .ez-fenetre-media { display: none; }
  .ez-fenetre-media img { aspect-ratio: 2 / 1; }
  .ez-fenetre.ez-pres-bar .ez-fenetre-corps { padding: .9rem 3.5rem .9rem 1rem; }
  .ez-fenetre-unite { min-width: 3.8rem; }
}
@media (prefers-reduced-motion: reduce) { .ez-fenetre, .ez-fenetre-voile { transition: none; } }
@media print { .ez-fenetre-boite { display: none !important; } }

/* ===== 2.17 — Planning de la semaine (module « schedule ») ===== */
/* Couleur d'une discipline : categories.json → schedule[].color (style --ez-cat), sinon six couleurs bien distinctes. */
.ez-plc-1 { --ez-cat-c: var(--ez-cat, var(--ez-primaire)); }
.ez-plc-2 { --ez-cat-c: var(--ez-cat, #2563eb); }
.ez-plc-3 { --ez-cat-c: var(--ez-cat, #16a34a); }
.ez-plc-4 { --ez-cat-c: var(--ez-cat, #db2777); }
.ez-plc-5 { --ez-cat-c: var(--ez-cat, #d97706); }
.ez-plc-6 { --ez-cat-c: var(--ez-cat, #7c3aed); }
/* Sans JavaScript : tous les jours l'un sous l'autre, filtres cachés ; le script ouvre le jour même (heure du site). */
.ez-planning { --ez-pl-heure: 3.5rem; }
.ez-pl-point { display: inline-block; flex: none; width: .6rem; height: .6rem; border-radius: 50%; background: var(--ez-cat-c, var(--ez-primaire)); }
.ez-pl-legende { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .9rem; color: var(--ez-texte-doux); }
.ez-pl-legende li { display: inline-flex; align-items: center; gap: .45rem; }
.ez-pl-fermeture { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 1rem; padding: .7rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-alerte-fond); color: var(--ez-alerte-texte); }
.ez-pl-etat, .ez-pl-niveau, .ez-pl-moment { display: inline-block; font-size: .72rem; font-weight: 700; line-height: 1.4; padding: .1rem .55rem; border-radius: 99px; white-space: nowrap; }
.ez-pl-complet { background: #fee2e2; color: #991b1b; }
.ez-pl-places { background: #dcfce7; color: #166534; }
.ez-pl-niveau { background: var(--ez-surface); color: var(--ez-texte-doux); }
.ez-pl-moment { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-pl-note { display: block; font-size: .82rem; color: var(--ez-texte-doux); }
.ez-pl-reserver { font-size: .85rem; font-weight: 600; }
.ez-pl-pied { margin: 1.2rem 0 0; }
/* Jours en onglets */
.ez-pl-onglets { display: none; }
.ez-pl-pret .ez-pl-onglets { display: flex; gap: .4rem; overflow-x: auto; margin-bottom: 1rem; padding-bottom: .25rem; scrollbar-width: thin; }
.ez-pl-onglets button { font: inherit; font-size: .9rem; font-weight: 600; line-height: 1.2; cursor: pointer; white-space: nowrap; padding: .45rem .95rem; border: 1.5px solid var(--ez-bord); border-radius: 99px; background: var(--ez-fond); color: var(--ez-texte-doux); }
.ez-pl-onglets button small { display: block; font-size: .7rem; font-weight: 400; opacity: .85; }
.ez-pl-onglets button[aria-selected="true"] { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pl-onglets button:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-pl-panneau + .ez-pl-panneau { margin-top: 1.5rem; }
.ez-pl-jour-titre { font-size: 1.1rem; margin: 0 0 .4rem; }
.ez-pl-pret .ez-pl-panneau + .ez-pl-panneau { margin-top: 0; }
.ez-pl-pret .ez-pl-panneau[data-ez-pl-inactif] { display: none; }
.ez-pl-pret .ez-pl-jour-titre, .ez-pl-liste-lecteur { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Liste d'un jour */
.ez-pl-liste { list-style: none; margin: 0; padding: 0; }
.ez-pl-ligne { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .85rem .3rem; border-bottom: 1px solid var(--ez-bord); }
.ez-pl-heure { font-family: var(--ez-police-titres); font-weight: 700; }
.ez-pl-heure small { display: block; font-family: inherit; font-weight: 400; font-size: .8rem; color: var(--ez-texte-doux); }
.ez-pl-quoi { display: grid; gap: .15rem; }
.ez-pl-quoi b { display: flex; gap: .5rem; align-items: center; }
.ez-pl-quoi > span { font-size: .9rem; color: var(--ez-texte-doux); }
.ez-pl-infos { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; justify-content: flex-end; }
.ez-pl-ligne.ez-pl-en-cours { background: color-mix(in srgb, var(--ez-cat-c, var(--ez-primaire)) 9%, transparent); }
.ez-pl-ligne.ez-pl-passe { opacity: .55; }
@media (max-width: 47.99rem) {
  .ez-pl-ligne { grid-template-columns: 4.6rem minmax(0, 1fr); gap: .5rem .8rem; }
  .ez-pl-ligne .ez-pl-infos { grid-column: 2; justify-content: flex-start; }
}
/* A — Grille de la semaine (la liste du jour sur téléphone) */
.ez-pl-grille { display: grid; grid-template-columns: 3.6rem repeat(var(--ez-pl-cols), minmax(0, 1fr)); grid-template-rows: auto calc(var(--ez-pl-n) * var(--ez-pl-heure)); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; background: var(--ez-fond); }
.ez-pl-g-coin, .ez-pl-g-tete { background: var(--ez-surface); border-bottom: 1px solid var(--ez-bord); padding: .6rem .3rem; text-align: center; font-weight: 700; font-size: .85rem; }
.ez-pl-g-tete abbr { text-decoration: none; }
.ez-pl-g-tete[data-ez-pl-jour-actif] { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pl-g-heures { display: grid; grid-auto-rows: var(--ez-pl-heure); }
.ez-pl-g-h { font-size: .72rem; color: var(--ez-texte-doux); text-align: right; padding: .15rem .45rem 0 0; border-top: 1px dashed var(--ez-bord); }
.ez-pl-g-col { position: relative; border-left: 1px solid var(--ez-bord); background: repeating-linear-gradient(to bottom, transparent 0 calc(var(--ez-pl-heure) - 1px), var(--ez-bord) calc(var(--ez-pl-heure) - 1px) var(--ez-pl-heure)); }
.ez-pl-case { position: absolute; left: 4px; right: 4px; top: calc(var(--ez-pl-y) * var(--ez-pl-heure) + 1px); height: calc(var(--ez-pl-l) * var(--ez-pl-heure) - 3px); overflow: hidden; padding: .3rem .45rem; border-radius: 8px; border-left: 3px solid var(--ez-cat-c); background: color-mix(in srgb, var(--ez-cat-c) 14%, var(--ez-fond)); color: var(--ez-texte); font-size: .74rem; line-height: 1.25; }
.ez-pl-case b { display: block; font-size: .78rem; }
.ez-pl-case small { display: block; color: var(--ez-texte-doux); }
.ez-pl-case .ez-pl-etat { font-size: .62rem; padding: 0 .4rem; margin-top: .15rem; }
.ez-pl-case.ez-pl-en-cours { box-shadow: 0 0 0 2px var(--ez-cat-c); }
.ez-pl-case.ez-pl-passe { opacity: .6; }
.ez-pl-mobile { display: none; }
@media (max-width: 47.99rem) {
  .ez-planning.ez-pres-grid .ez-pl-grille { display: none; }
  .ez-planning.ez-pres-grid .ez-pl-mobile { display: block; }
}
/* C — Aujourd'hui en avant */
.ez-pl-auj { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; align-items: start; }
.ez-pl-auj-carte { display: grid; gap: .8rem; padding: 1.4rem; border-radius: var(--ez-rayon); background: linear-gradient(135deg, var(--ez-primaire), var(--ez-accent)); color: var(--ez-sur-primaire); }
.ez-pl-auj-sur { margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
.ez-pl-auj-compte { margin: 0; font-family: var(--ez-police-titres); font-size: 1.35rem; font-weight: 700; }
.ez-pl-auj-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ez-pl-auj-item { display: grid; grid-template-columns: 4.4rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .6rem .8rem; border-radius: 12px; background: rgba(255, 255, 255, .14); }
.ez-pl-auj-item small { display: block; font-size: .82rem; opacity: .9; }
.ez-pl-auj-item .ez-pl-heure { font-family: var(--ez-police-titres); }
.ez-pl-auj-item .ez-pl-moment { background: #fff; color: var(--ez-primaire); }
.ez-pl-auj-item.ez-pl-passe { opacity: .6; }
.ez-pl-auj-bouton { background: #fff; color: var(--ez-primaire); }
.ez-pl-auj-gauche > p { margin: 1rem 0 0; }
.ez-pl-semaine { display: grid; gap: .6rem; }
.ez-pl-sem-jour { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: .75rem 1rem; }
.ez-pl-sem-jour h3 { font-size: 1rem; margin: 0 0 .35rem; }
.ez-pl-sem-jour ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; font-size: .9rem; color: var(--ez-texte-doux); }
.ez-pl-sem-jour li { display: flex; gap: .5rem; align-items: center; }
.ez-pl-sem-jour li b { min-width: 3.4rem; font-weight: 600; color: var(--ez-texte); }
@media (max-width: 47.99rem) { .ez-pl-auj { grid-template-columns: 1fr; } }
/* D — Tableau compact */
.ez-pl-tableau-boite { overflow-x: auto; position: relative; }
.ez-pl-tableau { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ez-pl-tableau th, .ez-pl-tableau td { padding: .65rem .5rem; border-bottom: 1px solid var(--ez-bord); text-align: center; }
.ez-pl-tableau thead th { background: var(--ez-surface); font-size: .85rem; }
.ez-pl-tableau thead th abbr { text-decoration: none; }
.ez-pl-tableau thead th[data-ez-pl-jour-actif] { color: var(--ez-primaire); box-shadow: inset 0 -3px 0 var(--ez-primaire); }
.ez-pl-tableau th:first-child { text-align: left; }
.ez-pl-tableau tbody th { font-weight: 400; }
.ez-pl-tableau tbody th b { display: flex; gap: .5rem; align-items: center; }
.ez-pl-tableau tbody th small { display: block; padding-left: 1.1rem; font-size: .8rem; color: var(--ez-texte-doux); }
.ez-pl-tableau tbody th .ez-pl-etat { margin: .2rem 0 0 1.1rem; }
.ez-pl-oui { font-weight: 700; white-space: nowrap; background: color-mix(in srgb, var(--ez-cat-c) 10%, transparent); }
.ez-pl-non { color: var(--ez-bord); }
.ez-pl-tableau td[data-ez-pl-jour-actif].ez-pl-non { background: color-mix(in srgb, var(--ez-primaire) 5%, transparent); }
@media (max-width: 47.99rem) {
  .ez-pl-tableau { min-width: 34rem; }
  .ez-pl-tableau tbody th, .ez-pl-tableau thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--ez-fond); }
  .ez-pl-tableau thead th:first-child { background: var(--ez-surface); }
}
/* E — Cartes avec filtres */
.ez-pl-filtres { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.ez-pl-filtres button { font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; display: inline-flex; gap: .4rem; align-items: center; padding: .35rem .8rem; border: 1.5px solid var(--ez-bord); border-radius: 99px; background: var(--ez-fond); color: var(--ez-texte-doux); }
.ez-pl-filtres button[aria-pressed="true"] { border-color: var(--ez-texte); color: var(--ez-texte); background: var(--ez-surface); }
.ez-pl-filtres button:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-pl-filtres + .ez-pl-cartes { margin-top: 1rem; }
.ez-pl-cartes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .8rem; }
.ez-pl-carte { display: grid; gap: .35rem; align-content: start; padding: .9rem 1rem; border: 1px solid var(--ez-bord); border-top: 4px solid var(--ez-cat-c); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-pl-carte-quand { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-pl-carte h3 { margin: 0; font-size: 1.05rem; }
.ez-pl-carte-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 0; font-size: .88rem; color: var(--ez-texte-doux); }
.ez-pl-carte[data-ez-pl-filtre-cache] { display: none; }
.ez-pl-aucun { color: var(--ez-texte-doux); }
/* F — Frise de la journée par salle */
.ez-pl-frise-boite { overflow-x: auto; position: relative; }
.ez-pl-frise { min-width: max(46rem, calc(var(--ez-pl-n) * 3.4rem + 8rem)); }
.ez-pl-f-ligne { display: grid; grid-template-columns: 8rem minmax(0, 1fr); align-items: center; min-height: 3.6rem; border-top: 1px solid var(--ez-bord); }
.ez-pl-f-graduations { min-height: 1.6rem; border-top: 0; }
.ez-pl-f-salle { padding-right: .5rem; font-size: .9rem; font-weight: 600; }
.ez-pl-f-piste { position: relative; height: 3rem; background: repeating-linear-gradient(to right, transparent 0 calc(100% / var(--ez-pl-n) - 1px), var(--ez-bord) calc(100% / var(--ez-pl-n) - 1px) calc(100% / var(--ez-pl-n))); }
.ez-pl-f-graduations .ez-pl-f-piste { height: 1.4rem; background: none; }
.ez-pl-f-graduations .ez-pl-f-piste span { position: absolute; left: var(--ez-pl-x); font-size: .72rem; color: var(--ez-texte-doux); }
.ez-pl-f-case { position: absolute; top: 4px; bottom: 4px; left: var(--ez-pl-x); width: var(--ez-pl-w); overflow: hidden; padding: .2rem .5rem; border-radius: 8px; border-left: 3px solid var(--ez-cat-c); background: color-mix(in srgb, var(--ez-cat-c) 18%, var(--ez-fond)); color: var(--ez-texte); font-size: .72rem; line-height: 1.2; white-space: nowrap; }
.ez-pl-f-case b, .ez-pl-f-case small { display: block; overflow: hidden; text-overflow: ellipsis; }
.ez-pl-f-case b { font-size: .78rem; }
.ez-pl-f-case.ez-pl-en-cours { box-shadow: 0 0 0 2px var(--ez-cat-c); }
.ez-pl-f-maintenant { position: absolute; top: -4px; bottom: -4px; left: var(--ez-pl-x); z-index: 2; width: 2px; background: #dc2626; }

/* ===== 2.17 — Carte du restaurant (module « dishes ») ===== */
.ez-ca-pictos { display: inline-flex; gap: .2rem; margin-left: .35rem; vertical-align: middle; }
.ez-ca-picto { display: inline-grid; place-items: center; min-width: 1.15rem; height: 1.15rem; padding: 0 .25rem; border-radius: 99px; color: #fff; font: 700 .6rem/1 system-ui, sans-serif; text-decoration: none; vertical-align: middle; }
.ez-ca-picto svg { width: .72rem; height: .72rem; }
.ez-ca-p-vegetarian { background: #15803d; }
.ez-ca-p-vegan { background: #166534; }
.ez-ca-p-gluten-free { background: #b45309; }
.ez-ca-p-homemade { background: #6d28d9; }
.ez-ca-p-spicy { background: #dc2626; }
.ez-ca-p-organic { background: #4d7c0f; }
.ez-ca-p-local { background: #0369a1; }
.ez-ca-badge { display: inline-block; margin-left: .4rem; padding: .05rem .5rem; border-radius: 99px; background: var(--ez-accent); color: var(--ez-sur-accent); font-size: .68rem; font-weight: 700; vertical-align: middle; }
.ez-ca-allergenes { display: block; margin-top: .15rem; font-size: .78rem; color: var(--ez-texte-doux); }
.ez-ca-intro { margin: 0 0 .8rem; color: var(--ez-texte-doux); }
.ez-ca-note { margin: .8rem 0 0; font-size: .88rem; font-style: italic; color: var(--ez-texte-doux); }
.ez-ca-prix { font-family: var(--ez-police-titres); font-weight: 700; white-space: nowrap; }
.ez-carte-resto > * + * { margin-top: 2rem; }
.ez-carte-resto > .ez-ca-legende { margin-top: 1.8rem; }
/* A — Deux colonnes à pointillés */
.ez-ca-colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.5rem 3rem; align-items: start; }
.ez-ca-rubrique .ez-ca-titre { margin: 0 0 .8rem; padding-bottom: .4rem; border-bottom: 2px solid var(--ez-primaire); color: var(--ez-primaire); font-size: 1.2rem; }
.ez-ca-plats { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.ez-ca-plat { display: grid; grid-template-columns: minmax(0, max-content) minmax(1rem, 1fr) auto; column-gap: .5rem; align-items: baseline; }
.ez-ca-points { border-bottom: 2px dotted var(--ez-bord); transform: translateY(-.3em); }
.ez-ca-plat .ez-ca-desc, .ez-ca-plat .ez-ca-allergenes { grid-column: 1 / -1; }
.ez-ca-desc { font-size: .88rem; color: var(--ez-texte-doux); }
/* Légende, allergènes et carte en PDF */
.ez-ca-legende { display: grid; gap: .6rem; padding-top: 1rem; border-top: 1px solid var(--ez-bord); font-size: .85rem; color: var(--ez-texte-doux); }
.ez-ca-pictos-legende { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; }
.ez-ca-pictos-legende li { display: inline-flex; gap: .4rem; align-items: center; }
.ez-ca-allergenes-phrase, .ez-ca-pdf { margin: 0; }
.ez-ca-pdf .ez-bouton { display: inline-flex; gap: .5rem; align-items: center; }
.ez-ca-pdf svg { width: 1.1rem; height: 1.1rem; }
/* B — Plats en photos */
.ez-ca-cartes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.ez-ca-carte { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-ca-visuel .ez-ca-photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ez-ca-corps { display: grid; gap: .3rem; padding: .8rem 1rem 1rem; }
.ez-ca-rub { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); }
.ez-ca-haut { display: flex; justify-content: space-between; gap: .6rem; align-items: baseline; }
.ez-ca-haut > :first-child { margin: 0; font-size: 1.05rem; }
.ez-ca-corps p { margin: 0; font-size: .9rem; color: var(--ez-texte-doux); }
.ez-ca-corps > .ez-ca-badge { justify-self: start; margin-left: 0; }
@media (max-width: 47.99rem) {
  .ez-ca-carte { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); }
  .ez-ca-carte.ez-ca-sans-photo { grid-template-columns: 1fr; }
  .ez-ca-visuel .ez-ca-photo { height: 100%; aspect-ratio: auto; }
}
/* C — Rubriques en onglets */
.ez-ca-onglets { display: none; }
.ez-ca-pret .ez-ca-onglets { display: flex; gap: .4rem; overflow-x: auto; margin-bottom: 1.2rem; padding-bottom: .25rem; scrollbar-width: thin; }
.ez-ca-onglets button { font: inherit; font-size: .92rem; font-weight: 600; cursor: pointer; white-space: nowrap; padding: .5rem 1rem; border: 0; border-radius: 99px; background: var(--ez-surface); color: var(--ez-texte-doux); }
.ez-ca-onglets button[aria-selected="true"] { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-ca-onglets button:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-ca-panneau + .ez-ca-panneau { margin-top: 1.6rem; }
.ez-ca-titre-panneau { margin: 0 0 .6rem; font-size: 1.2rem; }
.ez-ca-pret .ez-ca-panneau + .ez-ca-panneau { margin-top: 0; }
.ez-ca-pret .ez-ca-panneau[data-ez-ca-inactif] { display: none; }
.ez-ca-pret .ez-ca-titre-panneau { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ez-ca-panneau-menus { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; align-items: start; }
.ez-ca-panneau-menus > .ez-ca-titre-panneau { grid-column: 1 / -1; }
.ez-ca-lignes { list-style: none; margin: 0; padding: 0; }
.ez-ca-ligne { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-ca-ligne.ez-ca-sans-photo { grid-template-columns: minmax(0, 1fr) auto; }
.ez-ca-vignette { display: block; width: 4.5rem; height: 4.5rem; border-radius: 12px; object-fit: cover; }
.ez-ca-texte { display: grid; gap: .15rem; }
/* D — Ardoise */
.ez-ca-ardoises { display: grid; gap: 1.5rem; justify-items: center; }
.ez-ca-ardoise { width: 100%; max-width: 36rem; box-sizing: border-box; padding: 1.6rem 1.75rem; border: 10px solid #8b6a43; border-radius: 10px; background: #1f2a24 radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px) 0 0 / 6px 6px; color: #f4f1e8; font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive; box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .5); }
.ez-ca-ardoise .ez-ca-titre { margin: 0; color: #fff; font-family: inherit; font-size: 1.7rem; font-weight: 700; text-align: center; }
.ez-ca-periode { margin: .2rem 0 1rem; text-align: center; color: #e7d9a8; }
.ez-ca-ardoise .ez-ca-intro, .ez-ca-ardoise .ez-ca-note { text-align: center; color: #e7d9a8; font-style: normal; }
.ez-ca-ardoise .ez-ca-plats { gap: 0; }
.ez-ca-ardoise li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed rgba(255, 255, 255, .25); }
.ez-ca-ardoise li small { display: block; font-size: .85rem; color: #e7d9a8; }
.ez-ca-ardoise .ez-ca-prix { font-family: inherit; color: #ffe08a; }
.ez-ca-ardoise .ez-ca-allergenes { color: #d6ccb0; }
@media (max-width: 47.99rem) { .ez-ca-ardoise { padding: 1.2rem 1rem; border-width: 7px; } }
/* E — Menus et formules */
.ez-ca-menus { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.2rem 1rem; align-items: start; }
.ez-ca-menu { position: relative; display: grid; gap: .6rem; padding: 1.25rem; border: 1.5px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-ca-menu .ez-ca-titre { margin: 0; font-size: 1.15rem; }
.ez-ca-menu-avant { border-color: var(--ez-primaire); box-shadow: 0 12px 30px -16px var(--ez-primaire); }
.ez-ca-menu-badge { position: absolute; top: -.7rem; left: 1.1rem; padding: .2rem .65rem; border-radius: 99px; background: var(--ez-primaire); color: var(--ez-sur-primaire); font-size: .7rem; font-weight: 700; }
.ez-ca-menu-prix { margin: 0; font-family: var(--ez-police-titres); font-size: 1.8rem; font-weight: 700; }
.ez-ca-menu-prix small { font-family: inherit; font-size: .85rem; font-weight: 400; color: var(--ez-texte-doux); }
.ez-ca-services { list-style: none; margin: 0; padding: .6rem 0 0; border-top: 1px solid var(--ez-bord); display: grid; gap: .55rem; }
.ez-ca-service { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); }
.ez-ca-choix { font-size: .92rem; }
.ez-ca-ou { font-style: italic; color: var(--ez-texte-doux); }
/* F — Carte élégante, centrée */
.ez-ca-elegante { max-width: 40rem; margin-inline: auto; text-align: center; }
.ez-ca-elegante .ez-ca-titre { display: flex; align-items: center; gap: .9rem; margin: 1.8rem 0 1rem; padding: 0; border: 0; font-family: inherit; font-size: .8rem; font-weight: 400; letter-spacing: .35em; text-transform: uppercase; color: var(--ez-accent); }
.ez-ca-elegante .ez-ca-titre::before, .ez-ca-elegante .ez-ca-titre::after { content: ""; flex: 1; height: 1px; background: var(--ez-bord); }
.ez-ca-elegante .ez-ca-rubrique:first-child .ez-ca-titre { margin-top: .5rem; }
.ez-ca-elegante .ez-ca-plats { gap: 1.1rem; }
.ez-ca-elegante .ez-ca-plat { display: block; }
.ez-ca-elegante .ez-ca-points { display: none; }
.ez-ca-elegante .ez-ca-nom { display: block; }
.ez-ca-elegante .ez-ca-nom b { font-family: var(--ez-police-titres); font-size: 1.08rem; font-weight: 600; }
.ez-ca-elegante .ez-ca-desc { display: block; font-style: italic; }
.ez-ca-elegante .ez-ca-prix { display: block; margin-top: .15rem; font-size: .95rem; font-weight: 600; color: var(--ez-primaire); }
.ez-carte-resto.ez-pres-elegant .ez-ca-legende { justify-items: center; text-align: center; }
.ez-carte-resto.ez-pres-elegant .ez-ca-pictos-legende { justify-content: center; }
.ez-carte-resto.ez-pres-elegant .ez-ca-menus { grid-template-columns: repeat(auto-fit, minmax(14rem, 17rem)); justify-content: center; }

/* ===== 2.17 — Chambres et hébergements (module « rooms ») ===== */
.ez-hb-faits { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .88rem; color: var(--ez-texte-doux); }
.ez-hb-faits li { display: inline-flex; gap: .35rem; align-items: center; }
.ez-hb-faits svg { width: 1rem; height: 1rem; }
.ez-hb-equipements { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.ez-hb-equipements li { padding: .2rem .6rem; border-radius: 99px; background: var(--ez-surface); color: var(--ez-texte); font-size: .78rem; }
.ez-hb-prix { margin: 0; font-size: .85rem; color: var(--ez-texte-doux); }
.ez-hb-prix b { font-family: var(--ez-police-titres); font-size: 1.25rem; color: var(--ez-texte); }
.ez-hb-titre { margin: 0; font-size: 1.2rem; }
.ez-hb-titre a { color: inherit; text-decoration: none; }
.ez-hb-titre a:hover, .ez-hb-titre a:focus-visible { text-decoration: underline; }
.ez-hb-visuel { position: relative; }
.ez-hb-visuel img { display: block; width: 100%; object-fit: cover; }
.ez-hb-badge { position: absolute; top: .7rem; left: .7rem; z-index: 1; padding: .2rem .65rem; border-radius: 99px; background: var(--ez-primaire); color: var(--ez-sur-primaire); font-size: .72rem; font-weight: 700; }
/* A — Cartes */
.ez-hb-cartes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.2rem; }
.ez-hb-carte { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-hb-carte .ez-hb-visuel img { aspect-ratio: 3 / 2; }
.ez-hb-corps { flex: 1; display: grid; gap: .6rem; align-content: start; padding: 1rem; }
.ez-hb-pied { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem; padding: .8rem 1rem; border-top: 1px solid var(--ez-bord); }
/* B — Grande photo et texte en alternance */
.ez-hb-zigzag { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.5rem; }
.ez-hb-rangee { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2.2rem; align-items: center; }
.ez-hb-inverse .ez-hb-visuel { order: 2; }
.ez-hb-rangee .ez-hb-visuel img { aspect-ratio: 4 / 3; border-radius: var(--ez-rayon); }
.ez-hb-rangee .ez-hb-corps { padding: 0; gap: .8rem; justify-items: start; }
.ez-hb-rangee .ez-hb-titre { font-size: 1.45rem; }
.ez-hb-rangee p { margin: 0; }
@media (max-width: 47.99rem) {
  .ez-hb-rangee { grid-template-columns: 1fr; gap: 1rem; }
  .ez-hb-inverse .ez-hb-visuel { order: 0; }
}
/* D — Comparatif */
.ez-hb-tableau-boite { overflow-x: auto; position: relative; }
.ez-hb-comparatif { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ez-hb-comparatif th, .ez-hb-comparatif td { padding: .65rem; border-bottom: 1px solid var(--ez-bord); text-align: center; vertical-align: middle; }
.ez-hb-comparatif thead th, .ez-hb-comparatif thead td { vertical-align: bottom; }
.ez-hb-mini { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: .5rem; border-radius: 10px; }
.ez-hb-nom .ez-hb-titre { font-size: 1rem; }
.ez-hb-comparatif tbody th { text-align: left; font-weight: 600; color: var(--ez-texte-doux); min-width: 9rem; }
.ez-hb-oui { color: #15803d; font-weight: 700; }
.ez-hb-non { color: var(--ez-bord); }
.ez-hb-comparatif .ez-hb-prix b { font-size: 1.05rem; }
.ez-hb-actions td { border-bottom: 0; }
@media (max-width: 47.99rem) {
  .ez-hb-comparatif { min-width: 38rem; }
  .ez-hb-comparatif tbody th, .ez-hb-comparatif thead td:first-child, .ez-hb-actions td:first-child { position: sticky; left: 0; z-index: 1; background: var(--ez-fond); }
}
/* E — Cartes avec photos qui défilent (au doigt sans script ; flèches et points avec) */
.ez-hb-defilantes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1.4rem; }
.ez-hb-carte-defile { display: grid; gap: .8rem; align-content: start; }
.ez-hb-defile { position: relative; overflow: hidden; border-radius: var(--ez-rayon); }
.ez-hb-piste { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.ez-hb-piste::-webkit-scrollbar { display: none; }
.ez-hb-piste:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: -3px; }
.ez-hb-piste li { flex: 0 0 100%; scroll-snap-align: start; }
.ez-hb-piste img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ez-hb-fleche { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 2.2rem; height: 2.2rem; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #111; font-size: 1.4rem; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.ez-hb-fleche:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 2px; }
.ez-hb-prec { left: .6rem; }
.ez-hb-suiv { right: .6rem; }
.ez-hb-points { position: absolute; left: 0; right: 0; bottom: .6rem; display: flex; justify-content: center; gap: .3rem; pointer-events: none; }
.ez-hb-points i { width: .45rem; height: .45rem; border-radius: 50%; background: rgba(255, 255, 255, .55); }
.ez-hb-points i.ez-hb-on { background: #fff; }
.ez-hb-ligne { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; }
.ez-hb-ligne > div { display: grid; gap: .35rem; }
.ez-hb-ligne .ez-hb-prix { text-align: right; white-space: nowrap; }
/* F — Tarifs par saison */
.ez-hb-tarifs { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); font-size: .92rem; }
.ez-hb-tarifs { table-layout: fixed; }
.ez-hb-tarifs th, .ez-hb-tarifs td { padding: .75rem .9rem; border-bottom: 1px solid var(--ez-bord); text-align: center; }
.ez-hb-tarifs thead th:first-child { width: 30%; }
.ez-hb-tarifs th:first-child { text-align: left; }
.ez-hb-tarifs thead th { background: var(--ez-surface); font-size: .88rem; }
.ez-hb-tarifs thead th small { display: block; font-size: .75rem; font-weight: 400; color: var(--ez-texte-doux); }
.ez-hb-tarifs thead th.ez-hb-actuelle { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-hb-tarifs thead th.ez-hb-actuelle small { color: inherit; opacity: .85; }
.ez-hb-tarifs td.ez-hb-actuelle { background: color-mix(in srgb, var(--ez-primaire) 7%, transparent); font-weight: 700; }
.ez-hb-tarifs tbody th { font-weight: 400; }
.ez-hb-tarifs tbody th b { font-weight: 600; }
.ez-hb-tarifs tbody th small { display: block; font-size: .8rem; color: var(--ez-texte-doux); }
.ez-hb-tarifs tbody tr:last-child > * { border-bottom: 0; }
.ez-hb-notes { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .2rem; font-size: .85rem; color: var(--ez-texte-doux); }
@media (max-width: 47.99rem) {
  .ez-hb-tarifs { min-width: 34rem; }
  .ez-hb-tarifs tbody th, .ez-hb-tarifs thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--ez-fond); }
  .ez-hb-tarifs thead th:first-child { background: var(--ez-surface); }
}
/* Page d'une chambre (modèle C) */
.ez-hb-resume { margin: .3rem 0 0; font-size: 1.1rem; color: var(--ez-texte-doux); }
.ez-hb-mosaique { margin: 0 0 1.5rem; }
.ez-hb-fiche { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(16rem, 1fr); gap: 2rem; align-items: start; }
.ez-hb-fiche-texte { display: grid; gap: 1rem; align-content: start; }
.ez-hb-sous-titre { margin: .8rem 0 0; font-size: 1.15rem; }
.ez-hb-coches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1.2rem; }
.ez-hb-coches li::before { content: "✓ "; font-weight: 700; color: var(--ez-primaire); }
.ez-hb-encart { position: sticky; top: calc(var(--ez-hauteur-entete, 0px) + 1rem); display: grid; gap: .8rem; padding: 1.2rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .35); }
.ez-hb-encart-tarifs { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .9rem; }
.ez-hb-encart-tarifs li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .45rem; border-bottom: 1px dashed var(--ez-bord); }
.ez-hb-encart-tarifs small { display: block; font-size: .75rem; color: var(--ez-texte-doux); }
.ez-hb-encart-tarifs li.ez-hb-actuelle b { color: var(--ez-primaire); }
.ez-hb-encart .ez-bouton { justify-content: center; text-align: center; }
@media (max-width: 47.99rem) {
  .ez-hb-fiche { grid-template-columns: 1fr; }
  .ez-hb-encart { position: static; }
  .ez-hb-coches { grid-template-columns: 1fr; }
}

/* === 2.18 — Barre du haut (site.json → top_bar.presentation) ================================================ */
.ez-bandeau-haut-degrade { background: linear-gradient(90deg, var(--ez-primaire), var(--ez-accent)); color: var(--ez-sur-primaire); --ez-bandeau-haut-texte: var(--ez-sur-primaire); }
.ez-bh .ez-bandeau-haut-ligne { justify-content: flex-start; gap: .35rem 1.3rem; }
.ez-bh .ez-icone { width: 1rem; height: 1rem; flex: none; }
.ez-bh a { text-decoration: none; }
.ez-bh a:hover { text-decoration: underline; }
.ez-bh-espace { flex: 1 1 auto; }
.ez-bh-item { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.ez-bh-texte, .ez-bh-offre-texte { margin: 0; }
.ez-bh-bouton { display: inline-block; padding: .2rem .85rem; border-radius: 999px; font-weight: 700; background: var(--ez-bandeau-haut-texte); color: var(--ez-texte) !important; text-decoration: none !important; }
.ez-bandeau-haut-surface .ez-bh-bouton { background: var(--ez-accent); color: var(--ez-sur-accent) !important; }
.ez-bh .ez-icones { margin: 0; gap: .35rem; }
.ez-bh .ez-bouton-icone { width: 1.7rem; height: 1.7rem; color: inherit; background: color-mix(in srgb, currentColor 14%, transparent); border: 0; }
.ez-bh .ez-bouton-icone .ez-icone { width: .9rem; height: .9rem; }
/* messages */
.ez-bh-messages .ez-icone { width: 1.05rem; height: 1.05rem; }
.ez-bh-messages { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 1.6rem; text-align: center; }
.ez-bh-messages ul { list-style: none; margin: 0; padding: 0; position: relative; flex: 0 1 40rem; display: grid; }
.ez-bh-message { grid-area: 1 / 1; display: flex; align-items: center; justify-content: center; gap: .5rem; visibility: hidden; opacity: 0; transform: translateY(.35rem); transition: opacity .4s, transform .4s, visibility 0s .4s; }
.ez-bh-message.ez-actif { visibility: visible; opacity: 1; transform: none; transition: opacity .4s, transform .4s; }
.ez-bh-message a { display: inline-flex; align-items: center; gap: .5rem; }
.ez-bh-fleche { border: 0; background: transparent; color: inherit; cursor: pointer; padding: .15rem .3rem; border-radius: 6px; display: inline-flex; opacity: .85; }
.ez-bh-fleche:hover, .ez-bh-fleche:focus-visible { opacity: 1; background: color-mix(in srgb, currentColor 14%, transparent); }
.ez-bh-fleche[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .ez-bh-message, .ez-bh-message.ez-actif { transition: none; transform: none; } }
/* horaires */
.ez-bh-horaires { display: inline-flex; align-items: center; gap: .4rem 1.1rem; flex-wrap: wrap; }
.ez-bh-horaires .ez-horaires-etat { margin: 0; font-size: .875rem; }
.ez-bh-horaires .ez-horaires-point { box-shadow: none; }
.ez-bh-semaine { position: relative; }
.ez-bh-semaine summary { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; list-style: none; }
.ez-bh-semaine summary::-webkit-details-marker { display: none; }
.ez-bh-semaine[open] summary .ez-icone:last-child { transform: rotate(180deg); }
.ez-bh-pop { position: absolute; z-index: 40; top: calc(100% + .5rem); left: 0; min-width: 15rem; background: var(--ez-fond); color: var(--ez-texte); border: 1px solid var(--ez-bord); border-radius: calc(var(--ez-rayon) + 4px); box-shadow: 0 12px 30px -12px rgb(0 0 0 / .35); padding: .4rem .7rem; }
.ez-bh-pop .ez-horaires-tableau th, .ez-bh-pop .ez-horaires-tableau td { padding: .25rem .3rem; font-size: .85rem; }
/* liens */
.ez-bh-links { font-size: .82rem; }
.ez-bh-liens { display: flex; flex-wrap: wrap; align-items: center; list-style: none; margin: 0; padding: 0; }
.ez-bh-liens li + li::before { content: ""; display: inline-block; width: 1px; height: .9em; background: currentColor; opacity: .35; margin: 0 .7rem; vertical-align: -.1em; }
.ez-bh-liens a { display: inline-flex; align-items: center; gap: .35rem; }
/* offre */
.ez-bh-offer .ez-bandeau-haut-ligne { justify-content: center; padding-right: 2.6rem; }
.ez-bh-offer { position: relative; }
.ez-bh-fermee { display: none !important; }
.ez-bh-offre-texte { font-weight: 700; }
.ez-bh-compte { display: inline-flex; gap: .25rem; font-variant-numeric: tabular-nums; }
.ez-bh-compte[hidden] { display: none; }
.ez-bh-compte span { background: rgb(0 0 0 / .22); border-radius: 6px; padding: .05rem .4rem; font-weight: 700; }
.ez-bh-fermer { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); width: 1.6rem; height: 1.6rem; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer; color: inherit; background: color-mix(in srgb, currentColor 18%, transparent); }
.ez-bh-fermer[hidden] { display: none; }
.ez-bh-fermer .ez-icone { width: .85rem; height: .85rem; }
/* raccourcis sur téléphone */
.ez-bh-raccourcis { display: none; }
@media (max-width: 40rem) {
  .ez-bh-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ez-bh-contacts .ez-bh-item { width: 1.9rem; height: 1.9rem; justify-content: center; border-radius: 50%; background: color-mix(in srgb, currentColor 14%, transparent); }
  .ez-bh-contacts .ez-bh-reseaux, .ez-bh-cache-tel { display: none !important; }
  .ez-bh .ez-bandeau-haut-ligne { justify-content: center; }
  .ez-bh-offer .ez-bandeau-haut-ligne { font-size: .82rem; }
  .ez-bh-avec-raccourcis > .ez-bandeau-haut-ligne { display: none; }
  .ez-bh-raccourcis { display: grid; grid-template-columns: repeat(var(--ez-n, 4), 1fr); }
  .ez-bh-raccourcis-2 { --ez-n: 2; } .ez-bh-raccourcis-3 { --ez-n: 3; }
  .ez-bh-raccourcis a { display: grid; justify-items: center; gap: .15rem; padding: .45rem .2rem; font-size: .72rem; font-weight: 600; color: inherit; text-decoration: none; }
  .ez-bh-raccourcis a + a { border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
  .ez-bh-raccourcis .ez-icone { width: 1.1rem; height: 1.1rem; }
  .ez-bh-pop { position: fixed; left: 1rem; right: 1rem; top: auto; }
}

/* === 2.18 — Pied de page (site.json → footer_settings.presentation) ========================================= */
.ez-pied-pres .ez-icone { width: 1rem; height: 1rem; flex: none; }
.ez-pied-colonnes { display: grid; grid-template-columns: minmax(13rem, 1.4fr) repeat(auto-fit, minmax(10rem, 1fr)); gap: 1.6rem 2rem; padding-top: calc(var(--ez-espace) * 1.6); padding-bottom: calc(var(--ez-espace) * 1.2); }
.ez-pied-marque { display: grid; gap: .6rem; align-content: start; }
.ez-pied-marque p, .ez-pied-col p { margin: 0; }
.ez-pied-phrase { color: var(--ez-texte-doux); max-width: 22rem; }
.ez-pied-pres .ez-pied-titre { display: flex; align-items: center; justify-content: space-between; margin: 0 0 .6rem; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: inherit; opacity: .8; }
.ez-pied-col ul { display: grid; gap: .45rem; }
.ez-pied-col li { margin: 0; }
.ez-pied-pres a { color: inherit; text-decoration: none; }
.ez-pied-pres a:hover, .ez-pied-pres a:focus-visible { text-decoration: underline; }
.ez-pied-coord { display: inline-flex; gap: .45rem; align-items: flex-start; }
.ez-pied-coord .ez-icone { margin-top: .2rem; color: var(--ez-accent); }
.ez-pied-coords { display: grid; gap: .45rem; }
.ez-pied-repli > summary { list-style: none; cursor: default; }
.ez-pied-repli > summary::-webkit-details-marker { display: none; }
.ez-pied-repli > summary .ez-icone { display: none; }
@media (max-width: 40rem) {
  .ez-pied-colonnes { grid-template-columns: 1fr; gap: 0; }
  .ez-pied-colonnes .ez-pied-marque { padding-bottom: 1rem; }
  .ez-pied-colonnes > .ez-pied-col, .ez-pied-colonnes > .ez-pied-horaires, .ez-pied-colonnes > .ez-pied-infos { border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); padding: .2rem 0; }
  .ez-pied-colonnes > .ez-pied-horaires, .ez-pied-colonnes > .ez-pied-infos { padding: .8rem 0; }
  .ez-pied-repli > summary { cursor: pointer; padding: .7rem 0; margin: 0; }
  .ez-pied-repli > summary .ez-icone { display: inline; transition: transform .2s; }
  .ez-pied-repli[open] > summary .ez-icone { transform: rotate(180deg); }
  .ez-pied-repli > ul { padding-bottom: .8rem; }
}
.ez-pied-pres .ez-pied-bas-ligne, .ez-pied-bas-ligne { align-items: center; }
.ez-pied-bas-espace { flex: 1 1 auto; }
.ez-pied-bas-ligne .ez-pied-bas-espace + * , .ez-pied-bas-ligne .ez-pied-bas-espace ~ .ez-mention-ezwebstudio { margin-left: 0; }
.ez-pied-liens-bas { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; gap: .2rem 1rem; }
.ez-pied-liens-bas li { margin: 0; }
.ez-pied-haut { display: inline-flex; align-items: center; gap: .3rem; font-weight: 700; padding: .2rem .7rem; border-radius: 999px; background: color-mix(in srgb, currentColor 12%, transparent); color: inherit; text-decoration: none; }
.ez-pied-haut .ez-icone { width: .9rem; height: .9rem; }
.ez-pied-bas-couleur { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pied-bas-couleur .ez-pied-bas { border-top: 0; }
.ez-pied-bas-couleur a, .ez-pied-bas-couleur .ez-mention-ezwebstudio { color: inherit; }
.ez-pied-bas-couleur .ez-langues a { color: inherit; }
/* centré */
.ez-pied-centre { display: grid; justify-items: center; gap: .8rem; text-align: center; padding-top: calc(var(--ez-espace) * 1.6); padding-bottom: var(--ez-espace); }
.ez-pied-liens ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.4rem; font-weight: 600; }
.ez-pied-liens li { margin: 0; }
.ez-pied-centered .ez-pied-bas-ligne { justify-content: center; }
.ez-pied-centered .ez-pied-bas-espace { display: none; }
.ez-pied-centered .ez-pied-horaires { display: grid; justify-items: center; }
/* appel à l'action et pied foncé */
.ez-pied-appel { margin-top: calc(var(--ez-espace) * 2); background: linear-gradient(120deg, var(--ez-primaire), var(--ez-accent)); color: var(--ez-sur-primaire); }
.ez-pied-appel-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding-top: calc(var(--ez-espace) * 1.4); padding-bottom: calc(var(--ez-espace) * 1.4); }
.ez-pied-appel-titre { color: inherit; margin: 0 0 .3rem; font-size: 1.5rem; }
.ez-pied-appel p { margin: 0; opacity: .92; }
.ez-pied-appel .ez-bouton { margin-left: auto; background: var(--ez-fond); color: var(--ez-primaire); }
.ez-pied-appel + .ez-pied { margin-top: 0; }
.ez-pied-sombre { background: #16202c; color: #d7e0ea; border-top: 0; }
.ez-pied-sombre .ez-pied-nom { color: #ffffff; }
.ez-pied-sombre .ez-pied-phrase, .ez-pied-sombre .ez-mention-ezwebstudio { color: #b8c4d1; }
.ez-pied-sombre .ez-pied-bas { border-color: rgb(255 255 255 / .14); }
.ez-pied-sombre .ez-pied-coord .ez-icone { color: inherit; }
.ez-pied-sombre .ez-bouton-icone { color: #ffffff; background: rgb(255 255 255 / .1); border-color: transparent; }
@media (max-width: 40rem) { .ez-pied-appel .ez-bouton { margin-left: 0; } }
/* commerce local */
.ez-pied-local-grille { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 1.6rem 2rem; padding-top: calc(var(--ez-espace) * 1.6); padding-bottom: calc(var(--ez-espace) * 1.2); align-items: start; }
.ez-pied-plan { position: relative; border-radius: var(--ez-rayon); overflow: hidden; min-height: 11rem; background: var(--ez-fond); border: 1px solid var(--ez-bord); }
.ez-pied-plan img, .ez-pied-plan picture { width: 100%; height: 100%; object-fit: cover; display: block; }
.ez-pied-plan-bouton { position: absolute; left: .7rem; bottom: .7rem; background: #ffffff; color: #16202c !important; border-radius: 999px; padding: .35rem .85rem; font-weight: 700; font-size: .85rem; box-shadow: 0 4px 12px rgb(0 0 0 / .2); text-decoration: none !important; }
.ez-pied-plan-sans-image { display: grid; gap: .5rem; align-content: center; justify-items: start; padding: 1.1rem; }
.ez-pied-plan-sans-image > .ez-icone { width: 1.6rem; height: 1.6rem; color: var(--ez-accent); }
.ez-pied-plan-sans-image p { margin: 0; font-weight: 600; }
.ez-pied-semaine .ez-horaires-etat { margin: 0 0 .5rem; font-size: .9rem; }
.ez-pied-semaine .ez-horaires-tableau th, .ez-pied-semaine .ez-horaires-tableau td { padding: .2rem .2rem; font-size: .88rem; border-bottom: 1px dashed var(--ez-bord); }
.ez-pied-semaine .ez-horaires-tableau tr.ez-aujourdhui { background: transparent; }
.ez-pied-colonnes-sup { padding-top: 0; }
@media (max-width: 52rem) { .ez-pied-local-grille { grid-template-columns: 1fr; } }
/* labels */
.ez-pied-bande-logos { margin-top: calc(var(--ez-espace) * 2); border-top: 1px solid var(--ez-bord); background: var(--ez-fond); padding: 1.2rem 0; text-align: center; }
.ez-pied-bande-logos + .ez-pied { margin-top: 0; }
.ez-pied-bande-logos-titre { margin: 0 0 .7rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-pied-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem 2rem; list-style: none; margin: 0; padding: 0; }
.ez-pied-logos .ez-partenaire { margin: 0; }
.ez-pied-logos img { max-height: 3rem; width: auto; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.ez-pied-logos a:hover img, .ez-pied-logos a:focus-visible img, .ez-pied-logos img:hover { filter: none; opacity: 1; }

/* === 2.18 — Carte d'accès (bloc map : presentation) ========================================================= */
.ez-carte-pres .ez-icone { width: 1.05rem; height: 1.05rem; flex: none; }
.ez-carte-externe { position: relative; overflow: hidden; padding: 0; max-width: none; width: 100%; aspect-ratio: 16 / 8; min-height: 18rem; display: block; background: #e8ecef; border: 1px solid var(--ez-bord); }
.ez-carte-motif { position: absolute; inset: 0; background:
  linear-gradient(100deg, transparent 47%, #ffffff 47% 49.5%, transparent 49.5%),
  linear-gradient(8deg, transparent 38%, #ffffff 38% 41%, transparent 41%),
  linear-gradient(-62deg, transparent 58%, #f6d27a 58% 60%, transparent 60%),
  radial-gradient(circle at 78% 22%, #dfe8d8 0 12%, transparent 12.5%),
  radial-gradient(ellipse at 20% 85%, #a9d3f2 0 14%, transparent 14.5%),
  #eceff1; }
.ez-carte-externe .ez-externe-fond { filter: blur(3px) saturate(.7); transform: scale(1.04); }
.ez-carte-voile { position: absolute; inset: 0; display: grid; place-items: center; padding: 1rem; backdrop-filter: blur(4px) saturate(.6); background: rgb(255 255 255 / .35); }
.ez-carte-accord { background: var(--ez-fond); color: var(--ez-texte); border-radius: calc(var(--ez-rayon) + 4px); box-shadow: 0 18px 40px -18px rgb(0 0 0 / .45); padding: 1.1rem 1.2rem; display: grid; gap: .5rem; justify-items: center; text-align: center; max-width: 26rem; }
.ez-carte-accord > .ez-icone { width: 1.6rem; height: 1.6rem; color: var(--ez-accent); }
.ez-carte-accord-titre { font-weight: 700; margin: 0; font-size: 1.05rem; }
.ez-carte-accord .ez-externe-avis { margin: 0; font-size: .88rem; color: var(--ez-texte-doux); }
.ez-carte-accord .ez-externe-boutons { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: .2rem 0 0; }
.ez-carte-accord .ez-bouton { display: inline-flex; align-items: center; gap: .35rem; padding: .55rem 1rem; }
.ez-carte-accord .ez-bouton .ez-icone { width: .9rem; height: .9rem; }
.ez-carte-toujours { font-size: .82rem; color: var(--ez-texte-doux); display: inline-flex; gap: .4rem; align-items: center; cursor: pointer; }
.ez-carte-externe.ez-charge { aspect-ratio: 16 / 8; background: #e8ecef; }
.ez-carte-externe.ez-charge iframe { border-radius: 0; }
@media (max-width: 40rem) { .ez-carte-externe { aspect-ratio: auto; min-height: 22rem; } .ez-carte-externe.ez-charge { aspect-ratio: 4 / 5; min-height: 0; } }
.ez-carte-fiche { background: var(--ez-fond); color: var(--ez-texte); border-radius: calc(var(--ez-rayon) + 4px); box-shadow: 0 18px 40px -18px rgb(0 0 0 / .45); padding: 1.1rem 1.2rem; display: grid; gap: .55rem; align-content: start; border: 1px solid var(--ez-bord); max-width: 24rem; }
.ez-carte-nom { font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.15rem; margin: 0; }
.ez-carte-ligne { display: flex; gap: .5rem; align-items: flex-start; margin: 0; color: var(--ez-texte-doux); font-size: .92rem; }
.ez-carte-ligne .ez-icone { margin-top: .15rem; color: var(--ez-accent); }
.ez-carte-etat { margin: 0 !important; font-size: .9rem; }
.ez-carte-boutons { display: flex; flex-wrap: wrap; gap: .5rem; margin: .2rem 0 0; }
.ez-carte-boutons .ez-bouton, .ez-carte-pastille .ez-bouton { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem 1rem; }
/* card */
.ez-carte-card { position: relative; }
.ez-carte-card .ez-carte-externe { min-height: 24rem; }
.ez-carte-card .ez-carte-fiche { position: absolute; left: 1.5rem; top: 50%; transform: translateY(-50%); width: 19rem; z-index: 2; }
.ez-carte-card .ez-carte-voile { justify-items: end; padding-right: 2rem; }
.ez-carte-card.ez-carte-sans-cadre .ez-carte-fiche { position: static; transform: none; width: auto; }
@media (max-width: 52rem) { .ez-carte-card .ez-carte-externe { min-height: 22rem; } .ez-carte-card .ez-carte-fiche { position: relative; left: auto; top: auto; transform: none; width: auto; max-width: none; margin: .8rem 0 0; } .ez-carte-card .ez-carte-voile { justify-items: center; padding-right: 1rem; } }
/* access */
.ez-carte-access { display: grid; grid-template-columns: 1.25fr 1fr; gap: 1.6rem; align-items: start; }
.ez-carte-access.ez-carte-sans-cadre { grid-template-columns: 1fr; max-width: 40rem; }
.ez-carte-access .ez-carte-externe { aspect-ratio: 4 / 3; }
.ez-carte-comment { display: grid; gap: .3rem; }
.ez-carte-acces { list-style: none; margin: 0; padding: 0; }
.ez-carte-acces li { display: grid; grid-template-columns: auto 1fr; gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-carte-acces-icone { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); }
.ez-carte-acces b { display: block; }
.ez-carte-acces li > span:last-child > span { color: var(--ez-texte-doux); font-size: .92rem; }
.ez-carte-access .ez-carte-boutons { margin-top: .7rem; }
@media (max-width: 52rem) { .ez-carte-access { grid-template-columns: 1fr; } }
/* plan */
.ez-carte-plan { display: grid; grid-template-columns: 1.25fr 1fr; gap: 1.6rem; align-items: center; }
.ez-carte-plan-cadre { display: block; border-radius: var(--ez-rayon); overflow: hidden; border: 1px solid var(--ez-bord); }
.ez-carte-plan-image { width: 100%; height: auto; display: block; }
.ez-carte-applis { display: grid; gap: .55rem; }
.ez-carte-appli { display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border: 1.5px solid var(--ez-bord); border-radius: var(--ez-rayon); color: var(--ez-texte); text-decoration: none; font-weight: 600; }
.ez-carte-appli:hover, .ez-carte-appli:focus-visible { border-color: var(--ez-accent); }
.ez-carte-appli > .ez-icone { margin-left: auto; color: var(--ez-texte-doux); width: .9rem; height: .9rem; }
.ez-carte-appli-logo { width: 1.8rem; height: 1.8rem; border-radius: 8px; display: grid; place-items: center; color: #ffffff; font-weight: 700; font-size: .8rem; flex: none; }
.ez-carte-appli-google .ez-carte-appli-logo { background: #34a853; }
.ez-carte-appli-waze .ez-carte-appli-logo { background: #33ccff; }
.ez-carte-appli-apple .ez-carte-appli-logo { background: #111111; }
.ez-carte-appli-apple .ez-carte-appli-logo::before { content: ""; width: .7rem; height: .7rem; border: 2px solid #ffffff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.ez-carte-note { display: flex; gap: .4rem; align-items: center; margin: .2rem 0 0; font-size: .8rem; color: var(--ez-texte-doux); }
@media (max-width: 52rem) { .ez-carte-plan { grid-template-columns: 1fr; } }
/* places */
.ez-carte-places { display: grid; grid-template-columns: 20rem 1fr; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; }
.ez-carte-places.ez-carte-sans-cadre { grid-template-columns: 1fr; }
.ez-carte-places > *, .ez-carte-access > *, .ez-carte-plan > * { min-width: 0; }
.ez-carte-places .ez-carte-externe { border: 0; border-radius: 0; min-height: 24rem; height: 100%; aspect-ratio: auto; }
.ez-carte-liste { position: relative; list-style: none; margin: 0; padding: 0; max-height: 30rem; overflow-y: auto; }
.ez-carte-lieu { border-bottom: 1px solid var(--ez-bord); padding: .2rem 0 .7rem; }
.ez-carte-lieu > button { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: auto 1fr; gap: .8rem; width: 100%; padding: .8rem 1rem .3rem; }
.ez-carte-lieu > button:focus-visible { outline: 2px solid var(--ez-accent); outline-offset: -2px; }
.ez-carte-lieu.ez-actif { background: color-mix(in srgb, var(--ez-primaire) 7%, transparent); }
.ez-carte-num { width: 1.7rem; height: 1.7rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .8rem; background: var(--ez-surface); }
.ez-carte-lieu.ez-actif .ez-carte-num { background: #dc2626; color: #ffffff; }
.ez-carte-lieu-texte { display: grid; gap: .1rem; }
.ez-carte-lieu-texte > span { font-size: .88rem; color: var(--ez-texte-doux); }
.ez-carte-lien { margin-left: 3.5rem; display: inline-flex; gap: .3rem; align-items: center; font-size: .85rem; font-weight: 700; color: var(--ez-accent); text-decoration: none; }
.ez-carte-lien .ez-icone { width: .85rem; height: .85rem; }
@media (max-width: 52rem) {
  .ez-carte-places { grid-template-columns: 1fr; }
  .ez-carte-places .ez-carte-externe { min-height: 20rem; order: -1; }
  .ez-carte-liste { display: flex; gap: .5rem; overflow-x: auto; max-height: none; padding: .7rem; }
  .ez-carte-lieu { flex: 0 0 auto; max-width: 16rem; border: 1.5px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: 0 0 .5rem; }
  .ez-carte-lieu > button { padding: .6rem .7rem .2rem; }
  .ez-carte-lien { margin-left: 3.2rem; }
}
/* band */
.ez-carte-bande-bloc > .ez-conteneur { margin-bottom: 1rem; }
.ez-carte-band { position: relative; }
.ez-carte-band .ez-carte-externe { border: 0; border-radius: 0; aspect-ratio: auto; min-height: 26rem; height: 26rem; }
.ez-carte-band .ez-carte-externe.ez-charge { aspect-ratio: auto; }
.ez-carte-band .ez-carte-voile { align-items: start; padding: 1.2rem 1rem 6rem; }
.ez-carte-pastille { position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%); z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.1rem; background: var(--ez-fond); color: var(--ez-texte); border-radius: 999px; padding: .55rem .6rem .55rem 1.3rem; box-shadow: 0 14px 34px -14px rgb(0 0 0 / .45); white-space: nowrap; max-width: calc(100% - 2rem); }
.ez-carte-pastille > span { color: var(--ez-texte-doux); font-size: .92rem; }
.ez-carte-band.ez-carte-sans-cadre .ez-carte-pastille { position: static; transform: none; margin: 0 auto; width: fit-content; }
.ez-carte-band.ez-carte-voile-ok .ez-carte-voile { display: grid; }
@media (max-width: 52rem) { .ez-carte-band .ez-carte-externe { height: auto; min-height: 22rem; } .ez-carte-pastille { position: static; transform: none; border-radius: 0; white-space: normal; box-shadow: none; border-bottom: 1px solid var(--ez-bord); max-width: none; padding: .9rem 1rem; } .ez-carte-band .ez-carte-voile { align-items: center; padding-top: 1rem; } }

/* ===== 2.19 — En-tête et menu (site.json → header) ===== */
:root { --ez-v-degrade: var(--ez-degrade, linear-gradient(120deg, var(--ez-primaire), color-mix(in srgb, var(--ez-accent) 78%, var(--ez-primaire)))); }
.ez-entete-fin { display: flex; align-items: center; gap: .9rem; }
.ez-entete-tel { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--ez-texte); text-decoration: none; white-space: nowrap; }
.ez-entete-tel .ez-icone, .ez-entete-appel .ez-icone, .ez-menu-actions .ez-icone { width: 1.1rem; height: 1.1rem; flex: none; }
.ez-entete-bouton { white-space: nowrap; padding: .55rem 1.1rem; }
.ez-entete-appel { display: none; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); order: 2; }
.ez-burger .ez-entete-appel { display: grid; }
.ez-menu-actions { display: none; }
.ez-entete-serre .ez-entete-tel { font-size: 0; gap: 0; padding: .55rem; }
.ez-entete-serre .ez-entete-tel .ez-icone { width: 1.25rem; height: 1.25rem; }
html:not(.ez-burger) .ez-entete-fin { padding-left: .9rem; border-left: 1px solid var(--ez-bord); }
.ez-burger .ez-entete-fin { flex-direction: column; align-items: stretch; padding-top: .6rem; border-top: 1px solid var(--ez-bord); }
.ez-burger .ez-entete-fin .ez-bouton { text-align: center; }
/* A : page en cours soulignée */
html:not(.ez-burger) :is(.ez-entete-action, .ez-entete-mega, .ez-entete-transparent) .ez-navigation > ul > li > a[aria-current="page"],
html:not(.ez-burger) :is(.ez-entete-action, .ez-entete-mega, .ez-entete-transparent) .ez-navigation > ul > li.ez-actif > a { box-shadow: inset 0 -2px 0 var(--ez-accent); border-radius: 0; font-weight: 700; }
/* B : logo centré, menu en dessous */
html:not(.ez-burger) .ez-entete-centre .ez-entete-ligne { flex-direction: column; gap: .25rem; padding-top: 1.1rem; }
html:not(.ez-burger) .ez-entete-centre .ez-marque { margin: 0; font-size: 1.45rem; letter-spacing: .02em; }
html:not(.ez-burger) .ez-entete-centre .ez-menu { width: 100%; justify-content: center; border-top: 1px solid var(--ez-bord); margin-top: .5rem; padding: .35rem 0; }
html:not(.ez-burger) .ez-entete-centre .ez-navigation > ul { justify-content: center; gap: .6rem; }
html:not(.ez-burger) .ez-entete-centre .ez-navigation > ul > li > a { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: 600; }
.ez-entete-phrase { margin: 0; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-burger .ez-entete-phrase { display: none; }
/* C : transparent sur la photo du hero, blanc au défilement (avec le script ; sans lui, en-tête normal) */
.js .ez-entete-transparent { background: transparent; border-bottom-color: transparent; margin-bottom: calc(-1 * var(--ez-hauteur-entete) - 1px); transition: background .3s, box-shadow .3s, border-color .3s; }
.js .ez-entete-transparent:not(.ez-entete-defilee) :is(.ez-marque, .ez-navigation > ul > li > a, .ez-entete-tel, .ez-bouton-menu, .ez-langues a, .ez-loupe, .ez-bouton-sous-menu) { color: #fff; text-shadow: 0 1px 8px rgb(0 0 0 / .35); }
.js .ez-entete-transparent:not(.ez-entete-defilee) .ez-bouton-menu { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .5); }
.js .ez-entete-transparent:not(.ez-entete-defilee) .ez-entete-bouton { background: #fff; color: var(--ez-primaire); }
.js .ez-entete-transparent:not(.ez-entete-defilee) .ez-navigation a:hover { background: rgb(255 255 255 / .14); }
.js .ez-entete-transparent:not(.ez-entete-defilee) .ez-entete-fin { border-color: rgb(255 255 255 / .35); }
.js .ez-entete-transparent.ez-entete-defilee { background: var(--ez-fond); border-bottom-color: var(--ez-bord); box-shadow: 0 6px 24px -14px rgb(0 0 0 / .4); }
.js .ez-entete-transparent + * .ez-bloc-hero.ez-hero-avec-image:first-child, .js .ez-entete-transparent ~ .ez-contenu > .ez-bloc-hero.ez-hero-avec-image:first-child { padding-top: calc(var(--ez-hauteur-entete) + var(--ez-espace) * 2); }
/* D : capsule */
.ez-entete-capsule { background: transparent; border: 0; padding: .55rem 0; }
.ez-entete-capsule .ez-entete-ligne { background: var(--ez-fond); border: 1px solid var(--ez-bord); border-radius: 999px; box-shadow: 0 10px 30px -16px rgb(15 30 60 / .35); padding: .3rem .45rem .3rem 1.3rem; min-height: calc(var(--ez-hauteur-entete) - .6rem); }
html:not(.ez-burger) .ez-entete-capsule .ez-navigation > ul { background: var(--ez-surface); border-radius: 999px; padding: .25rem; gap: .1rem; }
html:not(.ez-burger) .ez-entete-capsule .ez-navigation > ul > li > a { border-radius: 999px; padding: .4rem .9rem; }
html:not(.ez-burger) .ez-entete-capsule .ez-navigation > ul > li > a[aria-current="page"] { background: var(--ez-fond); box-shadow: 0 1px 4px rgb(0 0 0 / .12); font-weight: 700; color: var(--ez-texte); }
.ez-entete-capsule .ez-entete-bouton { border-radius: 999px; }
html:not(.ez-burger) .ez-entete-capsule .ez-entete-fin { border: 0; padding: 0; }
.ez-burger .ez-entete-capsule .ez-entete-ligne { border-radius: calc(var(--ez-rayon) * 2.2); padding: .3rem .45rem .3rem 1rem; }
.ez-burger .ez-entete-capsule .ez-bouton-menu { border-radius: 50%; background: var(--ez-surface); border-color: transparent; }
/* E : grand menu déroulant */
html:not(.ez-burger) .ez-entete-mega .ez-entete-ligne { position: relative; }
html:not(.ez-burger) .ez-entete-mega .ez-navigation li { position: static; }
html:not(.ez-burger) .ez-entete-mega .ez-sous-menu { left: 0; right: 0; top: 100%; min-width: 0; border-radius: 0 0 calc(var(--ez-rayon) * 1.5) calc(var(--ez-rayon) * 1.5); padding: 1.1rem 1.25rem; box-shadow: 0 24px 40px -24px rgb(0 0 0 / .35); }
html:not(.ez-burger) .ez-entete-mega .ez-a-sous-menu:hover > .ez-sous-menu, html:not(.ez-burger) .ez-entete-mega .ez-a-sous-menu:focus-within > .ez-sous-menu,
html:not(.ez-burger) .ez-entete-mega .ez-bouton-sous-menu[aria-expanded="true"] + .ez-sous-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.15fr); gap: .3rem 1rem; align-items: start; }
html:not(.ez-burger) .ez-entete-mega .ez-sous-menu > li:not(.ez-mega-encart) > a { display: flex; gap: .75rem; align-items: flex-start; padding: .65rem; border-radius: calc(var(--ez-rayon) * 1.4); }
.ez-mega-icone { display: grid; place-items: center; flex: none; width: 2.4rem; height: 2.4rem; border-radius: var(--ez-rayon); background: color-mix(in srgb, var(--ez-accent) 10%, transparent); color: var(--ez-accent); }
.ez-mega-icone .ez-icone { width: 1.2rem; height: 1.2rem; }
.ez-mega-texte { display: grid; gap: .1rem; }
.ez-mega-nom { font-weight: 700; color: var(--ez-texte); }
.ez-mega-desc { font-size: .86rem; font-weight: 400; color: var(--ez-texte-doux); line-height: 1.35; }
.ez-mega-encart { grid-column: 4; grid-row: 1 / span 3; border-radius: calc(var(--ez-rayon) * 1.4); overflow: hidden; background: var(--ez-surface); }
.ez-mega-encart img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.ez-mega-encart > div { padding: .7rem .9rem; }
.ez-mega-encart > div, .ez-mega-encart > div > a { display: grid; gap: .25rem; justify-items: start; color: var(--ez-texte); text-decoration: none; }
.ez-mega-encart > div > a:hover b { text-decoration: underline; }
.ez-burger .ez-mega-encart, .ez-burger .ez-mega-desc { display: none; }
.ez-burger .ez-mega-icone { width: 1.8rem; height: 1.8rem; background: none; }
.ez-burger .ez-entete-mega .ez-sous-menu a { display: flex; gap: .4rem; align-items: center; }
/* F : menu plein écran sur téléphone */
.ez-burger .ez-entete-plein .ez-marque, .ez-burger .ez-entete-plein .ez-bouton-menu, .ez-burger .ez-entete-plein .ez-entete-appel { position: relative; z-index: 2; }
.ez-burger .ez-entete-plein .ez-menu.ez-ouvert { position: fixed; inset: 0; z-index: 1; max-height: none; padding: calc(var(--ez-hauteur-entete) + 1rem) 1rem 1.5rem; background: var(--ez-fond); overflow-y: auto; gap: 1rem; }
.ez-burger .ez-entete-plein .ez-menu.ez-ouvert .ez-navigation > ul > li > a { font-family: var(--ez-police-titres); font-size: 1.45rem; font-weight: 700; padding: .7rem .2rem; border-bottom: 1px solid var(--ez-bord); border-radius: 0; color: var(--ez-texte); }
.ez-burger .ez-entete-plein .ez-menu.ez-ouvert .ez-navigation > ul > li > a[aria-current="page"] { color: var(--ez-accent); }
.ez-burger .ez-entete-plein .ez-menu.ez-ouvert .ez-a-sous-menu > .ez-bouton-sous-menu { border-bottom: 1px solid var(--ez-bord); border-radius: 0; height: auto; align-self: stretch; }
.ez-burger .ez-entete-plein .ez-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: auto; }
.ez-menu-actions .ez-bouton { display: inline-flex; gap: .45rem; justify-content: center; align-items: center; text-align: center; }
html.ez-menu-plein-ouvert, html.ez-menu-plein-ouvert body { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) { .ez-burger .ez-entete-plein .ez-menu.ez-ouvert { animation: ez-menu-plein .25s ease-out; } }
@keyframes ez-menu-plein { from { opacity: 0; transform: translateY(-.6rem); } to { opacity: 1; transform: none; } }
@media print { .ez-entete-appel, .ez-menu-actions { display: none !important; } }

/* ===== 2.19 — Bandeau compact des pages (site.json → page_banner) ===== */
.ez-bandeau-page { position: relative; overflow: hidden; padding: calc(var(--ez-espace) * 1.3) 0 calc(var(--ez-espace) * 1.5); margin-bottom: calc(var(--ez-espace) * .4); }
.ez-bandeau-page-gradient { background: var(--ez-v-degrade); color: var(--ez-sur-primaire); }
.ez-bandeau-page-primary { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-bandeau-page-surface { background: var(--ez-surface); color: var(--ez-texte); border-bottom: 1px solid var(--ez-bord); }
.ez-bandeau-page:not(.ez-bandeau-page-surface)::before, .ez-bandeau-page:not(.ez-bandeau-page-surface)::after { content: ""; position: absolute; border-radius: 50%; background: rgb(255 255 255 / .08); pointer-events: none; }
.ez-bandeau-page::before { right: -4rem; top: -4rem; width: 16rem; height: 16rem; }
.ez-bandeau-page::after { right: 4rem; bottom: -8rem; width: 12rem; height: 12rem; }
.ez-bandeau-page .ez-conteneur { position: relative; z-index: 1; }
.ez-bandeau-page .ez-ariane { padding: 0 0 .5rem; }
.ez-bandeau-page:not(.ez-bandeau-page-surface) .ez-ariane :is(ol, a, [aria-current]) { color: inherit; }
.ez-bandeau-page:not(.ez-bandeau-page-surface) .ez-ariane ol { opacity: .88; }
.ez-bandeau-page-titre { margin: 0; font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.3rem); color: inherit; }
.ez-bandeau-page-surface .ez-bandeau-page-titre { color: var(--ez-primaire); }
.ez-bandeau-page-phrase { margin: .5rem 0 0; max-width: 60ch; opacity: .9; }

/* ===== 2.19 — Bannière d'accueil (bloc hero, champ presentation) ===== */
.ez-hero-pres .ez-hero-titre { text-wrap: balance; }
.ez-hero-pres .ez-hero-sous-titre { font-size: 1.12rem; max-width: 52ch; }
.ez-hero-pres .ez-boutons, .ez-hero-pres .ez-hero-texte > p:has(> .ez-bouton) { margin-bottom: 0; }
.ez-hero-preuve { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin: 1rem 0 0; font-size: .92rem; color: var(--ez-texte-doux); }
.ez-hero-preuve b { color: var(--ez-texte); }
.ez-etoiles-or .ez-etoiles-pleines polygon { fill: #f5a50b; }
.ez-hero-preuve .ez-etoiles svg { width: 5.4rem; height: 1.08rem; }
/* centered */
.ez-bloc-hero.ez-hero-centered { text-align: center; padding: calc(var(--ez-espace) * 3.2) 0 calc(var(--ez-espace) * 2.8); background: radial-gradient(60% 80% at 20% 0%, color-mix(in srgb, var(--ez-accent) 16%, transparent), transparent 70%), radial-gradient(50% 70% at 90% 20%, color-mix(in srgb, var(--ez-primaire) 12%, transparent), transparent 70%), var(--ez-fond); }
.ez-hero-centered .ez-hero-texte, .ez-hero-showcase .ez-hero-texte { margin: 0 auto; }
.ez-hero-centered .ez-hero-texte { display: grid; justify-items: center; }
.ez-hero-pres.ez-hero-avec-image .ez-surligne, .ez-hero-pres.ez-hero-degrade .ez-surligne { color: inherit; text-decoration: underline; text-decoration-color: var(--ez-accent); text-decoration-thickness: .08em; text-underline-offset: .12em; }
.ez-hero-centered .ez-hero-titre { font-size: clamp(2.1rem, 1.4rem + 3vw, 3.4rem); max-width: 18ch; }
.ez-hero-centered .ez-boutons, .ez-hero-centered .ez-hero-preuve { justify-content: center; }
.ez-hero-pastille { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1.1rem; padding: .3rem .8rem .3rem .35rem; border-radius: 999px; background: var(--ez-fond); border: 1px solid var(--ez-bord); font-size: .86rem; font-weight: 600; }
.ez-hero-pastille b { background: var(--ez-accent); color: var(--ez-sur-accent); border-radius: 999px; padding: .1rem .55rem; font-size: .74rem; }
.ez-hero-pastille:not(:has(b)) { padding-left: .8rem; }
/* floating */
.ez-bloc-hero.ez-hero-floating, .ez-bloc-hero.ez-hero-checklist { background: var(--ez-fond); padding: calc(var(--ez-espace) * 2.4) 0; overflow: visible; }
.ez-hero-floating .ez-hero-grille, .ez-hero-checklist .ez-hero-grille { display: grid; gap: calc(var(--ez-espace) * 1.6); align-items: center; }
@media (min-width: 52rem) { .ez-hero-floating .ez-hero-grille { grid-template-columns: 1.05fr 1fr; } .ez-hero-checklist .ez-hero-grille { grid-template-columns: 1fr 1.1fr; } }
.ez-hero-floating .ez-hero-visuel { position: relative; margin: 0 .6rem; }
.ez-hero-floating .ez-hero-visuel-image { width: 100%; aspect-ratio: 4 / 4.2; object-fit: cover; border-radius: calc(var(--ez-rayon) * 2); }
@media (max-width: 51.99rem) { .ez-hero-floating .ez-hero-visuel-image { aspect-ratio: 4 / 3; } }
.ez-hero-encart { position: absolute; display: grid; gap: .1rem; background: var(--ez-fond); color: var(--ez-texte-doux); border-radius: 14px; box-shadow: 0 16px 34px -14px rgb(15 30 60 / .45); padding: .6rem .9rem; font-size: .85rem; line-height: 1.3; max-width: 14rem; }
.ez-hero-encart b { font-family: var(--ez-police-titres); font-size: 1.1rem; color: var(--ez-texte); }
.ez-hero-encart .ez-etoiles svg { width: 5rem; height: 1rem; }
.ez-hero-encart-1 { left: -1rem; bottom: 1.6rem; }
.ez-hero-encart-2 { right: -.8rem; top: 1.3rem; }
@media (max-width: 51.99rem) { .ez-hero-encart-1 { left: .5rem; bottom: -1rem; } .ez-hero-encart-2 { right: .5rem; top: -1rem; } }
/* fullscreen */
.ez-bloc-hero.ez-hero-fullscreen { min-height: calc(100svh - var(--ez-hauteur-entete)); display: flex; align-items: flex-end; padding-bottom: calc(var(--ez-espace) * 3.4); }
.ez-hero-fullscreen.ez-hero-avec-image::after { background: linear-gradient(to top, rgb(5 10 20 / .78) 10%, rgb(5 10 20 / .15) 60%, rgb(5 10 20 / .35)); }
.ez-hero-fullscreen .ez-hero-texte { max-width: 44rem; }
.ez-hero-fullscreen .ez-hero-titre { font-size: clamp(2.2rem, 1.4rem + 3.4vw, 3.6rem); }
.ez-hero-fullscreen.ez-hero-avec-image :is(.ez-hero-titre, .ez-hero-sous-titre, .ez-hero-preuve, .ez-hero-preuve b) { color: #fff; }
.ez-hero-fullscreen.ez-hero-degrade { background: var(--ez-v-degrade); color: var(--ez-sur-primaire); }
.ez-hero-defiler { position: absolute; z-index: 1; left: 50%; bottom: .9rem; transform: translateX(-50%); display: grid; justify-items: center; gap: .15rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #fff; opacity: .85; }
.ez-hero-defiler > span { width: 1.6rem; height: 2.5rem; border: 2px solid rgb(255 255 255 / .8); border-radius: 1rem; position: relative; }
.ez-hero-defiler > span::after { content: ""; position: absolute; left: 50%; top: .45rem; width: 4px; height: .5rem; border-radius: 2px; background: #fff; transform: translateX(-50%); animation: ez-defiler 1.6s infinite; }
@keyframes ez-defiler { 0% { opacity: 1; top: .45rem; } 100% { opacity: 0; top: 1.25rem; } }
@media (prefers-reduced-motion: reduce) { .ez-hero-defiler > span::after { animation: none; } }
@media (max-height: 34rem) { .ez-hero-defiler { display: none; } }
/* checklist */
.ez-v-coches { list-style: none; margin: 0 0 1.3rem; padding: 0; display: grid; gap: .55rem; }
.ez-v-coches li { display: flex; gap: .65rem; align-items: flex-start; font-weight: 600; }
.ez-v-coche { display: grid; place-items: center; flex: none; width: 1.35rem; height: 1.35rem; margin-top: .1rem; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-v-coche .ez-icone { width: .85rem; height: .85rem; stroke-width: 3; }
.ez-hero-mosaique { display: grid; gap: .75rem; height: clamp(16rem, 34vw, 24rem); }
.ez-hero-mosaique img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--ez-rayon); }
.ez-hero-mosaique-3 { grid-template-columns: 1.2fr 1fr; grid-template-rows: 1fr 1fr; }
.ez-hero-mosaique-3 img:first-child { grid-row: 1 / 3; }
.ez-hero-mosaique-2 { grid-template-columns: 1.2fr 1fr; }
/* showcase */
.ez-bloc-hero.ez-hero-showcase { text-align: center; padding: calc(var(--ez-espace) * 2.8) 0 0; background: linear-gradient(var(--ez-surface), var(--ez-fond)); }
.ez-hero-showcase .ez-hero-texte { display: grid; justify-items: center; }
.ez-hero-showcase .ez-hero-titre { max-width: 20ch; }
.ez-hero-showcase .ez-boutons { justify-content: center; }
.ez-hero-vitrine { margin: calc(var(--ez-espace) * 1.6) auto 0; max-width: 52rem; border-radius: calc(var(--ez-rayon) * 1.6) calc(var(--ez-rayon) * 1.6) 0 0; overflow: hidden; box-shadow: 0 -10px 40px -20px rgb(15 30 60 / .35); }
.ez-hero-vitrine img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
@media (max-width: 40rem) { .ez-hero-vitrine img { aspect-ratio: 4 / 3; } }
.ez-hero-confiance { padding: calc(var(--ez-espace) * 1.1) 0 calc(var(--ez-espace) * 1.2); border-top: 1px solid var(--ez-bord); display: grid; gap: .8rem; justify-items: center; }
.ez-hero-confiance p { margin: 0; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-hero-confiance ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .8rem 2rem; }
.ez-hero-confiance span { font-family: var(--ez-police-titres); font-weight: 700; color: var(--ez-texte-doux); opacity: .75; }
.ez-hero-logo { max-height: 2.2rem; width: auto; filter: grayscale(1); opacity: .75; }
/* split */
.ez-bloc-hero.ez-hero-split { padding: 0; background: var(--ez-surface); }
.ez-hero-moities { display: grid; min-height: 26rem; }
@media (min-width: 52rem) { .ez-hero-moities { grid-template-columns: 1fr 1fr; } }
.ez-hero-split .ez-hero-texte { padding: calc(var(--ez-espace) * 2.2) max(1rem, calc((100vw - var(--ez-largeur)) / 2 + 1.5rem)) calc(var(--ez-espace) * 2.2) max(1rem, calc((100vw - var(--ez-largeur)) / 2 + 1.5rem)); align-self: center; }
@media (min-width: 52rem) { .ez-hero-split .ez-hero-texte { padding-right: calc(var(--ez-espace) * 1.6); } }
.ez-hero-moitie { margin: 0; min-height: 15rem; }
.ez-hero-moitie img, .ez-hero-moitie .ez-image-manquante { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
@media (max-width: 51.99rem) { .ez-hero-moitie { order: -1; min-height: 0; } .ez-hero-moitie img { height: auto; aspect-ratio: 16 / 10; } }
.ez-hero-raccourcis { display: grid; grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr)); gap: .55rem; margin-top: 1.3rem; }
.ez-hero-raccourcis > * { display: grid; justify-items: center; gap: .25rem; padding: .8rem .4rem; border-radius: calc(var(--ez-rayon) * 1.5); background: var(--ez-fond); border: 1px solid var(--ez-bord); font-size: .85rem; font-weight: 700; color: var(--ez-texte); text-decoration: none; text-align: center; }
.ez-hero-raccourcis a:hover { border-color: var(--ez-accent); }
.ez-hero-raccourcis .ez-v-icone { color: var(--ez-accent); }
.ez-hero-raccourcis .ez-v-icone .ez-icone { width: 1.3rem; height: 1.3rem; }
.ez-hero-raccourcis .ez-hero-etat { margin: 0; font-size: .74rem; font-weight: 600; }

/* ===== 2.19 — Appel à l'action (bloc call-to-action, champ presentation) ===== */
.ez-appel-pres h2 { margin-bottom: .5rem; }
.ez-appel-corps > :last-child { margin-bottom: 0; }
.ez-appel-pres .ez-boutons, .ez-appel-pres p:has(> .ez-bouton) { margin: 1rem 0 0; }
.ez-appel-note { margin: .7rem 0 0; font-size: .85rem; color: var(--ez-texte-doux); }
.ez-appel-photo { display: grid; border-radius: calc(var(--ez-rayon) * 1.6); overflow: hidden; background: var(--ez-surface); }
@media (min-width: 48rem) { .ez-appel-photo { grid-template-columns: 1fr 1fr; } }
.ez-appel-visuel { margin: 0; min-height: 14rem; }
.ez-appel-visuel img, .ez-appel-visuel .ez-image-manquante { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ez-appel-photo .ez-appel-texte { padding: calc(var(--ez-espace) * 1.5); align-self: center; }
.ez-bloc.ez-appel-bande { background: var(--ez-v-degrade); color: var(--ez-sur-primaire); padding: calc(var(--ez-espace) * 2.6) 0; text-align: center; position: relative; overflow: hidden; }
.ez-appel-bande::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgb(255 255 255 / .16) 1.5px, transparent 1.5px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 40%, transparent 60%, #000); mask-image: linear-gradient(90deg, #000, transparent 40%, transparent 60%, #000); }
.ez-appel-bande .ez-conteneur { position: relative; }
.ez-appel-bande .ez-appel-texte { max-width: 40rem; margin: 0 auto; }
.ez-appel-bande h2 { color: inherit; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.2rem); text-wrap: balance; }
.ez-appel-bande .ez-boutons { justify-content: center; }
.ez-appel-bande .ez-bouton:not(.ez-bouton-secondaire) { background: #fff; color: var(--ez-primaire); }
.ez-appel-bande .ez-bouton-secondaire { color: #fff; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .75); }
.ez-appel-bande .ez-appel-note { color: inherit; opacity: .85; }
.ez-appel-contact { display: grid; gap: 1rem 1.5rem; align-items: center; padding: calc(var(--ez-espace) * 1.1) calc(var(--ez-espace) * 1.2); border: 1px solid var(--ez-bord); border-radius: calc(var(--ez-rayon) * 1.6); background: var(--ez-fond); box-shadow: 0 14px 40px -24px rgb(15 30 60 / .35); grid-template-columns: auto 1fr; }
@media (min-width: 52rem) { .ez-appel-contact { grid-template-columns: auto 1fr auto; } .ez-appel-contact.ez-sans-photo { grid-template-columns: 1fr auto; } }
.ez-appel-contact.ez-sans-photo { grid-template-columns: 1fr; }
.ez-appel-personne { display: grid; justify-items: center; gap: .3rem; }
.ez-appel-avatar { width: 5.25rem; height: 5.25rem; border-radius: 50%; object-fit: cover; }
.ez-appel-avatar.ez-avatar-initiales { display: grid; place-items: center; background: var(--ez-surface); color: var(--ez-primaire); font-weight: 700; font-size: 1.5rem; }
.ez-appel-etat .ez-horaires-etat { margin: 0; font-size: .78rem; }
.ez-appel-qui { margin: 0 0 .4rem; display: grid; }
.ez-appel-qui b { font-family: var(--ez-police-titres); font-size: 1.1rem; }
.ez-appel-qui span { color: var(--ez-texte-doux); font-size: .9rem; }
.ez-appel-contact h2 { font-size: 1.35rem; }
.ez-appel-actions { display: grid; gap: .6rem; }
@media (max-width: 51.99rem) { .ez-appel-actions { grid-column: 1 / -1; } }
.ez-appel-numero { display: inline-flex; gap: .5rem; align-items: center; font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.35rem; color: var(--ez-texte); text-decoration: none; white-space: nowrap; }
.ez-appel-numero .ez-v-icone { color: var(--ez-accent); }
.ez-appel-rangee { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.ez-appel-rangee .ez-bouton { flex: 1; display: inline-flex; gap: .4rem; justify-content: center; align-items: center; white-space: nowrap; }
.ez-appel-rangee .ez-v-icone .ez-icone, .ez-appel-numero .ez-icone { width: 1.15rem; height: 1.15rem; }
.ez-bouton.ez-bouton-whatsapp { background: #128c4b; color: #fff; }
.ez-appel-offre { display: grid; gap: calc(var(--ez-espace) * 1.2); align-items: center; padding: calc(var(--ez-espace) * 1.4); border-radius: calc(var(--ez-rayon) * 1.6); background: color-mix(in srgb, var(--ez-primaire) 7%, var(--ez-fond)); border: 1px solid color-mix(in srgb, var(--ez-primaire) 18%, transparent); }
@media (min-width: 48rem) { .ez-appel-offre { grid-template-columns: 1.2fr 1fr; } }
.ez-appel-offre .ez-v-coches { margin: 1rem 0 0; }
.ez-appel-encadre { display: grid; gap: .4rem; text-align: center; background: var(--ez-fond); border-radius: var(--ez-rayon); padding: calc(var(--ez-espace) * 1.1); box-shadow: 0 10px 30px -20px rgb(15 30 60 / .4); }
.ez-appel-encadre .ez-boutons, .ez-appel-encadre p:has(> .ez-bouton) { justify-content: center; margin-top: .4rem; }
.ez-appel-encadre .ez-bouton { width: 100%; text-align: center; }
.ez-appel-prix-libelle { margin: 0; font-size: .85rem; color: var(--ez-texte-doux); }
.ez-appel-prix, .ez-appel-encadre .ez-prix-vente { margin: 0; font-family: var(--ez-police-titres); font-size: 1.8rem; font-weight: 700; color: var(--ez-primaire); }
.ez-appel-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.1rem; padding: 1rem 1.4rem; border-radius: 999px; background: var(--ez-surface); }
@media (max-width: 40rem) { .ez-appel-ligne { border-radius: calc(var(--ez-rayon) * 1.6); } .ez-appel-ligne > .ez-bouton { width: 100%; text-align: center; } }
.ez-appel-icone { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); flex: none; }
.ez-appel-icone .ez-icone { width: 1.2rem; height: 1.2rem; }
.ez-appel-ligne-texte { margin: 0; flex: 1 1 16rem; }
.ez-appel-ligne-texte b { font-family: var(--ez-police-titres); font-size: 1.08rem; color: var(--ez-texte); }
.ez-appel-ligne-texte span { color: var(--ez-texte-doux); }
.ez-appel-ligne > .ez-bouton { margin-left: auto; }
.ez-bloc.ez-appel-pres-overlap { padding-top: 0; }
.ez-appel-chevauche-haut { height: 11rem; background: var(--ez-v-degrade); overflow: hidden; }
.ez-appel-chevauche-haut img { width: 100%; height: 100%; object-fit: cover; }
.ez-appel-chevauche { position: relative; margin: -6rem auto 0; max-width: 60rem; background: var(--ez-fond); border-radius: calc(var(--ez-rayon) * 1.6); box-shadow: 0 22px 50px -24px rgb(15 30 60 / .45); padding: calc(var(--ez-espace) * 1.4); display: grid; gap: 1rem 1.5rem; align-items: center; }
@media (min-width: 48rem) { .ez-appel-chevauche { grid-template-columns: 1fr auto; } .ez-appel-chevauche > .ez-boutons, .ez-appel-chevauche > p:has(> .ez-bouton) { margin: 0; } }

/* ===== 2.19 — Citation (bloc quote, champ presentation) ===== */
.ez-citation-pres { margin: 0; }
.ez-citation-pres blockquote { margin: 0; }
.ez-citation-pres blockquote p { margin: 0; }
.ez-citation-pres figcaption { display: grid; gap: .1rem; margin-top: .9rem; font-size: .92rem; color: var(--ez-texte-doux); }
.ez-citation-pres figcaption b { color: var(--ez-texte); }
.ez-citation-marque { font: 700 5rem/.6 Georgia, "Times New Roman", serif; color: var(--ez-accent); height: 2.5rem; }
.ez-citation-guillemets { display: grid; justify-items: center; text-align: center; gap: .9rem; padding: .5rem 0; }
.ez-citation-guillemets blockquote { font-family: var(--ez-police-titres); font-weight: 600; font-size: clamp(1.25rem, 1rem + 1.2vw, 1.65rem); line-height: 1.35; max-width: 30ch; color: var(--ez-texte); text-wrap: balance; }
.ez-citation-trait { width: 3rem; height: 3px; border-radius: 3px; background: var(--ez-accent); }
.ez-citation-guillemets figcaption { margin: 0; justify-items: center; }
.ez-citation-portrait { display: grid; gap: 1rem 1.6rem; align-items: center; max-width: 48rem; margin: 0 auto; justify-items: center; text-align: center; }
@media (min-width: 40rem) { .ez-citation-portrait { grid-template-columns: auto 1fr; justify-items: start; text-align: left; } }
.ez-citation-photo { width: 8rem; height: 8rem; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 6px var(--ez-surface); }
.ez-citation-portrait blockquote { font-family: var(--ez-police-titres); font-size: clamp(1.1rem, 1rem + .6vw, 1.3rem); line-height: 1.45; color: var(--ez-texte); }
.ez-citation-portrait figcaption b { color: var(--ez-primaire); }
.ez-citation-portrait.ez-sans-photo { grid-template-columns: 1fr; }
.ez-bloc.ez-citation-pres-photo { position: relative; color: #fff; padding: calc(var(--ez-espace) * 3) 0; min-height: 20rem; display: grid; align-items: center; background: var(--ez-v-degrade); overflow: hidden; }
.ez-citation-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ez-citation-pres-photo.ez-avec-image::after { content: ""; position: absolute; inset: 0; background: rgb(5 10 20 / .55); }
.ez-citation-pres-photo .ez-conteneur { position: relative; z-index: 1; }
.ez-citation-sur-photo { display: grid; justify-items: center; text-align: center; }
.ez-citation-sur-photo blockquote { font-family: var(--ez-police-titres); font-weight: 600; font-size: clamp(1.3rem, 1rem + 1.4vw, 1.75rem); line-height: 1.3; max-width: 26ch; text-wrap: balance; }
.ez-citation-sur-photo figcaption, .ez-citation-sur-photo figcaption b { color: inherit; opacity: .9; letter-spacing: .06em; text-transform: uppercase; font-size: .85rem; }
.ez-citation-marge { border-top: 3px solid var(--ez-accent); border-bottom: 1px solid var(--ez-bord); padding: 1rem 0; }
.ez-citation-marge blockquote { font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.2rem; line-height: 1.3; color: var(--ez-primaire); }
.ez-citation-marge figcaption { font-size: .85rem; margin-top: .5rem; }
.ez-citation-couleur { position: relative; overflow: hidden; background: var(--ez-primaire); color: var(--ez-sur-primaire); border-radius: calc(var(--ez-rayon) * 1.6); padding: calc(var(--ez-espace) * 1.6) calc(var(--ez-espace) * 1.5); }
.ez-citation-couleur .ez-citation-marque { position: absolute; right: 1.5rem; top: 2.2rem; font-size: 12rem; color: inherit; opacity: .12; pointer-events: none; }
.ez-citation-couleur blockquote { position: relative; font-family: var(--ez-police-titres); font-weight: 600; font-size: clamp(1.15rem, 1rem + .9vw, 1.45rem); line-height: 1.35; max-width: 36ch; }
.ez-citation-couleur figcaption { display: flex; flex-wrap: wrap; gap: .2rem .6rem; align-items: center; color: inherit; opacity: .92; }
.ez-citation-couleur figcaption b { color: inherit; }
.ez-citation-mini { width: 2.4rem; height: 2.4rem; border-radius: 50%; object-fit: cover; }

/* ===== 2.19 — Chiffres clés et compteurs (champ presentation, option animate) ===== */
.ez-chiffres-pres { display: grid; gap: 1rem; }
.ez-chiffres-pres .ez-chiffre { display: grid; gap: .3rem; align-content: start; }
.ez-chiffres-pres .ez-chiffre-valeur { font-family: var(--ez-police-titres); font-weight: 700; font-size: clamp(2rem, 1.5rem + 1.6vw, 2.6rem); line-height: 1; color: var(--ez-texte); font-variant-numeric: tabular-nums; }
.ez-chiffres-pres .ez-chiffre-affixe { font-size: .6em; color: var(--ez-accent); margin: 0 .05em; }
.ez-chiffres-pres .ez-chiffre-libelle { font-size: .95rem; color: var(--ez-texte-doux); }
.ez-chiffre-icone { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: var(--ez-rayon); background: color-mix(in srgb, var(--ez-accent) 12%, transparent); color: var(--ez-accent); margin-bottom: .3rem; }
.ez-chiffre-icone .ez-icone { width: 1.3rem; height: 1.3rem; }
.ez-chiffres-lines, .ez-chiffres-cards, .ez-chiffres-band, .ez-chiffres-photo, .ez-chiffres-trend { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
@media (max-width: 40rem) { .ez-chiffres-lines, .ez-chiffres-cards, .ez-chiffres-band { grid-template-columns: 1fr 1fr; } }
.ez-chiffres-lines { gap: 1.4rem 0; }
.ez-chiffres-lines .ez-chiffre { padding: .2rem 1.4rem; border-left: 1px solid var(--ez-bord); }
.ez-chiffres-lines .ez-chiffre-valeur { font-size: clamp(2.2rem, 1.6rem + 2vw, 3rem); }
.ez-chiffres-cards .ez-chiffre { background: var(--ez-surface); border-radius: var(--ez-rayon); padding: 1.2rem; }
.ez-bloc.ez-chiffres-pres-band { background: var(--ez-primaire); color: var(--ez-sur-primaire); padding: calc(var(--ez-espace) * 2.2) 0; }
.ez-chiffres-pres-band h2 { color: inherit; text-align: center; }
.ez-chiffres-band { text-align: center; }
.ez-chiffres-band .ez-chiffre { justify-items: center; }
.ez-chiffres-pres-band .ez-chiffre-valeur, .ez-chiffres-pres-band .ez-chiffre-libelle, .ez-chiffres-pres-band .ez-chiffre-affixe { color: inherit; }
.ez-chiffres-pres-band .ez-chiffre-libelle { opacity: .88; }
.ez-chiffres-pres-band .ez-chiffre-icone { background: rgb(255 255 255 / .15); color: inherit; }
.ez-chiffres-cote { display: grid; gap: calc(var(--ez-espace) * 1.4); align-items: center; }
@media (min-width: 52rem) { .ez-chiffres-cote { grid-template-columns: 1fr 1.1fr; } }
.ez-chiffres-split { grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ez-bord); border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; }
.ez-chiffres-split .ez-chiffre { background: var(--ez-fond); padding: 1.3rem; }
.ez-chiffres-split .ez-chiffre-valeur { color: var(--ez-primaire); }
.ez-bloc.ez-chiffres-pres-photo { position: relative; color: #fff; padding: calc(var(--ez-espace) * 2.4) 0; background: var(--ez-v-degrade); overflow: hidden; }
.ez-chiffres-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ez-chiffres-pres-photo.ez-avec-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(5 10 20 / .8), rgb(5 10 20 / .45)); }
.ez-chiffres-pres-photo .ez-conteneur { position: relative; z-index: 1; }
.ez-chiffres-pres-photo h2 { color: inherit; }
.ez-chiffres-photo .ez-chiffre { border: 1px solid rgb(255 255 255 / .25); border-radius: var(--ez-rayon); padding: 1.2rem; background: rgb(255 255 255 / .08); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ez-chiffres-pres-photo :is(.ez-chiffre-valeur, .ez-chiffre-affixe) { color: #fff; }
.ez-chiffres-pres-photo .ez-chiffre-libelle { color: rgb(255 255 255 / .86); }
.ez-chiffres-trend .ez-chiffre { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); padding: 1.2rem; gap: .6rem; }
.ez-chiffre-haut { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.ez-chiffre-evolution { font-size: .78rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; white-space: nowrap; }
.ez-chiffre-hausse { background: #dcfce7; color: #166534; }
.ez-chiffre-baisse { background: #fee2e2; color: #991b1b; }
.ez-chiffre-courbe { display: block; width: 100%; height: 2.9rem; color: var(--ez-accent); }
:is(.ez-fond-primary, .ez-fond-accent) .ez-chiffres-pres :is(.ez-chiffre-valeur, .ez-chiffre-libelle, .ez-chiffre-affixe) { color: inherit; }

/* ===== 2.19 — Frise (bloc timeline, champ presentation) ===== */
.ez-frise-pres { list-style: none; margin: 0; padding: 0; }
.ez-frise-pres .ez-etape { padding: 0; }
.ez-frise-pres .ez-etape::before { content: none; }
.ez-frise-pres h3 { margin: .2rem 0 .3rem; font-size: 1.1rem; }
.ez-frise-pres .ez-etape > div > :last-child, .ez-frise-carte > :last-child { margin-bottom: 0; }
.ez-frise-pres .ez-etape-date { font-family: var(--ez-police-titres); font-weight: 700; color: var(--ez-accent); letter-spacing: .04em; }
.ez-frise-alternate { position: relative; display: grid; gap: 1.4rem; }
.ez-frise-alternate::before { content: ""; position: absolute; top: 0; bottom: 0; left: .5rem; width: 2px; background: var(--ez-bord); }
.ez-frise-alternate .ez-etape { position: relative; display: grid; grid-template-columns: 1rem 1fr; gap: 1rem; }
.ez-frise-point { width: 1rem; height: 1rem; margin-top: 1.1rem; border-radius: 50%; background: var(--ez-fond); border: 3px solid var(--ez-accent); position: relative; z-index: 1; }
.ez-frise-carte { background: var(--ez-surface); border-radius: var(--ez-rayon); padding: 1rem 1.15rem; }
@media (min-width: 48rem) {
  .ez-frise-alternate::before { left: 50%; transform: translateX(-50%); }
  .ez-frise-alternate .ez-etape { grid-template-columns: 1fr 2.5rem 1fr; gap: 0; }
  .ez-frise-alternate .ez-frise-point { grid-column: 2; grid-row: 1; justify-self: center; }
  .ez-frise-alternate .ez-etape:nth-child(odd) .ez-frise-carte { grid-column: 1; grid-row: 1; text-align: right; }
  .ez-frise-alternate .ez-etape:nth-child(even) .ez-frise-carte { grid-column: 3; grid-row: 1; }
}
.ez-frise-piste { list-style: none; margin: 0; padding: 0 0 .6rem; }
@media (min-width: 48rem) { .ez-frise-pres .ez-frise-piste { grid-auto-columns: calc((100% - var(--ez-espace) * 3) / 4); } }
.ez-frise-piste .ez-etape { display: grid; gap: .55rem; align-content: start; }
.ez-frise-piste .ez-etape-date { font-size: 1.6rem; }
.ez-frise-barre { height: 4px; border-radius: 2px; background: var(--ez-bord); position: relative; }
.ez-frise-barre::after { content: ""; position: absolute; left: 0; top: 50%; width: .9rem; height: .9rem; border-radius: 50%; background: var(--ez-accent); transform: translateY(-50%); box-shadow: 0 0 0 4px var(--ez-fond); }
.ez-frise-photos { display: grid; gap: 1.4rem; }
.ez-frise-photos .ez-etape { display: grid; gap: .8rem 1.4rem; align-items: center; }
@media (min-width: 40rem) { .ez-frise-photos .ez-etape { grid-template-columns: 13rem 1fr; } }
.ez-frise-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ez-rayon); }
.ez-frise-photos .ez-image-manquante { min-height: 8rem; }
.ez-frise-numero { display: inline-grid; place-items: center; width: 2.1rem; height: 2.1rem; margin-right: .6rem; border-radius: 50%; background: var(--ez-accent); color: var(--ez-sur-accent); font-family: var(--ez-police-titres); font-weight: 700; font-size: .9rem; }
.ez-frise-years .ez-etape { display: grid; gap: .3rem 1.6rem; padding: 1.2rem 0; border-top: 1px solid var(--ez-bord); }
@media (min-width: 40rem) { .ez-frise-years .ez-etape { grid-template-columns: 9rem 1fr; } }
.ez-frise-years .ez-etape-date { font-size: clamp(2rem, 1.6rem + 1.4vw, 2.6rem); line-height: 1; color: color-mix(in srgb, var(--ez-primaire) 40%, transparent); }
.ez-frise-years .ez-etape:last-child .ez-etape-date { color: var(--ez-primaire); }
.ez-frise-milestones { position: relative; display: grid; gap: 1rem; padding-left: 1.9rem; }
.ez-frise-milestones::before { content: ""; position: absolute; left: .5rem; top: 0; bottom: 0; width: 2px; background: linear-gradient(var(--ez-primaire), var(--ez-accent)); }
.ez-frise-milestones .ez-etape { position: relative; display: grid; gap: .2rem; }
.ez-frise-milestones .ez-frise-point { position: absolute; left: -1.9rem; top: 0; margin: 0; width: 1.1rem; height: 1.1rem; border: 0; background: var(--ez-primaire); box-shadow: 0 0 0 5px var(--ez-fond); }
.ez-frise-milestones .ez-etape:last-child .ez-frise-point { background: var(--ez-accent); }
.ez-frise-milestones .ez-etape-date { color: var(--ez-texte); }
.ez-frise-jalon { font-size: .9rem; color: var(--ez-texte-doux); line-height: 1.35; }
@media (min-width: 48rem) {
  .ez-frise-milestones { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); padding: 1.6rem 0 0; gap: 0; }
  .ez-frise-milestones::before { left: 0; right: 0; top: 2.1rem; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, var(--ez-primaire), var(--ez-accent)); }
  .ez-frise-milestones .ez-etape { justify-items: center; text-align: center; padding: 0 .5rem; }
  .ez-frise-milestones .ez-frise-point { position: relative; left: auto; top: auto; margin-bottom: .5rem; }
}

/* ===== 2.19 — Réalisations (module projects, champ presentation) ===== */
.ez-real [hidden] { display: none !important; }
.ez-real .ez-meta { margin: 0 0 .25rem; font-size: .82rem; color: var(--ez-texte-doux); }
.ez-real h3 { margin: 0; font-size: 1.08rem; }
.ez-real h3 a { color: var(--ez-texte); text-decoration: none; }
.ez-real h3 a:hover { text-decoration: underline; }
.ez-real-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ez-rayon); }
.ez-real-carte { display: grid; gap: .65rem; align-content: start; }
.ez-real-carte .ez-real-image { transition: transform .3s; }
.ez-real-carte:hover .ez-real-image { transform: scale(1.02); }
@media (prefers-reduced-motion: reduce) { .ez-real-carte .ez-real-image { transition: none; } }
.ez-real-filtres { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.2rem; }
.ez-real-filtres button { font: inherit; font-size: .88rem; font-weight: 600; border: 1.5px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); border-radius: 999px; padding: .35rem .9rem; cursor: pointer; }
.ez-real-filtres button span { opacity: .6; margin-left: .3rem; font-weight: 500; }
.ez-real-filtres button[aria-pressed="true"] { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
@media (max-width: 40rem) { .ez-real-filtres { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .3rem; } .ez-real-filtres button { white-space: nowrap; } }
.ez-real-grille, .ez-real-beforeafter { display: grid; gap: calc(var(--ez-espace) * .9); grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
@media (max-width: 40rem) { .ez-real-grille { grid-template-columns: 1fr 1fr; gap: .8rem; } .ez-real-grille h3 { font-size: .95rem; } }
.ez-real-beforeafter { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.ez-real-avec-curseur .ez-avant-apres { margin: 0; }
.ez-real-avec-curseur .ez-avant-apres-image { aspect-ratio: 4 / 3; object-fit: cover; }
.ez-real-masonry { columns: 3 15rem; column-gap: .9rem; }
.ez-real-tuile { break-inside: avoid; margin-bottom: .9rem; position: relative; border-radius: var(--ez-rayon); overflow: hidden; }
.ez-real-tuile > a { display: block; color: #fff; }
.ez-real-tuile .ez-real-image { aspect-ratio: auto; border-radius: 0; }
.ez-real-voile { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: .1rem; padding: .9rem; color: #fff; background: linear-gradient(to top, rgb(0 0 0 / .72), transparent 55%); opacity: 0; transition: opacity .25s; }
.ez-real-voile b { font-family: var(--ez-police-titres); }
.ez-real-voile span { font-size: .82rem; opacity: .88; }
.ez-real-tuile:hover .ez-real-voile, .ez-real-tuile:focus-within .ez-real-voile { opacity: 1; }
@media (hover: none), (max-width: 40rem) { .ez-real-voile { opacity: 1; } }
.ez-real-cases { display: grid; gap: calc(var(--ez-espace) * 2); }
.ez-real-cas { display: grid; gap: 1rem calc(var(--ez-espace) * 1.4); align-items: center; }
@media (min-width: 48rem) { .ez-real-cas { grid-template-columns: 1.1fr 1fr; } .ez-real-cas-inverse > .ez-real-image { order: 2; } }
.ez-real-cas .ez-real-image { border-radius: calc(var(--ez-rayon) * 1.4); }
.ez-real-cas .ez-real-corps { display: grid; gap: .7rem; }
.ez-real-cas .ez-real-corps > p { margin: 0; }
.ez-real-etapes { display: grid; gap: .6rem; margin: 0; }
.ez-real-etapes > div { display: grid; gap: .2rem .8rem; }
@media (min-width: 40rem) { .ez-real-etapes > div { grid-template-columns: 7.5rem 1fr; } }
.ez-real-etapes dt { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); padding-top: .2rem; }
.ez-real-etapes dd { margin: 0; color: var(--ez-texte-doux); font-size: .95rem; }
.ez-real-etapes dd > :last-child { margin-bottom: 0; }
.ez-real-resultats { display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; padding: .8rem 1.1rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-real-resultats > div { display: grid; }
.ez-real-resultats strong { font-family: var(--ez-police-titres); font-size: 1.45rem; color: var(--ez-primaire); line-height: 1.15; }
.ez-real-resultats span { font-size: .82rem; color: var(--ez-texte-doux); }
.ez-real-featured { display: grid; gap: 1rem; }
@media (min-width: 52rem) { .ez-real-featured { grid-template-columns: 1.6fr 1fr; } }
.ez-real-une { position: relative; min-height: 22rem; display: flex; align-items: flex-end; border-radius: calc(var(--ez-rayon) * 1.4); overflow: hidden; background: var(--ez-v-degrade); isolation: isolate; }
.ez-real-une .ez-real-image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; border-radius: 0; z-index: -1; }
.ez-real-une .ez-real-corps { width: 100%; display: grid; gap: .4rem; padding: 1.3rem; color: #fff; background: linear-gradient(to top, rgb(0 0 0 / .75), transparent); }
.ez-real-une h3 { font-size: 1.45rem; }
.ez-real-une :is(h3 a, p) { color: #fff; }
.ez-real-une p { margin: 0; opacity: .92; }
.ez-real-etiquette { justify-self: start; font-size: .74rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; background: rgb(255 255 255 / .22); }
.ez-real-cote { display: grid; gap: .8rem; align-content: start; }
.ez-real-petite { display: grid; grid-template-columns: 7rem 1fr; gap: .8rem; align-items: center; }
.ez-real-petite .ez-real-image { border-radius: calc(var(--ez-rayon) * 1.2); }
.ez-real-petite h3 { font-size: .98rem; }
.ez-real-petite .ez-meta { margin: .2rem 0 0; }
.ez-real-carousel .ez-carrousel-piste { grid-auto-columns: 88%; }
@media (min-width: 48rem) { .ez-real-carousel .ez-carrousel-piste { grid-auto-columns: calc((100% - var(--ez-espace)) / 1.6); } }
.ez-real-fiche { display: grid; border-radius: calc(var(--ez-rayon) * 1.4); overflow: hidden; background: var(--ez-surface); }
@media (min-width: 48rem) { .ez-real-fiche { grid-template-columns: 1.3fr 1fr; } }
.ez-real-fiche .ez-real-image { height: 100%; min-height: 15rem; border-radius: 0; }
.ez-real-fiche .ez-real-corps { padding: 1.3rem; display: grid; gap: .6rem; align-content: center; }
.ez-real-fiche .ez-real-corps > p { margin: 0; }
.ez-real-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ez-bord); }
.ez-real-ligne { position: relative; display: grid; grid-template-columns: 4.4rem 1fr 2.2rem; gap: 1rem; align-items: center; padding: .9rem .3rem; border-bottom: 1px solid var(--ez-bord); color: var(--ez-texte); text-decoration: none; }
@media (min-width: 48rem) { .ez-real-ligne { grid-template-columns: 4.4rem 1.4fr 1fr 6rem 2.2rem; gap: 1.2rem; } }
.ez-real-vignette { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; }
.ez-real-ligne .ez-image-manquante { min-height: 4.4rem; padding: .2rem; font-size: .7rem; }
.ez-real-ligne-titre { display: grid; gap: .1rem; }
.ez-real-ligne-titre b { font-family: var(--ez-police-titres); }
.ez-real-ligne-titre span { font-size: .88rem; color: var(--ez-texte-doux); }
.ez-real-ligne-cat, .ez-real-ligne-annee { font-size: .88rem; color: var(--ez-texte-doux); }
@media (max-width: 47.99rem) { .ez-real-ligne-cat, .ez-real-ligne-annee { display: none; } }
.ez-real-fleche { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 1.5px solid var(--ez-bord); transition: background .2s, color .2s; }
a.ez-real-ligne:hover .ez-real-fleche, a.ez-real-ligne:focus-visible .ez-real-fleche { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-real-apercu { position: absolute; right: 4.5rem; top: 50%; width: 12rem; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; transform: translateY(-50%) rotate(-3deg); box-shadow: 0 18px 40px -16px rgb(0 0 0 / .45); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 2; }
@media (hover: hover) and (min-width: 48rem) { a.ez-real-ligne:hover .ez-real-apercu { opacity: 1; } }
@media (max-width: 47.99rem) { .ez-real-apercu { display: none; } }
.ez-real-detail-curseur { margin: 0 0 calc(var(--ez-espace) * 1.2); }
.ez-real-detail-curseur .ez-avant-apres-image { aspect-ratio: 3 / 2; object-fit: cover; }
.ez-real-detail { display: grid; gap: 1rem; margin: calc(var(--ez-espace) * 1.2) 0; padding: calc(var(--ez-espace) * 1.1); border-radius: calc(var(--ez-rayon) * 1.4); background: var(--ez-surface); }
.ez-real-detail .ez-real-resultats { background: var(--ez-fond); }
.ez-real-titre-resultats { font-size: 1.1rem; margin: .4rem 0 0; }

/* ===== 2.20 — Texte + image (champ presentation : bleed, frame, duo, overlap, arch, card) ===== */
.ez-ti-pres .ez-ti-photo, .ez-ti-pres .ez-ti-photo2 { display: block; width: 100%; height: 100%; object-fit: cover; }
.ez-ti-pres .ez-ti-media { margin: 0; position: relative; }
.ez-ti-pres .ez-ti-media picture { display: contents; }
.ez-ti-texte > :last-child { margin-bottom: 0; }
.ez-ti-points { margin: 1rem 0 1.2rem; }
.ez-ti-signature { font-family: var(--ez-police-titres); font-style: italic; font-weight: 600; font-size: 1.1rem; color: var(--ez-primaire); margin: .8rem 0 0; }
.ez-ti-grille { display: grid; gap: calc(var(--ez-espace) * 1.5); align-items: center; }
@media (min-width: 48rem) {
  .ez-ti-grille { grid-template-columns: 1fr 1fr; gap: calc(var(--ez-espace) * 2.2); }
  .ez-image-droite .ez-ti-grille > .ez-ti-media { order: 2; }
}
/* A : photo jusqu'au bord */
.ez-bloc.ez-ti-bleed { padding: 0; }
.ez-ti-bord { display: grid; }
.ez-ti-bleed .ez-ti-media { aspect-ratio: 4 / 3; overflow: hidden; }
.ez-ti-bleed .ez-ti-colonne { padding: calc(var(--ez-espace) * 1.6) 1rem; display: grid; align-content: center; }
@media (min-width: 48rem) {
  .ez-ti-bord { grid-template-columns: 1fr 1fr; min-height: 26rem; }
  .ez-ti-bleed .ez-ti-media { aspect-ratio: auto; }
  .ez-ti-bleed .ez-ti-colonne { padding: calc(var(--ez-espace) * 2.4) max(1.5rem, calc((100vw - var(--ez-largeur)) / 2 + 1.5rem)) calc(var(--ez-espace) * 2.4) calc(var(--ez-espace) * 2.4); }
  .ez-ti-bleed.ez-image-droite .ez-ti-media { order: 2; }
  .ez-ti-bleed.ez-image-droite .ez-ti-colonne { padding-left: max(1.5rem, calc((100vw - var(--ez-largeur)) / 2 + 1.5rem)); padding-right: calc(var(--ez-espace) * 2.4); }
  .ez-ti-bleed .ez-ti-texte { max-width: 34rem; }
}
/* B : cadre décalé */
.ez-ti-frame .ez-ti-media { margin: 0 1.1rem 1.1rem 0; }
.ez-ti-frame .ez-ti-media::before { content: ""; position: absolute; inset: 1.1rem -1.1rem -1.1rem 1.1rem; border-radius: calc(var(--ez-rayon) * 1.3); background: color-mix(in srgb, var(--ez-accent) 22%, transparent); }
.ez-ti-frame .ez-ti-photo { position: relative; aspect-ratio: 4 / 3; border-radius: calc(var(--ez-rayon) * 1.3); }
.ez-ti-frame.ez-image-gauche .ez-ti-media { margin: 0 0 1.1rem 1.1rem; }
.ez-ti-frame.ez-image-gauche .ez-ti-media::before { inset: 1.1rem 1.1rem -1.1rem -1.1rem; }
/* C : deux photos et une pastille */
.ez-ti-duo .ez-ti-media { padding: 0 0 3.5rem; }
.ez-ti-duo .ez-ti-photo { width: 82%; aspect-ratio: 4 / 3; border-radius: calc(var(--ez-rayon) * 1.2); }
.ez-ti-duo .ez-ti-photo2 { position: absolute; right: 0; bottom: 0; width: 46%; height: auto; aspect-ratio: 1; border-radius: var(--ez-rayon); box-shadow: 0 0 0 6px var(--ez-fond); }
.ez-ti-duo .ez-ti-une { padding: 0 0 2rem; }
.ez-ti-duo .ez-ti-une .ez-ti-photo { width: 100%; }
.ez-ti-pastille { position: absolute; left: 1.1rem; bottom: 1.2rem; z-index: 1; margin: 0; display: grid; line-height: 1.15; padding: .75rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-fond); box-shadow: 0 14px 34px -18px rgb(15 30 60 / .45); }
.ez-ti-pastille b { font-family: var(--ez-police-titres); font-size: 1.7rem; color: var(--ez-primaire); }
.ez-ti-pastille span { font-size: .82rem; color: var(--ez-texte-doux); }
/* D : fond de couleur et photo qui chevauche */
.ez-ti-overlap .ez-conteneur { position: relative; }
.ez-ti-overlap .ez-ti-grille { position: relative; padding: calc(var(--ez-espace) * 1.4) 1.2rem; }
.ez-ti-overlap .ez-ti-grille::before { content: ""; position: absolute; inset: 0 0 35% 0; border-radius: calc(var(--ez-rayon) * 2); background: var(--ez-surface); }
.ez-ti-overlap .ez-ti-grille > * { position: relative; }
.ez-ti-overlap .ez-ti-photo { aspect-ratio: 4 / 3; border-radius: calc(var(--ez-rayon) * 1.3); box-shadow: 0 24px 50px -26px rgb(15 30 60 / .5); }
@media (min-width: 48rem) {
  .ez-ti-overlap .ez-ti-grille { padding: calc(var(--ez-espace) * 2) 2.5rem; }
  .ez-ti-overlap .ez-ti-grille::before { inset: 0 30% 0 0; }
  .ez-ti-overlap.ez-image-gauche .ez-ti-grille::before { inset: 0 0 0 30%; }
}
/* E : points forts et photo en arche */
.ez-ti-arch .ez-ti-photo { aspect-ratio: 4 / 3; border-radius: var(--ez-rayon); }
@media (min-width: 48rem) {
  .ez-ti-arch .ez-ti-grille { grid-template-columns: 1fr .85fr; }
  .ez-ti-arch.ez-image-gauche .ez-ti-grille { grid-template-columns: .85fr 1fr; }
  .ez-ti-arch .ez-ti-photo { aspect-ratio: 4 / 5; border-radius: 999px 999px var(--ez-rayon) var(--ez-rayon); }
}
/* F : photo pleine largeur et carte de texte */
.ez-bloc.ez-ti-card { position: relative; padding: 0; overflow: hidden; }
.ez-ti-card .ez-ti-media { height: 14rem; }
.ez-ti-card .ez-conteneur { position: relative; margin-top: -3rem; padding-bottom: calc(var(--ez-espace) * 1.2); }
.ez-ti-carte { position: relative; background: var(--ez-fond); color: var(--ez-texte); border-radius: calc(var(--ez-rayon) * 1.2); padding: 1.3rem; box-shadow: 0 20px 50px -24px rgb(0 0 0 / .5); }
@media (min-width: 48rem) {
  .ez-bloc.ez-ti-card { min-height: 26rem; display: grid; align-items: center; padding: calc(var(--ez-espace) * 2.4) 0; }
  .ez-ti-card .ez-ti-media { position: absolute; inset: 0; height: auto; }
  .ez-ti-card .ez-conteneur { margin-top: 0; padding-bottom: 0; display: flex; justify-content: flex-start; }
  .ez-ti-card.ez-image-gauche .ez-conteneur { justify-content: flex-end; }
  .ez-ti-carte { max-width: 30rem; padding: 2rem; }
}

/* ===== 2.20 — Photo (champ presentation : banner, magazine, polaroid, zoom) ===== */
.ez-photo-pres figure { margin: 0; }
.ez-photo-pres img { display: block; width: 100%; }
.ez-photo-banner > .ez-conteneur h2 { margin-bottom: 1rem; }
.ez-photo-banniere { position: relative; }
.ez-photo-banniere img { aspect-ratio: 4 / 3; object-fit: cover; }
@media (min-width: 48rem) { .ez-photo-banniere img { aspect-ratio: 21 / 9; } }
.ez-photo-banniere figcaption { position: absolute; inset: auto 0 0; padding: 4rem 0 1.2rem; background: linear-gradient(transparent, rgb(0 0 0 / .6)); color: #fff; }
.ez-photo-banniere figcaption span { display: block; max-width: var(--ez-largeur); margin: 0 auto; padding: 0 1rem; font-size: .95rem; text-shadow: 0 1px 10px rgb(0 0 0 / .4); }
@media (min-width: 48rem) { .ez-photo-banniere figcaption span { padding: 0 1.5rem; } }
.ez-photo-magazine { display: grid; gap: .8rem 1.8rem; align-items: end; }
@media (min-width: 48rem) { .ez-photo-magazine { grid-template-columns: 1.6fr 1fr; } }
.ez-photo-magazine img { border-radius: var(--ez-rayon); }
.ez-photo-magazine figcaption { border-left: 3px solid var(--ez-accent); padding: .3rem 0 .3rem 1rem; display: grid; gap: .3rem; }
.ez-photo-magazine figcaption h2 { font-size: 1.2rem; margin: 0; }
.ez-photo-magazine figcaption p { margin: 0; font-size: .95rem; color: var(--ez-texte-doux); }
.ez-photo-souvenir { max-width: 45rem; margin: 0 auto !important; padding: .75rem .75rem .9rem; background: var(--ez-fond); border-radius: calc(var(--ez-rayon) * .6); box-shadow: 0 18px 44px -22px rgb(15 30 60 / .45); transform: rotate(-1deg); }
.ez-photo-souvenir img { border-radius: calc(var(--ez-rayon) * .4); }
.ez-photo-souvenir figcaption { text-align: center; font-family: var(--ez-police-titres); font-style: italic; margin-top: .65rem; color: var(--ez-texte); }
@media (prefers-reduced-motion: reduce) { .ez-photo-souvenir { transform: none; } }
.ez-photo-cadre { position: relative; }
.ez-photo-lien { display: block; position: relative; cursor: zoom-in; }
.ez-photo-lien img { border-radius: var(--ez-rayon); }
.ez-photo-agrandir { position: absolute; right: .8rem; top: .8rem; padding: .35rem .8rem; border-radius: 999px; background: rgb(255 255 255 / .92); color: #111; font-size: .82rem; font-weight: 700; }
.ez-photo-agrandir::before { content: "⤢ "; }
.ez-photo-point { position: absolute; width: 1.7rem; height: 1.7rem; margin: -.85rem 0 0 -.85rem; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--ez-primaire); font-weight: 800; font-size: .85rem; line-height: 1.7rem; cursor: pointer; box-shadow: 0 0 0 6px rgb(255 255 255 / .35); }
.ez-photo-point:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-photo-bulle { position: absolute; left: calc(100% + .7rem); top: 50%; transform: translateY(-50%); width: max-content; max-width: 14rem; padding: .5rem .75rem; border-radius: .6rem; background: var(--ez-fond); color: var(--ez-texte); font-weight: 400; font-size: .85rem; line-height: 1.35; text-align: left; box-shadow: 0 10px 26px -12px rgb(0 0 0 / .45); opacity: 0; visibility: hidden; transition: opacity .15s; z-index: 2; }
.ez-point-gauche .ez-photo-bulle { left: auto; right: calc(100% + .7rem); }
.ez-photo-point:is(:hover, :focus-visible) .ez-photo-bulle { opacity: 1; visibility: visible; }
.ez-photo-legendes { margin: .8rem 0 0; padding-left: 1.4rem; font-size: .92rem; display: grid; gap: .25rem; }
@media (min-width: 48rem) { .ez-photo-legendes { display: none; } }
@media (max-width: 47.99rem) { .ez-photo-bulle { display: none; } }
.ez-photo-zoom figcaption { color: var(--ez-texte-doux); font-size: .92rem; margin-top: .5rem; }

/* ===== 2.20 — Sections dépliables (numbered, aside ; les autres reprennent la FAQ) ===== */
.ez-sec-numeros .ez-sec-n { flex: none; width: 2.8rem; font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.3rem; color: var(--ez-accent); }
.ez-sec-numeros summary { display: flex; align-items: center; gap: .6rem; }
.ez-sec-numeros .ez-faq-q { flex: 1; }
.ez-sec-numeros .ez-faq-r { padding-left: 3.4rem; }
.ez-sec-aside { display: grid; gap: 1.2rem 2.5rem; align-items: start; }
@media (min-width: 48rem) { .ez-sec-aside { grid-template-columns: .8fr 1.2fr; } .ez-sec-cote { position: sticky; top: calc(var(--ez-hauteur-entete, 4rem) + 1rem); } }
.ez-sec-cote { display: grid; gap: .8rem; justify-items: start; }
.ez-sec-cote > * { margin: 0; }
.ez-sec-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ez-rayon); }

/* ===== 2.20 — Documents (files, covers, folders, search, latest, buttons) ===== */
.ez-docs-files { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.ez-doc-ligne { display: flex; align-items: center; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-doc-corps { flex: 1; min-width: 0; }
.ez-doc-corps p { margin: 0; }
.ez-doc-corps .ez-meta { margin-top: .15rem; font-size: .88rem; }
.ez-doc-titre { font-weight: 700; }
.ez-doc-titre a { color: var(--ez-texte); text-decoration: none; }
.ez-doc-titre a:hover { text-decoration: underline; }
.ez-doc-telecharger { flex: none; padding: .45rem .9rem; font-size: .9rem; }
@media (max-width: 40rem) { .ez-doc-ligne { flex-wrap: wrap; } .ez-doc-ligne .ez-doc-telecharger { width: 100%; text-align: center; } }
.ez-docs-covers { display: grid; gap: 1.4rem 1.2rem; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); }
.ez-doc-carte h3 { font-size: 1rem; margin: .7rem 0 .2rem; }
.ez-doc-carte h3 a { color: var(--ez-texte); text-decoration: none; }
.ez-doc-carte .ez-meta { margin: 0; font-size: .85rem; }
.ez-doc-couverture { aspect-ratio: 3 / 4; border-radius: calc(var(--ez-rayon) * .6); overflow: hidden; box-shadow: 0 14px 30px -18px rgb(15 30 60 / .55), 0 0 0 1px var(--ez-bord); transition: transform .2s; }
.ez-doc-carte:hover .ez-doc-couverture { transform: translateY(-3px); }
.ez-doc-couverture picture { display: contents; }
.ez-doc-couverture-image { width: 100%; height: 100%; object-fit: cover; display: block; }
.ez-doc-couverture-generee { display: flex; flex-direction: column; justify-content: space-between; height: 100%; padding: 1rem; color: var(--ez-sur-primaire); background: linear-gradient(160deg, var(--ez-primaire), color-mix(in srgb, var(--ez-primaire) 55%, #000)); }
.ez-doc-teinte-1 { background: linear-gradient(160deg, var(--ez-accent), color-mix(in srgb, var(--ez-accent) 55%, #000)); color: var(--ez-sur-accent); }
.ez-doc-teinte-2 { background: linear-gradient(160deg, var(--ez-surface), color-mix(in srgb, var(--ez-surface) 80%, var(--ez-primaire))); color: var(--ez-texte); }
.ez-doc-couverture-type { align-self: flex-start; font-size: .72rem; font-weight: 800; letter-spacing: .1em; padding: .15rem .5rem; border-radius: 999px; background: rgb(255 255 255 / .2); }
.ez-doc-couverture-titre { font-family: var(--ez-police-titres); font-weight: 700; font-size: 1.05rem; line-height: 1.2; border-top: 2px solid currentColor; padding-top: .6rem; }
@media (prefers-reduced-motion: reduce) { .ez-doc-couverture { transition: none; } .ez-doc-carte:hover .ez-doc-couverture { transform: none; } }
.ez-docs-folders { display: grid; gap: .7rem; }
.ez-doc-dossier { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-doc-dossier summary { list-style: none; display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; cursor: pointer; font-weight: 700; }
.ez-doc-dossier summary::-webkit-details-marker { display: none; }
.ez-doc-dossier-icone { width: 1.6rem; height: 1.25rem; border-radius: .25rem; background: color-mix(in srgb, var(--ez-accent) 75%, transparent); position: relative; flex: none; }
.ez-doc-dossier-icone::before { content: ""; position: absolute; left: 0; top: -.25rem; width: .7rem; height: .4rem; border-radius: .2rem .2rem 0 0; background: inherit; }
.ez-doc-dossier-nom { flex: 1; }
.ez-doc-dossier-n { font-size: .82rem; font-weight: 600; color: var(--ez-texte-doux); background: var(--ez-surface); border-radius: 999px; padding: .1rem .55rem; margin-left: .5rem; }
.ez-doc-dossier[open] .ez-faq-signe { transform: rotate(45deg); }
.ez-doc-dossier .ez-docs-files { padding: 0 1rem 1rem; }
.ez-doc-dossier .ez-doc-ligne { border-color: transparent; background: var(--ez-surface); }
.ez-doc-outils { display: flex; flex-wrap: wrap; gap: .7rem 1rem; align-items: center; margin-bottom: 1rem; }
.ez-doc-recherche { flex: 1 1 16rem; padding: .65rem .9rem; border: 1px solid var(--ez-bord); border-radius: 999px; font: inherit; background: var(--ez-fond); color: var(--ez-texte); }
.ez-doc-filtres { display: flex; flex-wrap: wrap; gap: .4rem; }
.ez-doc-filtre { font: inherit; font-size: .88rem; font-weight: 600; padding: .4rem .85rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); cursor: pointer; }
.ez-doc-filtre[aria-pressed="true"] { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-doc-aucun { color: var(--ez-texte-doux); }
.ez-docs-latest { display: grid; gap: 1.5rem 2.5rem; align-items: start; }
@media (min-width: 48rem) { .ez-docs-latest { grid-template-columns: 1.2fr 1fr; } .ez-docs-latest.ez-doc-seul { grid-template-columns: 1fr; max-width: 46rem; } }
.ez-doc-une { display: grid; gap: 1.2rem; grid-template-columns: 9rem 1fr; align-items: start; padding: 1.3rem; border-radius: calc(var(--ez-rayon) * 1.4); background: var(--ez-surface); }
@media (max-width: 30rem) { .ez-doc-une { grid-template-columns: 1fr; } .ez-doc-une .ez-doc-couverture { max-width: 10rem; } }
.ez-doc-une h3 { margin: .2rem 0 .3rem; font-size: 1.3rem; }
.ez-doc-une h3 a { color: var(--ez-texte); text-decoration: none; }
.ez-doc-une .ez-meta { margin: 0 0 .6rem; }
.ez-doc-une-etiquette { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); }
.ez-doc-une .ez-doc-telecharger { margin-top: .4rem; display: inline-block; }
.ez-doc-archives-titre { font-size: 1.05rem; margin: 0 0 .6rem; }
.ez-doc-annee { border-bottom: 1px solid var(--ez-bord); }
.ez-doc-annee summary { cursor: pointer; padding: .6rem 0; font-weight: 700; display: flex; align-items: center; }
.ez-doc-annee .ez-documents { margin: 0 0 .8rem; }
.ez-docs-buttons { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.ez-doc-gros { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-radius: calc(var(--ez-rayon) * 1.2); background: var(--ez-primaire); color: var(--ez-sur-primaire); text-decoration: none; box-shadow: 0 12px 26px -18px rgb(15 30 60 / .6); transition: transform .15s; }
.ez-doc-gros:hover { transform: translateY(-2px); }
.ez-doc-gros:focus-visible { outline: 3px solid var(--ez-accent); outline-offset: 3px; }
.ez-doc-gros .ez-document-icone { background: rgb(255 255 255 / .18); color: inherit; }
.ez-doc-gros-texte { flex: 1; display: grid; gap: .1rem; }
.ez-doc-gros-texte b { font-size: 1.05rem; }
.ez-doc-gros-texte span { font-size: .85rem; opacity: .85; }
.ez-doc-gros-fleche { font-size: 1.3rem; font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .ez-doc-gros { transition: none; } .ez-doc-gros:hover { transform: none; } }

/* ===== 2.20 — Barres de progression (goal, thin, places) ===== */
.ez-pg-piste { display: block; }
.ez-pg-objectif { display: grid; gap: 1.2rem 2rem; align-items: center; padding: calc(var(--ez-espace) * 1.3); border-radius: calc(var(--ez-rayon) * 1.4); background: var(--ez-surface); }
.ez-fond-surface .ez-pg-objectif { background: var(--ez-fond); }
@media (min-width: 48rem) { .ez-pg-objectif { grid-template-columns: 1.4fr 1fr; padding: calc(var(--ez-espace) * 1.8); } }
.ez-pg-libelle { margin: 0 0 .3rem; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); }
.ez-pg-montant { margin: 0; font-family: var(--ez-police-titres); font-weight: 800; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.6rem); line-height: 1.05; color: var(--ez-texte); font-variant-numeric: tabular-nums; }
.ez-pg-montant small { font-family: inherit; font-size: 1rem; font-weight: 600; color: var(--ez-texte-doux); }
.ez-pg-grosse { margin: .9rem 0 .7rem; }
.ez-pg-grosse .ez-barre { height: 1.1rem; box-shadow: inset 0 0 0 1px var(--ez-bord); }
.ez-pg-grosse .ez-barre-fond { fill: var(--ez-fond); }
.ez-pg-stats { display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; margin: 0; font-size: .9rem; color: var(--ez-texte-doux); }
.ez-pg-stats b { display: block; font-size: 1.1rem; color: var(--ez-texte); font-variant-numeric: tabular-nums; }
.ez-pg-cote { display: grid; gap: .5rem; text-align: center; }
.ez-pg-cote p { margin: 0; }
.ez-pg-cote .ez-bouton { display: block; padding: .85rem 1.4rem; font-size: 1.02rem; }
.ez-pg-note { font-size: .85rem; color: var(--ez-texte-doux); }
.ez-pg-fines { display: grid; gap: 1.1rem; max-width: 52rem; }
.ez-pg-ligne { display: grid; grid-template-columns: minmax(8rem, 13rem) 1fr 4rem; gap: 1rem; align-items: center; }
.ez-pg-nom { font-weight: 600; }
.ez-pg-valeur { text-align: right; font-family: var(--ez-police-titres); font-weight: 700; color: var(--ez-widget-couleur, var(--ez-primaire)); font-variant-numeric: tabular-nums; }
.ez-pg-ligne .ez-barre { height: .4rem; overflow: visible; }
@media (max-width: 40rem) { .ez-pg-ligne { grid-template-columns: 1fr auto; gap: .35rem .8rem; } .ez-pg-ligne .ez-pg-piste { grid-column: 1 / -1; grid-row: 2; } }
.ez-pg-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.ez-pg-carte { display: grid; gap: .6rem; align-content: start; padding: 1.1rem 1.2rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-pg-carte h3 { margin: 0; font-size: 1.05rem; }
.ez-pg-carte p { margin: 0; }
.ez-pg-cases { display: grid; grid-template-columns: repeat(var(--ez-n, 12), 1fr); gap: .25rem; }
.ez-pg-cases i { height: .75rem; border-radius: .2rem; background: var(--ez-surface); box-shadow: inset 0 0 0 1px var(--ez-bord); }
.ez-pg-cases i.ez-pg-pris { background: var(--ez-widget-couleur, var(--ez-accent)); box-shadow: none; }
.ez-pg-complet .ez-pg-cases i.ez-pg-pris { background: #c0392b; }
.ez-pg-etat { font-size: .92rem; color: var(--ez-texte-doux); }
.ez-pg-etat strong { color: var(--ez-texte); }
.ez-pg-complet .ez-pg-etat strong { color: #b42318; }
.ez-pg-alerte { font-size: .8rem; font-weight: 700; color: #a15c07; }

/* ===== 2.20 — Anneaux (icons, gauge, cards) ===== */
.ez-an-liste { display: grid; gap: 1.4rem; }
.ez-an-liste-icons { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); text-align: center; }
.ez-an-icone { margin: 0; display: grid; justify-items: center; gap: .3rem; }
.ez-an-dessin { position: relative; display: grid; place-items: center; }
.ez-an-dessin > * { grid-area: 1 / 1; }
.ez-an-icone .ez-an-dessin { width: 8rem; }
.ez-anneau-svg { width: 100%; height: auto; display: block; }
.ez-anneau-epais .ez-anneau-fond, .ez-anneau-epais .ez-anneau-arc { stroke-width: 16; }
.ez-an-icone .ez-widget-icone { margin: 0; color: var(--ez-widget-couleur); }
.ez-an-icone .ez-widget-icone .ez-icone { width: 2.2rem; height: 2.2rem; }
.ez-an-valeur { font-family: var(--ez-police-titres); font-weight: 800; font-size: 1.7rem; color: var(--ez-texte); font-variant-numeric: tabular-nums; margin: .3rem 0 0; }
.ez-an-icone figcaption { font-weight: 600; display: grid; gap: .2rem; }
.ez-an-icone figcaption span, .ez-an-jauge figcaption span, .ez-an-carte figcaption span { font-weight: 400; font-size: .9rem; color: var(--ez-texte-doux); }
.ez-an-liste-gauge { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); justify-items: center; text-align: center; }
.ez-an-jauge { margin: 0; display: grid; gap: .5rem; justify-items: center; max-width: 22rem; }
.ez-an-jauge .ez-an-dessin { width: 13rem; }
.ez-an-jauge svg { width: 100%; height: auto; display: block; }
.ez-an-jauge .ez-anneau-fond, .ez-an-jauge .ez-anneau-arc { stroke-width: 14; }
.ez-an-jauge .ez-an-valeur { align-self: end; margin: 0; font-size: 2rem; line-height: 1; }
.ez-an-jauge figcaption { display: grid; gap: .25rem; }
.ez-an-liste-cards { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.ez-an-carte { margin: 0; display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; align-items: center; padding: 1.1rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-fond-surface .ez-an-carte { background: var(--ez-fond); }
.ez-an-carte .ez-an-valeur { font-size: 1.05rem; margin: 0; }
.ez-an-carte figcaption { display: grid; gap: .2rem; }
.ez-an-carte figcaption b { font-size: 1.02rem; }

/* ===== 2.20 — Compte à rebours (boxes, band, circles, photo) ===== */
.ez-rebours-pres { text-align: center; }
.ez-rebours-pres .ez-rebours-date { margin: 0; }
.ez-rebours-pres-boxes .ez-rebours-unite { background: var(--ez-texte); min-width: 0; width: clamp(4.2rem, 3rem + 5vw, 6rem); padding: 0; border-radius: calc(var(--ez-rayon) * .9); gap: .4rem; background: none; }
.ez-rebours-pres-boxes .ez-rebours-nombre { display: grid; place-items: center; height: clamp(4.6rem, 3.5rem + 5vw, 6.4rem); border-radius: calc(var(--ez-rayon) * .9); background: var(--ez-texte); color: var(--ez-fond); font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); font-weight: 800; position: relative; }
.ez-rebours-pres-boxes .ez-rebours-nombre::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgb(255 255 255 / .14); }
.ez-rebours-pres-boxes .ez-rebours-libelle { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.ez-rebours-bande { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .6rem 1.2rem; padding: .8rem 1.4rem; border-radius: 999px; background: var(--ez-degrade, linear-gradient(90deg, var(--ez-primaire), var(--ez-accent))); color: #fff; text-align: left; }
@media (max-width: 40rem) { .ez-rebours-bande { border-radius: var(--ez-rayon); text-align: center; } }
.ez-rebours-bande > * { margin: 0 !important; }
.ez-rebours-bande-titre { font-weight: 700; }
.ez-rebours-bande .ez-rebours { gap: .35rem; flex-wrap: nowrap; }
.ez-rebours-bande .ez-rebours-unite { flex-direction: row; align-items: baseline; gap: .2rem; min-width: 0; padding: 0; background: none; }
.ez-rebours-bande .ez-rebours-nombre { font-size: 1.25rem; font-weight: 800; color: inherit; }
.ez-rebours-bande .ez-rebours-libelle { font-size: .8rem; color: inherit; opacity: .85; }
.ez-rebours-bande .ez-rebours-fin { font-size: 1.1rem; color: inherit; }
.ez-rebours-bande .ez-bouton { background: #fff; color: var(--ez-primaire); }
@media (min-width: 48rem) { .ez-rebours-bande p:has(> .ez-bouton) { margin-left: auto !important; } }
.ez-rebours-pres-circles .ez-rebours-unite { background: none; padding: 0; gap: .4rem; align-items: center; }
.ez-rebours-cercle { --ez-v: 100; display: grid; place-items: center; width: clamp(4.6rem, 3.5rem + 5vw, 6.5rem); aspect-ratio: 1; border-radius: 50%; background: conic-gradient(var(--ez-widget-couleur, var(--ez-accent)) calc(var(--ez-v) * 1%), var(--ez-surface) 0); position: relative; transition: background .4s; }
.ez-rebours-cercle::before { content: ""; position: absolute; inset: .35rem; border-radius: 50%; background: var(--ez-fond); }
.ez-rebours-cercle .ez-rebours-nombre { position: relative; font-size: clamp(1.4rem, 1rem + 1.6vw, 2rem); }
.ez-rebours-pres-circles .ez-rebours-libelle { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
@media (prefers-reduced-motion: reduce) { .ez-rebours-cercle { transition: none; } }
.ez-bloc.ez-rebours-pres-photo { position: relative; overflow: hidden; color: #fff; min-height: 20rem; display: grid; align-items: center; padding: calc(var(--ez-espace) * 2.4) 0; background: var(--ez-v-degrade, linear-gradient(135deg, var(--ez-primaire), var(--ez-accent))); }
.ez-rebours-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ez-rebours-pres-photo picture { display: contents; }
.ez-rebours-pres-photo.ez-avec-image::after { content: ""; position: absolute; inset: 0; background: rgb(5 10 25 / .55); }
.ez-rebours-pres-photo .ez-conteneur { position: relative; z-index: 1; }
.ez-rebours-pres-photo h2, .ez-rebours-pres-photo .ez-rebours-date, .ez-rebours-pres-photo .ez-widget-intro { color: #fff; }
.ez-rebours-pres-photo .ez-rebours-unite { background: rgb(255 255 255 / .14); border: 1px solid rgb(255 255 255 / .3); backdrop-filter: blur(6px); }
.ez-rebours-pres-photo .ez-rebours-nombre, .ez-rebours-pres-photo .ez-rebours-libelle, .ez-rebours-pres-photo .ez-rebours-fin { color: #fff; }
.ez-rebours-pres-photo .ez-bouton { background: #fff; color: var(--ez-primaire); }

/* ===== 2.20 — Étapes (linked, cards, vertical, photos) ===== */
:is(.ez-et-linked, .ez-et-cards, .ez-et-vertical, .ez-et-photos) { list-style: none; margin: 0; padding: 0; }
:is(.ez-et-linked, .ez-et-cards, .ez-et-vertical, .ez-et-photos) h3 { margin: 0 0 .3rem; font-size: 1.1rem; }
:is(.ez-et-linked, .ez-et-cards, .ez-et-vertical, .ez-et-photos) .ez-texte > :last-child { margin-bottom: 0; }
.ez-et-n { display: grid; place-items: center; flex: none; font-family: var(--ez-police-titres); font-weight: 800; }
.ez-et-linked { display: grid; gap: 1.4rem; position: relative; }
.ez-et-pas { display: grid; grid-template-columns: 3.5rem 1fr; gap: 1rem; align-items: start; position: relative; }
.ez-et-pas .ez-et-n { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--ez-fond); border: 2px solid var(--ez-widget-couleur, var(--ez-primaire)); color: var(--ez-widget-couleur, var(--ez-primaire)); font-size: 1.2rem; position: relative; z-index: 1; }
.ez-et-pas:first-child .ez-et-n { background: var(--ez-widget-couleur, var(--ez-primaire)); color: var(--ez-sur-primaire); }
.ez-et-pas:not(:last-child)::after { content: ""; position: absolute; left: calc(1.75rem - 1px); top: 3.5rem; bottom: -1.4rem; border-left: 2px dashed color-mix(in srgb, var(--ez-widget-couleur, var(--ez-primaire)) 40%, transparent); }
@media (min-width: 48rem) {
  .ez-et-linked:not([data-ez-n="1"]) { grid-template-columns: repeat(var(--ez-colonnes, 4), 1fr); }
  .ez-et-linked[data-ez-n="2"] { --ez-colonnes: 2; } .ez-et-linked[data-ez-n="3"] { --ez-colonnes: 3; } .ez-et-linked[data-ez-n="5"] { --ez-colonnes: 5; }
  .ez-et-linked[data-ez-n="6"] { --ez-colonnes: 3; }
  .ez-et-linked:not([data-ez-n="1"]) .ez-et-pas { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .ez-et-linked:not([data-ez-n="1"]) .ez-et-pas:not(:last-child)::after { left: calc(50% + 2.2rem); right: calc(-50% + 1.5rem); top: calc(1.75rem - 1px); bottom: auto; border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--ez-widget-couleur, var(--ez-primaire)) 40%, transparent); }
  .ez-et-linked[data-ez-n="6"] .ez-et-pas:nth-child(3)::after { content: none; }
}
.ez-et-cards { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.ez-et-carte { position: relative; overflow: hidden; display: grid; gap: .5rem; align-content: start; padding: 1.5rem; border-radius: calc(var(--ez-rayon) * 1.2); background: var(--ez-surface); }
.ez-fond-surface .ez-et-carte { background: var(--ez-fond); }
.ez-et-filigrane { position: absolute; right: 1rem; top: .4rem; font-family: var(--ez-police-titres); font-weight: 800; font-size: 4.2rem; line-height: 1; color: color-mix(in srgb, var(--ez-widget-couleur, var(--ez-primaire)) 20%, transparent); pointer-events: none; }
.ez-et-carte .ez-widget-icone { justify-self: start; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin: 0 0 .3rem; border-radius: 50%; background: var(--ez-fond); color: var(--ez-widget-couleur, var(--ez-primaire)); }
.ez-et-carte > :not(.ez-et-filigrane) { position: relative; }
.ez-et-vedette { background: var(--ez-widget-couleur, var(--ez-primaire)) !important; color: var(--ez-sur-primaire); }
.ez-et-vedette h3, .ez-et-vedette .ez-texte { color: inherit; }
.ez-et-vedette .ez-et-filigrane { color: rgb(255 255 255 / .2); }
.ez-et-vedette .ez-widget-icone { background: rgb(255 255 255 / .16); color: inherit; }
.ez-et-vertical { display: grid; max-width: 42rem; }
.ez-et-ligne { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; position: relative; padding-bottom: 1.5rem; }
.ez-et-ligne:not(:last-child)::before { content: ""; position: absolute; left: calc(1.5rem - 1px); top: 3rem; bottom: 0; width: 2px; background: var(--ez-bord); }
.ez-et-ligne .ez-et-n { width: 3rem; height: 3rem; border-radius: .9rem; background: var(--ez-widget-couleur, var(--ez-primaire)); color: var(--ez-sur-primaire); font-size: 1.05rem; }
.ez-et-ligne > div { padding-top: .2rem; }
.ez-et-quand { margin: 0 0 .15rem; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ez-accent); }
.ez-et-photos { display: grid; gap: calc(var(--ez-espace) * 1.6); }
.ez-et-photo-pas { display: grid; gap: 1rem 2rem; align-items: center; }
.ez-et-photo-pas figure { margin: 0; }
.ez-et-photo { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ez-rayon); display: block; }
@media (min-width: 48rem) { .ez-et-photo-pas { grid-template-columns: 1fr 1fr; } .ez-et-photo-pas:nth-child(even) figure { order: 2; } }
.ez-et-pastille { display: inline-block; margin: 0 0 .5rem; padding: .25rem .7rem; border-radius: 999px; background: var(--ez-widget-couleur, var(--ez-primaire)); color: var(--ez-sur-primaire); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* ===== 2.20 — Avant / après (side, toggle, multi) ===== */
.ez-ba-cote .ez-avant-apres-cadre { gap: 1rem; }
.ez-ba-cote .ez-avant-apres-etiquette { border-radius: 999px; background: #fff; color: #111; padding: .25rem .75rem; }
.ez-ba-cote .ez-avant-apres-apres .ez-avant-apres-etiquette { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-ba-boutons { display: inline-flex; padding: .25rem; border-radius: 999px; background: var(--ez-surface); margin: 0 auto .8rem; }
.ez-ba-bascule { text-align: center; }
.ez-ba-boutons button { font: inherit; font-weight: 700; font-size: .92rem; padding: .45rem 1.2rem; border: 0; border-radius: 999px; background: none; color: var(--ez-texte-doux); cursor: pointer; }
.ez-ba-boutons button[aria-pressed="true"] { background: var(--ez-fond); color: var(--ez-texte); box-shadow: 0 2px 8px rgb(0 0 0 / .1); }
.ez-ba-bascule.ez-ba-pret .ez-avant-apres-cadre { display: grid; grid-template-columns: 1fr; max-width: 60rem; margin: 0 auto; }
.ez-ba-bascule.ez-ba-pret .ez-avant-apres-vue { grid-area: 1 / 1; transition: opacity .35s; }
.ez-ba-bascule.ez-ba-pret .ez-avant-apres-avant { opacity: 0; }
.ez-ba-bascule.ez-ba-pret.ez-ba-montre-avant .ez-avant-apres-avant { opacity: 1; }
.ez-ba-bascule.ez-ba-pret.ez-ba-montre-avant .ez-avant-apres-apres { opacity: 0; }
.ez-ba-bascule.ez-ba-pret .ez-avant-apres-etiquette { display: none; }
@media (prefers-reduced-motion: reduce) { .ez-ba-bascule.ez-ba-pret .ez-avant-apres-vue { transition: none; } }
.ez-ba-multi { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
.ez-ba-vignettes { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr)); gap: .6rem; align-items: center; max-width: 60rem; }
.ez-ba-vignettes button { padding: 0; border: 0; border-radius: .6rem; overflow: hidden; cursor: pointer; opacity: .6; background: var(--ez-surface); aspect-ratio: 4 / 3; }
.ez-ba-vignettes button[aria-pressed="true"] { opacity: 1; outline: 3px solid var(--ez-primaire); outline-offset: 2px; }
.ez-ba-vignettes picture { display: contents; }
.ez-ba-mini { width: 100%; height: 100%; object-fit: cover; display: block; }
.ez-ba-compteur { grid-column: 1 / -1; font-size: .88rem; color: var(--ez-texte-doux); }
.ez-ba-pres .ez-avant-apres-image { aspect-ratio: 4 / 3; object-fit: cover; }

/* --- 2.20 : actualités (magazine, pastille de date, mur, fil par mois) --- */
:is(.ez-actus-magazine, .ez-actus-dated, .ez-actus-wall, .ez-actus-monthly) :is(h2, h3) a { text-decoration: none; color: inherit; }
:is(.ez-actus-magazine, .ez-actus-dated, .ez-actus-wall, .ez-actus-monthly) :is(h2, h3) a:hover { text-decoration: underline; }
.ez-actus-magazine { display: grid; gap: calc(var(--ez-espace) * 1.2); }
@media (min-width: 52rem) { .ez-actus-magazine:not(.ez-actus-seule) { grid-template-columns: 1.25fr 1fr; align-items: start; } }
.ez-actu-une { display: grid; gap: .6rem; }
.ez-actu-une .ez-actu-image, .ez-actu-mur .ez-actu-image { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ez-rayon); }
.ez-actu-une :is(h2, h3) { font-size: clamp(1.3rem, 2.4vw, 1.65rem); line-height: 1.2; margin: 0; }
.ez-actu-une .ez-meta, .ez-actu-une p { margin: 0; }
.ez-actu-cat, .ez-actu-une .ez-meta, .ez-article-cat { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ez-accent); margin: 0 0 .2rem; }
.ez-actus-mag-liste { display: grid; }
.ez-actu-ligne { display: grid; grid-template-columns: 7rem 1fr; gap: .9rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-actu-ligne:first-child { padding-top: 0; }
.ez-actu-ligne:not(:has(picture, img)) { grid-template-columns: 1fr; }
.ez-actu-vignette { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: calc(var(--ez-rayon) * .7); }
.ez-actu-ligne :is(h2, h3), .ez-actu-mois-item :is(h2, h3), .ez-actu-datee :is(h2, h3) { font-size: 1.02rem; line-height: 1.3; margin: 0; }
.ez-actu-ligne .ez-meta { margin: .2rem 0 0; font-size: .82rem; }

.ez-actus-dated { display: grid; gap: .75rem; }
.ez-actu-datee { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 1.1rem; align-items: center; padding: .85rem 1.1rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-actu-datee:not(:has(.ez-actu-pastille)) { grid-template-columns: 1fr auto; }
.ez-actu-pastille { display: grid; place-items: center; align-content: center; width: 3.9rem; height: 4.1rem; border-radius: calc(var(--ez-rayon) * .8); background: var(--ez-fond); box-shadow: 0 6px 16px -10px rgba(15, 30, 60, .4); line-height: 1; }
.ez-actu-pastille b { font: 800 1.5rem var(--ez-police-titres); color: var(--ez-primaire); }
.ez-actu-pastille span:not(.ez-masque) { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ez-texte-doux); margin-top: .2rem; }
.ez-actu-datee-texte .ez-lire-plus { margin: .2rem 0 0; }
.ez-actu-fleche { width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 1.5px solid var(--ez-bord); display: grid; place-items: center; color: var(--ez-primaire); font-weight: 800; transition: background .2s, color .2s; }
.ez-actu-liee :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; border-radius: var(--ez-rayon); }
.ez-actu-liee:hover .ez-actu-fleche { background: var(--ez-primaire); color: var(--ez-sur-primaire); border-color: var(--ez-primaire); }
.ez-actu-liee .ez-lire-plus { display: none; }
@media (max-width: 36rem) { .ez-actu-datee { grid-template-columns: auto 1fr; padding: .75rem; gap: .8rem; } .ez-actu-fleche { display: none; } }

.ez-actus-wall { columns: 3 17rem; column-gap: 1rem; }
.ez-actu-mur { break-inside: avoid; margin-bottom: 1rem; border-radius: var(--ez-rayon); overflow: hidden; background: var(--ez-fond); border: 1px solid var(--ez-bord); box-shadow: 0 10px 30px -22px rgba(15, 30, 60, .45); }
.ez-actu-mur .ez-actu-image { border-radius: 0; aspect-ratio: 4 / 3; }
.ez-actu-mur:nth-child(3n+1) .ez-actu-image { aspect-ratio: 4 / 5; }
.ez-actu-mur-corps { padding: .9rem 1rem 1rem; display: grid; gap: .35rem; }
.ez-actu-mur-corps > * { margin: 0; }
.ez-actu-mur :is(h2, h3) { font-size: 1.08rem; line-height: 1.3; }
.ez-actu-texte { background: var(--ez-primaire); border-color: var(--ez-primaire); }
.ez-actu-texte .ez-actu-mur-corps { padding: 1.2rem 1.25rem; }
.ez-actu-texte, .ez-actu-texte :is(h2, h3, p, a, .ez-meta, .ez-actu-cat) { color: var(--ez-sur-primaire); }
.ez-actu-texte :is(h2, h3) { font-size: 1.25rem; }

.ez-actus-monthly { display: grid; grid-template-columns: 1fr; }
.ez-actu-mois { font: 800 1.05rem var(--ez-police-titres); color: var(--ez-texte); margin: 0; padding: .9rem 0 .4rem; border-bottom: 2px solid var(--ez-primaire); }
.ez-actu-mois-liste { display: grid; gap: 1rem; padding: .9rem 0 1.2rem; }
.ez-actu-mois-item { position: relative; display: grid; grid-template-columns: 1fr 5.6rem; gap: 1rem; align-items: start; }
.ez-actu-mois-item:not(:has(picture, img)) { grid-template-columns: 1fr; }
.ez-actu-mois-item p { margin: .2rem 0 0; }
.ez-actu-mois-item .ez-meta { margin: 0 0 .15rem; font-size: .82rem; }
@media (min-width: 48rem) {
  .ez-actus-monthly { grid-template-columns: 10rem 1fr; column-gap: 1.75rem; }
  .ez-actu-mois { border-bottom: 0; padding-top: 1rem; }
  .ez-actu-mois-liste { border-left: 2px solid var(--ez-bord); padding: .4rem 0 1rem 1.5rem; }
  .ez-actu-mois-item { grid-template-columns: 1fr 8rem; }
  .ez-actu-mois-item::before { content: ""; position: absolute; left: calc(-1.5rem - 8px); top: .45rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--ez-fond); border: 3px solid var(--ez-primaire); box-sizing: border-box; }
}

/* --- 2.20 : annonce en bandeau (doux, alerte, carte dans la page, flèches) --- */
.ez-annonce[data-ez-fermee] { display: none !important; }
.ez-an-ligne { display: flex; align-items: center; gap: .75rem; }
.ez-an-ligne p { flex: 1; min-width: 0; }
.ez-an-icone { flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; font-weight: 900; font-size: 1.05rem; line-height: 1; }
.ez-an-icone .ez-icone { width: 1.1rem; height: 1.1rem; }
.ez-an-lien { white-space: nowrap; }
.ez-annonce.ez-an-doux { background: color-mix(in srgb, var(--ez-accent) 12%, var(--ez-fond)); color: var(--ez-texte); border-bottom: 1px solid color-mix(in srgb, var(--ez-accent) 30%, var(--ez-fond)); }
.ez-an-doux .ez-an-icone { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-an-doux a { color: var(--ez-primaire); }
.ez-an-fermer { flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 0; background: transparent; color: inherit; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.ez-an-fermer:hover, .ez-an-fermer:focus-visible { background: color-mix(in srgb, currentColor 12%, transparent); }
.ez-annonce.ez-an-alerte { color: #fff; }
.ez-annonce.ez-an-important { background: #b54708; }
.ez-annonce.ez-an-urgent { background: #b42318; }
.ez-an-alerte .ez-an-icone { background: #fff; color: #b42318; }
.ez-an-important .ez-an-icone { color: #b54708; }
.ez-an-alerte p strong { margin-right: .35rem; }
.ez-an-alerte .ez-an-lien { color: #fff; border: 1.5px solid rgba(255, 255, 255, .7); border-radius: 999px; padding: .3rem .85rem; text-decoration: none; }
@media (max-width: 36rem) { .ez-an-alerte .ez-an-ligne { flex-wrap: wrap; } .ez-an-alerte p { flex: 1 1 calc(100% - 3rem); } .ez-an-alerte .ez-an-lien { margin: 0 0 .5rem 2.75rem; } }

.ez-an-defile { position: relative; }
.ez-annonces-pret .ez-annonce:not(.ez-annonce-active) { display: none; }
.ez-annonces-pret .ez-an-doux .ez-conteneur { padding-right: 9.5rem; }
.ez-annonces-nav { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: .3rem; font-size: .85rem; color: var(--ez-texte-doux); }
.ez-annonces-nav[hidden] { display: none; }
.ez-annonces-nav button { width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-primaire); font-weight: 800; cursor: pointer; padding: 0; line-height: 1; }
.ez-annonces-nav .ez-annonces-pause { position: static; transform: none; font-size: .7rem; }
.ez-annonces-nav .ez-annonces-pause::before { content: none; }
.ez-annonces-compteur { font-variant-numeric: tabular-nums; margin-right: .2rem; }
@media (max-width: 36rem) {
  .ez-annonces-pret .ez-an-doux .ez-conteneur { padding-right: 1rem; padding-bottom: 2.6rem; }
  .ez-annonces-nav { top: auto; bottom: .4rem; transform: none; }
}

.ez-an-cartes { display: grid; gap: 1rem; }
.ez-an-carte { display: grid; grid-template-columns: auto 1fr auto; gap: 1.1rem; align-items: center; padding: 1.2rem 1.4rem; border-radius: var(--ez-rayon); background: var(--ez-surface); border-left: 5px solid var(--ez-accent); }
.ez-an-carte .ez-an-icone { width: 3rem; height: 3rem; background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-an-carte .ez-an-icone .ez-icone { width: 1.4rem; height: 1.4rem; }
.ez-an-carte-important { border-left-color: #b54708; } .ez-an-carte-important .ez-an-icone { background: #b54708; color: #fff; }
.ez-an-carte-urgent { border-left-color: #b42318; } .ez-an-carte-urgent .ez-an-icone { background: #b42318; color: #fff; }
.ez-an-carte h3 { font-size: 1.1rem; margin: 0 0 .2rem; }
.ez-an-carte p { margin: 0; }
.ez-an-carte .ez-bouton { margin: 0; white-space: nowrap; }
@media (max-width: 40rem) { .ez-an-carte { grid-template-columns: auto 1fr; } .ez-an-carte .ez-bouton { grid-column: 1 / -1; justify-self: start; } }

/* --- 2.21 : dates clés --- */
.ez-dc + .ez-dc { margin-top: calc(var(--ez-espace) * 1.6); }
.ez-dc-titre { margin-bottom: .8rem; font-size: 1.3rem; }
.ez-dc-holiday { --ez-dc: var(--ez-primaire); --ez-sur-dc: var(--ez-sur-primaire); }
.ez-dc-day-off { --ez-dc: var(--ez-accent); --ez-sur-dc: var(--ez-sur-accent); }
.ez-dc-key-date { --ez-dc: var(--ez-texte-doux); --ez-sur-dc: var(--ez-fond); }
.ez-dc-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; max-width: 46rem; }
.ez-dc-ligne { display: flex; gap: 1rem; align-items: center; padding: .8rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-dc-ligne h3 { font-size: 1.02rem; margin: 0; }
.ez-dc-periode { margin: .15rem 0 0; color: var(--ez-texte-doux); font-size: .9rem; }
.ez-dc-pastille { flex: none; display: grid; place-items: center; width: 3.6rem; padding: .45rem 0; border-radius: var(--ez-rayon); background: var(--ez-fond); border: 1px solid var(--ez-bord); line-height: 1.05; }
.ez-dc-pastille b { font: 800 1.45rem var(--ez-police-titres); color: var(--ez-dc); }
.ez-dc-pastille small { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ez-texte-doux); }
.ez-dc-genre { display: inline-block; margin-top: .4rem; padding: .1rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; background: var(--ez-dc); color: var(--ez-sur-dc); }
.ez-dc-key-date .ez-dc-genre { background: color-mix(in srgb, var(--ez-dc) 16%, transparent); color: var(--ez-texte); }
.ez-dc-ligne.ez-date-passee { opacity: .55; }
.ez-dc-bande-boite { margin-bottom: .6rem; }
.ez-dc-mois { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ez-texte-doux); text-align: center; }
.ez-dc-bande { position: relative; height: 2.4rem; border-radius: var(--ez-rayon); background: var(--ez-surface); margin: .35rem 0 .3rem; }
.ez-dc-bloc { position: absolute; top: .35rem; bottom: .35rem; border-radius: calc(var(--ez-rayon) * .7); background: var(--ez-dc); }
.ez-dc-auj { position: absolute; top: -.3rem; bottom: -.3rem; width: 3px; margin-left: -1px; border-radius: 2px; background: var(--ez-texte); box-shadow: 0 0 0 2px var(--ez-fond); }
.ez-dc-noms { position: relative; height: 1.1rem; }
.ez-dc-noms span { position: absolute; transform: translateX(-50%); font-size: .74rem; font-weight: 600; color: var(--ez-texte-doux); white-space: nowrap; }
.ez-dc-legende { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; font-size: .85rem; color: var(--ez-texte-doux); margin: .3rem 0 .8rem; }
.ez-dc-legende i { display: inline-block; width: .8rem; height: .8rem; border-radius: 3px; margin-right: .35rem; vertical-align: -1px; background: var(--ez-dc); }
.ez-dc-legende .ez-dc-leg-auj i { width: 3px; height: .95rem; border-radius: 2px; background: var(--ez-texte); vertical-align: -2px; }
.ez-dc-resume { list-style: none; padding: 0; margin: 0; column-gap: 1.5rem; font-size: .92rem; }
.ez-dc-resume li { padding: .18rem 0; break-inside: avoid; }
.ez-dc-resume .ez-date-passee { color: var(--ez-texte-doux); }
@media (max-width: 40rem) { .ez-dc-m2 { visibility: hidden; } .ez-dc-noms { display: none; } }
@media (min-width: 48rem) { .ez-dc-resume { columns: 2; } }
.ez-dc-colonnes { display: grid; gap: 1rem; }
@media (min-width: 48rem) { .ez-dc-colonnes { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); } }
.ez-dc-colonne { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; background: var(--ez-fond); }
.ez-dc-colonne h3 { margin: 0; padding: .7rem 1rem; font-size: 1rem; background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-dc-colonne ul { list-style: none; margin: 0; padding: .3rem 1rem .6rem; }
.ez-dc-colonne li { padding: .55rem 0; border-bottom: 1px dashed var(--ez-bord); }
.ez-dc-colonne li:last-child { border-bottom: 0; }
.ez-dc-quand { display: block; font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ez-accent); }
.ez-dc-colonne .ez-date-passee { color: var(--ez-texte-doux); }
.ez-dc-suite { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; max-width: 46rem; }
.ez-dc-suite > li { border-bottom: 1px solid var(--ez-bord); }
.ez-dc-suite > li .ez-dc-carte { display: none; }
.ez-dc-court { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; }
.ez-dc-suite > li.ez-premier { border: 0; margin-bottom: .8rem; }
.ez-dc-suite > li.ez-premier .ez-dc-carte { display: block; padding: 1.4rem 1.5rem; border-radius: var(--ez-rayon); background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-dc-suite > li.ez-premier .ez-dc-court { display: none; }
.ez-dc-carte h3 { color: inherit; font-size: 1.5rem; margin: .2rem 0; }
.ez-dc-carte .ez-dc-periode { color: inherit; opacity: .85; }
.ez-dc-surtitre { margin: 0; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.ez-dc-compte { margin: .7rem 0 0; font: 800 1.6rem var(--ez-police-titres); }

/* --- 2.21 : menus de cantine --- */
.ez-mn-jours { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); }
.ez-mn-jour h4 { display: flex; justify-content: space-between; align-items: center; gap: .4rem; }
.ez-mn-auj { display: none; padding: .05rem .5rem; border-radius: 999px; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-mn-jour.ez-aujourdhui .ez-mn-auj { display: inline-block; }
.ez-mn-plats { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.ez-mn-ligne { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ez-texte-doux); }
.ez-mn-vege { margin: .55rem 0 0; font-size: .9rem; }
.ez-mn-badge { display: inline-block; padding: .05rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 700; background: #dcfce7; color: #166534; }
.ez-mn-allergenes { display: flex; flex-wrap: wrap; gap: .3rem; margin: .55rem 0 0; }
.ez-mn-allergenes span:not(.ez-masque) { padding: .05rem .5rem; border-radius: 999px; font-size: .72rem; border: 1px solid var(--ez-bord); color: var(--ez-texte-doux); }
.ez-mn-cards .ez-mn-jour { padding: 0; overflow: hidden; }
.ez-mn-cards .ez-mn-jour h4 { margin: 0; padding: .6rem .9rem; background: var(--ez-surface); }
.ez-mn-cards .ez-mn-jour.ez-aujourdhui h4 { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-mn-cards .ez-mn-jour.ez-aujourdhui .ez-mn-auj { background: var(--ez-fond); color: var(--ez-accent); }
.ez-mn-cards .ez-mn-jour > :not(h4) { margin-left: .9rem; margin-right: .9rem; }
.ez-mn-cards .ez-mn-jour > :last-child { margin-bottom: .9rem; }
.ez-mn-cards .ez-mn-plats { margin-top: .7rem; }
.ez-mn-cards .ez-menu-jour-ferme { background: repeating-linear-gradient(135deg, var(--ez-surface) 0 10px, var(--ez-fond) 10px 20px); }
.ez-mn-cards .ez-menu-jour-ferme .ez-menu-ferme { margin-top: .7rem; }
.ez-mn-today:not(.ez-pret) .ez-menu-semaine + .ez-menu-semaine, .ez-mn-today.ez-pret .ez-menu-semaine:not(.ez-semaine-active) { display: none; }
.ez-mn-today .ez-mn-jours { grid-template-columns: 1fr; }
.ez-mn-today .ez-mn-jour.ez-premier-jour { grid-row: 1; border: 2px solid var(--ez-accent); padding: 1.2rem 1.3rem; }
.ez-mn-today .ez-mn-jour.ez-premier-jour h4 { font-size: 1.25rem; }
.ez-mn-today .ez-mn-jour.ez-premier-jour .ez-mn-plats { font-size: 1.1rem; gap: .6rem; }
.ez-mn-today .ez-mn-jour.ez-jour-passe { display: none; }
@media (min-width: 48rem) {
  .ez-mn-today .ez-mn-jours { grid-template-columns: 2fr 1fr; align-items: start; }
  .ez-mn-today .ez-mn-jour.ez-premier-jour { grid-column: 1; grid-row: 1 / span 6; }
  .ez-mn-today .ez-mn-jour:not(.ez-premier-jour) { grid-column: 2; }
  .ez-mn-today .ez-mn-jour:not(.ez-premier-jour) .ez-mn-plats li:nth-child(n+2), .ez-mn-today .ez-mn-jour:not(.ez-premier-jour) :is(.ez-mn-allergenes, .ez-menu-note) { display: none; }
}
.ez-mn-tableau { width: 100%; border-collapse: collapse; min-width: 40rem; }
.ez-mn-tableau :is(th, td) { padding: .6rem .7rem; border: 1px solid var(--ez-bord); text-align: left; vertical-align: top; font-size: .92rem; }
.ez-mn-tableau thead th { background: var(--ez-surface); font-size: .85rem; }
.ez-mn-tableau thead th.ez-aujourdhui { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-mn-tableau td.ez-aujourdhui { background: color-mix(in srgb, var(--ez-primaire) 7%, transparent); }
.ez-mn-tableau tbody th { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ez-texte-doux); white-space: nowrap; }
.ez-mn-tableau td.ez-mn-ferme { color: var(--ez-texte-doux); font-style: italic; background: var(--ez-surface); }
.ez-mn-tab-allergenes td { font-size: .8rem; color: var(--ez-texte-doux); }
.ez-mn-board .ez-menu-semaine { padding: 1.4rem 1.5rem; border-radius: var(--ez-rayon); background: #1f2a24; color: #f4f1e8; border: 10px solid #8a5a2b; box-shadow: inset 0 0 40px rgb(0 0 0 / .35); }
.ez-mn-board .ez-menu-semaine + .ez-menu-semaine { margin-top: 1rem; }
.ez-mn-board h3 { color: #fde68a; font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive; text-align: center; }
.ez-mn-board .ez-mn-jours { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.ez-mn-board .ez-mn-jour { background: transparent; border: 0; border-top: 1px dashed rgb(255 255 255 / .3); border-radius: 0; color: inherit; font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive; }
.ez-mn-board .ez-mn-jour h4 { color: #fde68a; }
.ez-mn-board .ez-mn-jour.ez-aujourdhui { border: 0; border-top: 1px dashed rgb(255 255 255 / .3); box-shadow: none; }
.ez-mn-board .ez-mn-jour.ez-aujourdhui h4 { text-decoration: underline wavy #fca5a5; }
.ez-mn-board :is(.ez-mn-ligne, .ez-menu-ferme, .ez-mn-allergenes span) { color: rgb(244 241 232 / .7); border-color: rgb(255 255 255 / .3); }
.ez-mn-board .ez-mn-vege .ez-mn-ligne { color: #bbf7d0; }

/* --- 2.21 : offres --- */
.ez-of-genre { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; background: color-mix(in srgb, var(--ez-of) 14%, transparent); color: var(--ez-of); }
.ez-of-job { --ez-of: var(--ez-primaire); } .ez-of-internship { --ez-of: var(--ez-accent); } .ez-of-volunteer { --ez-of: #15803d; }
.ez-of-reste { font-size: .86rem; font-weight: 700; color: #b54708; }
.ez-of-reste.ez-of-sans { color: var(--ez-texte-doux); font-weight: 600; }
.ez-of-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-of-carte { display: flex; flex-direction: column; gap: .4rem; padding: 1.1rem 1.2rem; border: 1px solid var(--ez-bord); border-top: 4px solid var(--ez-of); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-of-carte :is(h2, h3) { margin: .2rem 0 0; font-size: 1.15rem; }
.ez-of-carte .ez-genre, .ez-of-carte > .ez-of-genre { align-self: flex-start; }
.ez-of-carte p { margin: 0; }
.ez-of-pied { margin-top: auto !important; padding-top: .6rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.ez-of-pied .ez-bouton { margin: 0; }
.ez-of-filtres { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.ez-of-filtre { padding: .45rem .95rem; border-radius: 999px; border: 1px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); font: inherit; font-weight: 600; cursor: pointer; }
.ez-of-filtre span { color: var(--ez-texte-doux); font-weight: 400; }
.ez-of-filtre[aria-pressed="true"] { background: var(--ez-primaire); color: var(--ez-sur-primaire); border-color: var(--ez-primaire); }
.ez-of-filtre[aria-pressed="true"] span { color: inherit; opacity: .8; }
.ez-of-lignes { display: grid; max-width: 52rem; border-top: 1px solid var(--ez-bord); }
.ez-of-ligne { display: flex; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-of-ligne > div { flex: 1; min-width: 0; }
.ez-of-ligne :is(h2, h3) { margin: 0 0 .2rem; font-size: 1.08rem; }
.ez-of-ligne .ez-meta { margin: 0 0 .2rem; }
.ez-of-fleche { flex: none; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid var(--ez-bord); text-decoration: none; font-weight: 800; }
.ez-of-ligne[data-ez-filtre-cache] { display: none; }
.ez-of-une { display: grid; gap: 1rem; }
@media (min-width: 52rem) { .ez-of-une:not(.ez-of-seule) { grid-template-columns: 2fr 1fr; align-items: start; } }
.ez-of-vedette { border-radius: var(--ez-rayon); overflow: hidden; background: var(--ez-surface); }
.ez-of-vedette .ez-of-photo, .ez-of-vedette picture img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.ez-of-vedette-corps { padding: 1.3rem 1.4rem; }
.ez-of-vedette :is(h2, h3) { font-size: 1.5rem; margin: .4rem 0; }
.ez-of-faits { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .6rem; margin: 1rem 0; }
.ez-of-faits div { padding: .6rem .8rem; border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-of-faits dt { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--ez-texte-doux); }
.ez-of-faits dd { margin: .1rem 0 0; font-weight: 600; }
.ez-of-vedette .ez-of-pied { padding-top: 0; }
.ez-of-autres { display: grid; gap: .8rem; }
.ez-of-petite { padding: .9rem 1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); }
.ez-of-petite :is(h2, h3) { font-size: 1rem; margin: .4rem 0 .2rem; }
.ez-of-petite .ez-meta { margin: 0; }
.ez-of-tableau { width: 100%; border-collapse: collapse; }
.ez-of-tableau :is(th, td) { padding: .75rem .7rem; border-bottom: 1px solid var(--ez-bord); text-align: left; vertical-align: middle; }
.ez-of-tableau thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ez-texte-doux); background: var(--ez-surface); }
@media (max-width: 40rem) {
  .ez-of-tableau thead { display: none; }
  .ez-of-tableau tr { display: block; padding: .8rem 0; border-bottom: 1px solid var(--ez-bord); }
  .ez-of-tableau :is(th, td) { display: block; border: 0; padding: .15rem 0; }
  .ez-of-tableau td::before { content: attr(data-ez-col) " : "; font-size: .78rem; color: var(--ez-texte-doux); }
}

/* --- 2.21 : calendrier sportif --- */
.ez-sp-equipe { display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center; min-width: 0; }
.ez-sp-blason { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: var(--ez-surface); color: var(--ez-primaire); font: 800 1rem var(--ez-police-titres); border: 2px solid var(--ez-bord); }
.ez-sp-nom { font-weight: 700; overflow-wrap: anywhere; }
.ez-sp-affiche { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; }
.ez-sp-score { font: 800 1.5rem var(--ez-police-titres); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ez-sp-heure { font: 700 1.1rem var(--ez-police-titres); white-space: nowrap; color: var(--ez-texte-doux); }
.ez-sp-match { position: relative; }
.ez-sp-match > .ez-meta { text-align: center; margin: 0 0 .8rem; }
.ez-sp-prochains { display: grid; gap: 0; }
.ez-sp-prochain { padding: .7rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-sp-prochain:not(.ez-premier) .ez-sp-affiche { grid-template-columns: 1fr auto 1fr; gap: .6rem; }
.ez-sp-prochain:not(.ez-premier) :is(.ez-sp-blason) { display: none; }
.ez-sp-prochain:not(.ez-premier) > .ez-meta { margin-bottom: .3rem; font-size: .85rem; }
.ez-sp-prochain.ez-premier { padding: 1.6rem 1.4rem; margin-bottom: .8rem; border: 0; border-radius: var(--ez-rayon); background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-sp-prochain.ez-premier .ez-meta, .ez-sp-prochain.ez-premier .ez-sp-heure { color: inherit; opacity: .9; }
.ez-sp-prochain.ez-premier .ez-sp-blason { width: 4.2rem; height: 4.2rem; font-size: 1.25rem; background: rgb(255 255 255 / .15); color: inherit; border-color: rgb(255 255 255 / .35); }
.ez-sp-prochain.ez-premier .ez-sp-heure { font-size: 1.8rem; }
.ez-sp-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.ez-sp-carte { padding: 1.1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-sp-carte > .ez-sp-issue { position: absolute; top: .7rem; right: .7rem; }
.ez-sp-carte:has(> .ez-sp-issue) > .ez-meta { padding: 0 1.9rem; }
.ez-sp-issue { display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .3rem; border-radius: 6px; font-size: .78rem; font-weight: 800; color: #fff; }
.ez-sp-win { background: #15803d; } .ez-sp-draw { background: #6b7280; } .ez-sp-loss { background: #b42318; }
.ez-sp-resultats { display: grid; border-top: 1px solid var(--ez-bord); margin-bottom: 1.5rem; }
.ez-sp-ligne { display: grid; grid-template-columns: 3rem 1fr auto auto; gap: .8rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-sp-ligne:not(:has(.ez-sp-issue)) { grid-template-columns: 3rem 1fr auto; }
.ez-sp-date { display: grid; place-items: center; line-height: 1.05; }
.ez-sp-date b { font: 800 1.2rem var(--ez-police-titres); color: var(--ez-primaire); }
.ez-sp-date small { font-size: .7rem; text-transform: uppercase; color: var(--ez-texte-doux); }
.ez-sp-quoi small { display: block; font-size: .82rem; color: var(--ez-texte-doux); }
.ez-sp-contre { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ez-texte-doux); }
.ez-sp-ligne .ez-sp-score { font-size: 1.1rem; }
.ez-sp-ligne .ez-sp-heure { font-size: .95rem; }
.ez-sp-saison { display: grid; gap: 1.2rem; }
.ez-sp-mois h3 { margin: 0 0 .2rem; padding-bottom: .3rem; border-bottom: 2px solid var(--ez-primaire); font-size: 1.05rem; }
.ez-sp-classement { width: 100%; border-collapse: collapse; margin-bottom: 1.2rem; }
.ez-sp-classement :is(th, td) { padding: .55rem .6rem; border-bottom: 1px solid var(--ez-bord); text-align: center; font-variant-numeric: tabular-nums; }
.ez-sp-classement tbody th, .ez-sp-classement thead th:nth-child(2) { text-align: left; }
.ez-sp-classement thead th { font-size: .78rem; color: var(--ez-texte-doux); background: var(--ez-surface); }
.ez-sp-classement abbr { text-decoration: none; }
.ez-sp-classement .ez-sp-pts { font-weight: 800; }
.ez-sp-classement tr.ez-sp-nous { background: color-mix(in srgb, var(--ez-primaire) 10%, transparent); font-weight: 700; }
.ez-sp-classement tr.ez-sp-nous td:first-child { box-shadow: inset 4px 0 0 var(--ez-primaire); }
.ez-sp-forme { margin-bottom: 1.5rem; }
.ez-sp-forme h3 { font-size: 1rem; margin: 0 0 .5rem; }
.ez-sp-puces { display: flex; gap: .35rem; margin: 0; }
.ez-sp-puces .ez-sp-issue { min-width: 2rem; height: 2rem; font-size: .9rem; }
@media (max-width: 36rem) { .ez-sp-blason { width: 2.6rem; height: 2.6rem; font-size: .85rem; } .ez-sp-affiche { gap: .5rem; } }

/* --- 2.21 : parcours et formations --- */
.ez-pf-marque { flex: none; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: calc(var(--ez-rayon) * .8); font: 800 .85rem var(--ez-police-titres); color: #fff; background: var(--ez-primaire); overflow: hidden; }
.ez-pf-teinte-1 { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-pf-teinte-2 { background: #0f766e; } .ez-pf-teinte-3 { background: #7c3aed; }
.ez-pf-logo { background: var(--ez-fond); border: 1px solid var(--ez-bord); }
.ez-pf-logo img { width: 100%; height: 100%; object-fit: contain; }
.ez-pf-periode { font-size: .8rem; font-weight: 700; color: var(--ez-accent); }
.ez-pf-en-cours { display: inline-block; vertical-align: middle; margin-left: .4rem; padding: .05rem .5rem; border-radius: 999px; font: 800 .66rem var(--ez-police-texte); text-transform: uppercase; letter-spacing: .05em; background: #dcfce7; color: #166534; }
.ez-pf-frise { list-style: none; padding: 0; margin: 0; max-width: 50rem; }
.ez-pf-etape { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 0 1rem; padding-bottom: 1.4rem; }
.ez-pf-etape > .ez-pf-periode { grid-column: 1 / -1; margin-bottom: .3rem; }
.ez-pf-etape h3 { font-size: 1.08rem; margin: 0 0 .15rem; }
.ez-pf-etape .ez-meta { margin: 0 0 .3rem; }
.ez-pf-etape:not(:last-child)::after { content: none; position: absolute; left: 1.4rem; top: 4.3rem; bottom: .2rem; width: 2px; background: var(--ez-bord); }
@media (min-width: 40rem) {
  .ez-pf-etape { grid-template-columns: 8.5rem auto 1fr; }
  .ez-pf-etape > .ez-pf-periode { grid-column: auto; text-align: right; padding-top: .7rem; margin: 0; }
  .ez-pf-etape:not(:last-child)::after { content: ""; left: calc(9.5rem + 1.4rem); top: 3.2rem; }
}
.ez-pf-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-pf-carte { padding: 1.1rem 1.2rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); }
.ez-pf-carte-tete { display: flex; gap: .8rem; align-items: center; margin-bottom: .5rem; }
.ez-pf-carte-tete .ez-pf-periode { margin: 0; }
.ez-pf-carte h3 { font-size: 1.05rem; margin: 0; }
.ez-pf-carte .ez-meta { margin: 0 0 .3rem; }
.ez-pf-carte > :last-child { margin-bottom: 0; }
.ez-pf-cv { display: grid; gap: 1.6rem; }
@media (min-width: 48rem) { .ez-pf-cv:has(> :nth-child(2)) { grid-template-columns: 1fr 1fr; gap: 2.4rem; } }
.ez-pf-cv-col h3 { margin: 0 0 .4rem; padding-bottom: .5rem; border-bottom: 2px solid var(--ez-primaire); font: 800 .82rem var(--ez-police-texte); letter-spacing: .1em; text-transform: uppercase; color: var(--ez-primaire); }
.ez-pf-cv-col ul { list-style: none; padding: 0; margin: 0; }
.ez-pf-cv-col li { padding: .7rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-pf-cv-ligne { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.ez-pf-cv-ligne .ez-pf-periode { white-space: nowrap; }
.ez-pf-cv-col .ez-meta { margin: .1rem 0 0; }
.ez-pf-compact { list-style: none; padding: 0; margin: 0; max-width: 52rem; }
.ez-pf-compact li { display: grid; grid-template-columns: 1fr; gap: .1rem; padding: .6rem 0; border-bottom: 1px dashed var(--ez-bord); }
@media (min-width: 40rem) { .ez-pf-compact li { grid-template-columns: 9rem 1fr auto; gap: 1rem; align-items: baseline; } }
.ez-pf-lieu { color: var(--ez-texte-doux); font-size: .9rem; }

/* --- 2.21 : compétences --- */
.ez-pf-icone { display: inline-grid; place-items: center; flex: none; width: 2.2rem; height: 2.2rem; border-radius: calc(var(--ez-rayon) * .7); background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pf-icone .ez-icone { width: 1.15rem; height: 1.15rem; }
.ez-pf-domaines { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.ez-pf-domaine { padding: 1.1rem 1.2rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-pf-domaine h3 { display: flex; align-items: center; gap: .6rem; font-size: 1.05rem; margin: 0 0 .7rem; }
.ez-pf-domaine ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.ez-pf-domaine li { padding: .25rem .7rem; border-radius: 999px; background: var(--ez-fond); font-size: .86rem; font-weight: 600; }
.ez-pf-barres-boite { display: grid; gap: 1.2rem; }
.ez-pf-barres-groupe h3 { font-size: 1rem; margin: 0 0 .5rem; }
.ez-pf-barres { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem 2rem; }
@media (min-width: 48rem) { .ez-pf-barres { grid-template-columns: 1fr 1fr; } }
.ez-pf-barre-tete { display: flex; justify-content: space-between; gap: .8rem; font-size: .93rem; margin-bottom: .3rem; }
.ez-pf-barre-tete small { color: var(--ez-texte-doux); }
.ez-pf-barre { display: block; height: .5rem; border-radius: 999px; background: var(--ez-surface); overflow: hidden; }
.ez-pf-barre i { display: block; height: 100%; border-radius: inherit; background: var(--ez-primaire); }
.ez-pf-coches-boite { display: grid; gap: 1.2rem 2rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.ez-pf-coches-groupe h3 { font: 800 .82rem var(--ez-police-texte); letter-spacing: .08em; text-transform: uppercase; color: var(--ez-primaire); margin: 0 0 .4rem; }
.ez-pf-coches { list-style: none; padding: 0; margin: 0; }
.ez-pf-coches li { position: relative; padding: .25rem 0 .25rem 1.6rem; }
.ez-pf-coches li::before { content: "✓"; position: absolute; left: 0; color: #15803d; font-weight: 800; }
.ez-pf-nuage { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.ez-pf-nuage li { padding: .45rem .9rem; border-radius: var(--ez-rayon); font-weight: 600; font-size: .9rem; background: var(--ez-surface); }
.ez-pf-nuage .ez-pf-n1 { background: var(--ez-primaire); color: var(--ez-sur-primaire); font-size: 1.08rem; }
.ez-pf-nuage .ez-pf-n2 { background: color-mix(in srgb, var(--ez-primaire) 16%, transparent); color: var(--ez-primaire); }

/* --- 2.21 : langues parlées --- */
.ez-pf-langues { list-style: none; padding: 0; margin: 0; }
.ez-pf-langues-dots { display: grid; gap: 0 2rem; max-width: 52rem; }
@media (min-width: 48rem) { .ez-pf-langues-dots { grid-template-columns: 1fr 1fr; } }
.ez-pf-langues-dots li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--ez-bord); }
.ez-pf-langues-dots small { color: var(--ez-texte-doux); margin-left: .3rem; }
.ez-pf-points { display: flex; gap: .3rem; flex: none; }
.ez-pf-points i { width: .75rem; height: .75rem; border-radius: 50%; background: var(--ez-surface); border: 1px solid var(--ez-bord); }
.ez-pf-points i.ez-plein { background: var(--ez-primaire); border-color: var(--ez-primaire); }
.ez-pf-langues-cefr { display: grid; gap: .6rem; max-width: 46rem; }
.ez-pf-langues-cefr li { display: grid; grid-template-columns: 1fr; gap: .3rem; align-items: center; }
@media (min-width: 40rem) { .ez-pf-langues-cefr li { grid-template-columns: 8rem 1fr; gap: 1rem; } }
.ez-pf-echelle { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; }
.ez-pf-echelle i { padding: .25rem 0; border-radius: 4px; text-align: center; font: 700 .7rem var(--ez-police-texte); font-style: normal; background: var(--ez-surface); color: var(--ez-texte-doux); }
.ez-pf-echelle i.ez-plein { background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pf-maternelle { justify-self: start; padding: .1rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; background: #dcfce7; color: #166534; }
.ez-pf-langues-circles { display: flex; flex-wrap: wrap; gap: 1.4rem 2rem; }
.ez-pf-langues-circles li { display: grid; justify-items: center; gap: .4rem; text-align: center; }
.ez-pf-cercle { display: grid; place-items: center; width: 4.2rem; height: 4.2rem; border-radius: 50%; font: 800 1.05rem var(--ez-police-titres); color: var(--ez-primaire);
  background: radial-gradient(closest-side, var(--ez-fond) 80%, transparent 81% 100%), conic-gradient(var(--ez-primaire) calc(var(--ez-pct) * 1%), var(--ez-surface) 0); }
.ez-pf-langues-circles small { font-size: .8rem; color: var(--ez-texte-doux); line-height: 1.3; }

/* --- 2.21 : liens --- */
.ez-pf-bio { max-width: 28rem; margin: 0 auto; text-align: center; }
.ez-pf-bio .ez-liens-photo { display: block; }
.ez-pf-bio-nom { font: 800 1.35rem var(--ez-police-titres); margin: 0; }
.ez-pf-bio-phrase { color: var(--ez-texte-doux); margin: .3rem 0 0; }
.ez-pf-bio ul { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: .7rem; }
.ez-pf-bio-bouton { display: flex; align-items: center; justify-content: center; gap: .6rem; padding: .85rem 1.2rem; border-radius: 999px; border: 1.5px solid var(--ez-bord); background: var(--ez-fond); color: var(--ez-texte); font-weight: 700; text-decoration: none; }
.ez-pf-bio-bouton .ez-icone { width: 1.1rem; height: 1.1rem; }
.ez-pf-bio-bouton:hover, .ez-pf-bio-bouton:focus-visible { border-color: var(--ez-primaire); color: var(--ez-primaire); }
.ez-pf-bio-bouton.ez-pf-bio-premier { background: var(--ez-primaire); border-color: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pf-ronds { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .7rem; }
.ez-pf-rond { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: var(--ez-primaire); color: var(--ez-sur-primaire); }
.ez-pf-rond:hover, .ez-pf-rond:focus-visible { background: var(--ez-accent); color: var(--ez-sur-accent); }
.ez-pf-rond .ez-icone { width: 1.3rem; height: 1.3rem; }
.ez-pf-liens-cartes { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-pf-lien-carte { display: flex; align-items: center; gap: .9rem; height: 100%; box-sizing: border-box; padding: 1rem 1.1rem; border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); background: var(--ez-fond); color: var(--ez-texte); text-decoration: none; }
.ez-pf-lien-carte .ez-pf-icone { background: var(--ez-surface); color: var(--ez-primaire); }
.ez-pf-lien-texte { flex: 1; min-width: 0; }
.ez-pf-lien-texte small { display: block; color: var(--ez-texte-doux); font-size: .85rem; }
.ez-pf-fleche { font-weight: 800; color: var(--ez-primaire); }
.ez-pf-lien-carte:hover, .ez-pf-lien-carte:focus-visible { border-color: var(--ez-primaire); }

/* --- 2.21 : publications --- */
.ez-pf-pubs { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; max-width: 52rem; }
.ez-pf-pub { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .8rem 1rem; border-radius: var(--ez-rayon); background: var(--ez-surface); }
.ez-pf-pub .ez-pf-icone { width: 2.6rem; height: 2.6rem; background: var(--ez-fond); color: var(--ez-primaire); }
.ez-pf-pub h3 { font-size: 1.02rem; margin: 0; }
.ez-pf-pub .ez-meta { margin: .1rem 0 0; }
.ez-pf-action { font-weight: 700; white-space: nowrap; text-decoration: none; }
@media (max-width: 36rem) { .ez-pf-pub { grid-template-columns: auto 1fr; } .ez-pf-action { grid-column: 2; } }
.ez-pf-pub-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ez-pf-pub-carte { border: 1px solid var(--ez-bord); border-radius: var(--ez-rayon); overflow: hidden; background: var(--ez-fond); }
.ez-pf-pub-media { position: relative; }
.ez-pf-pub-media img, .ez-pf-pub-fond { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ez-pf-pub-fond { color: rgb(255 255 255 / .85); background: linear-gradient(135deg, var(--ez-primaire), var(--ez-accent)); }
.ez-pf-pub-fond.ez-pf-pub-talk { background: linear-gradient(135deg, #9a3412, #fb923c); }
.ez-pf-pub-fond.ez-pf-pub-podcast { background: linear-gradient(135deg, #312e81, #a855f7); }
.ez-pf-pub-fond.ez-pf-pub-other { background: linear-gradient(135deg, #334155, #64748b); }
.ez-pf-pub-fond .ez-icone { width: 2.6rem; height: 2.6rem; }
.ez-pf-pub-genre { position: absolute; left: .7rem; top: .7rem; padding: .15rem .6rem; border-radius: 999px; background: #fff; color: #111; font-size: .72rem; font-weight: 800; }
.ez-pf-pub-corps { padding: .9rem 1rem 1rem; }
.ez-pf-pub-corps h3 { font-size: 1.02rem; margin: 0 0 .2rem; }
.ez-pf-pub-corps .ez-meta { margin: 0; }
.ez-pf-annees { display: grid; gap: 1rem; max-width: 52rem; }
.ez-pf-annee h3 { font: 800 1.3rem var(--ez-police-titres); color: var(--ez-primaire); margin: 0 0 .4rem; }
.ez-pf-annee ul { list-style: none; margin: 0; padding: 0 0 0 1rem; border-left: 3px solid var(--ez-bord); }
.ez-pf-annee li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .5rem 0; }
.ez-pf-annee li small { display: block; color: var(--ez-texte-doux); font-size: .85rem; }
.ez-pf-genre { flex: none; align-self: center; padding: .15rem .6rem; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; background: color-mix(in srgb, var(--ez-primaire) 12%, transparent); color: var(--ez-primaire); white-space: nowrap; line-height: 1.4; }
