/* ==========================================================================
   Mise — La Cuisine · design tokens + components
   Source of truth: Novamira design system "mise-la-cuisine".
   Dark is the default theme; [data-theme="light"] on <html> flips every token.
   ========================================================================== */

:root {
  --mise-bg:            #171310;
  --mise-surface:       #201915;
  --mise-elevated:      #2A211B;
  --mise-sunken:        #100D0A;
  --mise-accent:        #C2410C;
  --mise-accent-hover:  #D9531A;
  --mise-accent-text:   #F08A4B;
  --mise-accent-tint:   #351E10;
  --mise-on-accent:     #FFF6EC;
  --mise-secondary:     #65A30D;
  --mise-secondary-tx:  #8FBE3F;
  --mise-ink:           #F2E9DA;
  --mise-ink-2:         #C8BAA7;
  --mise-ink-3:         #998A79;
  --mise-ink-4:         #675B4E;
  --mise-line:          #342B22;
  --mise-line-2:        #52453A;
  --mise-danger:        #E05252;
  --mise-shadow:        0 16px 40px rgba(0,0,0,.45);
  --mise-scrim:         rgba(16,13,10,.72);

  --mise-r-sm: 8px;
  --mise-r-md: 12px;
  --mise-r-pill: 999px;

  --mise-font-display: "Newsreader", Georgia, serif;
  --mise-font-editorial: "Source Serif 4", Georgia, serif;
  --mise-font-ui: "Inter", system-ui, -apple-system, sans-serif;
  --mise-font-data: "JetBrains Mono", ui-monospace, monospace;

  color-scheme: dark;
}

html[data-theme="light"] {
  --mise-bg:            #FFFBF5;
  --mise-surface:       #FFFFFF;
  --mise-elevated:      #FFFFFF;
  --mise-sunken:        #F5F5F4;
  --mise-accent:        #65A30D;
  --mise-accent-hover:  #4D7C0F;
  --mise-accent-text:   #4D7C0F;
  --mise-accent-tint:   #F7FEE7;
  --mise-on-accent:     #FFFFFF;
  --mise-secondary:     #C2410C;
  --mise-secondary-tx:  #9A3412;
  --mise-ink:           #1C1917;
  --mise-ink-2:         #57534E;
  --mise-ink-3:         #A8A29E;
  --mise-ink-4:         #C0BBB6;
  --mise-line:          #E7E5E4;
  --mise-line-2:        #D6D3D1;
  --mise-danger:        #B91C1C;
  --mise-shadow:        0 16px 40px rgba(28,25,23,.10);
  --mise-scrim:         rgba(255,255,255,.82);

  color-scheme: light;
}

/* --------------------------------------------------------------------------
   Bridge: Elementor global colors resolve to Mise tokens, so every widget
   styled with a Global colour follows the theme switch with no extra work.
   Specificity (0,1,2) deliberately beats Elementor's own .elementor-kit-N.
   -------------------------------------------------------------------------- */
html body[class*="elementor-kit-"],
html body {
  --e-global-color-primary:   var(--mise-accent);
  --e-global-color-secondary: var(--mise-secondary);
  --e-global-color-text:      var(--mise-ink);
  --e-global-color-accent:    var(--mise-accent-text);
  --e-global-color-bgbase:    var(--mise-bg);
  --e-global-color-surface:   var(--mise-surface);
  --e-global-color-elevated:  var(--mise-elevated);
  --e-global-color-sunken:    var(--mise-sunken);
  --e-global-color-prkhov:    var(--mise-accent-hover);
  --e-global-color-prktnt:    var(--mise-accent-tint);
  --e-global-color-olvtxt:    var(--mise-secondary-tx);
  --e-global-color-txt2:      var(--mise-ink-2);
  --e-global-color-txt3:      var(--mise-ink-3);
  --e-global-color-txt4:      var(--mise-ink-4);
  --e-global-color-line1:     var(--mise-line);
  --e-global-color-line2:     var(--mise-line-2);
  --e-global-color-danger:    var(--mise-danger);
  --e-global-color-oncta:     var(--mise-on-accent);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html body {
  background: var(--mise-bg);
  color: var(--mise-ink);
  font-family: var(--mise-font-ui);
  font-feature-settings: "tnum" 0;
  -webkit-font-smoothing: antialiased;
  transition: background-color .28s ease, color .28s ease;
}
body a { color: var(--mise-accent-text); }
body a:hover { color: var(--mise-accent-hover); }

::selection { background: var(--mise-accent-tint); color: var(--mise-ink); }

.mise-mono, .mise-card__meta, .mise-meta {
  font-family: var(--mise-font-data);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* sleek scrollbars, warm not grey */
* { scrollbar-color: var(--mise-line-2) transparent; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--mise-line-2); border-radius: var(--mise-r-pill); border: 3px solid transparent; background-clip: content-box; }

/* --------------------------------------------------------------------------
   Header chrome — layout enforced here, independent of builder-generated CSS
   -------------------------------------------------------------------------- */
.mise-header {
  display: block !important;
  background: var(--mise-surface);
  border-bottom: 1px solid var(--mise-line);
  position: relative; z-index: 100;
}
.mise-header > .e-con-boxed > .e-con-inner,
.mise-header-row > .e-con-inner {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
}
.mise-header .e-con-inner > .e-con { width: auto; max-width: none; flex: 0 0 auto; }
.mise-header .e-con-inner > .mise-header__nav { flex: 1 1 auto; min-width: 0; }

.mise-nav { display: flex; align-items: center; justify-content: center; }
.mise-nav__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 32px;
}
.mise-nav__list li { margin: 0; padding: 0; }
.mise-nav__list a {
  font: 500 14px/1 var(--mise-font-ui);
  letter-spacing: .02em;
  color: var(--mise-ink-2);
  text-decoration: none;
  padding: 12px 0;
  display: inline-block;
  position: relative;
  white-space: nowrap;
  transition: color .24s;
}
.mise-nav__list a:hover,
.mise-nav__list .current-menu-item > a,
.mise-nav__list .current_page_item > a { color: var(--mise-ink); }
.mise-nav__list .current-menu-item > a::after,
.mise-nav__list .current_page_item > a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 4px;
  height: 1px; background: var(--mise-accent);
}

/* pas de burger : la nav reste visible et passe à la ligne sur petit écran */
.mise-burger { display: none !important; }
@media (max-width: 1024px) {
  .mise-nav__list { flex-wrap: wrap; justify-content: center; gap: 6px 20px; }
  .mise-nav__list a { padding: 8px 0; font-size: 13px; }
}
@media (max-width: 767px) {
  .mise-header-row > .e-con-inner { flex-wrap: wrap; justify-content: center; gap: 8px 16px; }
  .mise-nav__list { gap: 4px 16px; }
}

.mise-brand__name { font: 500 24px/1 var(--mise-font-display); letter-spacing: -.02em; color: var(--mise-ink); }
.mise-brand__by { font: 500 10px/1 var(--mise-font-data); letter-spacing: .18em; color: var(--mise-ink-3); }

/* theme + language controls
   NB: !important requis — les styles "Buttons" du kit Elementor ciblent
   `.elementor-kit-7055 button` (0,1,1) et repeignaient ces contrôles en paprika. */
html body .mise-ctl {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; min-height: 36px; padding: 0 !important;
  border: 1px solid var(--mise-line) !important; border-radius: var(--mise-r-pill) !important;
  background: transparent !important; cursor: pointer;
  font-size: 16px; line-height: 1;
  color: var(--mise-ink-2) !important;
  text-transform: none !important; letter-spacing: 0 !important;
  box-shadow: none !important;
  transition: border-color .24s, background .24s;
}
html body .mise-ctl:hover { border-color: var(--mise-line-2) !important; background: var(--mise-elevated) !important; }
/* l'emoji reflète le thème actif : lune en sombre, soleil en clair */
.mise-ctl__moon { display: block; }
.mise-ctl__sun { display: none; }
html[data-theme="light"] .mise-ctl__moon { display: none; }
html[data-theme="light"] .mise-ctl__sun { display: block; }

.mise-lang { display: inline-flex; align-items: center; gap: 2px; }
.mise-lang a, .mise-lang span {
  font: 600 11px/1 var(--mise-font-ui); letter-spacing: .1em; text-transform: uppercase;
  color: var(--mise-ink-3); text-decoration: none; padding: 6px 7px; border-radius: var(--mise-r-sm);
  transition: color .2s, background .2s;
}
.mise-lang a:hover { color: var(--mise-ink); }
.mise-lang .is-current { color: var(--mise-ink); }
.mise-lang .mise-lang__sep { color: var(--mise-line-2); padding: 0; }

/* --------------------------------------------------------------------------
   Overlines, headings, editorial voice
   -------------------------------------------------------------------------- */
.mise-overline {
  font: 600 12px/1.3 var(--mise-font-ui);
  letter-spacing: .12em; text-transform: uppercase; color: var(--mise-accent-text);
}
.mise-editorial { font: italic 400 19px/1.68 var(--mise-font-editorial); color: var(--mise-ink-2); max-width: 62ch; }

/* --------------------------------------------------------------------------
   Recipe card — built once, used on every surface
   -------------------------------------------------------------------------- */
/* `hidden` doit gagner : une règle auteur `display:flex` bat le style UA du navigateur,
   donc sans ça le filtre par catégorie ne masque rien. */
.mise-archive [hidden],
.mise-card[hidden] { display: none !important; }

.mise-card {
  display: flex; flex-direction: column;
  background: var(--mise-surface);
  border: 1px solid var(--mise-line);
  border-radius: var(--mise-r-md);
  overflow: hidden;
  text-decoration: none;
  transition: transform .28s cubic-bezier(.4,0,.2,1), border-color .28s, box-shadow .28s, background .28s;
}
.mise-card:hover {
  transform: translateY(-4px);
  border-color: var(--mise-line-2);
  box-shadow: var(--mise-shadow);
}
.mise-card__media { position: relative; overflow: hidden; background: var(--mise-elevated); }
.mise-card__media img {
  display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover;
  transition: transform .4s cubic-bezier(.4,0,.2,1);
}
.mise-card:hover .mise-card__media img { transform: scale(1.03); }
.mise-card__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 20px; }
.mise-card__cat {
  font: 600 10px/1.2 var(--mise-font-ui); letter-spacing: .12em;
  text-transform: uppercase; color: var(--mise-accent-text);
}
.mise-card__title {
  font: 500 18px/1.25 var(--mise-font-display); letter-spacing: -.01em; color: var(--mise-ink);
  margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; transition: color .24s;
}
.mise-card:hover .mise-card__title { color: var(--mise-accent-text); }
.mise-card__meta {
  font: 500 11px/1.3 var(--mise-font-data); letter-spacing: .06em;
  text-transform: uppercase; color: var(--mise-ink-3);
  display: flex; align-items: center; gap: 8px; margin-top: 2px;
}
.mise-card__body { padding: 14px 14px 16px; gap: 6px; }
.mise-card__meta .dot { color: var(--mise-accent); }
.mise-card__time {
  position: absolute; left: 12px; bottom: 12px;
  background: var(--mise-scrim); color: var(--mise-ink);
  font: 500 11px/1 var(--mise-font-data); letter-spacing: .06em;
  padding: 7px 10px; border-radius: var(--mise-r-pill);
}

/* --------------------------------------------------------------------------
   Grids and rails
   -------------------------------------------------------------------------- */
.mise-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px 24px; }
.mise-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px 24px; }
@media (max-width: 1280px) and (min-width: 1025px) {
  .mise-grid--4 { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* flex, pas de calc() : le minifieur CSS de LiteSpeed casse `calc(100% - 72px)` */
.mise-rail {
  display: flex; gap: 24px; overflow-x: auto;
  padding-bottom: 8px; scrollbar-width: none;
}
.mise-rail::-webkit-scrollbar { display: none; }
/* même largeur de carte que la grille 3 colonnes (→ même échelle de photo),
   moins un filet pour laisser dépasser la carte suivante : le rail se voit scrollable */
.mise-rail > * { flex: 0 0 calc((100% - 72px) / 3); min-width: 300px; }

@media (max-width: 1024px) {
  .mise-grid, .mise-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mise-rail > * { flex-basis: calc((100% - 60px) / 2); min-width: 260px; }
}
@media (max-width: 767px) {
  .mise-grid, .mise-grid--4 { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .mise-rail > * { flex-basis: 82%; min-width: 240px; }
}

/* --------------------------------------------------------------------------
   Rail carousel — variante de .mise-rail avec exactement N cartes pleinement
   visibles (4 desktop / 2 tablette / 1 mobile) et navigation par page,
   utilisée par [afcm_recipes layout="carousel"]. Sélecteur composé
   (.mise-rail.mise-rail--carousel) pour battre .mise-rail > * quel que soit
   l'ordre des règles.
   -------------------------------------------------------------------------- */
/* Pas de scroll-snap : avec des images qui se chargent en asynchrone, le
   navigateur peut reévaluer les points d'ancrage pendant le layout et
   atterrir sur la dernière position au premier rendu (constaté sur le rail
   « Recettes populaires », qui démarrait déjà scrollé à la fin). Le JS pagine
   déjà par largeur de conteneur, le snap n'apporte rien d'essentiel. */
.mise-rail.mise-rail--carousel > * {
  flex-basis: calc((100% - 72px) / 4);
  min-width: 220px;
}
@media (max-width: 1024px) {
  .mise-rail.mise-rail--carousel > * { flex-basis: calc((100% - 24px) / 2); min-width: 220px; }
}
@media (max-width: 767px) {
  .mise-rail.mise-rail--carousel > * { flex-basis: 100%; min-width: 0; }
}

.mise-carousel-nav {
  display: flex; align-items: center; justify-content: flex-end;
  gap: 10px; margin-bottom: 14px;
}
.mise-carousel-page {
  font: 500 12px/1 var(--mise-font-data); letter-spacing: .08em;
  color: var(--mise-ink-3); margin-right: 2px;
}
/* Le kit Elementor style tous les <button> en !important : on verrouille,
   même traitement que .mise-hero-arrow. */
html body .mise-carousel-arrow {
  appearance: none; -webkit-appearance: none;
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 40px !important; height: 40px !important; padding: 0 !important;
  border-radius: var(--mise-r-pill) !important;
  border: 1px solid var(--mise-line-2) !important;
  background: transparent !important;
  color: var(--mise-ink-2) !important;
  cursor: pointer; box-shadow: none !important;
  transition: border-color .24s, color .24s, background .24s, opacity .24s;
}
html body .mise-carousel-arrow:hover {
  border-color: var(--mise-accent) !important;
  color: var(--mise-accent-text) !important;
  background: var(--mise-accent-tint) !important;
}
html body .mise-carousel-arrow:focus-visible { outline: 2px solid var(--mise-accent-text); outline-offset: 2px; }
html body .mise-carousel-arrow[disabled] { opacity: .35; cursor: default; pointer-events: none; }
.mise-carousel-arrow svg {
  width: 18px; height: 18px; fill: none; stroke: currentColor;
  stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}

/* --------------------------------------------------------------------------
   Bande Instagram pleine largeur — [afcm_igfeed], posée en bas du footer.
   Compacte, défilement automatique en boucle (voir mise.js).
   -------------------------------------------------------------------------- */
.mise-igfeed-carousel { background: var(--mise-sunken); border-top: 1px solid var(--mise-line); padding: 18px 0 22px; }
.mise-igfeed-carousel__head {
  max-width: 1280px; margin: 0 auto; padding: 0 32px 12px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.mise-igfeed-carousel__label { display: flex; align-items: baseline; gap: 8px; }
.mise-igfeed-carousel__eyebrow { font: 600 10px/1.3 var(--mise-font-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--mise-accent-text); }
.mise-igfeed-carousel__handle {
  font: 500 15px/1.2 var(--mise-font-display); letter-spacing: -.01em; color: var(--mise-ink);
  text-decoration: none;
}
.mise-igfeed-carousel__handle:hover { color: var(--mise-accent-text); }
.mise-igfeed-carousel__nav { display: flex; align-items: center; gap: 8px; }
.mise-igfeed-carousel__page { font: 500 11px/1 var(--mise-font-data); letter-spacing: .08em; color: var(--mise-ink-3); margin-right: 2px; }

.mise-igfeed-carousel__rail { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; padding: 0 2px; }
.mise-igfeed-carousel__rail::-webkit-scrollbar { display: none; }
/* compact : 8 photos carrées pleinement visibles en desktop (~110px) */
.mise-igfeed-carousel__rail > * { flex: 0 0 calc((100% - 14px) / 8); min-width: 90px; max-width: 130px; }
@media (max-width: 1280px) { .mise-igfeed-carousel__rail > * { flex-basis: calc((100% - 12px) / 7); } }
@media (max-width: 1024px) {
  .mise-igfeed-carousel__rail > * { flex-basis: calc((100% - 8px) / 5); }
  .mise-igfeed-carousel__head { padding: 0 20px 10px; }
}
@media (max-width: 600px) { .mise-igfeed-carousel__rail > * { flex-basis: calc((100% - 6px) / 3); } }

.mise-igfeed-item { position: relative; display: block; aspect-ratio: 1/1; overflow: hidden; background: var(--mise-elevated); text-decoration: none; }
.mise-igfeed-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s cubic-bezier(.4,0,.2,1); }
.mise-igfeed-item:hover img { transform: scale(1.05); }
.mise-igfeed-item__overlay {
  position: absolute; inset: 0; background: rgba(16,13,10,0);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .24s, background .24s;
}
.mise-igfeed-item:hover .mise-igfeed-item__overlay { opacity: 1; background: rgba(16,13,10,.45); }
.mise-igfeed-item__overlay svg { width: 22px; height: 22px; fill: #fff; }

/* variante compacte des flèches de carousel (32px au lieu de 40px) */
html body .mise-carousel-arrow--sm { width: 32px !important; height: 32px !important; }
.mise-carousel-arrow--sm svg { width: 15px; height: 15px; }

/* --------------------------------------------------------------------------
   Archive: filter bar, pills, sort, empty state
   -------------------------------------------------------------------------- */
.mise-archive { display: flex; flex-direction: column; gap: 32px; }

.mise-filterbar { display: flex; flex-direction: column; gap: 14px; }
/* ligne 2 : pastilles à gauche, tri à droite */
.mise-filterbar__row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: nowrap;
}
.mise-filterbar__row .mise-pills { flex: 1 1 auto; min-width: 0; }
.mise-filterbar__row .mise-sort { flex: 0 0 auto; }
@media (max-width: 767px) {
  .mise-filterbar__row { flex-wrap: wrap; }
  .mise-filterbar__row .mise-sort { width: 100%; }
}

.mise-search { position: relative; display: block; width: 100%; }
.mise-search input {
  width: 100%; min-height: 48px; padding: 12px 16px 12px 44px;
  background: var(--mise-sunken); border: 1px solid var(--mise-line);
  border-radius: var(--mise-r-sm); color: var(--mise-ink);
  font: 400 15px/1.4 var(--mise-font-ui);
  transition: border-color .24s, box-shadow .24s, background .24s;
}
.mise-search input::placeholder { color: var(--mise-ink-4); }
.mise-search input:hover { border-color: var(--mise-line-2); }
.mise-search input:focus {
  outline: none; background: var(--mise-elevated);
  border-color: var(--mise-accent); box-shadow: 0 0 0 3px var(--mise-accent-tint);
}
.mise-search svg {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  width: 17px; height: 17px; fill: none; stroke: var(--mise-ink-3); stroke-width: 1.8;
  pointer-events: none;
}

.mise-sort {
  min-height: 48px; padding: 12px 40px 12px 16px; width: auto; min-width: 230px;
  background: var(--mise-sunken); border: 1px solid var(--mise-line);
  border-radius: var(--mise-r-sm); color: var(--mise-ink-2);
  font: 600 12px/1 var(--mise-font-ui); letter-spacing: .08em; text-transform: uppercase;
  cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  transition: border-color .24s, color .24s;
}
.mise-sort:hover { border-color: var(--mise-line-2); color: var(--mise-ink); }
.mise-sort:focus { outline: none; border-color: var(--mise-accent); box-shadow: 0 0 0 3px var(--mise-accent-tint); }

.mise-pills { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.mise-pills::-webkit-scrollbar { display: none; }
/* !important + `html body` : le kit Elementor style tous les <button> en paprika plein,
   ce qui rendait toutes les pastilles actives. */
html body .mise-pill {
  font: 600 12px/1 var(--mise-font-ui) !important;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--mise-ink-2) !important;
  background: transparent !important; background-image: none !important;
  border: 1px solid var(--mise-line) !important;
  border-radius: var(--mise-r-pill) !important;
  padding: 13px 18px !important; min-height: 44px; white-space: nowrap; cursor: pointer;
  box-shadow: none !important;
  transition: border-color .24s, color .24s, background .24s;
}
html body .mise-pill:hover { border-color: var(--mise-line-2) !important; color: var(--mise-ink) !important; }
html body .mise-pill[aria-pressed="true"] {
  background: var(--mise-accent) !important;
  border-color: var(--mise-accent) !important;
  color: var(--mise-on-accent) !important;
}
.mise-pill__n { opacity: .6; margin-left: 6px; font-family: var(--mise-font-data); }

.mise-count { font: 500 12px/1 var(--mise-font-data); letter-spacing: .08em; text-transform: uppercase; color: var(--mise-ink-3); }
.mise-empty {
  padding: 80px 24px; text-align: center;
  font: italic 400 19px/1.6 var(--mise-font-editorial); color: var(--mise-ink-3);
  border: 1px dashed var(--mise-line); border-radius: var(--mise-r-md);
}
.mise-more { display: flex; justify-content: center; }
html body .mise-btn-ghost {
  min-height: 48px; padding: 0 28px !important; cursor: pointer;
  background: transparent !important; background-image: none !important;
  border: 1px solid var(--mise-line-2) !important; border-radius: var(--mise-r-sm) !important;
  color: var(--mise-ink) !important; font: 600 13px/1 var(--mise-font-ui) !important;
  letter-spacing: .06em; text-transform: uppercase; box-shadow: none !important;
  transition: border-color .24s, background .24s, color .24s;
}
html body .mise-btn-ghost:hover { border-color: var(--mise-accent) !important; color: var(--mise-accent-text) !important; }

/* --------------------------------------------------------------------------
   Recipe detail — ingredients rail, method, WP Recipe Maker restyle
   -------------------------------------------------------------------------- */
.mise-rail-sticky { position: sticky; top: 96px; }
@media (max-width: 1024px) { .mise-rail-sticky { position: static; } }

.wprm-recipe-container,
.wprm-recipe {
  background: transparent !important;
  border: none !important;
  color: var(--mise-ink) !important;
  font-family: var(--mise-font-ui) !important;
}
.wprm-recipe-container .wprm-recipe-name,
.wprm-recipe-name {
  font-family: var(--mise-font-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.02em;
  color: var(--mise-ink) !important;
}
.wprm-recipe-container h1, .wprm-recipe-container h2,
.wprm-recipe-container h3, .wprm-recipe-container h4 {
  font-family: var(--mise-font-display) !important;
  color: var(--mise-ink) !important;
}
.wprm-recipe-container p,
.wprm-recipe-container li,
.wprm-recipe-summary { color: var(--mise-ink-2) !important; }

.wprm-recipe-ingredients-container ul.wprm-recipe-ingredients {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
}
.wprm-recipe-ingredients-container .wprm-recipe-ingredient {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
  padding: 11px 0; margin: 0 !important;
  border-bottom: 1px solid var(--mise-line);
  font: 400 16px/1.5 var(--mise-font-ui) !important;
  color: var(--mise-ink) !important;
  list-style: none !important; list-style-type: none !important;
}
.wprm-recipe-ingredients-container .wprm-recipe-ingredient::marker { content: ""; font-size: 0; }
.wprm-recipe-ingredients-container .wprm-recipe-ingredient:last-child { border-bottom: none; }
.wprm-recipe-ingredient-amount {
  flex: 0 0 auto; min-width: 42px;
  font-family: var(--mise-font-data) !important; font-size: 13px !important;
  font-feature-settings: "tnum"; font-variant-numeric: tabular-nums;
  color: var(--mise-accent-text) !important;
}
.wprm-recipe-ingredient-unit {
  flex: 0 0 auto;
  font-family: var(--mise-font-data) !important; font-size: 13px !important;
  color: var(--mise-accent-text) !important;
}
.wprm-recipe-ingredient-name { flex: 1 1 auto; color: var(--mise-ink) !important; }
.wprm-recipe-ingredient-notes { flex: 1 1 100%; color: var(--mise-ink-3) !important; font-style: italic; font-size: 14px; }

/* numbered method steps: paprika-tint circle, serif numeral */
.wprm-recipe-instructions-container ul.wprm-recipe-instructions,
.wprm-recipe-instructions-container ol.wprm-recipe-instructions {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
  counter-reset: mise-step;
}
.wprm-recipe-instruction {
  position: relative;
  counter-increment: mise-step;
  list-style: none !important; list-style-type: none !important;
  padding: 0 0 24px 56px !important; margin: 0 !important;
  font: 400 17px/1.65 var(--mise-font-ui) !important;
  color: var(--mise-ink-2) !important;
}
.wprm-recipe-instruction::marker { content: ""; font-size: 0; }
.wprm-recipe-instruction::before {
  content: counter(mise-step);
  position: absolute; left: 0; top: -2px;
  width: 40px; height: 40px; border-radius: var(--mise-r-pill);
  background: var(--mise-accent-tint); color: var(--mise-accent-text);
  display: grid; place-items: center;
  font: 500 20px/1 var(--mise-font-display); font-feature-settings: "tnum";
}
.wprm-recipe-instruction-image img { border-radius: var(--mise-r-md); margin-top: 12px; }
@media (max-width: 767px) {
  .wprm-recipe-instruction { padding-left: 46px !important; }
  .wprm-recipe-instruction::before { width: 34px; height: 34px; font-size: 17px; }
}
.wprm-recipe-instructions-container .wprm-recipe-instruction-group-name,
.wprm-recipe-ingredients-container .wprm-recipe-ingredient-group-name {
  font-family: var(--mise-font-display) !important; color: var(--mise-ink) !important;
}
.wprm-recipe-meta-container,
.wprm-recipe-details-container { color: var(--mise-ink-3) !important; }
.wprm-recipe-time, .wprm-recipe-servings, .wprm-recipe-details-unit,
.wprm-recipe-details-value {
  font-family: var(--mise-font-data) !important; font-feature-settings: "tnum";
  color: var(--mise-ink-2) !important;
}
.wprm-recipe-details-label { color: var(--mise-ink-3) !important; }
.wprm-rating-star svg polygon,
.wprm-rating-star svg path {
  fill: var(--mise-accent-text) !important; stroke: var(--mise-accent-text) !important;
}
.wprm-nutrition-label-container {
  background: var(--mise-sunken) !important;
  border: 1px solid var(--mise-line) !important;
  border-radius: var(--mise-r-md); padding: 24px !important;
  color: var(--mise-ink-2) !important;
}
html body .wprm-recipe-print,
html body .wprm-recipe-jump,
html body .wprm-recipe-link,
html body .wprm-jump-to-recipe-shortcode,
html body .mise-action {
  display: inline-flex; align-items: center; gap: 9px;
  background: transparent !important; background-image: none !important;
  border: 1px solid var(--mise-line-2) !important;
  border-radius: var(--mise-r-sm) !important;
  color: var(--mise-ink) !important;
  font: 600 12px/1 var(--mise-font-ui) !important;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 14px 18px !important; min-height: 46px; cursor: pointer;
  box-shadow: none !important; text-decoration: none;
  transition: border-color .24s, color .24s;
}
html body .wprm-recipe-print:hover,
html body .wprm-recipe-jump:hover,
html body .mise-action:hover {
  border-color: var(--mise-accent) !important;
  color: var(--mise-accent-text) !important;
}
.mise-action svg {
  width: 15px; height: 15px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
}

/* --------------------------------------------------------------------------
   Forms — WPForms and Elementor fields share one look
   -------------------------------------------------------------------------- */
.mise-form .wpforms-field-label,
.mise-form label {
  font: 600 12px/1.3 var(--mise-font-ui) !important;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--mise-ink-3) !important; margin-bottom: 8px !important;
}
.mise-form .wpforms-field-sublabel { color: var(--mise-ink-4) !important; }
.mise-form input[type="text"],
.mise-form input[type="email"],
.mise-form input[type="tel"],
.mise-form input[type="url"],
.mise-form select,
.mise-form textarea {
  width: 100% !important; max-width: 100% !important;
  background: var(--mise-surface) !important;
  border: 1px solid var(--mise-line) !important;
  border-radius: var(--mise-r-sm) !important;
  color: var(--mise-ink) !important;
  font: 400 16px/1.5 var(--mise-font-ui) !important;
  padding: 13px 16px !important; min-height: 48px !important;
  box-shadow: none !important;
  transition: border-color .24s, box-shadow .24s, background .24s;
}
.mise-form textarea { min-height: 168px !important; resize: vertical; }
.mise-form ::placeholder { color: var(--mise-ink-4); }
.mise-form input:hover, .mise-form select:hover, .mise-form textarea:hover { border-color: var(--mise-line-2) !important; }
.mise-form input:focus, .mise-form select:focus, .mise-form textarea:focus {
  outline: none !important;
  background: var(--mise-elevated) !important;
  border-color: var(--mise-accent) !important;
  box-shadow: 0 0 0 3px var(--mise-accent-tint) !important;
}
.mise-form .wpforms-submit,
.mise-form button[type="submit"] {
  width: 100%; min-height: 56px;
  background: var(--mise-accent) !important;
  border: none !important; border-radius: var(--mise-r-sm) !important;
  color: var(--mise-on-accent) !important;
  font: 600 14px/1 var(--mise-font-ui) !important;
  letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
  transition: background .24s, transform .1s;
}
.mise-form .wpforms-submit:hover { background: var(--mise-accent-hover) !important; }
.mise-form .wpforms-submit:active { transform: translateY(1px); }
.mise-form .wpforms-error,
.mise-form label.wpforms-error { color: var(--mise-danger) !important; text-transform: none; letter-spacing: 0; font-size: 13px !important; }
.mise-form input.wpforms-error, .mise-form textarea.wpforms-error, .mise-form select.wpforms-error { border-color: var(--mise-danger) !important; }
.mise-form .wpforms-confirmation-container-full,
.wpforms-confirmation-container-full {
  background: var(--mise-accent-tint) !important;
  border: 1px solid var(--mise-accent) !important;
  border-radius: var(--mise-r-md) !important;
  color: var(--mise-ink) !important;
  padding: 24px !important;
}
.mise-form .wpforms-field { padding: 0 0 20px !important; }
.mise-form .wpforms-title, .mise-form .wpforms-description { display: none; }
.mise-form .wpforms-required-label { color: var(--mise-accent-text) !important; }

/* newsletter: field + button on one line */
.mise-form--inline .wpforms-form { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.mise-form--inline .wpforms-field-container { flex: 1 1 260px; }
.mise-form--inline .wpforms-field { padding-bottom: 0 !important; }
.mise-form--inline .wpforms-submit-container { flex: 0 0 auto; padding: 0 !important; }
.mise-form--inline .wpforms-submit { width: auto; min-height: 44px; padding: 0 24px; }
.mise-form--inline input,
.mise-form--inline select { min-height: 44px !important; padding: 10px 14px !important; font-size: 15px !important; }

/* --------------------------------------------------------------------------
   Instagram feed — strip the plugin chrome, keep the contact sheet
   -------------------------------------------------------------------------- */
.mise-igfeed [class*="insta-gallery"] {
  background: transparent !important; border: none !important; box-shadow: none !important;
}
.mise-igfeed .insta-gallery-feed { margin: 0 !important; padding: 0 !important; }
.mise-igfeed .insta-gallery-list { gap: 8px !important; }
.mise-igfeed .insta-gallery-item { border-radius: 0 !important; overflow: hidden; }
.mise-igfeed .insta-gallery-item img { object-fit: cover; display: block; }
.mise-igfeed .insta-gallery-user, .mise-igfeed .insta-gallery-follow { display: none !important; }
.mise-igfeed .insta-gallery-item a { transition: opacity .24s cubic-bezier(.4,0,.2,1); }
.mise-igfeed .insta-gallery-item a:hover { opacity: .82; }
.mise-igfeed .insta-gallery-load-more a {
  background: var(--mise-surface) !important; color: var(--mise-ink) !important;
  border: 1px solid var(--mise-line) !important; border-radius: var(--mise-r-sm) !important;
  box-shadow: none !important; min-height: 48px;
}

/* --------------------------------------------------------------------------
   Footer — layout enforced here, independent of builder-generated CSS
   -------------------------------------------------------------------------- */
.mise-footer {
  display: block !important;
  background: var(--mise-sunken);
  border-top: 1px solid var(--mise-line);
}
.mise-foot-news > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px; align-items: center; width: 100%;
}
.mise-foot-cols > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1.7fr 1fr 1fr;
  gap: 40px; align-items: stretch; width: 100%;
}
/* copyright : bas de la dernière colonne, aligné à droite */
.mise-foot-copy {
  margin-top: auto !important;   /* pousse le bloc au bas de la colonne étirée */
  padding-top: 18px;
  text-align: right;
  align-items: flex-end !important;
}
.mise-foot-copy .elementor-widget-text-editor p { margin: 0; }
@media (max-width: 600px) {
  .mise-foot-copy { margin-top: 8px !important; padding-top: 0; }
}
.mise-foot-news .e-con-inner > .e-con,
.mise-foot-cols .e-con-inner > .e-con {
  width: auto !important; max-width: none !important; min-width: 0;
}
/* widgets posés directement dans une barre flex : Elementor leur impose 100% */
.mise-header-row .e-con-inner > .elementor-widget { width: auto !important; }
@media (max-width: 1024px) {
  .mise-foot-news > .e-con-inner { grid-template-columns: 1fr; gap: 28px; }
  .mise-foot-cols > .e-con-inner { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 600px) {
  .mise-foot-cols > .e-con-inner { grid-template-columns: 1fr; gap: 32px; }
}

/* icon-list links inside the footer: quiet vertical lists */
.mise-footer .elementor-icon-list-items { display: flex; flex-direction: column; gap: 0; }
.mise-footer .elementor-icon-list-item a { transition: color .2s; }
.mise-footer .elementor-icon-list-text:hover { color: var(--mise-ink) !important; }

/* WPForms modern markup: keep the newsletter on one line at desktop */
.mise-form--inline form.wpforms-form {
  display: flex !important; flex-wrap: wrap; gap: 12px; align-items: flex-start;
}
.mise-form--inline form.wpforms-form > * { margin: 0 !important; }
.mise-form--inline .wpforms-field-container { flex: 1 1 240px; }

/* --------------------------------------------------------------------------
   Footer + misc
   -------------------------------------------------------------------------- */
.mise-footer-label {
  font: 500 11px/1 var(--mise-font-data); letter-spacing: .16em;
  text-transform: uppercase; color: var(--mise-ink-3);
}
.mise-footer-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.mise-footer-links a { font: 400 13px/1.35 var(--mise-font-ui); color: var(--mise-ink-2); text-decoration: none; transition: color .2s; }
.mise-footer-links a:hover { color: var(--mise-ink); }

.mise-totop { display: inline-flex; align-items: center; gap: 8px; font: 500 11px/1 var(--mise-font-data); letter-spacing: .14em; text-transform: uppercase; color: var(--mise-ink-3); text-decoration: none; }
.mise-totop:hover { color: var(--mise-ink); }

/* bouton flottant « retour en haut » : haut à droite, apparaît à 75 % de la page.
   Verrouillé en html body + !important : le kit Elementor style tous les <button>. */
html body .mise-fab-top {
  position: fixed; top: 84px; right: 20px; z-index: 90;
  width: 42px; height: 42px; padding: 0 !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  background: var(--mise-surface) !important;
  border: 1px solid var(--mise-line) !important;
  border-radius: 999px !important;
  color: var(--mise-ink) !important;
  /* font-size: 0 -> aucun glyphe residuel si le SVG ne charge pas */
  font-size: 0 !important; line-height: 1 !important; letter-spacing: 0 !important;
  cursor: pointer; box-shadow: 0 4px 18px rgba(0,0,0,.24);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .24s, transform .24s, visibility .24s,
              border-color .24s, background-color .24s, color .24s, box-shadow .24s;
}
html body .mise-fab-top__icon {
  display: block; width: 18px; height: 18px;
  transition: transform .24s cubic-bezier(.4,0,.2,1);
}
html body .mise-fab-top.is-on { opacity: 1; visibility: visible; transform: none; }
html body .mise-fab-top:hover {
  border-color: var(--mise-accent) !important;
  background: var(--mise-elevated) !important;
  color: var(--mise-accent) !important;
  box-shadow: 0 6px 22px rgba(0,0,0,.30);
}
/* la fleche monte legerement au survol : rappelle l'action sans texte */
html body .mise-fab-top:hover .mise-fab-top__icon { transform: translateY(-2px); }
html body .mise-fab-top:focus-visible { outline: 2px solid var(--mise-accent); outline-offset: 3px; }
html body .mise-fab-top:active { transform: scale(.94); }
@media (max-width: 600px) {
  html body .mise-fab-top { top: 76px; right: 12px; width: 38px; height: 38px; }
  html body .mise-fab-top__icon { width: 16px; height: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html body .mise-fab-top, html body .mise-fab-top__icon { transition: none; }
}

/* Elementor container defaults inside our pages */
.elementor-widget-heading .elementor-heading-title { letter-spacing: -.02em; }

/* --------------------------------------------------------------------------
   Hero — recette du jour (asymmetric 58/42 split)
   -------------------------------------------------------------------------- */
.mise-hero { display: grid; grid-template-columns: 1.36fr 1fr; gap: 48px; align-items: center; }
.mise-hero__media { display: block; overflow: hidden; background: var(--mise-elevated); }
.mise-hero__media img {
  display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.mise-hero__media:hover img { transform: scale(1.02); }
.mise-hero__body { display: flex; flex-direction: column; gap: 16px; }
.mise-hero__title { margin: 0; font: 500 56px/1.07 var(--mise-font-display); letter-spacing: -.02em; }
.mise-hero__title a { color: var(--mise-ink); text-decoration: none; transition: color .24s; }
.mise-hero__title a:hover { color: var(--mise-accent-text); }
.mise-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 0;
  font: 500 13px/1.3 var(--mise-font-data); letter-spacing: .06em; color: var(--mise-ink-3); }
.mise-hero__meta .dot { color: var(--mise-accent); }
.mise-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0 0; }

.mise-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 28px;
  background: var(--mise-accent); color: var(--mise-on-accent) !important;
  border-radius: var(--mise-r-sm); text-decoration: none;
  font: 600 13px/1 var(--mise-font-ui); letter-spacing: .06em; text-transform: uppercase;
  transition: background .24s;
}
.mise-btn:hover { background: var(--mise-accent-hover); color: var(--mise-on-accent) !important; }
a.mise-btn-ghost { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }

@media (max-width: 1024px) {
  .mise-hero { grid-template-columns: 1fr; gap: 32px; }
  .mise-hero__title { font-size: 42px; }
}
@media (max-width: 767px) {
  .mise-hero__title { font-size: 34px; }
  .mise-hero__cta .mise-btn, .mise-hero__cta .mise-btn-ghost { width: 100%; }
}

/* --------------------------------------------------------------------------
   Section heads (title + “Tout voir”)
   Layout owned here: a child container with content_width=full carries
   --width:100% from Elementor, which pushed the CTA onto its own line.
   -------------------------------------------------------------------------- */
.mise-sechead > .e-con-inner {
  display: flex !important;
  flex-direction: row; align-items: flex-end; justify-content: space-between;
  gap: 16px 24px; flex-wrap: wrap; width: 100%;
}
.mise-sechead .e-con-inner > .e-con { width: auto !important; max-width: none !important; }
.mise-sechead .e-con-inner > .e-con:first-child { flex: 1 1 320px; min-width: 0; }
.mise-sechead .e-con-inner > .e-con:last-child  { flex: 0 0 auto; }


.mise-recipe-part__title,
.mise-section-title { font: 500 30px/1.2 var(--mise-font-display); letter-spacing: -.02em; color: var(--mise-ink); margin: 0 0 16px; }
.mise-recipe-part + .mise-recipe-part { margin-top: 40px; }
.mise-recipe-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  font: 500 13px/1.3 var(--mise-font-data); letter-spacing: .06em; color: var(--mise-ink-3); margin: 0; }
.mise-recipe-meta .dot, .mise-recipe-terms + * .dot { color: var(--mise-accent); }
.mise-recipe-terms a { color: var(--mise-accent-text); text-decoration: none; }
.mise-recipe-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.mise-recipe-part--ingredients .wprm-recipe-ingredients-container { margin: 0; }
.mise-recipe-part--nutrition { margin-top: 40px; }

/* --------------------------------------------------------------------------
   Hero carousel — chaque slide réutilise .mise-hero, donc le même gabarit
   -------------------------------------------------------------------------- */
.mise-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

.mise-hero-carousel { position: relative; }

/* Une slide masquée doit vraiment disparaître : .mise-hero { display:grid } est une
   règle auteur et bat le style UA de l'attribut hidden (même piège que .mise-card). */
html body .mise-hero-slide[hidden] { display: none !important; }

/* Sans JS : la première slide reste visible, sa photo vient du <noscript>. */
.mise-hero-carousel:not([data-mise-ready]) .mise-hero-slide:first-child { display: grid !important; }
.mise-hero-carousel:not([data-mise-ready]) .mise-hero-slide:first-child img[data-mise-src] { display: none; }

/* L'animation ne touche pas l'opacité : dans un onglet en arrière-plan les
   animations CSS sont gelées sur leur première keyframe, et une slide figée à
   opacity:0 serait tout simplement invisible. Un translate gélé est inoffensif. */
.mise-hero-slide { animation: mise-hero-in .45s cubic-bezier(.4,0,.2,1); }
@keyframes mise-hero-in { from { transform: translateY(8px); } to { transform: none; } }

.mise-hero-nav {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--mise-line);
}
html body .mise-hero-nav[hidden] { display: none !important; }

.mise-hero-dots   { display: flex; align-items: center; gap: 10px; }
.mise-hero-arrows { display: flex; align-items: center; gap: 8px; }

/* Le kit Elementor style tous les <button> : on verrouille. */
html body .mise-hero-dot {
  appearance: none; -webkit-appearance: none;
  width: 32px; height: 4px; padding: 0; border: 0; border-radius: var(--mise-r-pill);
  background: var(--mise-line-2); cursor: pointer; box-shadow: none;
  transition: background .24s, width .24s;
}
html body .mise-hero-dot:hover { background: var(--mise-ink-3); }
html body .mise-hero-dot[aria-selected="true"] { background: var(--mise-accent); width: 48px; }
html body .mise-hero-dot:focus-visible { outline: 2px solid var(--mise-accent-text); outline-offset: 3px; }

/* Le kit Elementor peint les <button> en blanc sans bordure, en !important :
   la flèche devenait invisible en thème clair. On verrouille tout ce qui peint. */
html body .mise-hero-arrow {
  appearance: none; -webkit-appearance: none;
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 40px !important; height: 40px !important; padding: 0 !important;
  border-radius: var(--mise-r-pill) !important;
  border: 1px solid var(--mise-line-2) !important;
  background: transparent !important;
  color: var(--mise-ink-2) !important;
  cursor: pointer; box-shadow: none !important;
  transition: border-color .24s, color .24s, background .24s;
}
html body .mise-hero-arrow:hover {
  border-color: var(--mise-accent) !important;
  color: var(--mise-accent-text) !important;
  background: var(--mise-accent-tint) !important;
}
html body .mise-hero-arrow:focus-visible { outline: 2px solid var(--mise-accent-text); outline-offset: 2px; }
.mise-hero-arrow svg {
  width: 18px; height: 18px; fill: none; stroke: currentColor;
  stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}

@media (max-width: 767px) {
  .mise-hero-nav { margin-top: 24px; padding-top: 16px; }
  html body .mise-hero-dot { width: 24px; }
  html body .mise-hero-dot[aria-selected="true"] { width: 36px; }
}

/* --------------------------------------------------------------------------
   Motion discipline
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .mise-card:hover { transform: none; }
  .mise-card:hover .mise-card__media img { transform: none; }
}

/* --------------------------------------------------------------------------
   Print — ink on paper, no photography, no chrome
   -------------------------------------------------------------------------- */
@media print {
  html body, .e-con, .e-con-inner { background: #fff !important; }
  h1, h2, h3, h4, p, li, span, a, .mise-card__title { color: #000 !important; }
  .mise-hide-print, .mise-header, .mise-footer, .mise-filterbar, .mise-fab-top,
  .mise-igfeed, .mise-ctl, .mise-lang, .mise-totop { display: none !important; }
  .mise-card, .wprm-recipe-container, .wprm-nutrition-label-container { border-color: #bbb !important; }
  .mise-card__media, .mise-hero-media { display: none !important; }
  a { text-decoration: none; }
}

/* --- Galerie Modula de bas de recette (shortcode [afcm_recipe_gallery]) --- */
/* Le padding vit sur le bloc, pas sur le conteneur Elementor : une recette
   sans galerie ne laisse donc aucun blanc. */
html body .mise-recipe-gallery { padding: 0 32px 64px; display: flex; flex-direction: column; gap: 24px; }
html body .mise-recipe-gallery > .mise-recipe-part__title { margin: 0; }
html body .mise-recipe-gallery .modula-gallery, html body .mise-recipe-gallery .modula-items { margin: 0 !important; }
html body .mise-recipe-gallery .modula-item img { border-radius: 4px; }
@media (max-width: 767px){ html body .mise-recipe-gallery { padding: 0 20px 48px; } }
