/* ==========================================================================
   Thème RE7 : les composants du système de design, par-dessus theme.json.
   Même dessin que l'application (jetons banane, myrtille, encre ; Rubik, Caveat ; icônes de la maison).
   Les seuils de la maquette validée (980, 940 et 560 px) sont des requêtes de conteneur sur la page.
   ========================================================================== */

:root {
  --re7-ombre-cta: 0 2px 0 #E9BE00;
  --re7-ombre-carte: 0 12px 36px rgba(15, 23, 42, 0.16);
  --re7-ombre-douce: 0 12px 36px rgba(15, 23, 42, 0.10);
  --re7-ombre-menu: 0 14px 44px rgba(17, 24, 39, 0.12);
}

html { scroll-behavior: smooth; }
body { margin: 0; font-variant-numeric: tabular-nums; overflow-x: clip; -webkit-font-smoothing: antialiased; }
.re7-page { container-type: inline-size; container-name: page; }
.re7-page [id] { scroll-margin-top: 76px; }
.re7-page :is(h1, h2, h3) { text-wrap: balance; margin: 0; }
.re7-page p { margin: 0; }
.re7-page img { max-width: 100%; height: auto; }
.re7-page--contenu { padding-block: 48px 72px; }
.re7-page--contenu .wp-block-post-title { margin-bottom: 24px; font-size: clamp(32px, 3.9cqi, 50px); }
.re7-page--contenu .wp-block-post-content > * + * { margin-top: 18px; }
.re7-page--contenu .wp-block-post-content h2 { margin-top: 40px; font-size: 26px; }
.re7-page--contenu .wp-block-post-content h3 { margin-top: 28px; font-size: 20px; }
.re7-page--contenu .wp-block-post-content p, .re7-page--contenu .wp-block-post-content li { font-size: 16px; line-height: 1.7; color: var(--wp--preset--color--encre-2); }
.re7-page--contenu .wp-block-post-content { max-width: 820px; }
.re7-page--contenu .wp-block-details { margin: 0; border-bottom: 1px solid var(--wp--preset--color--bordure-2); }
.re7-page--contenu .wp-block-details > summary { box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 12px 0; font-size: 16px; font-weight: 700; color: var(--wp--preset--color--encre); cursor: pointer; list-style: none; }
.re7-page--contenu .wp-block-details > summary::-webkit-details-marker { display: none; }
.re7-page--contenu .wp-block-details > summary::after { content: ""; flex-shrink: 0; width: 20px; height: 20px; background: url("../icones/chevron-bas.svg") center / contain no-repeat; transition: transform 0.15s; }
.re7-page--contenu .wp-block-details[open] > summary::after { transform: rotate(180deg); }
.re7-page--contenu .wp-block-details > *:not(summary) { margin: 0 0 16px; }
.re7-page--contenu .wp-block-details + .wp-block-details { margin-top: 0; }
.re7-page--contenu .wp-block-table table, .re7-comparaison table { width: 100%; border-collapse: collapse; font-size: 15px; }
.re7-page--contenu .wp-block-table th, .re7-page--contenu .wp-block-table td, .re7-comparaison th, .re7-comparaison td { padding: 12px 10px; border-bottom: 1px solid var(--wp--preset--color--bordure-2); text-align: left; vertical-align: top; color: var(--wp--preset--color--encre-2); }
.re7-comparaison th { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--brume-lisible); border-bottom: 1px solid var(--wp--preset--color--bordure); }
.re7-comparaison td:first-child { color: var(--wp--preset--color--encre); }
.re7-comparaison td:nth-child(2), .re7-comparaison td:nth-child(3), .re7-comparaison th:nth-child(2), .re7-comparaison th:nth-child(3) { width: 20%; }
.re7-nouveaute { padding: 20px 24px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 14px; background: var(--wp--preset--color--surface); }
.re7-nouveaute + .re7-nouveaute { margin-top: 14px !important; }
.re7-nouveaute__date { font-size: 12.5px; font-weight: 500; color: var(--wp--preset--color--brume) !important; }
.re7-nouveaute h3 { margin-top: 6px !important; font-size: 18px !important; }
.re7-contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.re7-contact { padding: 20px 22px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 14px; background: var(--wp--preset--color--surface); }
.re7-contact h2 { margin: 0 0 6px !important; font-size: 17px !important; }
.re7-contact__adresse { margin-top: 10px !important; font-weight: 600; }

/* ---- Utilitaires de texte ---- */
.re7-manuscrit { font-family: var(--wp--preset--font-family--caveat); font-weight: 600; }
.re7-surtitre { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--myrtille) !important; }
.re7-surtitre--encre { color: var(--wp--preset--color--encre) !important; }
.re7-surtitre--ardoise { color: var(--wp--preset--color--ardoise) !important; }
.re7-chapeau { font-size: 18px; line-height: 1.55; color: var(--wp--preset--color--encre-2); }
.re7-chapeau--grand { font-size: 19px; max-width: 540px; }
.re7-corps { font-size: 17px; line-height: 1.6; color: var(--wp--preset--color--encre-2); }
.re7-note { font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--ardoise) !important; }
.re7-page .re7-titre-haccp { font-size: clamp(28px, 3.8cqi, 48px); font-weight: 800; line-height: 1.1; letter-spacing: -0.025em; color: var(--wp--preset--color--encre); }
.re7-page .re7-titre-moment { font-size: clamp(26px, 2.8cqi, 36px); }
.re7-insecable { white-space: nowrap; }

/* ---- Boutons ---- */
.re7-page .wp-block-button__link, .re7-entete .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 28px; border-radius: 11px; background: var(--wp--preset--color--banane); color: var(--wp--preset--color--encre); font-size: 17px; font-weight: 700; text-decoration: none; box-shadow: var(--re7-ombre-cta); line-height: 1.2; }
.re7-page .wp-block-button__link:hover, .re7-entete .wp-block-button__link:hover { filter: brightness(0.97); color: var(--wp--preset--color--encre); }
.re7-page .wp-block-button__link:active { transform: translateY(1px); box-shadow: none; }
.re7-bouton--encre .wp-block-button__link { background: var(--wp--preset--color--encre); color: #fff; box-shadow: none; min-height: 52px; padding: 0 24px; font-size: 16px; }
.re7-bouton--encre .wp-block-button__link:hover { background: #2c2c3a; color: #fff; filter: none; }
.re7-bouton--myrtille .wp-block-button__link { background: var(--wp--preset--color--myrtille); color: #fff; box-shadow: none; }
.re7-bouton--myrtille .wp-block-button__link:hover { background: #4338ca; color: #fff; filter: none; }
.re7-bouton--pleine-largeur, .re7-bouton--pleine-largeur .wp-block-button__link { width: 100%; }
.re7-bouton--entete .wp-block-button__link { min-height: 44px; padding: 0 18px; font-size: 15px; white-space: nowrap; }
.re7-lien-souligne { display: inline-flex; align-items: center; gap: 6px; min-height: 48px; font-size: 16px; font-weight: 600; color: var(--wp--preset--color--encre) !important; text-decoration: underline; text-decoration-color: var(--wp--preset--color--brume-2); text-underline-offset: 5px; }
.re7-lien-souligne:hover { text-decoration-color: var(--wp--preset--color--encre); }
.re7-lien-souligne img { width: 18px; height: 18px; }
.re7-cta-court, .re7-entete .re7-cta-court { display: none !important; }

/* ---- En-tête ----
   Le menu reste collé en haut pendant le défilement. WordPress enveloppe la partie « En-tête » dans un <header> de la
   même hauteur : c'est l'enveloppe qui colle, sinon le collage n'a aucune place pour agir. */
header.wp-block-template-part:has(> .re7-entete) { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part:has(> .re7-entete) { top: var(--wp-admin--admin-bar--height, 32px); }
.re7-entete { position: sticky; top: 0; z-index: 30; background: var(--wp--preset--color--surface); border-bottom: 1px solid var(--wp--preset--color--bordure); container-type: inline-size; container-name: page; }
.re7-entete__barre { padding-block: 12px; gap: 28px; }
.re7-entete__logo img { height: 35px; width: auto; }
.re7-nav { flex: 1; min-width: 0; }
.re7-nav .wp-block-navigation__container, .re7-nav.wp-block-navigation { gap: 2px; }
/* « Fonctionnalités » est un bouton (ouverture au clic) : même dessin que les liens, flèche comprise. */
.re7-nav .wp-block-navigation-submenu__toggle[aria-expanded] { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; font: inherit; font-size: 15px; font-weight: 500; color: var(--wp--preset--color--encre-2); cursor: pointer; }
.re7-nav .wp-block-navigation-submenu__toggle[aria-expanded]:hover { background: var(--wp--preset--color--fond); color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon svg, .re7-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.re7-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 9px; font-size: 15px; font-weight: 500; color: var(--wp--preset--color--encre-2); text-decoration: none; white-space: nowrap; }
.re7-nav .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--fond); color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation__submenu-container { min-width: 320px; padding: 8px; border: 1px solid var(--wp--preset--color--bordure-2); border-radius: 14px; box-shadow: var(--re7-ombre-menu); }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 12px; border-radius: 12px; white-space: normal; }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-weight: 700; font-size: 15px; color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__description { font-size: 13px; color: var(--wp--preset--color--ardoise); }
.re7-nav .wp-block-navigation__responsive-container-open, .re7-nav .wp-block-navigation__responsive-container-close { align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--wp--preset--color--bordure); border-radius: 10px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation__responsive-container-open svg, .re7-nav .wp-block-navigation__responsive-container-close svg { width: 24px; height: 24px; }
@media (min-width: 981px) { .re7-nav .wp-block-navigation__responsive-container-open { display: none !important; } }
/* La maquette replie le menu dès 980 px ; WordPress ne le replie qu'en dessous de 600 px : on avance le seuil. */
/* Entre 981 et 1080 px, l'en-tête complet ne tient pas : « Se connecter » passe dans le menu. */
@media (min-width: 981px) and (max-width: 1080px) { .re7-entete__connexion { display: none; } }
@media (max-width: 980px) {
  .re7-entete__barre > .re7-nav { order: 3; flex: 0 0 auto; }
  .re7-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex !important; }
  .re7-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
  .re7-nav .wp-block-navigation__responsive-container.is-menu-open { display: flex !important; position: fixed; inset: 0; z-index: 100000; background: var(--wp--preset--color--surface); overflow: auto; }
  .re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: inline-flex !important; position: absolute; top: 12px; right: 16px; }
  .re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
}
.re7-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 76px 16px 24px; }
.re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { min-height: 48px; font-size: 17px; font-weight: 600; color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { min-width: 0; padding: 0 0 8px 12px; border: 0; box-shadow: none; }
.re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 0; }
.re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-size: 16px; font-weight: 600; }
.re7-entete__actions { gap: 8px; margin-left: auto; }
.re7-entete__connexion a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; font-size: 15px; font-weight: 600; color: var(--wp--preset--color--encre); text-decoration: none; }
.re7-entete__connexion a:hover { color: var(--wp--preset--color--myrtille); }

/* ---- Le cadre de 1200 px ----
   La mise en page « contrainte » de WordPress borne et centre chaque ENFANT d'un groupe ; nos sections sont des rangées
   flexibles : c'est la section elle-même qui doit être bornée et centrée, ses colonnes gardant leur largeur naturelle. */
.re7-page .re7-section, .re7-entete > .re7-entete__barre {
  box-sizing: border-box; width: 100%; max-width: 1248px !important; margin-left: auto !important; margin-right: auto !important;
  padding-left: 24px !important; padding-right: 24px !important;
}
.re7-page .re7-section > *, .re7-colonnes > *, .re7-moment > *, .re7-offres > *, .re7-hub > *, .re7-final > * {
  max-width: none !important; margin: 0 !important;
}
.re7-page .re7-section > .re7-intro { max-width: 760px !important; }
.re7-page:not(.re7-page--contenu) > .wp-block-post-content, .re7-page > .wp-block-post-content > .re7-fond-banane, .re7-page > .wp-block-post-content > .re7-fond-gris { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.re7-page:not(.re7-page--contenu) > .wp-block-post-content > * { margin-block: 0 !important; }
.re7-page > .wp-block-post-content > .re7-section { margin-left: auto !important; margin-right: auto !important; }

/* ---- Sections ---- */
.re7-section { padding-block: 88px; }
.re7-section--ouverture { padding-block: 56px 72px; }
.re7-section--haccp { padding-block: 64px; }
.re7-section--tarifs { padding-block: 88px 56px; }
.re7-section--final { padding-block: 72px; }
.re7-fond-banane { background: var(--wp--preset--color--banane); }
.re7-fond-gris { background: var(--wp--preset--color--fond); border-top: 1px solid var(--wp--preset--color--bordure); }
.re7-colonnes { display: flex; flex-wrap: wrap; align-items: center; gap: 48px 64px; }
.re7-colonnes--haut { align-items: flex-start; }
.re7-colonnes--inverse { flex-direction: row-reverse; }
.re7-colonnes > .re7-col { flex: 1 1 400px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.re7-colonnes > .re7-col--large { flex-basis: 460px; }
.re7-colonnes > .re7-col--etroite { flex-basis: 300px; gap: 16px; }
.re7-colonnes > .re7-col--photo { flex: 1 1 460px; position: relative; padding-bottom: 56px; display: block; }
.re7-colonnes > .re7-col--faq { flex: 2 1 520px; }
.re7-intro { max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.re7-pile { display: flex; flex-direction: column; gap: 72px; }
.re7-rangee { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.re7-rangee--centre { justify-content: center; text-align: center; }
.re7-rangee .wp-block-buttons { margin: 0; }

/* ---- Premier écran ---- */
.re7-ouverture__texte { gap: 24px; flex-basis: 440px; }
.re7-note-main { display: flex; align-items: flex-start; gap: 4px; margin: -8px 0 0 28px; }
.re7-note-main svg { flex-shrink: 0; margin-top: -6px; }
.re7-note-main .re7-manuscrit { display: inline-block; font-size: 28px; line-height: 1; color: var(--wp--preset--color--myrtille); transform: rotate(-3deg); transform-origin: left center; white-space: nowrap; }
/* La photo est un bloc Image : c'est la balise img, dans sa figure, qui remplit le cadre. */
.re7-col--photo .wp-block-image, .re7-col--photo figure { margin: 0 !important; width: 100%; }
.re7-photo { display: block; width: 100%; height: 380px; border-radius: 18px; overflow: hidden; background: #e9e7e1; }
.re7-photo img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 18px; }
.re7-photo--ouverture { height: 500px; }
.re7-photo--ouverture img { object-position: 40% 45%; }
.re7-col--photo.re7-col--ouverture { padding-bottom: 120px; }
.re7-carte-posee { position: absolute; bottom: 0; box-sizing: border-box; width: calc(100% - 32px); max-width: 340px; background: var(--wp--preset--color--surface); border-radius: 16px; padding: 16px 20px; box-shadow: var(--re7-ombre-carte); }
.re7-carte-posee--droite { right: 16px; }
.re7-carte-posee--gauche { left: 16px; }
.re7-carte-posee--jour { left: 16px; right: 16px; max-width: 380px; margin-left: auto; border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.re7-carte-posee__tete { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.re7-carte-posee__titre { font-size: 20px; font-weight: 700; color: var(--wp--preset--color--encre); }
.re7-carte-posee__date { font-size: 13px; color: var(--wp--preset--color--brume-lisible); min-height: 1em; }
.re7-tache { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--wp--preset--color--bordure-2); }
.re7-tache img { width: 26px; height: 26px; flex-shrink: 0; }
.re7-case { box-sizing: border-box; display: block; flex-shrink: 0; width: 26px; height: 26px; border-radius: 7px; border: 2px solid var(--wp--preset--color--brume-2); }
.re7-case--petite { width: 24px; height: 24px; }
.re7-tache__faite { flex: 1; font-size: 17px; color: var(--wp--preset--color--brume-lisible); text-decoration: line-through; }
.re7-tache__a-faire { flex: 1; font-size: 17px; font-weight: 600; color: var(--wp--preset--color--encre); }
.re7-pastille { font-size: 12px; font-weight: 700; padding: 4px 8px; border-radius: 6px; background: var(--wp--preset--color--banane-wash); color: var(--wp--preset--color--encre); }
.re7-pastille--myrtille { font-size: 11px; padding: 3px 8px; background: var(--wp--preset--color--myrtille-wash); color: var(--wp--preset--color--myrtille); }
.re7-pastille--pleine { background: var(--wp--preset--color--myrtille); color: #fff; padding: 4px 10px; }
.re7-pastille--vert { padding: 5px 10px; background: var(--wp--preset--color--vert-marge-wash); color: var(--wp--preset--color--vert-marge); }
.re7-pastille--ambre { font-size: 11px; padding: 3px 7px; background: var(--wp--preset--color--ambre-wash); color: #c2410c; }
.re7-metiers { flex: 1 1 100%; text-align: center; font-size: 15px; font-weight: 600; line-height: 1.6; color: var(--wp--preset--color--ardoise) !important; }

/* ---- HACCP ---- */
.re7-cercle { position: relative; display: inline; white-space: nowrap; padding: 0 4px; }
.re7-cercle svg { position: absolute; left: -20px; top: -12px; width: calc(100% + 40px); height: calc(100% + 24px); overflow: visible; pointer-events: none; }
.re7-haccp__texte p { color: var(--wp--preset--color--encre); font-size: 17px; line-height: 1.55; }
.re7-caution { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--wp--preset--color--encre) !important; }
.re7-caution img { width: 40px; height: 40px; }
.re7-usages { flex: 1 1 360px; min-width: 0; background: var(--wp--preset--color--surface); border-radius: 20px; padding: 8px 24px; box-shadow: var(--re7-ombre-cta); }
.re7-usage { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--wp--preset--color--bordure-2); }
.re7-usage:last-child { border-bottom: 0; }
.re7-usage img { width: 44px; height: 44px; flex-shrink: 0; }
.re7-usage p { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--encre); }

/* ---- Recettes et marges ---- */
.re7-testez { display: flex; align-items: center; gap: 10px; margin-top: 8px; align-self: flex-end; }
.re7-testez .re7-manuscrit { display: inline-block; font-size: 30px; line-height: 1; color: var(--wp--preset--color--myrtille); transform: rotate(-4deg); }
.re7-fleche-droite { flex-shrink: 0; margin-top: 10px; }
.re7-fleche-bas { flex-shrink: 0; margin-top: 18px; display: none; }
.re7-saisie { flex: 1 1 460px; min-width: 0; box-sizing: border-box; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--bordure); border-radius: 22px; padding: 24px; box-shadow: var(--re7-ombre-douce); display: flex; flex-direction: column; gap: 16px; }
.re7-depot { box-sizing: border-box; border: 2px dashed #c7c3f3; border-radius: 16px; background: var(--wp--preset--color--myrtille-wash); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 32px 20px; text-align: center; }
.re7-depot__icones { display: flex; align-items: center; gap: 14px; }
.re7-depot__icones img { width: 56px; height: 56px; }
.re7-depot__titre { font-size: 20px; font-weight: 700; line-height: 1.25; color: var(--wp--preset--color--encre); }
.re7-depot__texte { max-width: 340px; font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--encre-2); }
.re7-depot__boutons { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 4px; }
.re7-depot__liste { width: 100%; max-width: 360px; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; text-align: left; }
.re7-depot__liste li { display: flex; align-items: center; gap: 10px; padding: 2px 2px 2px 12px; border-radius: 10px; background: var(--wp--preset--color--surface); border: 1px solid #c7c3f3; font-size: 14px; }
.re7-depot__liste span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.re7-depot__compteur { font-size: 13px; color: var(--wp--preset--color--ardoise); }
.re7-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 11px; border: 0; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.re7-btn--myrtille { background: var(--wp--preset--color--myrtille); color: #fff; }
.re7-btn--myrtille:hover { background: #4338ca; }
.re7-btn--blanc { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--encre); border: 1px solid #c7c3f3; font-weight: 600; }
.re7-btn--blanc:hover { background: var(--wp--preset--color--fond); }
.re7-btn--retirer { width: 44px; height: 44px; min-height: 0; padding: 0; background: transparent; color: var(--wp--preset--color--ardoise); font-size: 20px; border-radius: 8px; }
.re7-btn--retirer:hover { background: var(--wp--preset--color--fond); color: var(--wp--preset--color--encre); }
.re7-btn--chiffrer { width: 100%; min-height: 56px; font-size: 17px; background: var(--wp--preset--color--banane); color: var(--wp--preset--color--encre); box-shadow: var(--re7-ombre-cta); }
.re7-btn--chiffrer:hover { filter: brightness(0.97); }
.re7-btn--chiffrer:disabled { opacity: 0.6; cursor: default; }
.re7-btn:disabled { opacity: 0.5; cursor: default; }
.re7-bascule { align-self: center; min-height: 44px; padding: 0 8px; border: 0; background: transparent; font: inherit; font-size: 15px; font-weight: 600; color: var(--wp--preset--color--myrtille); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.re7-champ { display: flex; flex-direction: column; gap: 6px; }
.re7-champ > span { font-size: 13px; font-weight: 500; color: var(--wp--preset--color--ardoise); }
.re7-champ textarea { box-sizing: border-box; width: 100%; min-height: 190px; resize: vertical; padding: 14px 16px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 12px; background: var(--wp--preset--color--fond); font: inherit; font-size: 16px; line-height: 1.6; color: var(--wp--preset--color--encre); }
.re7-champ textarea:focus { outline: 2px solid var(--wp--preset--color--myrtille); outline-offset: 1px; background: var(--wp--preset--color--surface); }
.re7-saisie__attend { text-align: center; font-size: 14px; color: var(--wp--preset--color--encre-2); }
.re7-saisie__erreur { text-align: center; font-size: 14px; font-weight: 600; color: var(--wp--preset--color--rouge); }
.re7-saisie__bloque { padding: 14px 16px; border-radius: 12px; background: var(--wp--preset--color--banane-wash); border: 1px solid var(--wp--preset--color--banane-border); text-align: center; font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--encre); }
.re7-exemple__titre { padding-top: 16px; border-top: 1px solid var(--wp--preset--color--bordure-2); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--brume-lisible) !important; }
.re7-resultat { margin-top: -4px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 20px; }
.re7-resultat p { display: flex; flex-direction: column; gap: 2px; white-space: nowrap; }
.re7-resultat p > span:first-child { font-size: 12px; color: var(--wp--preset--color--ardoise); }
.re7-resultat__chiffre { font-size: 24px; font-weight: 700; color: var(--wp--preset--color--encre); }
.re7-resultat__chiffre--vert { color: var(--wp--preset--color--vert-marge); }
.re7-cache { display: none !important; }

/* ---- Une journée en quatre moments ---- */
.re7-moment { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 64px; }
.re7-moment--inverse { flex-direction: row-reverse; }
.re7-moment > .re7-col:not(.re7-col--photo) { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
/* La colonne photo, partout (premier écran, moments) : elle prend la place et porte la carte posée. */
.re7-page .re7-col.re7-col--photo { flex: 1 1 460px; min-width: 0; position: relative; padding-bottom: 56px; display: block; }
.re7-page .re7-col.re7-col--photo.re7-col--ouverture { padding-bottom: 120px; }
.re7-carte-ligne { display: flex; align-items: center; gap: 14px; padding-block: 2px; }
.re7-carte-ligne img { width: 40px; height: 40px; flex-shrink: 0; }
.re7-carte-ligne img.re7-icone-44 { width: 44px; height: 44px; }
.re7-carte-ligne__titre { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--encre); }
.re7-carte-ligne__sous { margin-top: 2px; font-size: 14px; color: var(--wp--preset--color--ardoise); }
.re7-pesee__titre { margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--wp--preset--color--myrtille) !important; }
.re7-pesee__ligne { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--wp--preset--color--bordure-2); }
.re7-pesee__ligne img { width: 24px; height: 24px; }
.re7-pesee__nom { flex: 1; font-size: 15px; font-weight: 600; color: var(--wp--preset--color--encre); }
.re7-pesee__quantite { font-size: 20px; font-weight: 700; white-space: nowrap; color: var(--wp--preset--color--encre); }
.re7-pesee__ligne--faite .re7-pesee__nom, .re7-pesee__ligne--faite .re7-pesee__quantite { color: var(--wp--preset--color--brume-lisible); font-weight: 400; }
.re7-pesee__ligne--faite .re7-pesee__quantite { font-weight: 700; }
.re7-vitrine { display: flex; flex-direction: column; gap: 6px; }
.re7-vitrine__stocks { display: flex; gap: 16px; font-size: 15px; color: var(--wp--preset--color--encre); }
.re7-vitrine__stocks strong { font-weight: 700; }
.re7-vitrine__vide { color: var(--wp--preset--color--rouge); }
.re7-vitrine__allergenes { display: flex; flex-wrap: wrap; gap: 4px; }
.re7-releve { flex: 1; }
.re7-releve__lieu { font-size: 14px; color: var(--wp--preset--color--ardoise); }
.re7-releve__valeur { font-size: 30px; font-weight: 700; line-height: 1.1; white-space: nowrap; color: var(--wp--preset--color--encre); }
.re7-rappel { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 24px; padding-top: 8px; text-align: center; }
.re7-rappel p { font-size: 15px; color: var(--wp--preset--color--ardoise); }

/* ---- Étiquettes et Hub ---- */
.re7-etiquette { width: 100%; max-width: 380px; box-sizing: border-box; margin: 0 auto; background: var(--wp--preset--color--surface); border: 1px solid #d8d8de; border-radius: 6px; padding: 22px 24px; box-shadow: 0 12px 36px rgba(15, 23, 42, 0.12); display: flex; flex-direction: column; gap: 10px; transform: rotate(-1.5deg); }
.re7-etiquette p { font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--encre); }
.re7-etiquette__nom { font-size: 22px !important; font-weight: 700; }
.re7-etiquette__pied { display: flex; justify-content: space-between; gap: 12px; }
.re7-hub { display: flex; flex-wrap: wrap; overflow: hidden; border-radius: 22px; border: 1px solid var(--wp--preset--color--bordure); background: var(--wp--preset--color--fond); }
.re7-hub__photo { position: relative; flex: 1 1 440px; min-width: 0; min-height: 320px; }
.re7-hub__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.re7-hub__legende { position: absolute; left: 16px; bottom: 16px; right: 16px; width: fit-content; padding: 6px 10px; border-radius: 8px; background: rgba(255, 255, 255, 0.9); font-size: 12px; color: var(--wp--preset--color--encre-2); }
.re7-hub__texte { flex: 1 1 380px; min-width: 0; box-sizing: border-box; padding: 36px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.re7-hub__texte h3 { font-size: 26px; }
.re7-hub__texte p { font-size: 16px; line-height: 1.6; }
.re7-hub__texte .re7-bouton--encre .wp-block-button__link { min-height: 48px; padding: 0 20px; font-size: 15px; }
.re7-hub__texte .re7-lien-souligne { font-size: 15px; }

/* ---- Mémo ---- */
.re7-memo__tete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.re7-memo__tete img { width: 28px; height: 28px; }
.re7-fiche { width: 100%; max-width: 420px; box-sizing: border-box; margin: 0 auto; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--bordure); border-radius: 18px; padding: 22px 24px; box-shadow: var(--re7-ombre-douce); display: flex; flex-direction: column; gap: 14px; }
.re7-fiche__tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.re7-fiche__tete p { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--encre); }
.re7-fiche__tete span { font-size: 12px; color: var(--wp--preset--color--brume-lisible); }
.re7-memo-note { display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; border-radius: 12px; background: var(--wp--preset--color--banane-wash); }
.re7-memo-note img { width: 34px; height: 34px; flex-shrink: 0; }
.re7-memo-note__etiquette { margin-bottom: 4px !important; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--ardoise) !important; }
/* Le manuscrit (Caveat 600, penché de 3 à 4°) : myrtille partout, sauf la note de Mémo, en encre. */
.re7-memo-note .re7-manuscrit { font-size: 26px; line-height: 1.15; color: var(--wp--preset--color--encre); }

/* ---- Tarifs ---- */
.re7-offres { display: flex; flex-wrap: wrap; align-items: stretch; gap: 20px; }
.re7-offre { flex: 1 1 380px; min-width: 0; box-sizing: border-box; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--bordure); border-radius: 22px; padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.re7-offre--premium { border: 2px solid var(--wp--preset--color--myrtille); box-shadow: 0 12px 36px rgba(79, 70, 229, 0.18); }
.re7-offre h3 { font-size: 24px; }
.re7-offre__tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.re7-prix { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; }
.re7-prix__montant { font-size: 48px; font-weight: 700; line-height: 1; letter-spacing: -0.02em; white-space: nowrap; color: var(--wp--preset--color--encre); }
.re7-prix__detail { font-size: 15px; color: var(--wp--preset--color--ardoise); }
.re7-liste { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 16px; line-height: 1.4; color: var(--wp--preset--color--encre); }
.re7-liste li { display: flex; align-items: center; gap: 10px; }
.re7-liste li::before { content: ""; flex-shrink: 0; width: 22px; height: 22px; background: url("../icones/conforme.svg") center / contain no-repeat; }
.re7-liste li.re7-liste__forte { font-weight: 700; }
.re7-offre .wp-block-buttons { margin-top: auto; }
.re7-confiance { margin: 0; padding: 20px 0 0; list-style: none; border-top: 1px solid var(--wp--preset--color--bordure); display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px 24px; }
.re7-confiance li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--wp--preset--color--ardoise); }
.re7-confiance li::before { content: ""; flex-shrink: 0; width: 20px; height: 20px; background: url("../icones/conforme.svg") center / contain no-repeat; }

/* ---- Questions fréquentes (bloc Détails de WordPress) ---- */
.re7-faq { display: flex; flex-direction: column; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--bordure); border-radius: 18px; padding: 4px 24px; }
.re7-faq__definition { font-size: 16px; line-height: 1.6; }
.re7-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--bordure-2); margin: 0; }
.re7-faq .wp-block-details:last-child { border-bottom: 0; }
.re7-faq .wp-block-details > summary { box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; padding: 16px 0; font-size: 17px; font-weight: 700; color: var(--wp--preset--color--encre); cursor: pointer; list-style: none; }
.re7-faq .wp-block-details > summary::-webkit-details-marker { display: none; }
.re7-faq .wp-block-details > summary::after { content: ""; flex-shrink: 0; width: 22px; height: 22px; background: url("../icones/chevron-bas.svg") center / contain no-repeat; transition: transform 0.15s; }
.re7-faq .wp-block-details[open] > summary::after { transform: rotate(180deg); }
.re7-faq .wp-block-details > summary:focus-visible { outline: 2px solid var(--wp--preset--color--myrtille); outline-offset: 2px; border-radius: 6px; }
.re7-faq .wp-block-details > *:not(summary) { padding: 0 0 20px; font-size: 16px; line-height: 1.6; color: var(--wp--preset--color--encre-2); }

/* ---- Appel final ---- */
.re7-final { background: var(--wp--preset--color--banane); border-radius: 26px; padding: clamp(28px, 4cqi, 56px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; }
.re7-final > .re7-col { flex-basis: 480px; gap: 10px; }
.re7-final h2 { font-size: clamp(28px, 3.4cqi, 44px); line-height: 1.08; }
.re7-final p { font-size: 17px; line-height: 1.5; color: var(--wp--preset--color--encre); }
.re7-final .wp-block-buttons { margin: 0; }

/* ---- Pied de page (maquette : fond encre, logo blanc, signature banane) ---- */
.re7-pied { background: var(--wp--preset--color--encre); color: #fff; }
.re7-pied__cadre { box-sizing: border-box; max-width: 1248px; margin: 0 auto; padding: 64px 24px 32px; display: flex; flex-direction: column; gap: 48px; }
.re7-pied__haut { display: flex; flex-wrap: wrap; gap: 40px 56px; }
.re7-pied__marque { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.re7-pied__logo { height: 29px; width: auto; display: block; }
.re7-pied__signature { font-size: 20px; font-weight: 700; line-height: 1.3; color: var(--wp--preset--color--banane) !important; }
.re7-pied__description { font-size: 14px; line-height: 1.6; color: #a6a6b2 !important; }
.re7-pied__colonnes { flex: 2 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 32px; }
.re7-pied__colonne { display: flex; flex-direction: column; gap: 10px; }
.re7-pied__titre { margin: 0 0 4px !important; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #9a9aa8 !important; }
.re7-pied__liens, .re7-pied__liens .wp-block-navigation__container { gap: 10px !important; }
.re7-pied__liens .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 24px; font-size: 14px; color: #fff !important; text-decoration: none; }
.re7-pied__liens .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--banane) !important; }
.re7-pied__bas { border-top: 1px solid #2c2c3a; padding-top: 20px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.re7-pied__bas p { font-size: 13px; color: #9a9aa8 !important; }


/* ---- Colonnes : base commune (texte en pile, la photo garde sa propre règle) ---- */
.re7-col { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.re7-final > .re7-col { flex: 1 1 480px; gap: 10px; }

/* ---- Les seuils de la maquette ---- */
@container page (max-width: 560px) {
  .re7-entete .re7-cta-long { display: none !important; }
  .re7-entete .re7-cta-court { display: inline !important; }
}
@container page (max-width: 940px) {
  .re7-fleche-droite { display: none; }
  .re7-fleche-bas { display: block; }
}
@container page (max-width: 560px) {
  .re7-entete__connexion { display: none; }
  .re7-entete__barre { gap: 12px; }
  .re7-note-main { margin-left: 4px; }
  .re7-note-main .re7-manuscrit { font-size: 21px; white-space: normal; }

  .re7-resultat { gap: 8px 10px; }
  .re7-resultat__chiffre { font-size: 18px; }
}
/* La maquette garde 24 px de marge latérale à toutes les largeurs, téléphone compris. */
/* WordPress ajoute un écart au-dessus de chaque bloc qui en suit un autre : dans les rangées du pied de page, les colonnes doivent partir à la même hauteur. */
.re7-pied__haut > *, .re7-pied__colonnes > *, .re7-pied__bas > *, .re7-pied__colonne > * { margin-block: 0 !important; }

/* ---- Pages de texte (aide, nouveautés, scans, contact, pages légales) : une colonne de lecture, des respirations ---- */
.re7-page--contenu > *, .re7-page--contenu .wp-block-post-content > * { max-width: 820px !important; margin-left: auto !important; margin-right: auto !important; }
.re7-page--contenu .wp-block-post-content { margin-top: 0 !important; padding-left: 24px; padding-right: 24px; }
.re7-page--contenu .wp-block-post-content > * + * { margin-top: 14px !important; }
.re7-page--contenu .wp-block-post-content > h2 { margin-top: 44px !important; font-size: 26px !important; line-height: 1.2; }
.re7-page--contenu .wp-block-post-content > h3 { margin-top: 28px !important; font-size: 20px !important; line-height: 1.25; }
.re7-page--contenu .wp-block-post-content > h2 + *, .re7-page--contenu .wp-block-post-content > h3 + * { margin-top: 10px !important; }
.re7-page--contenu .wp-block-post-content ul, .re7-page--contenu .wp-block-post-content ol { padding-left: 22px; }
.re7-page--contenu .wp-block-post-content li + li { margin-top: 6px; }
.re7-page--contenu .wp-block-post-content > .wp-block-details + .wp-block-details { margin-top: 0 !important; }
/* Les noms de formule, dans leur carte : la taille d'un titre de carte, pas d'un titre de section. */
.re7-offre :is(h2, h3) { font-size: 24px !important; line-height: 1.2; letter-spacing: -0.01em; }
/* Les sections Tarifs (accueil et page) : intro, cartes, détail et confiance espacés comme la maquette (36 px). */
.re7-section--tarifs { display: flex; flex-direction: column; gap: 36px; }
.re7-section--tarifs > * { margin-block: 0 !important; }
/* Le tableau comparatif : des filets horizontaux seulement, pas de grille. */
.re7-comparaison table, .re7-comparaison th, .re7-comparaison td { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }
.re7-comparaison thead { border-bottom: 0 !important; }
.re7-comparaison td:nth-child(n+2) { font-weight: 600; color: var(--wp--preset--color--encre); }
.re7-comparaison { overflow-x: auto; margin: 0; }
/* La section HACCP aux proportions exactes de la maquette : texte 480 px de base, carte 360 px, écart 32 / 56 px. */
#haccp .re7-colonnes { gap: 32px 56px; }
#haccp .re7-colonnes > .re7-haccp__texte { flex: 1 1 480px; }
#haccp .re7-colonnes > .re7-usages { flex: 1 1 360px; }
#haccp .re7-rangee { gap: 16px 24px; }
/* Dans une rangée (bouton et lien, bouton et caution), chaque élément garde sa largeur naturelle : ils restent sur une ligne tant qu'ils tiennent. */
.re7-rangee { display: flex; flex-wrap: wrap; align-items: center; }
.re7-rangee > * { flex: 0 1 auto; width: auto !important; margin: 0 !important; }
#haccp .re7-haccp__texte p.re7-caution { font-size: 13px; line-height: 1.4; }
/* Le logo : le mot « re7 » est dessiné dans le bas de l'image, sous le cube ; centré mathématiquement, il paraît plus bas que le menu. On le remonte de 4 px pour aligner l'œil (Styven, 31 octobre). */
.re7-entete__logo { transform: translateY(-4px); }
/* « Fonctionnalités » s'ouvre au survol sur ordinateur, et toujours au clic. Pas de condition « appareil à souris » : la Surface Pro de Styven se déclare tactile sans survol (mémoire surface-pro-geste-reel), le survol y marche pourtant. */
@media (min-width: 981px) {
  .re7-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
  .re7-nav .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; width: auto !important; height: auto !important; min-width: 320px !important; overflow: visible !important; }
  .re7-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation-submenu__toggle svg { transform: rotate(180deg); }
  /* Un pont invisible sous le bouton : la souris passe du bouton au menu sans le refermer. */
  .re7-nav .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
}
/* ---- Le menu « Fonctionnalités », comme la maquette : icône de la maison, titre en gras, description dessous ---- */
@media (min-width: 981px) {
  .re7-nav .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container { display: grid !important; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap: 6px; padding: 12px !important; min-width: 540px !important; }
}
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: grid !important; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 0; align-items: center; padding: 12px !important; border-radius: 12px; }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { content: ""; grid-row: 1 / 3; width: 32px; height: 32px; background: center / contain no-repeat; }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label { grid-column: 2; font-weight: 700; font-size: 15px; color: var(--wp--preset--color--encre); }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__description { display: block !important; grid-column: 2; font-size: 13px; line-height: 1.35; color: var(--wp--preset--color--ardoise); }
.re7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--fond); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(1) .wp-block-navigation-item__content::before { background-image: url("../icones/recettes.svg"); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(2) .wp-block-navigation-item__content::before { background-image: url("../icones/production.svg"); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(3) .wp-block-navigation-item__content::before { background-image: url("../icones/stock.svg"); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(4) .wp-block-navigation-item__content::before { background-image: url("../icones/planning.svg"); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(5) .wp-block-navigation-item__content::before { background-image: url("../icones/etiquettes.svg"); }
.re7-nav .wp-block-navigation__submenu-container > li:nth-child(6) .wp-block-navigation-item__content::before { background-image: url("../icones/equipe.svg"); }

/* Les questions se touchent, séparées par leur seul filet : aucun écart de WordPress entre elles. */
.re7-faq { gap: 0 !important; }
.re7-faq > * { margin: 0 !important; }

/* ==========================================================================
   Le tour complet contre la maquette figée (31 octobre 2026, scripts/_comparer-maquette.js).
   ========================================================================== */
/* 1. L'interligne : la maquette laisse l'interligne normal partout où elle ne dit rien ; WordPress imposait 1,55. Les
      textes de lecture gardent leur interligne explicite (chapeaux 1,55, corps 1,6, réponses 1,6…). */
.re7-page, .re7-entete, .re7-pied { line-height: normal; }
.re7-page p.re7-surtitre, .re7-page .re7-surtitre { font-size: 13px !important; line-height: normal; }
.re7-hub__texte h3, .re7-offre :is(h2, h3), .re7-pesee__titre, .re7-carte-posee__titre, .re7-carte-posee__date, .re7-usage p, .re7-carte-ligne__titre, .re7-carte-ligne__sous, .re7-vitrine__stocks, .re7-releve__lieu, .re7-resultat p > span, .re7-exemple__titre, .re7-saisie__attend, .re7-prix__detail, .re7-pastille, .re7-rappel p, .re7-fiche__tete p, .re7-fiche__tete span, .re7-memo-note__etiquette, .re7-faq .wp-block-details > summary { line-height: normal; }
.re7-pied__liens .wp-block-navigation-item__content { min-height: 0; line-height: normal; font-weight: 400; }
.re7-pied__titre { line-height: normal; }

/* 2. Les marges de WordPress entre les blocs : dans nos piles et nos rangées, seul l'espacement de la maquette compte. */
.re7-page .re7-col > *, .re7-page .re7-intro > *, .re7-page .re7-offre > *, .re7-page .re7-hub__texte > *, .re7-page .re7-rangee > *, .re7-page .re7-saisie > *, .re7-page .re7-fiche > *, .re7-pied__marque > * { margin-block: 0 !important; }
.re7-page .re7-col { gap: 18px; }
.re7-page .re7-ouverture__texte { flex: 1 1 440px; gap: 24px; }
.re7-page .re7-moment > .re7-col:not(.re7-col--photo) { gap: 14px; }
.re7-page .re7-col--etroite { gap: 16px; }
.re7-page .re7-final > .re7-col { gap: 10px; }
.re7-page .re7-intro { gap: 18px; }
.re7-page .re7-offre { display: flex; flex-direction: column; gap: 18px; }
.re7-page .re7-hub__texte { gap: 14px; }
.re7-page .re7-fiche { gap: 14px; }
.re7-page .re7-rangee { gap: 12px 20px; }
.re7-page #haccp .re7-rangee, .re7-page .re7-hub__texte .re7-rangee { gap: 16px 24px; }
.re7-page .re7-hub__texte .re7-rangee { gap: 10px 20px; }

/* 3. Les largeurs : la maquette calcule ses colonnes marges non comprises ; ici, marges comprises, les bases s'ajustent. */
.re7-page .re7-section--ouverture { gap: 48px; }
.re7-page .re7-colonnes { gap: 40px 64px; }
.re7-page #recette.re7-colonnes { gap: 48px 64px; }
.re7-page .re7-saisie { flex: 1 1 510px; }
.re7-page .re7-colonnes > .re7-col--faq { flex: 2 1 570px; }
.re7-page .re7-etiquette { max-width: 430px; }
.re7-page .re7-fiche { max-width: 470px; }

/* 4. Les boutons : l'appel final a le grand format (56 px, 17 px), comme le premier écran. */
.re7-section--final .re7-bouton--encre .wp-block-button__link { min-height: 56px; padding: 0 28px; font-size: 17px; }

/* 5. Dernières mesures contre la maquette (scripts/_boites.js) */
.re7-page .re7-section--ouverture.re7-colonnes { gap: 48px; }
.re7-page .re7-saisie > .re7-resultat { margin-top: -4px !important; }
.re7-page .re7-etiquette__nom, .re7-page .re7-etiquette__pied { line-height: normal; }
.re7-page #etiquettes.re7-section { display: flex; flex-direction: column; gap: 40px; }
.re7-page .re7-offre > .wp-block-buttons { margin-top: auto !important; }
.re7-pied .re7-pied__titre { margin: 0 0 4px !important; }
/* L en-tête : les cibles restent de 44 px (règle du projet), la barre se rapproche des 59 px de la maquette. */
.re7-entete__barre { padding-block: 12px; }

/* 6. Les marges propres à la maquette que la règle générale effaçait, et les titres aux tailles exactes de la maquette. */
.re7-page .re7-col > .re7-note-main { margin-top: -8px !important; }
.re7-page .re7-col > .re7-testez { margin-top: 8px !important; }
.re7-page .re7-pesee__titre { margin-bottom: 6px !important; }
.re7-page .re7-carte-ligne__sous { margin-top: 2px !important; }
.re7-pied__cadre > * { margin-block: 0 !important; }
.re7-page h1 { font-size: clamp(40px, 5.4cqi, 70px); }
.re7-page h2 { font-size: clamp(32px, 3.9cqi, 50px); }
.re7-page .re7-titre-haccp { font-size: clamp(28px, 3.8cqi, 48px); }
.re7-page .re7-final h2 { font-size: clamp(28px, 3.4cqi, 44px); }
.re7-page .re7-offre :is(h2, h3) { font-size: 24px; }

/* 7. L en-tête porte une seule marge latérale (celle de sa barre), comme la maquette. */
.re7-entete { padding-left: 0 !important; padding-right: 0 !important; }
/* 8. Les boutons de l'en-tête calés à droite (WordPress annulait leur marge automatique) ; le menu replié suit à 8 px. */
.re7-entete__barre > .re7-entete__actions { margin-left: auto !important; }
@media (max-width: 980px) { .re7-entete__barre { column-gap: 8px !important; } .re7-entete__barre > .re7-entete__logo { margin-right: 20px; } }
/* La note de Mémo penchée comme tout le manuscrit (règle de Styven), sans changer sa place dans la fiche. */
.re7-memo-note .re7-manuscrit { transform: rotate(-3deg); transform-origin: left center; }

/* ---- Les pages rédigées (L'HACCP gratuit, Le Hub RE7) : mêmes composants que l'accueil, plus trois éléments ---- */
.re7-page .re7-photo--page { height: 440px; }
.re7-page .re7-col--sans-carte { padding-bottom: 0 !important; }
.re7-grille-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.re7-grille-cartes--trois { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.re7-carte-info, .re7-etape { box-sizing: border-box; display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 18px; background: var(--wp--preset--color--surface); }
.re7-carte-info img { width: 40px; height: 40px; margin-bottom: 6px; }
.re7-carte-info__titre { font-size: 17px; font-weight: 700; color: var(--wp--preset--color--encre); line-height: 1.3; }
.re7-carte-info__texte { font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--encre-2); }
.re7-etape__numero { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-bottom: 6px; border-radius: 50%; background: var(--wp--preset--color--banane); color: var(--wp--preset--color--encre); font-weight: 700; font-size: 17px; }
.re7-dossier-drive { display: flex; align-items: center; gap: 16px; max-width: 420px; margin: 0 auto; padding: 22px 24px; border: 1px solid var(--wp--preset--color--bordure); border-radius: 18px; background: var(--wp--preset--color--surface); box-shadow: var(--re7-ombre-douce); }
.re7-dossier-drive img { width: 44px; height: 44px; flex-shrink: 0; }
.re7-dossier-drive__nom { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--encre); }
.re7-dossier-drive__sous { margin-top: 2px !important; font-size: 14px; color: var(--wp--preset--color--ardoise); }
.re7-etiquette--tracabilite { max-width: 340px; }
/* L'écart sous l'introduction d'une section, seulement là où la section n'a pas déjà le sien (la journée et les tarifs de l'accueil en ont un). */
.re7-page .re7-section:not(.re7-pile):not(.re7-section--tarifs) > .re7-intro + * { margin-top: 36px !important; }
.re7-fond-banane .re7-surtitre { color: var(--wp--preset--color--encre) !important; }
.re7-fond-banane .re7-chapeau { color: var(--wp--preset--color--encre); }

/* ==========================================================================
   Les pages de texte, habillées comme l'ancien gabarit de la vitrine (LegalPageLayout) : fond crème, fil d'Ariane,
   titre sur un filet beige, colonne de 820 px, titres de section précédés d'une barre banane, bloc de fin sombre.
   ========================================================================== */
body:has(.re7-page--contenu) { background: #FFFDF7; }
body:has(.re7-page--contenu) .re7-page { background: transparent; }
.re7-chapeau-page { border-bottom: 1px solid #EFEADC; }
.re7-chapeau-page__cadre { box-sizing: border-box; max-width: 868px; margin: 0 auto; padding: 52px 24px 40px; }
.re7-chapeau-page__cadre > * { margin: 0 !important; }
.re7-fil { gap: 8px !important; margin-bottom: 16px !important; font-size: 12.5px; color: #9A9AA8; }
.re7-fil > * { margin: 0 !important; font-size: 12.5px !important; line-height: 1.4; font-weight: 400 !important; letter-spacing: 0 !important; }
.re7-fil a { color: #9A9AA8 !important; text-decoration: none; }
.re7-fil a:hover { color: var(--wp--preset--color--ardoise) !important; }
.re7-fil .re7-fil__page { color: var(--wp--preset--color--ardoise); }
.re7-chapeau-page h1 { font-size: 42px !important; font-weight: 800; line-height: 1.1; letter-spacing: -0.025em; }
@media (max-width: 640px) { .re7-chapeau-page h1 { font-size: 34px !important; } .re7-chapeau-page__cadre { padding: 40px 24px 32px; } }

.re7-page.re7-page--contenu { padding-block: 44px 70px !important; }
.re7-page--contenu > .wp-block-post-content { box-sizing: border-box; max-width: 868px !important; margin: 0 auto !important; padding: 0 24px !important; }
.re7-page--contenu .wp-block-post-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.re7-page--contenu .wp-block-post-content p, .re7-page--contenu .wp-block-post-content li { font-size: 15px; line-height: 1.7; color: #3B3A52; }
.re7-page--contenu .wp-block-post-content > h2 { display: flex; align-items: center; gap: 10px; margin-top: 36px !important; font-size: 21px !important; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: var(--wp--preset--color--encre); }
.re7-page--contenu .wp-block-post-content > h2::before { content: ""; flex-shrink: 0; width: 4px; height: 18px; border-radius: 2px; background: var(--wp--preset--color--banane); }
.re7-page--contenu .wp-block-post-content > h2 + * { margin-top: 12px !important; }
.re7-page--contenu .wp-block-post-content > h3 { margin-top: 24px !important; font-size: 17px !important; }
.re7-page--contenu .wp-block-post-content > :first-child { margin-top: 0 !important; }

/* Le bloc de fin, sombre, comme l'ancien CTABlock. */
.re7-page--contenu .wp-block-post-content > .re7-cta-bas { margin-top: 36px !important; }
.re7-cta-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 28px; border-radius: 18px; background: var(--wp--preset--color--encre); }
.re7-cta-bas > * { margin: 0 !important; }
.re7-cta-bas__texte { flex: 1 1 320px; min-width: 0; }
.re7-cta-bas__texte > * { margin: 0 !important; }
.re7-page--contenu .re7-cta-bas .re7-cta-bas__titre { margin-bottom: 4px !important; font-size: 18px; font-weight: 700; line-height: 1.35; color: #fff; }
.re7-page--contenu .re7-cta-bas .re7-cta-bas__phrase { font-size: 13.5px; line-height: 1.5; color: #9A9AA8; }
.re7-bouton--cta-bas .wp-block-button__link { min-height: 44px; padding: 0 20px; border-radius: 11px; font-size: 14px; white-space: nowrap; }
/* La flèche de « Fonctionnalités » tourne autour de son centre (un SVG tourne par défaut autour de son coin et sortait de son cadre au survol). */
.re7-nav .wp-block-navigation-submenu__toggle svg, .re7-nav .wp-block-navigation__submenu-icon svg { transform-box: fill-box; transform-origin: center; transition: transform 0.15s; }
.re7-nav .wp-block-navigation__submenu-icon { display: inline-flex; align-items: center; }
/* La flèche est posée à côté du bouton : le fond gris du bouton au survol la recouvrait. Elle passe devant, sans gêner le clic, et pivote vers le haut quand le menu est ouvert. */
.re7-nav .wp-block-navigation__submenu-icon { position: relative; z-index: 1; pointer-events: none; }
@media (min-width: 981px) { .re7-nav .has-child:hover .wp-block-navigation__submenu-icon svg, .re7-nav .has-child:focus-within .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); } }
.re7-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-icon svg, .re7-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
/* Le cadrage de chaque photo des quatre moments (une classe par moment : le bloc Image ne garde pas de style écrit à la main). */
.re7-photo--moment-livraison img { object-position: 50% 40%; }
.re7-photo--moment-production img { object-position: 82% 50%; }
.re7-photo--moment-boutique img { object-position: 78% 40%; }
.re7-photo--moment-haccp img { object-position: 60% 50%; }
/* Le lien vers l'état du service, sous la signature (comme l'ancienne vitrine), lisible sur le fond encre. */
.re7-pied .re7-pied__statut a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: #a6a6b2; text-decoration: underline; text-underline-offset: 3px; }
.re7-pied .re7-pied__statut a:hover { color: #fff; }

/* L'état du service : un cadre vert ou rouge, comme l'ancienne page. */
.re7-etat { display: flex; align-items: center; gap: 14px; padding: 20px; border-radius: 16px; }
.re7-etat img { width: 40px; height: 40px; flex-shrink: 0; }
.re7-etat--ok { border: 1px solid #CDE9DC; background: var(--wp--preset--color--vert-marge-wash); }
.re7-etat--panne { border: 1px solid #F3C9C9; background: #FDF3F3; }
.re7-page--contenu .re7-etat .re7-etat__titre { font-size: 17px; font-weight: 700; line-height: 1.35; }
.re7-page--contenu .re7-etat--ok .re7-etat__titre { color: var(--wp--preset--color--vert-marge); }
.re7-page--contenu .re7-etat--panne .re7-etat__titre { color: #B41C1C; }
.re7-page--contenu .re7-etat .re7-etat__texte { margin-top: 2px; font-size: 13px; line-height: 1.5; color: var(--wp--preset--color--encre-2); }

/* ---- Le menu du téléphone (31 octobre 2026, retour de Styven) : mêmes marges de 24 px que l'en-tête, pour que le logo et la croix ne bougent pas à l'ouverture ; le panneau reprend la barre de l'en-tête (logo à gauche,
   croix à droite, filet dessous), les entrées partent juste en dessous, les fonctionnalités alignées sur le même bord,
   puis « Se connecter » et « Créer mon compte gratuit », que l'en-tête cache sur petit écran. ---- */
.re7-nav .wp-block-navigation__container > .re7-nav__mobile { display: none !important; }
@media (max-width: 980px) {
  .re7-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 0 !important; top: var(--wp-admin--admin-bar--height, 0px); animation: none !important; transform: none !important; }
  .re7-nav .is-menu-open .wp-block-navigation__responsive-close { position: static !important; max-width: none !important; width: 100%; }
  .re7-nav .is-menu-open .wp-block-navigation__responsive-dialog { position: static !important; margin: 0 !important; padding: 0 24px 32px; }
  .re7-nav .is-menu-open .wp-block-navigation__responsive-dialog::before { content: ""; display: block; height: 68px; margin: 0 -24px 8px; border-bottom: 1px solid var(--wp--preset--color--bordure); background: var(--wp--preset--color--surface) url("../img/logo.png") no-repeat 24px calc(50% - 4px) / auto 35px; position: sticky; top: 0; z-index: 10; }
  .re7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: fixed !important; top: calc(var(--wp-admin--admin-bar--height, 0px) + 12px) !important; right: 24px !important; z-index: 20 !important; }
  .re7-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; align-items: stretch !important; }
  .re7-nav .is-menu-open .wp-block-navigation__container { align-items: stretch !important; width: 100%; }
  .re7-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--bordure); }
  .re7-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 56px; padding: 0 !important; font-size: 18px; font-weight: 700; }
  .re7-nav .is-menu-open .wp-block-navigation__submenu-container { display: flex !important; flex-direction: column; gap: 0; min-width: 0 !important; width: 100%; padding: 0 0 12px !important; margin: 0 !important; }
  .re7-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 0 !important; }
  .re7-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-size: 16px; font-weight: 700; }
  .re7-nav .is-menu-open .wp-block-navigation__container > .re7-nav__mobile { display: flex !important; border-bottom: 0; }
  .re7-nav .is-menu-open .re7-nav__connexion { margin-top: 16px; }
  .re7-nav .is-menu-open .re7-nav__connexion > .wp-block-navigation-item__content { justify-content: center; width: 100%; min-height: 52px !important; border: 1px solid var(--wp--preset--color--bordure-2); border-radius: 11px; font-size: 17px !important; }
  .re7-nav .is-menu-open .re7-nav__cta { margin-top: 10px; }
  .re7-nav .is-menu-open .re7-nav__cta > .wp-block-navigation-item__content { justify-content: center; width: 100%; min-height: 56px !important; border-radius: 11px; background: var(--wp--preset--color--banane); box-shadow: var(--re7-ombre-cta); font-size: 17px !important; color: var(--wp--preset--color--encre) !important; }
}

/* ---- Les pages de texte habillées comme les pages composées (31 octobre 2026, demande de Styven : un seul style de page,
   celui de « L'HACCP gratuit »). Le modèle « page » ouvre sur le bandeau banane (fil d'Ariane puis grand titre, calés sur le
   cadre de 1200 px comme l'en-tête), puis le texte sur fond blanc, colonne de lecture de 820 px alignée sur le même bord. ---- */
body:has(.re7-page--contenu) { background: var(--wp--preset--color--surface); }
.re7-chapeau-page { background: var(--wp--preset--color--banane); border-bottom: 0; }
.re7-chapeau-page__cadre { max-width: 1248px; padding: 56px 24px 64px; }
.re7-chapeau-page h1 { font-size: clamp(40px, 5vw, 64px) !important; font-weight: 800; line-height: 1.05; letter-spacing: -0.03em; color: var(--wp--preset--color--encre); }
.re7-chapeau-page .re7-fil { margin-bottom: 20px !important; }
.re7-chapeau-page .re7-fil, .re7-chapeau-page .re7-fil > *, .re7-chapeau-page .re7-fil a { color: var(--wp--preset--color--encre-2) !important; }
.re7-chapeau-page .re7-fil a:hover { color: var(--wp--preset--color--encre) !important; text-decoration: underline; }
.re7-chapeau-page .re7-fil .re7-fil__page { font-weight: 600 !important; }
.re7-page.re7-page--contenu { padding-block: 56px 88px !important; }
.re7-page--contenu > .wp-block-post-content { max-width: 1248px !important; }
.re7-page--contenu .wp-block-post-content > * { max-width: 820px !important; }
@media (max-width: 640px) {
  .re7-chapeau-page h1 { font-size: 40px !important; }
  .re7-chapeau-page__cadre { padding: 40px 24px 48px; }
  .re7-page.re7-page--contenu { padding-block: 40px 64px !important; }
}
.re7-page .re7-fond-banane + .re7-section--tarifs { padding-top: 64px; }
/* À l'ouverture du menu, WordPress bloque le défilement de la page et sa barre disparaît : on garde sa place, pour que rien ne glisse. */
html { scrollbar-gutter: stable; }
/* Les cartes de la page Contact sont en rangée : l'espace que WordPress met entre deux blocs empilés les faisait descendre en escalier. */
.re7-contacts > * { margin: 0 !important; }

/* ---- Les animations de l'accueil (1er novembre 2026). Toutes sous html.re7-anime, posée seulement sur l'accueil et
   seulement si le visiteur n'a pas demandé moins de mouvement : sans elle, rien ne bouge et tout est visible. ---- */
@keyframes re7-monte { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes re7-pose { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
@keyframes re7-ecrit { from { clip-path: inset(-20% 100% -20% 0); } to { clip-path: inset(-20% -5% -20% 0); } }
@keyframes re7-flotte { 0%, 100% { translate: 0 0; } 50% { translate: 0 -7px; } }
@keyframes re7-coche { 0% { transform: scale(0.6); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }

/* Le premier écran, au chargement : le texte ligne après ligne, la photo qui se pose, la note qui s'écrit. */
.re7-anime .re7-section--ouverture .re7-ouverture__texte > * { animation: re7-monte 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.re7-anime .re7-section--ouverture .re7-ouverture__texte > :nth-child(2) { animation-delay: 0.08s; }
.re7-anime .re7-section--ouverture .re7-ouverture__texte > :nth-child(3) { animation-delay: 0.16s; }
.re7-anime .re7-section--ouverture .re7-ouverture__texte > :nth-child(4) { animation-delay: 0.24s; }
.re7-anime .re7-section--ouverture .re7-ouverture__texte > :nth-child(n+5) { animation-delay: 0.32s; }
.re7-anime .re7-section--ouverture .re7-photo { animation: re7-pose 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.1s both; }
.re7-anime .re7-note-main .re7-manuscrit { animation: re7-ecrit 1.1s steps(28, end) 0.9s both; }
.re7-anime .re7-section--ouverture .re7-carte-posee { animation: re7-monte 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) 0.6s both, re7-flotte 6s ease-in-out 1.4s infinite; }

/* Les cartes posées sur les autres photos flottent aussi, en décalé. */
.re7-anime .re7-moment .re7-carte-posee { animation: re7-flotte 6.5s ease-in-out infinite; }
.re7-anime .re7-moment--inverse .re7-carte-posee { animation-delay: -3s; }

/* La tâche qui se coche toute seule dans la carte « Aujourd'hui ». */
.re7-tache .re7-case { transition: background-color 0.25s, border-color 0.25s; }
.re7-tache--cochee .re7-case { border-color: transparent; background: center / 26px 26px no-repeat url("../icones/conforme.svg"); animation: re7-coche 0.4s ease-out both; }
.re7-tache--cochee .re7-tache__a-faire { font-weight: 400; color: var(--wp--preset--color--brume-lisible); text-decoration: line-through; transition: color 0.3s; }

/* Au défilement : monter en fondu, avec un décalage dans les rangées ; les photos se recadrent doucement. */
.re7-anime .re7-a-reveler { opacity: 0; transform: translateY(26px); transition: opacity 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) var(--re7-delai, 0ms), transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) var(--re7-delai, 0ms); }
.re7-anime .re7-a-reveler.re7-revele { opacity: 1; transform: none; }
.re7-anime .re7-a-reveler .re7-photo img { transform: scale(1.06); transition: transform 1.4s cubic-bezier(0.2, 0.7, 0.2, 1) var(--re7-delai, 0ms); }
.re7-anime .re7-a-reveler.re7-revele .re7-photo img { transform: none; }
.re7-anime .re7-a-reveler .re7-manuscrit { clip-path: inset(-20% 100% -20% 0); }
.re7-anime .re7-a-reveler.re7-revele .re7-manuscrit { animation: re7-ecrit 1.1s steps(28, end) calc(var(--re7-delai, 0ms) + 0.4s) both; }

/* L'en-tête prend une ombre légère dès qu'on descend. */
.re7-entete { transition: box-shadow 0.25s; }
.re7-entete.re7-entete--defile { box-shadow: 0 6px 20px rgba(23, 23, 31, 0.07); }

/* Les boutons se soulèvent un peu au survol. */
.re7-anime .wp-block-button__link { transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s; }
.re7-anime .wp-block-button__link:hover { transform: translateY(-2px); }
.re7-anime .re7-lien-souligne img { transition: transform 0.18s ease; }
.re7-anime .re7-lien-souligne:hover img { transform: translateX(3px); }

/* Accueil, écrans étroits : l'espace au-dessus de « Logiciel de gestion… » divisé par deux (Styven, 1er novembre 2026 : 74 → 37 px). */
@media (max-width: 980px) { .home .re7-section--ouverture { padding-top: 19px !important; } }
