/*
Theme Name: Bello Mangiare
Theme URI: https://atomic.gaillard.info
Author: Bello Mangiare
Description: Thème bloc sur mesure de la pizzeria napolitaine Bello Mangiare, Grenoble. Tout le contenu est en blocs natifs, modifiable dans l’éditeur.
Version: 1.0.8
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bello-mangiare
Tags: block-theme, full-site-editing, food-and-drink, one-column
*/

/* ==========================================================
   Jetons — palette relevée sur la référence
   ========================================================== */
:root {
  --ardoise: #272C38;
  --ardoise-profonde: #1C2028;
  --basilic: #86D970;
  --basilic-moyen: #7DCE67;
  --basilic-clair: #8EE264;
  --basilic-fonce: #0B3305;
  --encre: #181C1F;
  --gris: #5B6069;
  --brume: #C3C7CF;
  --blanc: #FFFFFF;

  --script: "Yellowtail", cursive;
  --sans: "Inter", system-ui, sans-serif;
  --largeur: 1180px;

  --degrade-basilic: linear-gradient(100deg, var(--basilic-moyen), var(--basilic-clair));
  --vague: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 260' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 248 C 250 236 470 126 760 128 C 1010 130 1170 92 1440 6 L1440 260 L0 260 Z'/%3E%3Cg fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M210 226 C 400 180 540 108 750 102' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M830 104 C 960 104 1070 88 1165 64' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1232 44 C 1310 22 1380 0 1440 -20' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E");
  --vague-courte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 260' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 248 C 250 236 470 126 760 128 C 1010 130 1170 92 1440 6 L1440 260 L0 260 Z'/%3E%3Cg fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M210 226 C 400 180 540 108 750 102' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M830 104 C 960 104 1070 88 1165 64' vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E");
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}

/* ==========================================================
   Socle
   ========================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--blanc);
  color: var(--encre);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; text-wrap: balance; hyphens: none; }
p { margin: 0; }
button, input, select, textarea { font: inherit; }

/* Gutenberg : l'espacement automatique est coupé dans theme.json (blockGap 0).
   Filet de sécurité à spécificité nulle — jamais `.wp-block-group > *`,
   qui écraserait les marges des composants. */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
.wp-site-blocks { padding: 0; }

/* Boutons de bloc : on repart de zéro, chaque variante pose son style. */
.wp-block-buttons .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; border: 0; border-radius: 999px;
  background: none; color: inherit;
  font-family: var(--sans); font-size: 13px; font-weight: 600; line-height: 1;
  letter-spacing: .01em; text-transform: uppercase; text-decoration: none;
  white-space: nowrap;
}
.wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; }

/* ==========================================================
   En-tête
   ========================================================== */
.entete {
  position: absolute; inset: 0 0 auto 0; z-index: 20;
  display: flex; align-items: center;
  padding: 26px 40px 0 36px;
  color: var(--blanc);
}
.admin-bar .entete { top: 32px; }
.wp-block-image.logo { display: block; width: 66px; height: 66px; flex: none; }
.wp-block-image.logo img { width: 100%; height: auto; }

/* WordPress recopie la classe sur le <ul> intérieur : la marge ne vise que le <nav> */
nav.wp-block-navigation.menu { margin-left: 52px; gap: 30px; font-size: 15px; }
.wp-block-navigation.menu .wp-block-navigation__container { gap: 30px; }
.wp-block-navigation.menu .wp-block-navigation-item__content {
  position: relative; padding: 6px 0;
  font-size: 15px; font-weight: 600; letter-spacing: .005em; color: var(--blanc);
}
.wp-block-navigation.menu .wp-block-navigation-item__content::after,
.pied-menu .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--basilic); border-radius: 2px;
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.wp-block-navigation.menu .wp-block-navigation-item__content:hover::after,
.wp-block-navigation.menu .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }

.wp-block-buttons.entete-cta { margin-left: auto; }
.btn-reserver .wp-block-button__link {
  gap: 10px; height: 46px; padding: 0 22px 0 14px;
  background: var(--degrade-basilic); color: var(--basilic-fonce);
  font-size: 13.5px; text-transform: none; letter-spacing: 0;
  box-shadow: 0 8px 24px -8px rgba(0,0,0,.45);
  transition: transform .2s ease;
}
.btn-reserver .wp-block-button__link::before {
  content: ""; width: 22px; height: 22px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.2' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 12h8m-3.2-3.4L16.2 12l-3.4 3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.2' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 12h8m-3.2-3.4L16.2 12l-3.4 3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.btn-reserver .wp-block-button__link:hover { transform: translateY(-1px); }

/* panneau de navigation mobile (core/navigation) */
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open {
  width: 44px; height: 44px; border-radius: 50%; padding: 0;
  align-items: center; justify-content: center;
  background: rgba(255,255,255,.1); color: var(--blanc);
}
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--ardoise-profonde) !important;
  color: var(--blanc) !important;
  padding: 28px 24px;
}
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-size: 26px; padding: 10px 0;
}
.wp-block-navigation.menu .wp-block-navigation__responsive-container-close { color: var(--blanc); }

/* ==========================================================
   Héros
   ========================================================== */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 900px;
  background:
    var(--grain) 0 0 / 220px 220px,
    radial-gradient(ellipse 60% 70% at 26% 42%, rgba(255,255,255,.055), transparent 70%),
    radial-gradient(ellipse 80% 90% at 100% 0%, rgba(0,0,0,.35), transparent 60%),
    var(--ardoise);
  background-blend-mode: overlay, normal, normal;
  color: var(--blanc);
}
.wp-block-image.hero-tomates {
  position: absolute; z-index: 1;
  width: 780px; max-width: none; top: -150px; right: -90px;
  mix-blend-mode: lighten;
  transform: rotate(-4deg);
}
.wp-block-image.hero-feuilles {
  position: absolute; z-index: 1;
  width: 1060px; max-width: none; left: -600px; bottom: -60px;
  mix-blend-mode: lighten;
  transform: scaleX(-1) rotate(-14deg);
}
.wp-block-image.hero-pizza {
  position: absolute; z-index: 2;
  width: 960px; max-width: none;
  left: calc(50% - 16px); top: 118px;
  transform: rotate(8deg);
}
.wp-block-image.hero-pizza img {
  filter: drop-shadow(0 40px 50px rgba(0,0,0,.55)) drop-shadow(0 8px 14px rgba(0,0,0,.35));
}
.hero-tomates img, .hero-feuilles img, .hero-pizza img,
.bandeau-feuilles img, .recrutement-tomates img { width: 100%; }

.hero-texte {
  position: relative; z-index: 3;
  padding: 196px 0 0 max(24px, calc(50% - 560px));
  max-width: calc(50% + 40px);
}
.hero-titre {
  font-family: var(--script); font-weight: 400;
  font-size: 176px; line-height: .8;
  letter-spacing: -.005em;
  -webkit-text-stroke: 2px currentColor;
  transform: rotate(-7deg); transform-origin: 0 100%;
  margin-left: -46px;
  padding-left: .62em; text-indent: -.62em;
  white-space: nowrap;
  text-shadow: 0 14px 40px rgba(0,0,0,.35);
}
.hero-accroche {
  margin-top: 64px; max-width: 380px;
  font-size: 20px; line-height: 1.32; font-weight: 400;
  color: rgba(255,255,255,.94);
}

/* bouton double « ou » */
.wp-block-buttons.duo {
  margin-top: 30px;
  display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 0;
  border-radius: 999px;
  box-shadow: 0 16px 34px -12px rgba(0,0,0,.55);
}
.duo-vert .wp-block-button__link, .duo-blanc .wp-block-button__link {
  height: 70px; font-size: 13px;
  transition: filter .2s ease;
}
.duo-vert .wp-block-button__link {
  padding: 0 40px 0 28px;
  border-radius: 999px 0 0 999px;
  background: var(--degrade-basilic); color: var(--basilic-fonce);
}
.duo-blanc .wp-block-button__link {
  padding: 0 34px 0 38px;
  border-radius: 0 999px 999px 0;
  background: var(--blanc); color: var(--encre);
}
.duo-vert .wp-block-button__link:hover, .duo-blanc .wp-block-button__link:hover { filter: brightness(1.05); }
.wp-block-button.duo-blanc { position: relative; }
.wp-block-button.duo-blanc::before {
  content: "ou"; position: absolute; z-index: 1; left: -20px; top: 50%;
  width: 40px; height: 40px; margin-top: -20px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--ardoise); color: var(--blanc);
  font-size: 12px; font-weight: 700; line-height: 1; text-transform: uppercase;
  box-shadow: 0 0 0 3px rgba(39,44,56,.12);
}

/* ==========================================================
   Vagues — couches décoratives en pseudo-éléments
   ========================================================== */
.hero::after, .bandeau::after, .geste::after, .produits::after, .recrutement::after,
.geste::before, .produits::before, .recrutement::before, .acces::before {
  content: ""; position: absolute; left: 0; right: 0; z-index: 4; pointer-events: none;
  background: var(--vague) center / 100% 100% no-repeat;
}
.hero::after, .bandeau::after, .geste::after, .produits::after, .recrutement::after { bottom: -1px; height: 260px; }
.bandeau::after { height: 220px; }
.geste::before, .produits::before, .recrutement::before, .acces::before {
  top: -1px; height: 220px;
  background-image: var(--vague-courte);
  transform: scale(-1, -1);
}

/* ==========================================================
   Titres et boutons communs
   ========================================================== */
.titre-section {
  font-size: 46px; line-height: 1.1; font-weight: 700;
  letter-spacing: -.018em; text-align: center;
}
.chapeau {
  margin: 16px auto 0; max-width: 560px; hyphens: none;
  text-align: center; color: var(--gris); font-size: 18px;
}
.pilule .wp-block-button__link {
  height: 58px; padding: 0 34px;
  transition: transform .2s ease, filter .2s ease;
}
.pilule .wp-block-button__link:hover { transform: translateY(-2px); }
.pilule-vert .wp-block-button__link {
  background: var(--degrade-basilic); color: var(--basilic-fonce);
  box-shadow: 0 14px 30px -14px rgba(66,140,48,.8);
}
.pilule-sombre .wp-block-button__link {
  background: var(--ardoise); color: var(--blanc);
  box-shadow: 0 14px 30px -14px rgba(28,32,40,.8);
}

/* ==========================================================
   Pizzas
   ========================================================== */
.choix {
  position: relative;
  padding: 36px 24px 70px;
  display: flex; flex-direction: column; align-items: center;
}
.trio {
  width: 100%; max-width: var(--largeur);
  margin-top: 62px;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px;
}
.plat { display: flex; flex-direction: column; align-items: center; }
.wp-block-image.plat-photo { width: 100%; max-width: 350px; }
.wp-block-image.plat-photo img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%;
  filter: drop-shadow(0 26px 22px rgba(24,28,31,.26)) drop-shadow(0 4px 6px rgba(24,28,31,.18));
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.plat:hover .plat-photo img { transform: rotate(14deg) scale(1.02); }
.plat-etiquette {
  position: relative; z-index: 1;
  width: min(252px, 100%); margin-top: -84px;
  padding: 22px 22px 26px;
  background: var(--blanc); border-radius: 18px;
  text-align: center;
  box-shadow: 0 28px 50px -18px rgba(24,28,31,.24), 0 2px 6px rgba(24,28,31,.05);
}
.plat-etiquette h3 { font-size: 21px; font-weight: 600; letter-spacing: -.01em; }
.plat-etiquette > p:not(.plat-prix) { margin-top: 8px; font-size: 14.5px; line-height: 1.45; color: var(--gris); }
.plat-prix {
  display: inline-block; margin-top: 16px;
  padding: 5px 16px; border-radius: 999px;
  background: var(--degrade-basilic);
  color: var(--basilic-fonce); font-size: 14px; font-weight: 700; line-height: 1.6;
}
.choix > .rangee-boutons { margin-top: 64px; }

/* ==========================================================
   Savoir-faire
   ========================================================== */
.geste {
  position: relative; isolation: isolate;
  background: var(--grain) 0 0 / 220px 220px, var(--ardoise);
  background-blend-mode: overlay, normal;
  color: var(--blanc);
  padding: 210px 0 250px;
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  overflow: hidden;
}
.geste-visuel { position: relative; z-index: 1; height: 640px; }
.wp-block-image.geste-four {
  position: absolute; width: 700px; max-width: none;
  right: 40px; top: -30px;
}
.wp-block-image.geste-four img {
  width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 38% 50%;
  border-radius: 50%;
  box-shadow: 0 50px 80px -30px rgba(0,0,0,.7);
}
.wp-block-image.geste-pate {
  position: absolute; width: 270px;
  right: -36px; bottom: -40px;
}
.wp-block-image.geste-pate img {
  width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 50% 62%;
  border-radius: 50%;
  border: 10px solid var(--ardoise);
  box-shadow: 0 30px 50px -20px rgba(0,0,0,.6);
}
.geste-texte { position: relative; z-index: 2; padding: 0 max(24px, calc(50% - 560px)) 0 96px; max-width: 700px; text-align: center; }
.geste-texte > p { margin: 22px auto 0; font-size: 18px; line-height: 1.6; color: var(--brume); max-width: 470px; }
.chiffres { margin-top: 44px; display: grid; grid-template-columns: repeat(3, auto); gap: 34px; justify-content: center; }
.chiffre-valeur {
  font-size: 50px; line-height: 1; font-weight: 800; letter-spacing: -.03em; white-space: nowrap;
}
.chiffre-legende { margin: 12px auto 0; font-size: 14.5px; line-height: 1.45; color: var(--brume); max-width: 150px; }

/* ==========================================================
   Présentation
   ========================================================== */
.maison { padding: 70px 24px 150px; }
.maison-grille {
  max-width: var(--largeur); margin: 70px auto 0;
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 80px; align-items: center;
}
.wp-block-image.maison-photo { position: relative; }
.wp-block-image.maison-photo img {
  width: 100%; aspect-ratio: 4 / 3.3; object-fit: cover; object-position: 60% 50%;
  border-radius: 18px;
  box-shadow: 0 40px 70px -30px rgba(24,28,31,.45);
}
.maison-lead { font-size: 26px; line-height: 1.35; font-weight: 600; letter-spacing: -.012em; }
.maison-texte > p + p { margin-top: 20px; color: var(--gris); font-size: 18px; }
.maison-texte > .rangee-boutons { margin-top: 36px; }

/* ==========================================================
   Équipe (accueil)
   ========================================================== */
.equipe {
  padding: 30px 24px 90px;
  display: flex; flex-direction: column; align-items: center;
}
.trio-equipe { margin-top: 70px; gap: 56px; max-width: 1040px; }
.membre .wp-block-image.plat-photo { max-width: 290px; }
.membre .wp-block-image.plat-photo img { filter: none; box-shadow: 0 30px 50px -24px rgba(24,28,31,.5); }
.membre:hover .plat-photo img { transform: scale(1.03); }
.membre .plat-etiquette { width: min(220px, 100%); margin-top: -54px; padding: 18px 18px 20px; }
.membre .plat-etiquette > p:not(.plat-prix) { margin-top: 4px; }
.equipe > .rangee-boutons { margin-top: 64px; }

/* ==========================================================
   Accès
   ========================================================== */
.acces {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--ardoise);
  padding: 250px max(24px, calc(50% - 560px)) 130px 24px;
  display: flex; justify-content: flex-end;
}
.wp-block-image.acces-ville { position: absolute; inset: 0; z-index: -1; }
.acces .wp-block-image.acces-ville img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%;
  filter: saturate(.85);
}
.wp-block-image.acces-ville::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(39,44,56,.35) 0%, rgba(39,44,56,.55) 55%, rgba(28,32,40,.96) 100%);
}
.acces-carte {
  position: relative; z-index: 5;
  width: 100%; max-width: 560px;
  padding: 54px 56px 56px;
  background: var(--blanc); border-radius: 18px;
  text-align: center;
  box-shadow: 0 60px 90px -40px rgba(0,0,0,.7);
}
.acces-carte .titre-section { font-size: 40px; }
.acces-adresse { margin-top: 18px; font-size: 22px; line-height: 1.35; font-weight: 600; }
.horaires { margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid #E7E9EC; display: grid; gap: 10px; }
.horaire { display: flex; justify-content: space-between; gap: 16px; font-size: 15.5px; }
.horaire-jour { font-weight: 600; }
.horaire-heures { color: var(--gris); }
.acces-carte .wp-block-buttons.duo { margin-top: 34px; box-shadow: 0 16px 34px -14px rgba(28,32,40,.45); }
.acces-carte .duo-blanc .wp-block-button__link { background: #F1F2F4; }

/* ==========================================================
   Pied de page
   ========================================================== */
.pied {
  position: relative;
  background: var(--ardoise-profonde); color: var(--brume);
  padding: 72px 24px 40px;
}
.pied-grille {
  max-width: var(--largeur); margin: 0 auto;
  display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; align-items: start;
}
.pied-nom { font-family: var(--script); font-size: 54px; line-height: 1; color: var(--blanc); -webkit-text-stroke: .6px currentColor; }
.pied-marque > p:not(.pied-nom) { margin-top: 14px; font-size: 15px; }
nav.wp-block-navigation.pied-menu { font-size: 15px; }
.wp-block-navigation.pied-menu .wp-block-navigation__container { gap: 10px; }
.wp-block-navigation.pied-menu .wp-block-navigation-item__content { position: relative; font-weight: 600; color: var(--blanc); line-height: 1.6; }
.wp-block-navigation.pied-menu .wp-block-navigation-item__content:hover { color: var(--basilic); }
.pied-infos { display: grid; gap: 16px; font-size: 15px; }
.pied-legal {
  max-width: var(--largeur); margin: 56px auto 0; padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.08);
  font-size: 13.5px; color: #8A8F99;
}

/* ==========================================================
   Pages internes — bandeau
   ========================================================== */
.bandeau {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 680px;
  background:
    var(--grain) 0 0 / 220px 220px,
    radial-gradient(ellipse 60% 70% at 26% 42%, rgba(255,255,255,.055), transparent 70%),
    radial-gradient(ellipse 80% 90% at 100% 0%, rgba(0,0,0,.35), transparent 60%),
    var(--ardoise);
  background-blend-mode: overlay, normal, normal;
  color: var(--blanc);
}
.wp-block-image.bandeau-feuilles {
  position: absolute; z-index: 1;
  width: 900px; max-width: none; left: -520px; bottom: -40px;
  mix-blend-mode: lighten;
  transform: scaleX(-1) rotate(-14deg);
}
.wp-block-image.bandeau-visuel {
  position: absolute; z-index: 2;
  width: 640px; max-width: none;
  right: calc(50% - 790px); top: 96px;
}
.wp-block-image.bandeau-visuel img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%;
  box-shadow: 0 50px 80px -30px rgba(0,0,0,.7);
}
.wp-block-image.bandeau-visuel-detoure { width: 720px; top: 70px; right: calc(50% - 820px); transform: rotate(-8deg); }
.wp-block-image.bandeau-visuel-detoure img {
  object-fit: contain; border-radius: 0; box-shadow: none;
  filter: drop-shadow(0 40px 50px rgba(0,0,0,.55)) drop-shadow(0 8px 14px rgba(0,0,0,.35));
}
.bandeau-texte {
  position: relative; z-index: 3;
  padding: 214px 0 0 max(24px, calc(50% - 560px));
  max-width: calc(50% + 40px);
}
.bandeau-titre {
  font-family: var(--script); font-weight: 400;
  font-size: 150px; line-height: .85;
  -webkit-text-stroke: 2px currentColor;
  transform: rotate(-7deg); transform-origin: 0 100%;
  margin-left: -36px; white-space: nowrap;
  text-shadow: 0 14px 40px rgba(0,0,0,.35);
}
.bandeau-accroche {
  margin-top: 46px; max-width: 420px;
  font-size: 20px; line-height: 1.35; color: rgba(255,255,255,.94);
}

/* ---------- Carte (menu) ---------- */
.carte {
  padding: 30px 24px 150px;
  display: flex; flex-direction: column; align-items: center;
}
.onglets {
  margin-top: 46px;
  display: inline-flex; gap: 4px; padding: 6px;
  border-radius: 999px; background: var(--blanc);
  box-shadow: 0 22px 44px -20px rgba(24,28,31,.35), 0 0 0 1px #ECEEF1;
}
.onglet {
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; user-select: none;
  height: 54px; padding: 0 28px; border-radius: 999px;
  font-size: 13px; font-weight: 600; line-height: 1; letter-spacing: .01em; text-transform: uppercase;
  color: var(--encre);
  transition: background-color .2s ease;
}
.onglet:hover { background: #F2F3F5; }
.onglet.est-actif { background: var(--degrade-basilic); color: var(--basilic-fonce); }
.panneau { display: none; }
.panneau.est-actif {
  width: 100%; max-width: var(--largeur);
  margin-top: 70px;
  display: grid; grid-template-columns: 440px 1fr; gap: 90px; align-items: start;
}
.wp-block-image.panneau-visuel { position: sticky; top: 40px; }
.wp-block-image.panneau-visuel img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%;
  box-shadow: 0 40px 70px -30px rgba(24,28,31,.5);
}
.wp-block-image.panneau-visuel-detoure img {
  box-shadow: none;
  filter: drop-shadow(0 30px 26px rgba(24,28,31,.28)) drop-shadow(0 4px 6px rgba(24,28,31,.18));
}
.panneau-intro {
  font-size: 13px; font-weight: 600; letter-spacing: .01em; text-transform: uppercase;
  color: var(--gris);
}
.liste-plats { margin: 14px 0 0; }
.ligne-plat {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  padding: 24px 0; border-bottom: 1px solid #ECEEF1;
}
.ligne-plat h3 { font-size: 22px; font-weight: 600; letter-spacing: -.01em; }
.ligne-plat-texte > p { margin-top: 4px; font-size: 15.5px; line-height: 1.45; color: var(--gris); }
.ligne-plat > .plat-prix { margin-top: 0; flex: none; }
.note-carte { margin-top: 70px; text-align: center; font-size: 14.5px; color: var(--gris); }

/* ---------- Produits (présentation) ---------- */
.produits {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--grain) 0 0 / 220px 220px, var(--ardoise);
  background-blend-mode: overlay, normal;
  color: var(--blanc);
  padding: 250px 24px 300px;
  display: flex; flex-direction: column; align-items: center;
}
.produits > .titre-section, .produits > .chapeau, .produits > .trio { position: relative; z-index: 5; }
.produits .chapeau { color: var(--brume); }
.produits .plat-etiquette { color: var(--encre); width: min(260px, 100%); padding: 22px 22px 24px; }
.produits .plat-etiquette > p:not(.plat-prix) { margin-top: 8px; }
.produits .membre .wp-block-image.plat-photo img { box-shadow: 0 40px 60px -26px rgba(0,0,0,.75); }

/* ---------- Portraits (équipe) ---------- */
.portraits { padding: 40px 24px 140px; }
.portraits-liste {
  max-width: 1080px; margin: 80px auto 0;
  display: grid; gap: 120px;
}
.portrait {
  display: grid; grid-template-columns: 420px 1fr; gap: 90px; align-items: center;
}
.portrait:nth-child(even) { grid-template-columns: 1fr 420px; }
.portrait:nth-child(even) .portrait-photo { order: 2; }
.wp-block-image.portrait-photo { position: relative; }
.wp-block-image.portrait-photo img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%;
  box-shadow: 0 40px 70px -30px rgba(24,28,31,.55);
}
.wp-block-image.portrait-photo .wp-element-caption {
  position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%);
  margin: 0; white-space: nowrap;
  padding: 14px 26px; border-radius: 999px;
  background: var(--blanc); color: var(--encre);
  font-size: 13px; font-weight: 600; line-height: 1.2; letter-spacing: .01em; text-transform: uppercase; text-align: center;
  box-shadow: 0 20px 40px -16px rgba(24,28,31,.35);
}
.portrait-nom { font-size: 46px; line-height: 1.05; font-weight: 700; letter-spacing: -.02em; }
.portrait-lead { margin-top: 16px; font-size: 22px; line-height: 1.4; font-weight: 600; letter-spacing: -.01em; }
.portrait-texte > p + p { margin-top: 16px; font-size: 17.5px; color: var(--gris); }
.portrait-texte > .portrait-plat {
  margin-top: 26px; padding-top: 20px; border-top: 1px solid #ECEEF1;
  font-size: 16px; color: var(--encre);
}
.portrait-plat strong {
  display: inline-block; margin-right: 10px; padding: 4px 14px; border-radius: 999px;
  background: var(--degrade-basilic);
  color: var(--basilic-fonce); font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .01em;
}

/* ---------- Recrutement (équipe) ---------- */
.recrutement {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--grain) 0 0 / 220px 220px, var(--ardoise);
  background-blend-mode: overlay, normal;
  color: var(--blanc);
  padding: 260px 24px 290px;
  text-align: center;
}
.wp-block-image.recrutement-tomates {
  position: absolute; z-index: 1; width: 820px; max-width: none;
  right: -300px; top: 50%; transform: translateY(-38%) rotate(-6deg);
  mix-blend-mode: lighten;
}
.recrutement-texte { position: relative; z-index: 5; max-width: 620px; margin: 0 auto; }
.recrutement-texte > p { margin: 20px auto 0; max-width: 540px; font-size: 18px; color: var(--brume); }
.recrutement-texte > .rangee-boutons { margin-top: 36px; justify-content: center; }

/* ---------- Contact ---------- */
.contact { padding: 30px 24px 150px; }
.contact-grille {
  max-width: var(--largeur); margin: 64px auto 0;
  display: grid; grid-template-columns: 1.3fr .9fr; gap: 48px; align-items: start;
}
/* Contact Form 7 : la classe « formulaire » est posée sur le <form> par html_class */
.wpcf7 form.formulaire {
  display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px;
  padding: 46px 44px 44px;
  background: var(--blanc); border-radius: 18px;
  box-shadow: 0 40px 80px -40px rgba(24,28,31,.4), 0 0 0 1px #ECEEF1;
}
.formulaire .hidden-fields-container { display: none; }
.champ { display: grid; gap: 8px; }
.champ-large, .champ-envoi, .formulaire .wpcf7-response-output { grid-column: 1 / -1; }
.champ label { font-size: 14px; font-weight: 600; }
.formulaire .wpcf7-form-control-wrap { display: block; }
.formulaire .wpcf7-form-control:not(.wpcf7-submit) {
  display: block; width: 100%; height: 54px; padding: 0 22px;
  font: 400 16px/1.4 var(--sans); color: var(--encre);
  background: #F6F7F8; border: 1px solid #E1E4E8; border-radius: 999px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.formulaire select.wpcf7-form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23181C1F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 22px center; background-size: 12px 8px;
}
.formulaire textarea.wpcf7-form-control:not(.wpcf7-submit) { height: auto; min-height: 150px; padding: 16px 22px; border-radius: 18px; resize: vertical; }
.formulaire .wpcf7-form-control:not(.wpcf7-submit):focus {
  outline: none; border-color: var(--basilic-moyen); box-shadow: 0 0 0 4px rgba(134,217,112,.3);
}
.champ-envoi { margin-top: 6px; display: flex; align-items: center; gap: 12px; }
.formulaire .wpcf7-submit {
  height: 58px; padding: 0 34px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--degrade-basilic); color: var(--basilic-fonce);
  font: 600 13px/1 var(--sans); letter-spacing: .01em; text-transform: uppercase;
  box-shadow: 0 14px 30px -14px rgba(66,140,48,.8);
  transition: transform .2s ease;
}
.formulaire .wpcf7-submit:hover { transform: translateY(-2px); }
.formulaire .wpcf7-spinner { margin: 0; }
.wpcf7 form.formulaire .wpcf7-response-output {
  margin: 0; padding: 16px 22px; border: 0; border-radius: 18px;
  background: #EEF9EA; color: var(--basilic-fonce); font-weight: 600;
}
.wpcf7 form.formulaire.invalid .wpcf7-response-output,
.wpcf7 form.formulaire.failed .wpcf7-response-output { background: #FDF1EC; color: #6B2A12; }
.wpcf7 form.formulaire.init .wpcf7-response-output { display: none; }
.formulaire .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13.5px; color: #B23A12; }
.formulaire .wpcf7-not-valid { border-color: #E8A48C !important; }

.contact-infos {
  position: relative; overflow: hidden;
  padding: 46px 42px 44px; border-radius: 18px;
  background: var(--ardoise); color: var(--blanc);
  box-shadow: 0 40px 80px -40px rgba(24,28,31,.6);
}
.contact-infos h3 { font-family: var(--script); font-weight: 400; font-size: 52px; line-height: 1; -webkit-text-stroke: .6px currentColor; }
.contact-adresse { margin-top: 18px; font-size: 22px; line-height: 1.35; font-weight: 600; }
.contact-infos .horaires { border-top-color: rgba(255,255,255,.12); }
.contact-infos .horaire-heures { color: var(--brume); }
.contact-note { margin-top: 24px; font-size: 15px; line-height: 1.5; color: var(--brume); }
.contact-infos > .rangee-boutons { margin-top: 28px; }

/* Contact : la page finit sur du blanc, le pied reprend la vague */
.page-contact .pied { padding-top: 230px; }
.page-contact .pied::before {
  content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 200px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 260' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M1440 12 C 1190 24 970 134 680 132 C 430 130 270 168 0 254 L0 0 L1440 0 Z'/%3E%3Cg fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M1440 40 C 1370 44 1300 56 1232 70'/%3E%3Cpath d='M1165 90 C 1070 118 960 156 830 158'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.page-contact .contact { padding-bottom: 120px; }

:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--basilic); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* >>> BLOG (généré depuis source/theme/blog.css) */
/* ==========================================================
   Blog — partagé par la maquette et le thème (classes rendues par WordPress)
   ========================================================== */
.journal, .blog-liste, .a-lire { position: relative; display: flex; flex-direction: column; align-items: center; }
.journal { padding: 40px 24px 130px; }
.blog-liste { padding: 30px 24px 150px; }
.a-lire { padding: 110px 24px 140px; }
.wp-block-query.derniers-articles, .wp-block-query.tous-articles,
.wp-block-query.autres-articles, .wp-block-query.archive-articles { width: 100%; max-width: var(--largeur); }

/* cartes d'articles */
/* .wp-block-post-template remet margin-top à 0 avec la même spécificité : on monte d'un cran */
.wp-block-post-template.cartes-articles {
  list-style: none; margin: 62px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px 40px;
}
.cartes-articles > li { display: flex; flex-direction: column; margin: 0; }
.wp-block-post-featured-image.carte-article-image { margin: 0; }
.wp-block-post-featured-image.carte-article-image a {
  display: block; border-radius: 18px; overflow: hidden;
  box-shadow: 0 30px 50px -26px rgba(24,28,31,.45);
}
.wp-block-post-featured-image.carte-article-image img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.cartes-articles > li:hover .carte-article-image img { transform: scale(1.04); }
.carte-article-corps {
  position: relative; z-index: 1; flex: 1;
  margin: -56px 18px 0; padding: 24px 24px 26px;
  display: flex; flex-direction: column;
  background: var(--blanc); border-radius: 18px;
  box-shadow: 0 28px 50px -18px rgba(24,28,31,.24), 0 2px 6px rgba(24,28,31,.05);
}
.carte-article-titre { font-size: 21px; line-height: 1.3; font-weight: 600; letter-spacing: -.01em; }
.carte-article-resume { flex: 1; display: flex; flex-direction: column; }
.carte-article-resume .wp-block-post-excerpt__excerpt { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--gris); }
.carte-article-resume .wp-block-post-excerpt__more-text { margin: auto 0 0; padding-top: 18px; }
.carte-article-resume .wp-block-post-excerpt__more-link {
  position: relative; display: inline-block; padding-bottom: 5px;
  font-size: 13px; font-weight: 600; line-height: 1.4; letter-spacing: .01em; text-transform: uppercase; color: var(--encre);
}
.carte-article-resume .wp-block-post-excerpt__more-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
  background: var(--basilic); transform: scaleX(.35); transform-origin: left; transition: transform .25s ease;
}
.cartes-articles > li:hover .wp-block-post-excerpt__more-link::after { transform: scaleX(1); }

/* article */
.article-entete {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 200px 24px 250px;
  color: var(--blanc);
}
.article-entete-texte { position: relative; z-index: 3; max-width: 864px; margin: 0 auto; }
.article-retour a {
  font-size: 13px; font-weight: 600; letter-spacing: .01em; text-transform: uppercase; color: var(--basilic);
}
.article-retour a::before { content: "←"; margin-right: 8px; }
.article-titre {
  margin-top: 18px; font-size: 54px; line-height: 1.08; font-weight: 700; letter-spacing: -.022em; color: var(--blanc);
}
.article-infos { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; font-size: 15px; color: var(--brume); }
.article-categorie a {
  display: inline-block; padding: 4px 14px; border-radius: 999px;
  background: rgba(255,255,255,.1); color: var(--blanc);
  font-size: 12.5px; font-weight: 600; letter-spacing: .01em; text-transform: uppercase;
}
.wp-block-post-featured-image.article-image { position: relative; z-index: 5; max-width: 1008px; margin: -230px auto 0; padding: 0 24px; }
.wp-block-post-featured-image.article-image img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: 18px; box-shadow: 0 50px 80px -36px rgba(24,28,31,.55);
}
.article-contenu { max-width: 768px; margin: 64px auto 0; padding: 0 24px; font-size: 18px; line-height: 1.75; color: var(--encre); }
.article-contenu > * + * { margin-top: 22px; }
.article-contenu > p:first-child { font-size: 21px; line-height: 1.6; }
.article-contenu > h2 { margin-top: 56px; font-size: 30px; line-height: 1.2; font-weight: 700; letter-spacing: -.015em; }
.article-contenu > h2 + * { margin-top: 14px; }
.article-contenu ul { margin-bottom: 0; padding: 0; list-style: none; }
.article-contenu li { position: relative; padding-left: 28px; }
.article-contenu li + li { margin-top: 10px; }
.article-contenu li::before {
  content: ""; position: absolute; left: 4px; top: .72em; width: 9px; height: 9px; border-radius: 50%;
  background: var(--degrade-basilic);
}
.article-contenu a { text-decoration: underline; text-decoration-color: var(--basilic); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.article-contenu a:hover { text-decoration-color: var(--encre); }
.article-contenu strong { font-weight: 600; }
.article-cta {
  position: relative; width: calc(100% - 48px); max-width: 816px; margin: 90px auto 0; padding: 50px 48px 52px;
  text-align: center; background: var(--ardoise); color: var(--blanc); border-radius: 18px;
  box-shadow: 0 40px 80px -40px rgba(24,28,31,.6);
}
.article-cta-titre { font-size: 34px; line-height: 1.15; font-weight: 700; letter-spacing: -.015em; }
.article-cta-texte { margin-top: 12px; font-size: 17px; color: var(--brume); }
.article-cta .duo { margin-top: 28px; }

@media (max-width: 1100px) {
  .wp-block-post-template.cartes-articles { grid-template-columns: repeat(2, 1fr); }
  .article-titre { font-size: 44px; }
}
@media (max-width: 760px) {
  .journal { padding: 20px 16px 100px; }
  .blog-liste { padding: 20px 16px 110px; }
  .a-lire { padding: 80px 16px 100px; }
  .wp-block-post-template.cartes-articles { grid-template-columns: 1fr; gap: 40px; margin-top: 40px; }
  .article-entete { padding: 130px 16px 170px; }
  .article-titre { font-size: 34px; }
  .wp-block-post-featured-image.article-image { margin-top: -140px; padding: 0 16px; }
  .article-contenu { margin-top: 44px; padding: 0 16px; font-size: 17px; }
  .article-contenu > p:first-child { font-size: 19px; }
  .article-contenu > h2 { margin-top: 44px; font-size: 25px; }
  .article-cta { width: calc(100% - 32px); margin-top: 64px; padding: 36px 22px; }
  .article-cta-titre { font-size: 27px; }
}

/* thème seulement : fond, grain et vague de l'en-tête d'article ; bouton sous le module */
.article-entete {
  background:
    var(--grain) 0 0 / 220px 220px,
    radial-gradient(ellipse 60% 70% at 26% 42%, rgba(255,255,255,.055), transparent 70%),
    radial-gradient(ellipse 80% 90% at 100% 0%, rgba(0,0,0,.35), transparent 60%),
    var(--ardoise);
  background-blend-mode: overlay, normal, normal;
}
.article-entete::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 220px; z-index: 4; pointer-events: none;
  background: var(--vague) center / 100% 100% no-repeat;
}
.journal > .rangee-boutons { margin-top: 64px; }
@media (max-width: 760px) { .article-entete::after { height: 110px; } }
/* <<< BLOG */

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width: 1100px) {
  nav.wp-block-navigation.menu { margin-left: 32px; }
  .wp-block-navigation.menu, .wp-block-navigation.menu .wp-block-navigation__container { gap: 22px; }
  .hero-texte { padding-left: 64px; }
  .wp-block-image.hero-pizza { left: 48%; width: 760px; top: 230px; }
  .geste { grid-template-columns: 1fr; padding: 220px 0 280px; }
  .geste-visuel { height: 560px; }
  .wp-block-image.geste-four { width: 600px; left: -80px; right: auto; top: 0; }
  .wp-block-image.geste-pate { right: auto; left: 400px; bottom: -20px; }
  .geste-texte { padding: 60px 40px 0; }
  .maison-grille { grid-template-columns: 1fr; gap: 50px; max-width: 640px; }
  .wp-block-image.bandeau-visuel { width: 520px; right: -140px; top: 180px; }
  .wp-block-image.bandeau-visuel-detoure { width: 600px; right: -200px; top: 170px; }
  .panneau.est-actif { grid-template-columns: 320px 1fr; gap: 50px; }
  .portrait, .portrait:nth-child(even) { grid-template-columns: 340px 1fr; gap: 50px; }
  .portrait:nth-child(even) .portrait-photo { order: 0; }
  .contact-grille { grid-template-columns: 1fr; max-width: 720px; }
}

/* Menu : six liens ne tiennent plus à côté du bouton sous 900 px → panneau de navigation.
   (Hors du bloc BLOG généré : tout ce qui est entre ses marqueurs est réécrit.) */
@media (max-width: 900px) {
  nav.wp-block-navigation.menu { order: 3; margin-left: 10px; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 782px) {
  .admin-bar .entete { top: 46px; }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .entete { padding: 18px 16px 0; }
  .wp-block-image.logo { width: 54px; height: 54px; }
  .btn-reserver .wp-block-button__link { height: 40px; padding: 0 16px 0 10px; font-size: 12.5px; }
  .btn-reserver .wp-block-button__link::before { width: 18px; height: 18px; }

  .hero { min-height: 0; padding-bottom: 430px; }
  .hero-texte { padding: 132px 16px 0; max-width: none; }
  .hero-titre { font-size: 92px; margin-left: -4px; -webkit-text-stroke: 1px currentColor; }
  .hero-accroche { margin-top: 40px; font-size: 18px; max-width: 320px; }
  .duo-vert .wp-block-button__link, .duo-blanc .wp-block-button__link { height: 60px; font-size: 12px; }
  .duo-vert .wp-block-button__link { padding: 0 30px 0 22px; }
  .duo-blanc .wp-block-button__link { padding: 0 24px 0 30px; }
  .wp-block-image.hero-pizza { width: 520px; left: 50px; top: auto; bottom: -70px; }
  .wp-block-image.hero-tomates { width: 420px; top: -90px; right: -170px; }
  .wp-block-image.hero-feuilles { width: 460px; left: -250px; bottom: 300px; }
  .hero::after { height: 120px; }

  .titre-section { font-size: 34px; }
  .chapeau { font-size: 16.5px; }
  .choix { padding: 20px 16px 110px; }
  .trio { grid-template-columns: 1fr; gap: 48px; margin-top: 44px; }
  .wp-block-image.plat-photo { max-width: 300px; }

  .geste { padding: 130px 0 170px; }
  .geste::before, .produits::before, .recrutement::before, .acces::before { height: 110px; }
  .geste::after, .produits::after, .recrutement::after { height: 110px; }
  .geste-visuel { height: 380px; }
  .wp-block-image.geste-four { width: 380px; left: -60px; }
  .wp-block-image.geste-pate { width: 170px; left: auto; right: 16px; bottom: -10px; }
  .wp-block-image.geste-pate img { border-width: 7px; }
  .geste-texte { padding: 40px 16px 0; }
  .chiffres { grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
  .chiffre-valeur { font-size: 30px; }
  .chiffre-legende { font-size: 13px; }

  .maison { padding: 40px 16px 100px; }
  .maison-grille { margin-top: 40px; gap: 36px; }
  .maison-lead { font-size: 21px; }

  .equipe { padding: 10px 16px 180px; }
  .trio-equipe { gap: 40px; margin-top: 44px; }
  .membre .wp-block-image.plat-photo { max-width: 240px; }

  .acces { padding: 140px 16px 70px; }
  .acces-carte { padding: 40px 22px 36px; }
  .acces-carte .titre-section { font-size: 32px; }
  .horaire { flex-direction: column; gap: 0; text-align: left; }

  .pied { padding: 56px 16px 32px; }
  .pied-grille { grid-template-columns: 1fr; gap: 30px; }

  .bandeau { min-height: 0; padding-bottom: 330px; }
  .bandeau-texte { padding: 140px 16px 0; max-width: none; }
  .bandeau-titre { font-size: 88px; margin-left: 4px; -webkit-text-stroke: 1px currentColor; }
  .bandeau-accroche { margin-top: 34px; font-size: 18px; max-width: 330px; }
  .wp-block-image.bandeau-visuel { width: 380px; top: auto; bottom: -70px; right: -60px; }
  .wp-block-image.bandeau-visuel-detoure { width: 420px; bottom: -90px; right: -70px; }
  .wp-block-image.bandeau-feuilles { width: 520px; left: -320px; bottom: 200px; }
  .bandeau::after { height: 110px; }

  .carte { padding: 20px 16px 110px; }
  .onglets { margin-top: 34px; width: 100%; max-width: 360px; display: grid; grid-template-columns: 1fr 1fr; border-radius: 30px; }
  .onglet { height: 46px; padding: 0 12px; font-size: 12px; white-space: nowrap; }
  .panneau.est-actif { grid-template-columns: 1fr; gap: 30px; margin-top: 40px; }
  /* largeur explicite : une image en chargement différé n'a pas de taille propre */
  .wp-block-image.panneau-visuel { position: static; width: 100%; max-width: 260px; margin: 0 auto; }
  .ligne-plat { gap: 16px; padding: 20px 0; align-items: flex-start; }
  .ligne-plat h3 { font-size: 19px; }
  .ligne-plat-texte > p { font-size: 14.5px; }

  .produits { padding: 140px 16px 170px; }

  .portraits { padding: 20px 16px 100px; }
  .portraits-liste { margin-top: 50px; gap: 80px; }
  .portrait, .portrait:nth-child(even) { grid-template-columns: 1fr; gap: 34px; }
  .wp-block-image.portrait-photo { width: 100%; max-width: 300px; margin: 0 auto; }
  .portrait-nom { font-size: 36px; }
  .portrait-lead { font-size: 19px; }

  .recrutement { padding: 150px 16px 170px; }
  .wp-block-image.recrutement-tomates { width: 460px; right: -260px; top: 70%; }

  .contact { padding: 20px 16px 100px; }
  .contact-grille { margin-top: 40px; gap: 28px; }
  .wpcf7 form.formulaire { grid-template-columns: 1fr; padding: 30px 20px; }
  .contact-infos { padding: 34px 24px; }
  .page-contact .pied { padding-top: 130px; }
  .page-contact .pied::before { height: 100px; }
}

/* Pages simples (404, liste d'articles) : une bande sombre porte l'en-tête blanc */
.page-simple {
  min-height: 70vh; padding: 220px 24px 160px; text-align: center;
  background: var(--grain) 0 0 / 220px 220px, var(--ardoise);
  background-blend-mode: overlay, normal;
  color: var(--blanc);
}
.page-simple .chapeau { color: var(--brume); }
.page-simple > .rangee-boutons { margin-top: 36px; justify-content: center; }
.page-simple .wp-block-post-title { font-size: 34px; font-weight: 700; margin-top: 30px; }
.page-simple .wp-block-post-excerpt { color: var(--brume); max-width: 640px; margin: 10px auto 0; }
