/*
Theme Name: Activ Eco Energy
Theme URI: https://activecoenergy.fr
Author: Activ Eco Energy
Description: Thème bloc sur mesure — climatisation, chauffage, maintenance et électricité générale à Rouen. Tout le contenu est composé en blocs natifs, modifiables dans l'éditeur.
Version: 1.0.7
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: activ-eco-energy
Tags: block-theme, full-site-editing, business
*/

/* Registre : activrenov.fr (Poppins seule + signature manuscrite, bandes pleine largeur,
   rectangles, peu d'éléments très grands). Couleurs : flyer Activ Eco Energy. */

:root {
  --marine: #002A47;
  --vert: #4CAD05;
  --bleu: #073972;
  --vert-profond: #249008;
  --gris: #F7F7F7;
  --gris-texte: #A5A5A5;
  --blanc: #FFFFFF;
  --noir: #000000;
  --degrade: linear-gradient(90deg, var(--vert) 0%, var(--bleu) 100%);
  --onglet: 45px;
  --entete: 190px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Poppins, Arial, sans-serif;
  font-size: 16px;
  line-height: 25px;
  color: var(--noir);
  background: var(--blanc);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; } /* height:auto obligatoire : sinon l'attribut height des blocs image l'emporte */
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { hyphens: none; text-wrap: balance; font-family: inherit; }

/* Espacement automatique de Gutenberg : coupé à la source dans theme.json (blockGap 0),
   et filet de sécurité ICI À SPÉCIFICITÉ NULLE — jamais « .wp-block-group > * ». */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }

.conteneur { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* ---------- En-tête ---------- */
.entete {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  background: var(--marine);
  height: var(--entete);
}
.admin-bar .entete { top: 32px; }
.wp-block-site-logo.entete-logo { height: 108px; display: flex; align-items: center; justify-content: center; }
.wp-block-site-logo.entete-logo a { display: block; }
.wp-block-site-logo.entete-logo img { height: 84px; width: auto; }

.wp-block-navigation.menu { height: 82px; padding-left: var(--onglet); display: block; }
.wp-block-navigation.menu .wp-block-navigation__responsive-container,
.wp-block-navigation.menu .wp-block-navigation__responsive-close,
.wp-block-navigation.menu .wp-block-navigation__responsive-dialog,
.wp-block-navigation.menu .wp-block-navigation__responsive-container-content { width: 100%; height: 100%; }
.wp-block-navigation.menu .wp-block-navigation__container { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; height: 100%; gap: 0; }
.wp-block-navigation.menu .wp-block-navigation-item { flex: 1; position: relative; height: 100%; }
.wp-block-navigation.menu .wp-block-navigation-item__content {
  display: flex; align-items: center; height: 100%;
  padding: 0 20px;
  color: var(--blanc); text-decoration: none;
  font-size: 17px; font-weight: 800; line-height: 22px;
}
.wp-block-navigation.menu .wp-block-navigation-item__content:hover,
.wp-block-navigation.menu .current-menu-item > .wp-block-navigation-item__content { color: var(--vert); }
.wp-block-navigation.menu .current-menu-item::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: var(--degrade);
}
/* Le panneau mobile du bloc Navigation s'ouvre blanc sur blanc sans ceci
   (le CSS du bloc est imprimé après cette feuille) : */
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--marine) !important; color: var(--blanc) !important;
}

/* ---------- Onglet latéral ---------- */
.onglet {
  position: fixed; z-index: 60; left: 0; top: 120px;
  width: var(--onglet); height: 565px;
  background: var(--vert-profond);
  display: flex; flex-direction: column; justify-content: space-around; align-items: center;
}
.admin-bar .onglet { top: 152px; }
.onglet p {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-size: 16px; font-weight: 700; white-space: nowrap;
}
.onglet a { color: var(--blanc); text-decoration: none; }

/* ---------- Page ---------- */
/* « .page » est réservé : WordPress le pose sur <body> de chaque page. */
.site-principal { padding-top: var(--entete); margin-left: var(--onglet); }
.page-simple { max-width: 1200px; margin: 0 auto; padding: 90px 20px 110px; }
.page-simple .titre-page + p { margin-bottom: 10px; }

/* Pages légales : colonne de lecture étroite, titres de rubrique */
.page-simple.legal { max-width: 900px; }
.legal .titre-page { margin-bottom: 24px; }
.legal p.plus { display: inline-block; margin: 0 0 18px; }
.legal h2 { font-size: 28px; line-height: 34px; font-weight: 800; margin: 44px 0 14px; }
.legal p + p, .legal p + ul, .legal ul + p { margin-top: 14px; }
.legal ul { margin: 14px 0 0; padding-left: 22px; }
.legal li + li { margin-top: 6px; }
.legal a { color: var(--vert-profond); }

/* Hero */
/* padding: 0 annule le « :where(.wp-block-group.has-background) { padding } » que WordPress
   pose sur tout groupe à image de fond */
.hero {
  position: relative; height: 640px; padding: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: var(--blanc);
  background-color: #1a2530; background-position: center; background-size: cover; background-repeat: no-repeat;
}
.hero::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.hero > * { position: relative; isolation: isolate; }
.hero-titre {
  font-size: 100px; line-height: 110px; font-weight: 900; letter-spacing: -1px;
  position: relative;
}
/* Marque du logo : couche décorative, donc pseudo-élément (jamais un bloc vide) */
.hero-titre::after {
  content: ""; position: absolute; right: -34px; top: -26px; width: 44px; height: 64px; z-index: -1;
  background: url(assets/img/feuille.png) center / contain no-repeat;
}
.hero-signature {
  font-family: "Mr Dafoe", cursive; font-size: 70px; line-height: 80px; font-weight: 400;
  position: relative; margin-top: 6px; padding: 0 10px;
}
.hero-signature::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 10px; height: 16px;
  background: var(--degrade); z-index: -1;
}
.hero .wp-block-buttons { margin-top: 56px; justify-content: center; }

/* Boutons (la classe du bloc Bouton se pose sur le conteneur, le style sur le lien) */
.wp-block-button.bouton-plein, .wp-block-button.bouton-contour { display: inline-block; background: none; border: 0; padding: 0; }
.wp-block-button.bouton-plein .wp-block-button__link {
  display: inline-block;
  background: var(--marine); color: var(--blanc); text-decoration: none;
  font-size: 16px; font-weight: 800; line-height: 20px;
  padding: 20px 46px; border-radius: 0;
}
.wp-block-button.bouton-plein .wp-block-button__link:hover { background: var(--noir); }
.wp-block-button.bouton-contour .wp-block-button__link {
  display: inline-block;
  background: transparent; border: 1px solid var(--blanc); border-radius: 0; color: var(--blanc);
  font-size: 14px; line-height: 20px; font-weight: 400; padding: 14px 20px; text-decoration: underline;
}
.wp-block-button.bouton-contour .wp-block-button__link:hover { background: var(--blanc); color: var(--marine); }

/* Bandeau dégradé des secteurs / valeurs / formules */
.secteurs { background: var(--degrade); padding: 70px 0 80px; color: var(--blanc); }
.secteurs-titre { font-size: 38px; line-height: 40px; font-weight: 500; text-align: center; margin-bottom: 44px; }
.secteurs-grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.secteur {
  background: var(--blanc); border-radius: 5px; height: 190px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
  color: var(--marine);
}
.secteur::before { content: ""; flex: none; width: 72px; height: 72px; background: center / contain no-repeat; }
.secteur p { font-size: 20px; line-height: 24px; font-weight: 700; text-align: center; padding: 0 16px; }

/* Pictogrammes : SVG en image CSS (un SVG en ligne n'est pas un bloc natif) */
.ico-habitat::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath stroke='%234CAD05' d='M6 31 32 9l26 22'/%3E%3Cpath d='M13 26v29h38V26'/%3E%3Cpath d='M27 55V41h10v14'/%3E%3Crect x='17' y='31' width='7' height='7'/%3E%3Crect x='40' y='31' width='7' height='7'/%3E%3C/svg%3E"); }
.ico-collectivites::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Ccircle fill='%23fff' cx='32' cy='19' r='7'/%3E%3Ccircle fill='%23fff' cx='14' cy='25' r='5.5'/%3E%3Ccircle fill='%23fff' cx='50' cy='25' r='5.5'/%3E%3Cpath stroke='%234CAD05' d='M19 51c0-9 5.5-15 13-15s13 6 13 15'/%3E%3Cpath d='M4 49c0-6.5 4.5-11 10-11 2.6 0 4.8 1 6.4 2.6'/%3E%3Cpath d='M60 49c0-6.5-4.5-11-10-11-2.6 0-4.8 1-6.4 2.6'/%3E%3C/svg%3E"); }
.ico-industrie::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6 55V31l13 8v-8l13 8v-8l13 8V12h9v43z'/%3E%3Cpath d='M4 55h56'/%3E%3Cpath stroke='%234CAD05' d='M45 12V6M54 12V8'/%3E%3Crect x='12' y='45' width='6' height='5'/%3E%3Crect x='25' y='45' width='6' height='5'/%3E%3Crect x='38' y='45' width='6' height='5'/%3E%3C/svg%3E"); }
.ico-tertiaire::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='12' y='7' width='26' height='48'/%3E%3Cpath d='M38 23h15v32H38'/%3E%3Cpath d='M5 55h54'/%3E%3Cpath stroke='%234CAD05' d='M19 15h4M27 15h4M19 23h4M27 23h4M19 31h4M27 31h4M19 39h4M27 39h4M43 31h5M43 39h5'/%3E%3Cpath d='M22 55v-8h6v8'/%3E%3C/svg%3E"); }
.ico-sur-mesure::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M8 18h48M8 32h48M8 46h48'/%3E%3Ccircle fill='%23fff' stroke='%234CAD05' cx='22' cy='18' r='5'/%3E%3Ccircle fill='%23fff' cx='42' cy='32' r='5'/%3E%3Ccircle fill='%23fff' cx='28' cy='46' r='5'/%3E%3C/svg%3E"); }
.ico-reactivite::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Ccircle fill='%23fff' cx='32' cy='36' r='20'/%3E%3Cpath d='M32 36V24'/%3E%3Cpath stroke='%234CAD05' d='M26 8h12M32 8v8'/%3E%3Cpath d='M47 19l4-4'/%3E%3C/svg%3E"); }
.ico-qualite::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M32 6l22 8v16c0 14-9.5 24-22 28C19.5 54 10 44 10 30V14z'/%3E%3Cpath stroke='%234CAD05' d='M22 31l7 7 14-14'/%3E%3C/svg%3E"); }
.ico-performance::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Ccircle fill='%23fff' cx='32' cy='32' r='24'/%3E%3Cpath stroke='%234CAD05' d='M35 15L21 35h11l-3 14 14-20H32z'/%3E%3C/svg%3E"); }
.ico-preventive::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='10' y='14' width='44' height='40'/%3E%3Cpath d='M10 24h44M22 8v10M42 8v10'/%3E%3Cpath stroke='%234CAD05' d='M24 39l6 6 11-11'/%3E%3C/svg%3E"); }
.ico-corrective::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M44 10a12 12 0 0 0-11 16L10 49a5 5 0 0 0 7 7l23-23a12 12 0 0 0 16-11l-7 7-7-2-2-7 7-7c-1-.5-2-1-3-1z'/%3E%3Ccircle fill='%23fff' stroke='%234CAD05' cx='13.5' cy='52.5' r='2.5'/%3E%3C/svg%3E"); }
.ico-contrats::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M16 6h24l10 10v42H16z'/%3E%3Cpath d='M40 6v10h10'/%3E%3Cpath stroke='%234CAD05' d='M23 30h20M23 38h20M23 46h12'/%3E%3C/svg%3E"); }
.ico-suivi::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23002A47' stroke-width='2.6' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M8 56h48'/%3E%3Crect x='12' y='38' width='8' height='18'/%3E%3Crect x='28' y='30' width='8' height='26'/%3E%3Crect x='44' y='20' width='8' height='36'/%3E%3Cpath stroke='%234CAD05' d='M12 28l16-10 12 6 14-12'/%3E%3C/svg%3E"); }

/* Intro + vignettes en quinconce */
.intro { padding: 70px 0 80px; background: var(--blanc); }
.surtitre { font-size: 20px; line-height: 30px; font-weight: 500; color: var(--gris-texte); }
.intro-titre { font-size: 60px; line-height: 66px; font-weight: 700; margin: 8px 0 50px; }
.vignettes { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.vignettes-col { display: flex; flex-direction: column; gap: 30px; }
.vignettes-col + .vignettes-col { padding-top: 110px; }
/* Le voile est une ombre intérieure : le texte reste au-dessus sans position,
   et le lien peut couvrir toute la vignette (a::after). */
.vignette {
  position: relative; display: flex; align-items: center;
  padding: 0 56px; color: var(--blanc);
  background-color: #33404a; background-position: center; background-size: cover; background-repeat: no-repeat;
  box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, .28); transition: box-shadow .3s;
  overflow: hidden;
}
.vignette:hover { box-shadow: inset 0 0 0 2000px rgba(0, 42, 71, .45); }
.vignette p { text-shadow: 0 2px 12px rgba(0, 0, 0, .55); }
.vignette a { color: var(--blanc); text-decoration: none; }
.vignette a::after { content: ""; position: absolute; inset: 0; }
.vignette.haute { height: 480px; }
.vignette.haute p { font-size: 40px; line-height: 44px; font-weight: 900; }
.vignette.basse { height: 250px; }
.vignette.basse p { font-size: 30px; line-height: 36px; font-weight: 700; }

/* Sections 50/50 */
.moitie { display: grid; grid-template-columns: 1fr 1fr; }
.moitie-texte { display: flex; align-items: center; justify-content: center; padding: 90px 60px; }
.moitie-contenu { width: 100%; max-width: 560px; }
figure.moitie-photo { position: relative; min-height: 560px; margin: 0; background: #33404a; }
figure.moitie-photo img, figure.grise-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.titre-section { font-size: 60px; line-height: 60px; font-weight: 400; margin-bottom: 32px; }
.titre-section strong { font-weight: 800; }
.moitie-texte p + p, .grise-texte p + p { margin-top: 18px; }
.moitie-contenu p:not(.lien-barre):not(.plus) a, .grise-texte p:not(.lien-barre):not(.plus) a { color: var(--vert-profond); }

/* Cadrages des photos (object-position), posés en classe sur le bloc Image */
.cadre-haut-25 img { object-position: 50% 25%; }
.cadre-haut-30 img { object-position: 50% 30%; }
.cadre-35 img { object-position: 35% 50%; }
.cadre-40 img { object-position: 40% 50%; }
.cadre-60 img { object-position: 60% 50%; }
.cadre-62 img { object-position: 62% 50%; }
.cadre-68 img { object-position: 68% 50%; }
.cadre-70 img { object-position: 70% 50%; }
.cadre-72 img { object-position: 72% 50%; }
.cadre-75 img { object-position: 75% 50%; }

/* En-tête des pages intérieures */
.tete .moitie-texte { padding: 70px 60px 80px; }
.tete figure.moitie-photo { min-height: 640px; }
.titre-page { font-size: 60px; line-height: 66px; font-weight: 700; margin-bottom: 30px; }
.tete .plus { margin: 0 0 32px; }

/* Même structure de ligne que la maquette : le paragraphe garde le corps 16/25,
   le lien (18/24) est un bloc en ligne posé sur la ligne de base — mêmes hauteurs au pixel près. */
.lien-barre { font-size: 16px; line-height: 25px; font-weight: 400; }
p.lien-barre, .moitie-texte p.lien-barre, .grise-texte p.lien-barre, .panneau-contenu p.lien-barre { margin-top: 36px; }
.lien-barre a { position: relative; display: inline-block; text-decoration: none; color: inherit; font-size: 18px; line-height: 24px; font-weight: 800; }
.lien-barre a::after {
  content: ""; position: absolute; left: -10px; bottom: -14px; width: 150px; height: 3px;
  background: var(--degrade);
}

/* Bandeaux dégradés d'appel */
.bandeau { background: var(--degrade); color: var(--blanc); text-align: center; padding: 80px 20px; }
.bandeau-titre { font-size: 38px; line-height: 44px; font-weight: 400; max-width: 1100px; margin: 0 auto; }
.bandeau-titre strong { font-weight: 700; }
.bandeau .wp-block-buttons { margin-top: 34px; justify-content: center; }

/* Section sur fond gris : texte + photo encartée */
.grise { background: var(--gris); padding: 80px 0; }
.grise .conteneur { display: grid; grid-template-columns: 1fr 380px; gap: 110px; align-items: start; }
figure.grise-photo { position: relative; height: 480px; margin: 10px 0 0; background: #33404a; }
.plus {
  margin-top: 36px; padding: 16px 20px;
  background: var(--degrade); color: var(--blanc);
  font-weight: 700; font-size: 16px; line-height: 24px;
}

/* Liste à puces carrées en dégradé */
.liste-coches { list-style: none; margin: 0; padding: 0; }
.liste-coches li { position: relative; padding-left: 30px; }
.liste-coches li + li { margin-top: 14px; }
.liste-coches li::before {
  content: ""; position: absolute; left: 0; top: 7px; width: 12px; height: 12px;
  background: var(--degrade);
}
p + .liste-coches, .liste-coches + p { margin-top: 22px; }

/* Étapes et colonnes : grille de 4, filet en dégradé */
.etapes { padding: 80px 0; }
.etapes-grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.etape { position: relative; padding-top: 26px; }
.etape::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 3px; background: var(--degrade); }
.etape-num { display: block; font-size: 60px; line-height: 60px; font-weight: 800; margin-bottom: 18px; }
.etape h3 { font-size: 20px; line-height: 26px; font-weight: 700; margin-bottom: 10px; }

/* Deux panneaux photo */
.panneaux { display: grid; grid-template-columns: 1fr 1fr; }
.panneau {
  position: relative; color: var(--blanc); padding: 90px 60px;
  background-color: #33404a; background-position: center; background-size: cover; background-repeat: no-repeat;
  min-height: 520px;
  display: flex; align-items: center; justify-content: center;
}
.panneau::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.panneau-contenu { position: relative; width: 100%; max-width: 560px; }
.panneau .titre-section { margin-bottom: 36px; }
.panneau .titre-section strong { font-weight: 900; }

/* Service global */
.global { background: var(--gris); padding: 80px 0; text-align: center; }
.global-titre { font-size: 40px; line-height: 48px; font-weight: 400; margin-bottom: 24px; }
.global-titre strong { font-weight: 800; }
.global p { max-width: 1060px; margin: 0 auto; }

/* Contact : coordonnées */
.coordonnees { list-style: none; margin: 0; padding: 0; }
.coordonnees li { position: relative; padding: 12px 0 12px 146px; border-bottom: 1px solid #E1E1E1; }
.coordonnees li:first-child { border-top: 1px solid #E1E1E1; }
.coordonnees li strong { position: absolute; left: 0; top: 12px; font-weight: 700; }
.coordonnees a { color: var(--vert-profond); font-weight: 700; }

/* Contact : formulaire (Contact Form 7, gabarit aux classes de la maquette) */
.demande .conteneur { display: grid; grid-template-columns: 1fr 1.35fr; gap: 90px; align-items: start; }
/* Les champs de Contact Form 7 portent un attribut size="40" : sans min-width:0,
   leur largeur intrinsèque élargit la grille et la page déborde sur mobile. */
.demande .conteneur > *, .formulaire > *, .champ, .champ .wpcf7-form-control-wrap { min-width: 0; }
.formulaire { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.champ { display: flex; flex-direction: column; gap: 8px; }
.champ.plein { grid-column: 1 / -1; }
.champ label { font-size: 14px; line-height: 18px; font-weight: 700; }
.champ .wpcf7-form-control-wrap { display: block; }
.champ input, .champ select, .champ textarea {
  display: block; width: 100%; font: 400 16px/24px Poppins, Arial, sans-serif; color: var(--noir);
  background: var(--blanc); border: 1px solid #CFCFCF; border-radius: 0; padding: 13px 16px; margin: 0;
}
.champ input, .champ select { height: 52px; }
.champ textarea { height: 170px; resize: vertical; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: 2px solid var(--vert-profond); outline-offset: -1px; }
.consentement { grid-column: 1 / -1; font-size: 14px; line-height: 21px; }
.consentement + .consentement { margin-top: -8px; }
.consentement .wpcf7-list-item { margin: 0; display: block; }
.consentement label { display: flex; gap: 12px; align-items: flex-start; }
.consentement input { margin: 3px 0 0; width: 18px; height: 18px; accent-color: var(--vert-profond); flex: none; }
.envoi { grid-column: 1 / -1; margin-top: 6px; display: flex; align-items: center; gap: 16px; }
/* Contrôle anti-robots Cloudflare Turnstile : vide (donc masqué) tant que les clés ne sont pas saisies */
.antirobot { grid-column: 1 / -1; }
.antirobot:empty { display: none; }
.formulaire .wpcf7-submit {
  display: inline-block; border: 0; cursor: pointer; font-family: inherit;
  background: var(--marine); color: var(--blanc);
  font-size: 16px; font-weight: 800; line-height: 20px; padding: 20px 46px; border-radius: 0;
}
.formulaire .wpcf7-submit:hover { background: var(--noir); }
.formulaire .wpcf7-submit:disabled { opacity: .45; cursor: not-allowed; }
.envoi .wpcf7-spinner { margin: 0; flex: none; }
.mention { font-size: 13px; line-height: 20px; color: #6B6B6B; grid-column: 1 / -1; }
.wpcf7-not-valid-tip { font-size: 13px; line-height: 18px; color: #B00020; margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 12px 16px; border: 2px solid var(--vert-profond); font-size: 14px; line-height: 21px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: #B00020; }

/* ---------- Pied de page ---------- */
.pied { background: var(--marine); color: var(--blanc); font-size: 14px; line-height: 22px; margin-left: var(--onglet); }
.pied-haut {
  max-width: 1200px; margin: 0 auto; padding: 60px 20px 50px;
  display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 60px; align-items: center;
}
.wp-block-site-logo.pied-logo { display: flex; justify-content: center; margin: 0 0 26px; }
.wp-block-site-logo.pied-logo img { height: 110px; width: auto; }
.pied-adresses { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; text-align: center; }
.pied-tels { text-align: center; margin-top: 26px; display: grid; gap: 10px; }
.pied-tels a, .pied-bas a { color: var(--vert); font-weight: 700; }
.pied-horaires { text-align: center; font-weight: 700; }
.pied-horaires .wp-block-buttons { margin-top: 24px; justify-content: center; }
.pied .wp-block-button.bouton-contour .wp-block-button__link { font-weight: 700; text-decoration: none; }
.pied-liens { list-style: none; margin: 0; padding: 0; }
.pied-liens li { border-bottom: 1px solid var(--blanc); }
.pied-liens a { display: block; padding: 5px 0 1px; color: var(--vert); font-weight: 800; text-decoration: none; }
.pied-liens a:hover { color: var(--blanc); }
.pied-bas { border-top: 1px solid rgba(255, 255, 255, .25); text-align: center; padding: 18px 20px; }
.pied-bas a { font-weight: 400; text-decoration: none; }

/* Retour en haut : un paragraphe-lien, le chevron est un masque CSS */
.haut {
  position: fixed; right: 44px; bottom: 26px; z-index: 40;
  width: 42px; height: 42px; margin: 0;
  opacity: 0; pointer-events: none; transition: opacity .3s;
}
.haut.visible { opacity: 1; pointer-events: auto; }
.haut a {
  display: block; position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(to top, var(--vert), var(--bleu));
  font-size: 0; line-height: 0; color: transparent;
}
.haut a::before {
  content: ""; position: absolute; inset: 0; background: var(--blanc);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M5 15l7-7 7 7'/%3E%3C/svg%3E") center / 18px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M5 15l7-7 7 7'/%3E%3C/svg%3E") center / 18px no-repeat;
}

:where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--vert); outline-offset: 2px; }

/* ---------- Mobile ---------- */
@media (max-width: 1000px) {
  :root { --entete: 84px; --onglet: 34px; }
  .entete { display: flex; align-items: center; justify-content: space-between; padding: 0 16px 0 calc(var(--onglet) + 20px); }
  .wp-block-site-logo.entete-logo { height: 84px; justify-content: flex-start; }
  .wp-block-site-logo.entete-logo img { height: 62px; }
  .wp-block-navigation.menu { height: auto; padding-left: 0; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open { display: flex !important; color: var(--blanc); }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open { padding: 30px 30px 30px 50px; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 40px; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; height: auto; gap: 4px; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation-item { flex: none; height: auto; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation-item__content { height: auto; padding: 12px 0; font-size: 20px; line-height: 26px; }
  .wp-block-navigation.menu .is-menu-open .current-menu-item::after { right: auto; width: 60px; bottom: 4px; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-close { color: var(--blanc); }
  .onglet { top: 84px; height: 420px; }
  .admin-bar .onglet { top: 130px; }
  .onglet p { font-size: 13px; }

  .hero { height: 560px; padding: 0 20px; }
  .hero-titre { font-size: 50px; line-height: 54px; }
  .hero-titre::after { display: none; }
  .hero-signature { font-size: 40px; line-height: 50px; margin-top: 10px; }
  .hero-signature::after { height: 14px; bottom: 6px; }
  .hero .wp-block-buttons { margin-top: 40px; }

  .secteurs { padding: 60px 0 70px; }
  .secteurs-titre { font-size: 28px; line-height: 34px; margin-bottom: 40px; }
  .secteurs-grille { grid-template-columns: 1fr 1fr; }
  .secteur { height: 150px; }
  .secteur::before { width: 56px; height: 56px; }
  .secteur p { font-size: 16px; }

  .intro { padding: 60px 0; }
  .intro-titre { font-size: 34px; line-height: 40px; margin-bottom: 40px; }
  .surtitre { font-size: 16px; line-height: 24px; }
  .vignettes { grid-template-columns: 1fr; gap: 16px; }
  .vignettes-col { gap: 16px; }
  .vignettes-col + .vignettes-col { padding-top: 0; }
  .vignette { padding: 0 28px; }
  .vignette.haute, .vignette.basse { height: 220px; }
  .vignette.haute p, .vignette.basse p { font-size: 28px; line-height: 32px; }

  .moitie, .panneaux { grid-template-columns: 1fr; }
  .moitie-texte { padding: 60px 20px; }
  .moitie.inverse figure.moitie-photo { order: -1; }
  figure.moitie-photo { min-height: 300px; }
  .titre-section { font-size: 36px; line-height: 40px; margin-bottom: 28px; }

  .bandeau { padding: 70px 20px; }
  .bandeau-titre { font-size: 26px; line-height: 34px; }

  .grise { padding: 60px 0; }
  .grise .conteneur { grid-template-columns: 1fr; gap: 40px; }
  figure.grise-photo { height: 320px; }

  .tete .moitie-texte { padding: 50px 20px 60px; }
  .tete figure.moitie-photo { min-height: 300px; order: -1; }
  .titre-page { font-size: 38px; line-height: 44px; }

  .etapes { padding: 60px 0; }
  .etapes-grille { grid-template-columns: 1fr 1fr; gap: 36px 24px; }
  .etape-num { font-size: 44px; line-height: 44px; }

  .demande .conteneur { grid-template-columns: 1fr; gap: 40px; }

  .panneau { padding: 70px 20px; min-height: 0; }
  .global { padding: 70px 0; }
  .global-titre { font-size: 30px; line-height: 38px; }
  .page-simple { padding: 60px 20px 80px; }

  .pied-haut { grid-template-columns: 1fr; gap: 40px; }
  .haut { right: 16px; }
}
@media (max-width: 782px) {
  .admin-bar .entete { top: 46px; }
}
@media (max-width: 480px) {
  .secteurs-grille { gap: 10px; }
  .pied-adresses { grid-template-columns: 1fr; }
  .etapes-grille, .formulaire { grid-template-columns: 1fr; }
  .coordonnees li { padding-left: 0; }
  .coordonnees li strong { position: static; display: block; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
