/*
Theme Name: GEMAD — natif fidèle
Description: Thème natif sans extension pour menuiseriesgemad.com (menuiserie et agencement sur mesure à Houdan), reprise de l'identité du site The7 / Elementor. Base commune Mandragore (assets/base.css, inc/base.php).
Author: Mandragore Design
Version: 1.0.0
Text Domain: gemad
*/
:root {
  --couleur-1: #3b8150;          /* vert du menu actif et des boutons (#53B675 d'origine, foncé pour le contraste du texte blanc) */
  --couleur-1-sombre: #2c6440;
  --couleur-1-claire: #9fdcae;
  --couleur-2: #625952;          /* brun (couleur secondaire du kit Elementor) */
  --taupe: #b3a897;              /* taupe des titres d'origine */
  --taupe-texte: #857864;        /* taupe foncé : titres lisibles sur fond clair */
  --sable: #ece9e2;              /* fond de section d'origine */
  --texte: #1f1d1b;
  --texte-doux: #5b544e;
  --fond-doux: #f6f4f0;
  --bord: #e3ded5;
  --police-titres: "Buenard", Georgia, "Times New Roman", serif;
  --police-texte: "Roboto", "Segoe UI", Arial, sans-serif;
  --largeur: 1200px;
  --rayon: 6px;
}
/* Polices auto-hébergées (Google Fonts, latin, téléchargées le 30/10/2026) */
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("assets/fonts/roboto-latin.woff2") format("woff2"); }
@font-face { font-family: "Buenard"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/buenard-400-latin.woff2") format("woff2"); }
@font-face { font-family: "Buenard"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/buenard-700-latin.woff2") format("woff2"); }

h2, h3 { color: var(--taupe-texte); }
h1 { color: var(--couleur-2); }
.bouton, button.bouton, input[type="submit"].bouton { font-family: var(--police-texte); font-weight: 500; border-radius: 4px; }
.nav a { font-family: var(--police-texte); font-weight: 700; }

/* Barre du haut sombre (« Nous contacter : 01 34 94 40 35 ») */
.barre-haut { background: #444342; color: #e5dcdc; font-size: .88rem; }
.barre-haut__int { max-width: var(--largeur); margin: 0 auto; padding: 6px var(--gouttiere); display: flex; gap: 24px; flex-wrap: wrap; }
.barre-haut a { color: #e5dcdc; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.barre-haut a:hover { color: #fff; }
.barre-haut svg { width: 15px; height: 15px; }
@media (max-width: 600px) { .barre-haut a.barre-haut__mail { display: none; } }

/* En-tête : logo carré (étoile + GEMAD) */
.entete__logo img { height: 64px; }
.entete { border-bottom: 3px solid var(--couleur-1); }

/* Bandeau des pages : gris clair centré, comme le titre de page The7 */
.bandeau { background: var(--sable); color: var(--couleur-2); text-align: center; }
.bandeau h1 { color: var(--couleur-2); }
.bandeau .fil, .bandeau .fil a { color: var(--texte-doux); opacity: 1; }

/* Accueil : hero (remplace Slider Revolution slider-1). Mise en scène et minutage repris des calques d'origine :
   rideau 5 colonnes depuis le centre (0,8 s), étoile 408 px en 3D (0,67 s, 1,5 s), typographie (1,85 s), cadre sombre
   557 x 180 (2,09 s), accroche depuis la droite (2,88 s), bouton (3,72 s). Neige : canvas posé par assets/site.js. */
.hero { position: relative; isolation: isolate; overflow: hidden; background: #2b2724 center/cover no-repeat; color: #fff; text-align: center; min-height: clamp(460px, 56vw, 640px); display: grid; place-items: center; padding: 40px var(--gouttiere) 72px; }
.hero::before { content: ""; position: absolute; inset: 0; background: rgba(25, 22, 19, .28); z-index: -1; }
.hero__scene { position: relative; width: min(100%, 600px); display: flex; flex-direction: column; align-items: center; gap: 22px; perspective: 900px; }
.hero__etoile { position: absolute; left: 50%; top: 50%; width: clamp(240px, 34vw, 408px); height: auto; translate: -50% -58%; z-index: -1; filter: drop-shadow(0 10px 30px rgba(0, 0, 0, .35)); }
.hero__cadre { position: relative; isolation: isolate; width: min(100%, 557px); padding: 22px 20px 20px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.hero__typo { width: clamp(220px, 32vw, 330px); height: auto; }
.hero__accroche { font-size: clamp(1.05rem, 2.4vw, 1.56rem); font-weight: 500; margin: 0; text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }
@media (min-width: 640px) { .hero__accroche { white-space: nowrap; } .hero__cadre { width: auto; min-width: min(100%, 557px); padding-inline: 28px; } }
.hero__boutons { margin: 0; }
.hero__boutons .bouton { background: #53b675; border-color: #53b675; font-size: clamp(1rem, 1.6vw, 1.3rem); color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.hero__boutons .bouton:hover { background: var(--couleur-1-sombre); border-color: var(--couleur-1-sombre); }
.hero__neige { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.hero__rideau { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(5, 1fr); z-index: 2; pointer-events: none; }
.hero__rideau span { background: #1a1c20; animation: rideau .79s cubic-bezier(.65, 0, .35, 1) both; }
.hero__rideau span:nth-child(3) { animation-delay: 0s; }
.hero__rideau span:nth-child(2), .hero__rideau span:nth-child(4) { animation-delay: .1s; }
.hero__rideau span:nth-child(1), .hero__rideau span:nth-child(5) { animation-delay: .2s; }
@keyframes rideau { to { transform: translateY(100%); } }
.hero__etoile { animation: etoile 1.5s cubic-bezier(.77, 0, .18, 1) .67s both; }
@keyframes etoile { from { opacity: 0; transform: translate(-120px, 80px) scale(.2) rotateX(70deg) rotateY(-60deg) rotateZ(-80deg); } to { opacity: 1; transform: none; } }
.hero__typo { animation: descend 1s cubic-bezier(.33, 1, .68, 1) 1.85s both; }
@keyframes descend { from { opacity: 0; transform: translateY(-50px); } to { opacity: 1; transform: none; } }
/* Cadre sombre : calque séparé (shape d'origine), il monte sous la typographie déjà arrivée */
.hero__cadre::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .25); z-index: -1; animation: monte 1.2s cubic-bezier(.33, 1, .68, 1) 2.09s both; }
@keyframes monte { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
.hero__accroche { animation: glisse 1s cubic-bezier(.33, 1, .68, 1) 2.88s both; }
@keyframes glisse { from { opacity: 0; transform: translateX(60vw); } to { opacity: 1; transform: none; } }
.hero__boutons { animation: grossit 1s cubic-bezier(.65, 0, .35, 1) 3.72s both; }
@keyframes grossit { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: none; } }

/* Motifs de points d'origine, avec léger défilement parallaxe (site.js règle --decalage) */
.bloc[data-motif] { background-repeat: repeat; background-size: 1000px auto; background-position: center calc(50% + var(--decalage, 0px)); }
.bloc[data-motif="points-blancs"] { background-image: url("/wp-content/uploads/2022/01/pattern_slider.png"); }
.bloc[data-motif="points-taupe"] { background-image: url("/wp-content/uploads/2022/01/patternpro.png"); background-size: 729px auto; }
.bloc[data-motif="points-taupe"] .chiffre { background: rgba(255, 255, 255, .9); border-radius: var(--rayon); padding: 18px 12px; box-shadow: var(--ombre); }

/* Apparitions déclenchées au défilement (site.js ajoute .visible) */
.univers { transition: opacity 1s ease; }
.js .univers:not(.visible) { opacity: 0; }
.js .univers .univers__liens li { opacity: 0; transform: scale(.8); transition: opacity 1s ease, transform 1s cubic-bezier(.34, 1.3, .64, 1); }
.univers.visible .univers__liens li { opacity: 1; transform: none; }
.univers .univers__liens li:nth-child(1) { transition-delay: .31s; }
.univers .univers__liens li:nth-child(2) { transition-delay: .41s; }
.univers .univers__liens li:nth-child(3) { transition-delay: .55s; }
.univers .univers__liens li:nth-child(4) { transition-delay: .68s; }
.univers .univers__liens li:nth-child(5) { transition-delay: .86s; }
.js .anim-pulse:not(.visible) img { transform: scale(1); }
.anim-pulse.visible img { animation: pulse 1s ease-in-out; }
@keyframes pulse { 50% { transform: scale(1.1); } }
.anim-push:hover { animation: push .3s linear 1; }
@keyframes push { 50% { transform: scale(.8); } 100% { transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
  .hero__rideau { display: none; }
  .js .univers:not(.visible), .js .univers .univers__liens li { opacity: 1; transform: none; }
}

/* Accueil : « Je suis particulier / professionnel » (premier bloc), cartes à icône remontées sur le hero */
.accueil .contenu > .bloc:first-child { padding-top: 0; margin-top: -48px; position: relative; z-index: 2; }
.accueil .contenu > .bloc:first-child .colonne { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); justify-content: center; gap: 20px; }
.accueil .contenu > .bloc:first-child .carte { text-align: center; padding: 26px 18px 20px; border-top: 4px solid var(--couleur-1); }
.accueil .contenu > .bloc:first-child .carte h3 { margin: 0; font-size: 1.2rem; }
.accueil .contenu > .bloc:first-child .carte h3 a { color: var(--couleur-2); text-decoration: none; }
.accueil .contenu > .bloc:first-child .carte h3 a::after { content: ""; position: absolute; inset: 0; }
.accueil .contenu > .bloc:first-child .carte { position: relative; }
.accueil .contenu > .bloc:first-child .carte::before { content: ""; width: 54px; height: 54px; margin: 0 auto 10px; border-radius: 50%; background: var(--sable) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23625952'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E") center/28px no-repeat; }
.accueil .contenu > .bloc:first-child .carte:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23625952'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm-1.2 2.1L12 17l1.2-2.9c3.9.4 6.8 2.4 6.8 4.9v3H4v-3c0-2.5 2.9-4.5 6.8-4.9z'/%3E%3C/svg%3E"); }
.accueil .contenu > .bloc:first-child .carte:hover { border-top-color: var(--couleur-2); transform: translateY(-2px); }
@media (max-width: 520px) { .accueil .contenu > .bloc:first-child .colonne { grid-template-columns: 1fr 1fr; gap: 12px; } .accueil .contenu > .bloc:first-child .carte h3 { font-size: 1rem; } }

/* Titre principal de l'accueil centré, filet vert dessous (comme l'original) */
.accueil .bloc:nth-child(2) { text-align: center; }
.accueil .bloc:nth-child(2) h1 { font-size: clamp(1.6rem, 3.8vw, 2.4rem); text-transform: uppercase; color: var(--taupe-texte); }
.accueil .bloc:nth-child(2) h1::after { content: ""; display: block; width: 120px; height: 3px; background: var(--couleur-1-claire); margin: 18px auto 0; }
.accueil .bloc:nth-child(2) .colonne { align-items: center; max-width: 900px; margin: 0 auto; }

/* Univers Particuliers / Professionnels (remplace les diaporamas slider-2 et slider-2-1) */
.univers { position: relative; isolation: isolate; border-radius: var(--rayon); background: #3a332d center/cover no-repeat; min-height: clamp(260px, 36vw, 420px); display: flex; align-items: flex-end; padding: clamp(18px, 3vw, 32px); overflow: hidden; }
.univers::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(25, 22, 19, .78) 0%, rgba(25, 22, 19, .1) 65%); z-index: -1; }
.univers__liens { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.univers__liens li { margin: 0; }
.univers__liens a { display: inline-block; background: rgba(255, 255, 255, .92); color: var(--couleur-2); font-weight: 600; text-decoration: none; padding: 10px 18px; border-radius: 999px; }
.univers__liens a:hover { background: var(--couleur-1); color: #fff; }
.accueil .bloc:has(.univers) h2 { text-align: center; }

/* Sections sur fond sable : titres et textes sombres (les fonds à motif d'origine sont retirés) */
.bloc[style*="background-color:#ECE9E2"] h2 { color: var(--couleur-2); }
.bloc[style*="background-color:#ECE9E2"] .groupe { justify-items: center; }

/* « Déplacement et devis gratuit » (bloc sable à une colonne) : centré, boutons côte à côte */
.bloc[style*="background-color:#ECE9E2"]:not(:has(> .colonne + .colonne)) > .colonne > h2 { text-align: center; }
.bloc[style*="background-color:#ECE9E2"]:not(:has(> .colonne + .colonne)) .groupe { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.bloc[style*="background-color:#ECE9E2"]:not(:has(> .colonne + .colonne)) .groupe > .colonne { flex: 0 0 auto; }

/* Chiffres clés : 4 colonnes (2 sur téléphone) */
.bloc:has(> .colonne > .chiffre) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 767px) { .bloc:has(> .colonne > .chiffre) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.chiffre { text-align: center; color: var(--texte-doux); }
.chiffre strong { color: var(--couleur-2); font-size: clamp(2.2rem, 5vw, 3rem); margin-bottom: 6px; }

/* Témoignages côte à côte */
.temoignages { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }
blockquote { border-left-color: var(--taupe); background: #fff; box-shadow: var(--ombre); }

/* Logos dans le contenu : taille réduite */
.contenu figure img[src*="logo"] { width: 110px; height: auto; }
.contenu .colonne:has(> figure img[src*="logo"]) > figure { align-self: flex-start; }

/* Pages de service : galerie à 4 colonnes sur grand écran, intro en gros caractères */
.contenu p.big { font-size: 1.15rem; color: var(--texte-doux); }
@media (min-width: 1024px) { .galerie { grid-template-columns: repeat(4, 1fr); } }

/* Appel de fin de page et pied */
.appel-fin__int { background: var(--couleur-2); }
.pied { background: #1a1c20; margin-top: 0; }
.pied__logo img { height: 70px; }
.pied__logo .bouton--contour { color: #fff !important; border-color: rgba(255, 255, 255, .6); }
.pied__logo .bouton--contour:hover { background: #fff; color: var(--couleur-2) !important; }
.pied h4 a { color: #fff; }
.pied a:hover { color: var(--couleur-1-claire); }

/* En-tête, méga-menus et pied proches du site existant */
/* En-tête : barre du haut brune, logo plus grand, menu aéré (comme le live) */
.barre-haut { background: #625952; }
.entete { border-bottom: 0; box-shadow: 0 3px 14px rgba(40, 32, 24, .10); background: #fff radial-gradient(circle at 1px 1px, rgba(179, 168, 151, .22) 1.4px, transparent 1.6px) 0 0/11px 11px; }
.entete__int { min-height: 92px; }
.entete__logo { position: relative; flex: none; width: 112px; height: 92px; }
.entete__logo img { position: absolute; left: 0; top: 6px; height: 80px; width: auto; max-width: none; }
.entete__logo .entete__logo-icone { display: none; }
.entete__int, .entete__logo, .entete__logo img { transition: min-height .25s, height .25s, width .25s; }
.nav { gap: 6px; }
.nav ul { gap: 8px; }
.nav a { font-size: .95rem; letter-spacing: .01em; color: #3a332d; }
.nav a:hover, .nav .current-menu-item > a, .nav .current-menu-ancestor > a { color: var(--couleur-1); }
.nav > ul > li > a { position: relative; }
.nav > ul > li > a::before { content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; background: #53b675; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nav > ul > li:hover > a::before, .nav > ul > li.current-menu-item > a::before, .nav > ul > li.current-menu-ancestor > a::before { transform: none; }
.entete.reduit .entete__int { min-height: 64px; }
.entete.reduit .entete__logo { width: 64px; height: 64px; }
.entete.reduit .entete__logo-complet { display: none; }
.entete.reduit .entete__logo-icone { display: block; height: 52px; top: 6px; }
@media (max-width: 900px) { .entete__int { min-height: 70px; } .entete__logo { width: 84px; height: 70px; } .entete__logo img { height: 64px; top: 3px; } }

/* Méga-menus Particuliers / Professionnels : vignettes du site d'origine. */
.nav .menu-item-mega > .sub-menu > li > a { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.nav .mega-menu__photo { flex: none; width: 128px; height: 128px; object-fit: cover; border-radius: 10px; }
.nav .mega-menu__titre { min-width: 0; }
@media (min-width: 1024px) {
  .entete__int { position: relative; }
  .entete .nav, .nav > ul { align-self: stretch; }
  .nav > ul > li { display: flex; align-items: center; }
  .nav > ul > .menu-item-mega { position: static; }
  .nav > ul > .menu-item-mega > .sub-menu { left: 50%; top: 100%; translate: -50% 0; width: min(1200px, calc(100vw - 32px)); min-width: 0; max-height: calc(100dvh - 150px); overflow-y: auto; padding: 24px; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 0 0 12px 12px; border-top: 3px solid var(--couleur-1); }
  .nav > ul > .menu-item-mega--professionnels > .sub-menu { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nav > ul > .menu-item-mega:is(:hover, :focus-within, .ouvert) > .sub-menu { display: grid; }
  .nav > ul > .menu-item-mega.mega-ferme > .sub-menu { display: none; }
  .nav.mega-pret > ul > .menu-item-mega > .sub-menu { display: none; }
  .nav.mega-pret > ul > .menu-item-mega.mega-ouvert > .sub-menu { display: grid; }
  .nav .menu-item-mega > .sub-menu > li > a { height: 100%; padding: 10px; background: var(--fond-doux); border-radius: 10px; font-weight: 700; }
  .nav .menu-item-mega > .sub-menu > li > a:is(:hover, :focus-visible) { background: var(--sable); }
}
@media (min-width: 1024px) and (max-width: 1200px) { .nav .mega-menu__photo { width: 96px; height: 96px; } }
@media (max-width: 1023px) {
  .entete .nav { max-height: calc(100dvh - 160px); }
  .nav .menu-item-mega > .sub-menu { padding-left: 8px; }
  .nav > ul > .menu-item-mega.ouvert > .sub-menu { display: flex; }
  .nav .mega-menu__photo { width: 56px; height: 56px; border-radius: 6px; }
}

/* Appel de fin de page et pied (même composition que le live : logo, navigation, plan) */
.appel-fin__int { background: var(--couleur-2); }
.pied { background: #444342; color: #e5dcdc; margin-top: 0; padding: 0; }
.pied__int { max-width: var(--largeur); margin: 0 auto; padding: clamp(40px, 6vw, 64px) var(--gouttiere); display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
@media (max-width: 860px) { .pied__int { grid-template-columns: 1fr; } }
.pied__logo { text-align: center; }
.pied__logo img { height: 110px; width: auto; margin: 0 auto 6px; }
.pied__societe { margin: 0 0 18px; font-size: .85rem; letter-spacing: .04em; color: #cfc6c6; }
.pied__contact { list-style: none; margin: 0; padding: 0; display: inline-flex; flex-direction: column; gap: 10px; text-align: left; }
.pied__contact li { display: flex; align-items: center; gap: 10px; margin: 0; }
.pied__contact svg { width: 18px; height: 18px; flex: none; color: var(--taupe); }
.pied__contact a, .pied__contact span { color: #fff; text-decoration: none; }
.pied h4 { font-family: var(--police-titres); font-size: 1.7rem; font-weight: 700; color: #fff; margin: 0 0 16px; }
.pied__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.pied__menu li { margin: 0; }
.pied__menu a { display: block; padding: 10px 14px; font-weight: 700; color: #fff; text-decoration: none; border-radius: 3px; transition: background .2s; }
.pied__menu .menu-item-has-children > a::after { content: " +"; font-weight: 400; }
.pied__menu a:hover, .pied__menu .current-menu-item > a, .pied__menu .current-menu-ancestor > a { background: var(--taupe); color: #fff; }
.pied__carte iframe { display: block; width: 100%; height: 280px; border: 0; border-radius: 4px; background: #5a5857; }
.pied__carte p { margin: 8px 0 0; font-size: .85rem; }
.pied a:hover { color: var(--couleur-1-claire); }
.pied__bas { background: #625952; margin: 0; padding: 0; border: 0; }
.pied__bas-int { max-width: var(--largeur); margin: 0 auto; padding: 16px var(--gouttiere); display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; align-items: center; font-size: .85rem; }
.pied__bas p { margin: 0; }
.pied__bas ul { display: flex; gap: 18px; list-style: none; padding: 0; margin: 0; flex-wrap: wrap; }
.pied__bas a { color: #fff; }


/* Préserver les proportions et les photos de l'ancien site, sans nouveaux encarts de refonte. */
.hero { min-height: clamp(420px, 44vw, 550px); padding-bottom: 48px; }
.contenu > .elementor { overflow-x: clip; }
.elementor-section > .elementor-container { width: 100%; }
.elementor-widget-wrap > .elementor-element { min-width: 0; }
.elementor-widget-the7_icon_box_grid_widget { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; max-width: 600px; margin-inline: auto; position: relative; z-index: 3; }
.elementor-widget-the7_icon_box_grid_widget > .carte { background: rgba(0,0,0,.75); color: #fff; border: 0; border-radius: 0; box-shadow: none; text-align: center; justify-content: center; min-height: 110px; }
.elementor-widget-the7_icon_box_grid_widget > .carte h3 a { color: #fff; text-decoration: none; }
.elementor-widget-slider_revolution .univers { border-radius: 0; padding: 0; align-items: center; min-height: clamp(280px,40vw,550px); }
.univers::before { display: none; }
.univers__liens { display: flex; width: 100%; justify-content: space-around; gap: 12px; padding: 20px; }
.univers__liens a { border-radius: 2px; background: #5e5000; color: #fff; font-size: 1.1rem; }
.galerie { display: block; column-count: 3; column-gap: 16px; }
.galerie li { break-inside: avoid; margin: 0 0 16px; box-shadow: none; background: transparent; border-radius: 0; }
.galerie img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.elementor-widget-counter .elementor-counter { display: flex; flex-direction: column-reverse; text-align: center; }
.elementor-widget-counter .elementor-counter-number-wrapper { display: flex; justify-content: center; font-size: 3rem; color: var(--couleur-2); font-weight: 700; }
.elementor-widget-counter .elementor-counter-title { font-size: 1.15rem; }
.texte-legal { max-width: 1200px; margin-inline: auto; }
.texte-legal h2 { margin-top: 24px; }
.texte-legal p { max-width: 95ch; }
.formulaire__information { grid-column: 1/-1; font-size: .9rem; line-height: 1.5; margin: 0; color: #433f39; }
.carte-au-clic { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; background: #ece9e2; color: #302b27; text-align: center; }
.carte-au-clic button { background: var(--couleur-1); border: 1px solid var(--couleur-1); color: #fff; padding: 12px 18px; border-radius: 3px; font: inherit; cursor: pointer; }
.carte-au-clic p { margin: 0; }
.carte-au-clic__information { max-width: 55ch; font-size: .9rem; }
.carte-au-clic [data-carte-zone] { width: 100%; }
.carte-au-clic iframe { width: 100%; height: 320px; border: 0; display: block; }
.carte-au-clic [hidden] { display: none !important; }
.pied .carte-au-clic { min-height: 230px; padding: 18px; }
.pied .carte-au-clic a { color: #2c6440; }
.pied .carte-au-clic iframe { height: 230px; }
@media (max-width: 767px) { .galerie { column-count: 2; } .accueil .elementor-widget-slider_revolution { display: none; } .univers__liens { flex-wrap: wrap; } .elementor-widget-the7_icon_box_grid_widget { gap: 12px; } .elementor-widget-the7_icon_box_grid_widget > .carte { min-height: 100px; padding: 16px 10px; } }
@media (max-width: 420px) { .galerie { column-count: 1; } }

/* 08/11/2026 : variables typographiques The7 relevées sur le site en ligne (#the7-body). Sans elles, les règles
   « font: var(--the7-…) » de commun.css étaient invalides : police du navigateur (Times) et titres à 16 px. */
body {
  --the7-base-font-big: normal normal normal 20px / 1.6em "Roboto", Helvetica, Arial, Verdana, sans-serif;
  --the7-btn-s-font: normal normal 700 12px / 1 "Roboto", Helvetica, Arial, Verdana, sans-serif;
  --the7-btn-m-font: normal normal 700 14px / 1 "Roboto", Helvetica, Arial, Verdana, sans-serif;
  --the7-btn-lg-font: normal normal normal 18px / 1 "Open Sans", Helvetica, Arial, Verdana, sans-serif;
  --the7-btn-xl-font: normal normal normal 20px / 1 "Open Sans", Helvetica, Arial, Verdana, sans-serif;
  --the7-form-md-font: normal normal normal 15px / 1.5em "Roboto", Helvetica, Arial, Verdana, sans-serif;
  --the7-h1-color: #333333; --the7-h1-font: normal normal bold 54px / 62px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-h2-color: #333333; --the7-h2-font: normal normal bold 34px / 44px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-h3-color: #333333; --the7-h3-font: normal normal bold 24px / 34px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-h4-color: #333333; --the7-h4-font: normal normal bold 20px / 30px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-h5-color: #333333; --the7-h5-font: normal normal bold 16px / 26px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-h6-color: #333333; --the7-h6-font: normal normal bold 14px / 24px "Buenard", Helvetica, Arial, Verdana, sans-serif;
  --the7-widget-title-font: normal normal normal 15px / 20px "Open Sans", Helvetica, Arial, Verdana, sans-serif;
  --the7-widget-content-font: normal normal normal 13px / 20px "Open Sans", Helvetica, Arial, Verdana, sans-serif;
  color: #0a0909;
}

/* 08/11/2026 : zone de contenu blanche comme en ligne (.page-inner), hero resserré (accroche et bouton sous la typographie) */
main#contenu { background: #fff; }
.hero__scene { gap: 8px; }
.hero__cadre { gap: 6px; padding-bottom: 14px; }

/* 08/11/2026 : univers Particuliers / Professionnels pleine largeur, 550 px, étiquettes 24 px comme le Slider Revolution en ligne */
@media (min-width: 768px) {
  .elementor-widget-slider_revolution .univers { width: 100vw; margin-left: calc(50% - 50vw); min-height: min(550px, 43.5vw); }
  .univers__liens a { font-size: clamp(1.1rem, 1.9vw, 1.5rem); font-weight: 500; padding: 0 1em; line-height: 2.45; border-radius: 0; }
}

/* 08/11/2026 : boutons The7 de l'accueil comme en ligne (contour 1 px, 18 px léger, icône), règles d'origine perdues à la conversion */
.elementor-widget-the7_button_widget p { margin: 0; }
.elementor-widget-the7_button_widget .bouton { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #000 !important; border: 1px solid #000; border-radius: 1px; padding: 16px 24px; font: 300 18px/1 var(--police-texte); box-shadow: none; transform: none; }
.elementor-widget-the7_button_widget.elementor-align-left .bouton { background: #fff; border-color: #fff; }
.elementor-widget-the7_button_widget.elementor-align-right .bouton { color: #fff !important; border-color: #fff; }
.elementor-widget-the7_button_widget.elementor-element-d434ce7 .bouton { color: #000 !important; border-color: #000; }
.elementor-widget-the7_button_widget .bouton:hover { background: #53b675; border-color: #53b675; color: #fff !important; }
.elementor-widget-the7_button_widget .bouton:not([href^="tel:"], [href*="entreprise"], [href*="contact"])::before { display: none; }
.elementor-widget-the7_button_widget .bouton::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; -webkit-mask: var(--icone) center/contain no-repeat; mask: var(--icone) center/contain no-repeat; }
.elementor-widget-the7_button_widget .bouton[href^="tel:"] { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 006.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 013 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E"); }
#contenu .elementor-widget-the7_button_widget.elementor-element-ac0732c .bouton { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M10 14a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1M14 10a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1'/%3E%3C/svg%3E"); }
.elementor-widget-the7_button_widget .bouton[href*="entreprise"] { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/%3E%3C/svg%3E"); }
.elementor-widget-the7_button_widget .bouton[href*="contact"] { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v14H3V5zm2 2v.5l7 4.5 7-4.5V7H5z'/%3E%3C/svg%3E"); }

/* 08/11/2026 : chiffres clés comme en ligne : voile blanc 88 % sur le motif, chiffres taupe 69 px, libellés à empattement */
[data-el="1b8808b"] { position: relative; isolation: isolate; }
[data-el="1b8808b"]::before { content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, .88); z-index: -1; pointer-events: none; }
.elementor-widget-counter .elementor-counter-number-wrapper { font: 600 clamp(44px, 5.4vw, 69px)/1 var(--police-texte); color: #b3a897; }
.elementor-widget-counter .elementor-counter-title { font: 400 19px/2.5 "Roboto Slab", "Buenard", Georgia, serif; color: #625952; }

/* 08/11/2026 : avis comme les cartes Elementor en ligne (blanc, arrondi 25 px, nom + étoiles + métier, texte 20 px).
   Les deux avis restent visibles l'un sous l'autre au lieu du carrousel : aucun avis caché. */
.elementor-widget-reviews .temoignages { grid-template-columns: 1fr; max-width: 958px; margin-inline: auto; gap: 16px; }
.elementor-widget-reviews .temoignages blockquote { display: flex; flex-direction: column; margin: 0; padding: 15px 15px 15px; background: #fff; border: 0; border-radius: 25px; box-shadow: none; }
.elementor-widget-reviews .temoignages blockquote p { order: 2; margin: 0; padding: 9px 0 0; font: 400 20px/1.6 var(--police-texte); color: #0a0909; }
.elementor-widget-reviews .temoignages blockquote footer { order: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font: 600 14px/1.3 var(--police-texte); color: #0a0909; }
.elementor-widget-reviews .temoignages blockquote footer::before { content: none; }
#contenu .temoignage__etoiles { color: #f0ad4e; font-size: 12px; letter-spacing: 1px; }
#contenu .temoignage__role { font-weight: 400; font-size: 13px; color: #625952; }
@media (max-width: 767px) { .elementor-widget-reviews .temoignages blockquote p { font-size: 17px; } }

/* 08/11/2026 : pied comme en ligne : 3 colonnes égales, logo 189 px, titres 34 px, liens 20 px graisse 600, barre basse 79 px */
@media (min-width: 861px) {
  .pied__int { max-width: 1265px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 36px 10px 50px; }
}
.pied__logo img { height: auto; width: 189px; max-width: 100%; margin: 0 auto 10px; }
.pied { font-weight: 400; }
.pied__societe { font-size: 1rem; }
.pied__contact { display: flex; align-items: center; }
.pied__bas p { font-weight: 400; }
.pied__contact a, .pied__contact span { font-size: 20px; }
.pied h4 { font-size: 34px; line-height: 44px; margin: 0 0 20px; }
.pied__menu { gap: 0; }
.pied__menu a { padding: 13px 20px; font-size: 20px; line-height: 20px; font-weight: 600; border-radius: 0; }
.pied__carte .carte-au-clic { min-height: 286px; }
.pied__bas-int { min-height: 79px; max-width: 1265px; }
.pied__bas ul a { display: inline-block; padding: 8px 14px 7px; font-size: 12px; font-weight: 500; color: #70bb80; background: #625952; text-decoration: none; }
.pied__bas ul a:hover { color: #fff; }

/* 08/11/2026 : bandeau de titre des pages comme The7 en ligne : 200 px, gris 4 %, titre 34 px Roboto #333 puis fil d'Ariane 14 px */
.bandeau { background: #ededed; padding: 0 var(--gouttiere); }
.bandeau__int { min-height: 200px; display: flex; flex-direction: column-reverse; align-items: center; justify-content: center; gap: 10px; }
.bandeau h1, .bandeau .bandeau__int h1 { margin: 0; font: 700 34px/44px var(--police-texte); color: #333; text-transform: none; }
.bandeau .fil, .bandeau .fil a { margin: 0; font-size: 14px; line-height: 24px; color: #adafb3; }
.gemad-univers-page .univers { min-height: min(683px, 54vw); }

/* 08/11/2026 : galeries des pages de service sur 6 colonnes de ~200 px comme prévu en ligne (la mosaïque en ligne se superpose : défaut corrigé) ; chapô sans le style de la refonte */
.galerie { column-count: 6; column-gap: 10px; }
.galerie li { margin: 0 0 10px; }
@media (max-width: 1023px) { .galerie { column-count: 4; } }
@media (max-width: 767px) { .galerie { column-count: 2; } }
.contenu p.big { font-size: 18px; color: #000; }

/* 08/11/2026 : formulaires comme en ligne : champs blancs 47 px, texte 16 px noir, bord gris 11 %, zone de message identique aux champs ; bouton brun 14 px gras */
.formulaire input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .formulaire textarea, .formulaire select { min-height: 47px; padding: 6px 16px; font: 400 16px/1.5 var(--police-texte); color: #000; background: #fff; border: 1px solid rgba(51, 51, 51, .11); border-radius: 2px; }
.formulaire textarea { min-height: 104px; }
.formulaire .bouton[type=submit], .formulaire button[type=submit] { min-width: 229px; min-height: 39px; padding: 12px 18px; font: 700 14px/1 var(--police-texte); color: #fff !important; background: #625952; border: 0; border-radius: 1px; }
.formulaire .bouton[type=submit]:hover, .formulaire button[type=submit]:hover { background: #53b675; }
.barre-haut { font-size: 13px; font-weight: 500; }

/* 08/11/2026 : plans Google affichés par défaut (demande d'Alexandre), tailles du live : 402 x 286 dans le pied, pleine colonne ailleurs */
.carte-plan { width: 100%; }
.carte-plan iframe { display: block; width: 100%; height: 320px; border: 0; }
.pied .carte-plan iframe { height: 286px; }

/* 08/11/2026 : formulaires centrés et alignés : 2 colonnes égales (Prénom/Nom, Téléphone/E-mail), message pleine largeur, information et bouton centrés */
.formulaire { max-width: 900px; margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; text-align: left; }
@media (max-width: 600px) { .formulaire { grid-template-columns: 1fr; } }
.formulaire__champ { gap: 8px; }
.formulaire label { font-size: 16px; font-weight: 600; }
.formulaire__information { text-align: center; max-width: 70ch; margin-inline: auto; }
.formulaire__pied { display: flex; justify-content: center; }
.formulaire__message { text-align: center; }

/* 08/11/2026 : en-tête fixe sombre comme en ligne (fond 25,25,25 à 80 %, 112 px, logo blanc, menu blanc) */
@media (min-width: 1024px) {
  .entete.reduit { background: rgba(25, 25, 25, .8); box-shadow: 0 0 15px 1px rgba(0, 0, 0, .07); }
  .entete.reduit .entete__int { min-height: 112px; }
  .entete.reduit .entete__logo { width: 104px; height: 112px; }
  .entete.reduit .entete__logo-icone { display: none; }
  .entete.reduit .entete__logo-blanc { display: block; height: 96px; top: 8px; }
  .entete.reduit .nav > ul > li > a { color: #fff; }
  .entete.reduit .nav > ul > li:is(.current-menu-item, .current-menu-ancestor) > a { color: #53b675; }
  .entete.reduit .nav .menu-item-has-children > a::after { filter: invert(1); }
}
.entete__logo .entete__logo-blanc { display: none; }

/* 08/11/2026 : en-tête comme en ligne (barre 36 px, en-tête 180 px, logo 150 px, « + » devant les rubriques à sous-menu) */
.barre-haut__int { min-height: 36px; align-items: center; }
@media (min-width: 1024px) {
  .entete__int { min-height: 180px; }
  .entete__logo { width: 160px; height: 180px; }
  .entete__logo img { height: 150px; top: 15px; }
  .nav a { font-size: 1rem; color: #333; }
  .nav > ul > li > a { display: flex; align-items: center; }
  .nav .menu-item-has-children > a::after { order: -1; width: 13px; height: 13px; margin: 0 6px 0 0; border: 0; transform: none; vertical-align: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13'%3E%3Crect width='13' height='13' rx='2' fill='%23333'/%3E%3Cpath d='M6.5 3v7M3 6.5h7' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat; }
  .nav > ul > li:is(.current-menu-item, .current-menu-ancestor, :hover) > a::after { filter: none; }
}

/* 08/11/2026 : « Je suis particulier / professionnel » comme en ligne : carré blanc 131 px bordé de brun, icône, titre dessous */
.elementor-widget-the7_icon_box_grid_widget { max-width: 551px; column-gap: 47px; row-gap: 16px; }
.elementor-widget-the7_icon_box_grid_widget > .carte { background: transparent; color: #333; min-height: 0; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 0; }
.elementor-widget-the7_icon_box_grid_widget > .carte::before { content: ""; display: block; box-sizing: border-box; width: 131px; height: 131px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a59c8f'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E") center/62px no-repeat; border: 3px solid #625952; }
.elementor-widget-the7_icon_box_grid_widget > .carte:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a59c8f'%3E%3Cpath d='M12 12a5 5 0 100-10 5 5 0 000 10zm-1.2 2.1L12 17l1.2-2.9c3.9.4 6.8 2.4 6.8 4.9v3H4v-3c0-2.5 2.9-4.5 6.8-4.9z'/%3E%3C/svg%3E"); }
.elementor-widget-the7_icon_box_grid_widget > .carte h3 { margin: 0; font: 700 24px/30px "Buenard", Georgia, serif; }
.elementor-widget-the7_icon_box_grid_widget > .carte h3 a { color: #333; }
.elementor-widget-the7_icon_box_grid_widget > .carte h3 a::after { content: ""; position: absolute; inset: 0; }
.elementor-widget-the7_icon_box_grid_widget > .carte { position: relative; }
@media (max-width: 767px) { .elementor-widget-the7_icon_box_grid_widget { column-gap: 16px; } .elementor-widget-the7_icon_box_grid_widget > .carte::before { width: 100px; height: 100px; background-size: 40px; } .elementor-widget-the7_icon_box_grid_widget > .carte h3 { font-size: 18px; line-height: 24px; } .elementor-widget-the7_icon_box_grid_widget > .carte { padding: 0; min-height: 0; } }
/* 08/11/2026 : Entreprise, croquis 3D décalé de -50 px sur mobile (défaut du live, image coupée à gauche) */
@media (max-width: 767px) { .elementor-388 .elementor-element.elementor-element-12b6ae1 > .elementor-element-populated { margin-left: 0; --e-column-margin-left: 0px; } }
