/* ==========================================================================
   Pyrénées Menuiseries — styles globaux
   Les couleurs et typographies principales sont réglées dans le Kit Elementor
   (Réglages du site). Ce fichier contient :
   1. les jetons du design system (variables CSS, identiques au Kit) ;
   2. les quelques classes « pm- » qu'Elementor ne sait pas produire seul.
   Règle : jamais de CSS propre à une page. Toute nouvelle classe est documentée ici.
   Les sélecteurs .elementor-* sont à vérifier dans l'inspecteur après chaque mise à jour d'Elementor.
   ========================================================================== */

/* 1. Jetons ------------------------------------------------------------- */
:root{
  /* Bleu Pic — marque (logo #0F3982) */
  --pic-950:#081530; --pic-900:#0B2154; --pic-800:#0F3982; --pic-700:#1A4C9E; --pic-100:#E3EAF5; --pic-50:#F1F5FB;
  /* Ciel — verre, lumière (dégradé du logo) */
  --ciel-300:#51CFF4; --ciel-500:#2691D0; --ciel-700:#16679D; --ciel-100:#E1F3FB;
  --filet-lumiere:linear-gradient(90deg,#51CFF4,#2691D0);
  /* Pierre — neutres chauds */
  --blanc:#FFFFFF; --pierre-50:#F7F5F1; --pierre-100:#EEEAE3; --pierre-200:#E0DBD2; --pierre-300:#C9C3B8;
  --pierre-400:#A8A296; --pierre-500:#8A8479; --pierre-600:#6B665D; --pierre-700:#4A463F; --encre:#1F1D1A;
  --inverse-2:#AEB9CC;
  /* Braise — l'unique accent, réservé aux actions de conversion */
  --braise-600:#C84B11; --braise-700:#A63D0C; --braise-800:#8A3209;
  /* États */
  --succes-700:#1E7044; --succes-100:#E5F2EA; --alerte-700:#8F5E00; --alerte-100:#FFF3D6;
  --erreur-700:#B0213F; --erreur-100:#FBE7EB;
  /* Typographie */
  --police-titre:'Red Hat Display',system-ui,sans-serif;
  --police-texte:'Red Hat Text',system-ui,sans-serif;
  /* Rayons */
  --r-0:0; --r-case:6px; --r-tuile:16px; --r-zone:20px; --r-disque:999px;
  /* Ombres */
  --om-1:0 1px 2px rgba(8,21,48,.06);
  --om-2:0 16px 40px -16px rgba(8,21,48,.22);
  --om-3:0 32px 72px -24px rgba(8,21,48,.32);
  /* Mouvement */
  --ease:cubic-bezier(.2,.7,.2,1); --d-rapide:160ms; --d-base:240ms; --d-lente:600ms;
  /* Mise en page */
  --marge:clamp(20px,4.2vw,60px); --section-y:clamp(64px,3.5rem + 4vw,128px);
  /* Étoiles des notes et des avis : jaune Google, une seule couleur pour tout le site */
  --etoile:#FBBC04;
}

/* 2. Base ---------------------------------------------------------------- */
html{scroll-behavior:smooth}
body{font-family:var(--police-texte);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,h5,h6{font-family:var(--police-titre)}
[id]{scroll-margin-top:24px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
.pm-fond-nuit :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--ciel-300)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* 3. Surtitre (kicker) : Red Hat Display 700, 13 px, capitales espacées, filet devant
   Usage : classe CSS « pm-surtitre » sur un widget Titre (balise p ou span). */
.pm-surtitre,.pm-surtitre .elementor-heading-title{
  display:flex;align-items:center;gap:12px;margin:0;
  font:700 13px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pic-800);
}
.pm-surtitre .elementor-heading-title::before,.pm-surtitre:not(.elementor-widget)::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
.pm-surtitre--inverse .elementor-heading-title,.pm-surtitre--inverse:not(.elementor-widget){color:var(--ciel-300)}
.pm-surtitre--centre .elementor-heading-title{justify-content:center}

/* 4. Boutons — pilule + disque blanc contenant la flèche (signature du site)
   Usage : widget Bouton, classe « pm-btn » + variante. Icône : flèche, position « après ». */
.pm-btn .elementor-button{
  display:inline-flex;align-items:center;min-height:56px;padding:8px 8px 8px 24px;border-radius:var(--r-disque);
  font:700 16px/1.2 var(--police-titre);letter-spacing:.005em;text-decoration:none;
  transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease);
}
.pm-btn .elementor-button-content-wrapper{align-items:center;gap:12px}
.pm-btn .elementor-button-icon{
  width:40px;height:40px;border-radius:var(--r-disque);display:grid;place-items:center;flex:none;
  transition:transform var(--d-rapide) var(--ease);
}
.pm-btn .elementor-button-icon svg{width:20px;height:20px}
.pm-btn .elementor-button-icon .e-font-icon-svg{fill:currentColor}
.pm-btn .elementor-button:hover .elementor-button-icon{transform:translateX(3px)}
/* Action (Braise) : devis, appel, rendez-vous. Une seule par écran. */
.pm-btn--action .elementor-button{background:var(--braise-600);color:#fff}
.pm-btn--action .elementor-button:hover{background:var(--braise-700);color:#fff}
.pm-btn--action .elementor-button:active{background:var(--braise-800)}
.pm-btn--action .elementor-button-icon{background:#fff;color:var(--braise-600)}
/* Secondaire : contour Pic, disque Pic */
.pm-btn--secondaire .elementor-button{background:#fff;color:var(--pic-800);box-shadow:inset 0 0 0 1.5px var(--pic-800)}
.pm-btn--secondaire .elementor-button:hover{background:var(--pic-50);color:var(--pic-900);box-shadow:inset 0 0 0 2px var(--pic-900)}
.pm-btn--secondaire .elementor-button-icon{background:var(--pic-800);color:#fff}
/* Plein bleu (deuxième action quand une Braise est déjà visible) */
.pm-btn--bleu .elementor-button{background:var(--pic-800);color:#fff}
.pm-btn--bleu .elementor-button:hover{background:var(--pic-900);color:#fff}
.pm-btn--bleu .elementor-button-icon{background:#fff;color:var(--pic-800)}
/* Sur fond Nuit : contour blanc */
.pm-btn--inverse .elementor-button{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px #fff}
.pm-btn--inverse .elementor-button:hover{background:rgba(255,255,255,.1);color:#fff}
.pm-btn--inverse .elementor-button-icon{background:#fff;color:var(--pic-900)}
/* Tailles */
.pm-btn--m .elementor-button{min-height:48px;padding:7px 7px 7px 20px;font-size:15px}
.pm-btn--m .elementor-button-icon{width:34px;height:34px}
.pm-btn--m .elementor-button-icon svg{width:18px;height:18px}
.pm-btn--plein .elementor-button{width:100%;justify-content:space-between}
@media (max-width:767px){.pm-btn--plein-mobile .elementor-button{width:100%;justify-content:space-between}}

/* 5. Téléphone mis en avant */
.pm-tel{font:700 18px/1.2 var(--police-titre);color:inherit;text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.pm-tel:hover{text-decoration:underline;text-underline-offset:4px}
a.pm-tel,a.pm-tel:hover{color:inherit} /* garde la couleur du texte environnant, devant la couleur des liens du Kit (fond Nuit) */

/* 6. Statut d'ouverture ([pm_statut]) — rempli par pm-site.js */
.pm-statut{display:inline-flex;align-items:center;gap:8px}
.pm-statut__point{width:8px;height:8px;border-radius:var(--r-disque);background:var(--pierre-500);flex:none}
.pm-statut[data-etat="ouvert"] .pm-statut__point{background:var(--succes-700)}
.pm-fond-nuit .pm-statut[data-etat="ouvert"] .pm-statut__point{background:#3DBE7A}

/* 7. Horaires ([pm_horaires]) — le jour courant est marqué */
.pm-horaires{margin:0;display:grid}
.pm-horaires__ligne{display:flex;justify-content:space-between;gap:12px;padding:8px 0 8px 10px;border-top:1px solid var(--pierre-200)}
.pm-horaires__ligne dt,.pm-horaires__ligne dd{margin:0;font-size:15px}
.pm-horaires__ligne dd{font-variant-numeric:tabular-nums;text-align:right}
.pm-horaires__ligne.is-aujourdhui{box-shadow:inset 2px 0 0 var(--ciel-500)}
.pm-horaires__ligne.is-aujourdhui dt,.pm-horaires__ligne.is-aujourdhui dd{font-weight:700;color:var(--pic-900)}
.pm-fond-nuit .pm-horaires__ligne{border-color:#1C2B4D}
.pm-fond-nuit .pm-horaires__ligne.is-aujourdhui dt,.pm-fond-nuit .pm-horaires__ligne.is-aujourdhui dd{color:#fff}

/* 8. Photo « dormant » : filet blanc intérieur, comme le cadre d'une fenêtre (une fois par écran) */
.pm-dormant{position:relative}
.pm-dormant::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.42);pointer-events:none;z-index:2}

/* 9. Filet lumière (onglet actif, progression, haut de carte au survol) */
.pm-filet-lumiere{height:3px;background:var(--filet-lumiere)}

/* 10. Carte cliquable : survol = bordure Pic + ombre 2 + filet lumière + zoom photo */
.pm-carte{position:relative;background:#fff;border:1px solid var(--pierre-200);transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-base) var(--ease)}
.pm-carte::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--filet-lumiere);opacity:0;transition:opacity var(--d-rapide) var(--ease);z-index:2}
.pm-carte:hover{border-color:var(--pic-800);box-shadow:var(--om-2)}
.pm-carte:hover::before{opacity:1}
.pm-carte img{transition:transform var(--d-lente) var(--ease)}
.pm-carte:hover img{transform:scale(1.03)}
.pm-carte .pm-carte__lien::after{content:"";position:absolute;inset:0;z-index:3} /* rend toute la carte cliquable */

/* 11. Picto de famille dans son cadre carré (seul usage « encadré » d'une icône) */
.pm-picto{width:48px;height:48px;border:1px solid var(--pic-800);display:grid;place-items:center;color:var(--pic-800)}
.pm-picto svg{width:26px;height:26px}

/* 12. Badges */
.pm-badge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--r-disque);font:700 11px/1 var(--police-titre);letter-spacing:.12em;text-transform:uppercase}
.pm-badge--ouvert{background:var(--succes-100);color:var(--succes-700)}
.pm-badge--info{background:var(--ciel-100);color:var(--ciel-700)}
.pm-badge--nuit{background:var(--pic-900);color:#fff}

/* 13. Formulaires du thème enfant : champs pilule 56 px, libellé visible
   Les formulaires sont générés par le thème (codes courts) ; les sélecteurs .elementor-* couvrent aussi
   les champs stylés par le Kit. Structure attendue : .pm-form > .pm-champ > label + input/select/textarea + .pm-aide / .pm-erreur */
.pm-form .pm-champ{display:grid;gap:8px}
.pm-form .pm-champ>label{font:600 15px/1.3 var(--police-texte);color:var(--encre)}
.pm-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select){min-height:56px;padding:0 20px;border:1px solid var(--pierre-500);border-radius:var(--r-disque);background:#fff;font:400 17px var(--police-texte);color:var(--encre);width:100%}
.pm-form textarea{min-height:112px;padding:14px 20px;border:1px solid var(--pierre-500);border-radius:var(--r-zone);font:400 17px/1.5 var(--police-texte);width:100%}
.pm-form :is(input,select,textarea):hover{border-color:var(--encre)}
.pm-form :is(input,select,textarea):focus{border:2px solid var(--pic-800);box-shadow:0 0 0 3px #B9E4F6;outline:none}
.pm-form :is(input,select,textarea)[aria-invalid="true"]{border:2px solid var(--erreur-700)}
.pm-form .pm-aide{font-size:14px;color:var(--pierre-600)}
.pm-form .pm-erreur{display:flex;gap:8px;font-size:14px;color:var(--erreur-700)}
.pm-form input[type="checkbox"]{width:24px;height:24px;border-radius:var(--r-case);accent-color:var(--pic-800)}
.pm-form input[type="radio"]{width:24px;height:24px;accent-color:var(--pic-800)}
.pm-form .pm-piege{position:absolute!important;left:-9999px}
/* Tuiles de projet : <label class="pm-tuile"><input type="checkbox"><span class="pm-tuile__corps">…</span></label> */
.pm-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,180px),1fr));gap:10px}
.pm-tuile{position:relative;display:block;cursor:pointer}
.pm-tuile input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pm-tuile__corps{display:flex;align-items:center;gap:12px;min-height:64px;padding:0 14px;border:1px solid var(--pierre-200);border-radius:var(--r-tuile);background:#fff;font:700 15px/1.25 var(--police-titre);color:var(--pic-900);transition:border-color var(--d-rapide),background-color var(--d-rapide)}
.pm-tuile input:hover+.pm-tuile__corps{border-color:var(--pic-800)}
.pm-tuile input:checked+.pm-tuile__corps{border:2px solid var(--pic-800);background:var(--pic-50);padding:0 13px}
.pm-tuile input:focus-visible+.pm-tuile__corps{outline:3px solid var(--ciel-500);outline-offset:2px}
/* Ancien balisage Elementor (champs stylés par le Kit), conservé par compatibilité */
.pm-form .elementor-field-group>label{font:600 15px/1.3 var(--police-texte);color:var(--encre);margin-bottom:8px}
.pm-form .elementor-field-textual{min-height:56px;padding:0 20px;border:1px solid var(--pierre-500);border-radius:var(--r-disque);background:#fff;font:400 17px var(--police-texte);color:var(--encre)}
.pm-form textarea.elementor-field-textual{min-height:112px;padding:14px 20px;border-radius:var(--r-zone)}
.pm-form .elementor-field-textual:hover{border-color:var(--encre)}
.pm-form .elementor-field-textual:focus{border:2px solid var(--pic-800);box-shadow:0 0 0 3px #B9E4F6;outline:none}
.pm-form .elementor-field-textual[aria-invalid="true"]{border:2px solid var(--erreur-700)}
.pm-form .elementor-message-danger,.pm-form .elementor-error .elementor-message{color:var(--erreur-700)}
.pm-form .elementor-field-option input[type="checkbox"]{width:24px;height:24px;border-radius:var(--r-case);accent-color:var(--pic-800)}
.pm-form .elementor-field-option input[type="radio"]{width:24px;height:24px;accent-color:var(--pic-800)}

/* 14. En-tête : voir la section 20 (les règles « .pm-entete-js » de la première version ont été remplacées). */

/* 15. Barre d'action mobile : Appeler / Devis / Itinéraire (pm-site.js gère l'affichage)
   Usage : conteneur avec la classe « pm-barre-mobile » dans le modèle de pied de page. */
.pm-barre-mobile{position:fixed;left:0;right:0;bottom:0;z-index:45;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--pierre-200);box-shadow:0 -12px 32px -16px rgba(8,21,48,.28);transform:translateY(110%);transition:transform var(--d-base) var(--ease)}
.pm-barre-mobile.is-visible{transform:none}
@media (min-width:768px){.pm-barre-mobile{display:none!important}}
/* La place de la barre est réservée par le pied de page (section 19) : le bleu nuit continue dessous, sans bande blanche. */

/* 16. Menu mobile ouvert : la page derrière ne défile plus */
body.pm-menu-ouvert{overflow:hidden}

/* 17. Utilitaires */
.pm-fond-nuit{background:var(--pic-950);color:#fff}
.pm-fond-pierre{background:var(--pierre-50)}
.pm-texte-equilibre .elementor-heading-title{text-wrap:balance}
.pm-texte-lisible{text-wrap:pretty;max-width:720px}
.pm-chiffres{font-variant-numeric:tabular-nums}
.pm-visuellement-cache{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 18. Conteneurs Elementor : marges de page et respiration verticale
   Le Kit (Réglages du site > Mise en page) donne à chaque conteneur de premier niveau les marges latérales
   (60 / 32 / 20 px) et la respiration verticale (128 / 96 / 64 px). Les conteneurs imbriqués repartent de zéro :
   leur marge interne se règle au cas par cas dans Elementor. */
.e-con .e-con{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}

/* ==========================================================================
   19. Pied de page — parts/pied-de-page.php
   Toutes les règles sont préfixées par #pm-pied : elles passent ainsi devant les styles du Kit Elementor
   (titres, liens, boutons, champs), qui s'appliquent à toute la page.
   Points de rupture : mobile ≤ 767 px · tablette 768–1119 px · ordinateur ≥ 1120 px.
   Aucun texte sous 12 px. Toutes les couleurs viennent des jetons de la section 1,
   sauf 6 teintes locales déclarées ci-dessous.
   ========================================================================== */
#pm-pied{
  --pied-ligne:#1C2B4D; --pied-texte-2:#C9D3E3; --pied-texte-3:var(--inverse-2);
  --pied-verre:rgba(255,255,255,.04); --pied-anneau:inset 0 0 0 1px rgba(255,255,255,.1);
  --pied-ouvert:#3DBE7A; --pied-erreur:#FFA3B5; --pied-or:var(--etoile,#FBBC04);
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--pic-950);color:#fff;font-family:var(--police-texte);
}
#pm-pied a{color:#fff}
#pm-pied svg{display:block;flex:none}
#pm-pied :is(a,button,input):focus-visible{outline:3px solid var(--ciel-300);outline-offset:3px}

/* Fond photo très atténué */
#pm-pied .pm-pied__fond{position:absolute;inset:0;z-index:-1;pointer-events:none}
#pm-pied .pm-pied__fond-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;opacity:.24;mix-blend-mode:luminosity}
#pm-pied .pm-pied__fond::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,21,48,.55) 0%,rgba(8,21,48,.15) 35%,rgba(8,21,48,.35) 70%,#081530 100%)}

#pm-pied .pm-pied__conteneur{max-width:1440px;margin:0 auto;padding:88px 60px 0}

/* Surtitres */
#pm-pied .pm-pied__surtitre{display:flex;align-items:center;gap:12px;margin:0;font:700 12px/1.2 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-300)}
#pm-pied .pm-pied__surtitre::before{content:"";width:28px;height:1px;background:currentColor}
#pm-pied .pm-pied__surtitre--simple::before{display:none}
#pm-pied .pm-pied__mini-titre{margin:0;font:700 12px/1.2 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pied-texte-3)}

/* Disques (flèche dans un rond blanc, signature des boutons) */
#pm-pied .pm-pied__disque{width:40px;height:40px;border-radius:var(--r-disque);background:#fff;display:grid;place-items:center;flex:none;color:var(--braise-600)}
#pm-pied .pm-pied__disque svg{width:20px;height:20px}
#pm-pied .pm-pied__disque-contour{width:40px;height:40px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);display:grid;place-items:center;flex:none}
#pm-pied .pm-pied__disque-contour svg{width:18px;height:18px}

/* ---------- Ligne 1 : contact + showroom ---------- */
#pm-pied .pm-pied__haut{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px}
#pm-pied .pm-pied__carte{position:relative;border-radius:24px;background:var(--pied-verre);box-shadow:var(--pied-anneau)}

#pm-pied .pm-pied__contact{padding:36px;display:flex;flex-direction:column;gap:20px}
#pm-pied .pm-pied__titre{margin:-4px 0 0;font:700 32px/1.12 var(--police-titre);letter-spacing:-.015em;color:#fff;text-wrap:balance}

#pm-pied .pm-pied__tel{display:flex;align-items:center;gap:16px;width:fit-content;border-radius:var(--r-disque);text-decoration:none;transition:background var(--d-rapide) var(--ease)}
#pm-pied .pm-pied__tel:hover{background:rgba(255,255,255,.06);color:#fff}
#pm-pied .pm-pied__tel-disque{width:56px;height:56px;border-radius:var(--r-disque);background:#fff;display:grid;place-items:center;flex:none;color:var(--pic-800)}
#pm-pied .pm-pied__tel-disque svg{width:22px;height:22px}
#pm-pied .pm-pied__tel-corps{display:grid;gap:6px;min-width:0}
#pm-pied .pm-pied__tel-numero{font:700 36px/1 var(--police-titre);letter-spacing:-.015em;font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-pied .pm-pied__tel .pm-statut{font-size:14px;color:var(--pied-texte-2)}
#pm-pied .pm-statut[data-etat="ouvert"] .pm-statut__point{background:var(--pied-ouvert)}

#pm-pied .pm-pied__ou{display:flex;align-items:center;gap:14px;font:700 12px/1 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pied-texte-3)}
#pm-pied .pm-pied__ou::before,#pm-pied .pm-pied__ou::after{content:"";flex:1;height:1px;background:var(--pied-ligne)}

/* Formulaire de rappel (affiché seulement avec JavaScript) */
.pm-js-requis{display:none}
.pm-js #pm-pied .pm-js-requis{display:grid}
#pm-pied .pm-pied__rappel{gap:12px;margin:0}
#pm-pied .pm-pied__rappel-label{font:700 17px/1.3 var(--police-titre);color:#fff}
#pm-pied .pm-pied__rappel-ligne{display:flex;gap:10px}
#pm-pied .pm-pied__rappel-champ{flex:1 1 0%;min-width:0;height:56px;margin:0;padding:0 22px;border:0;border-radius:var(--r-disque);background:#fff;color:var(--encre);font:400 17px var(--police-texte);box-shadow:none}
#pm-pied .pm-pied__rappel-champ::placeholder{color:var(--pierre-600)}
#pm-pied .pm-pied__rappel-champ:focus{outline:none;box-shadow:0 0 0 3px var(--ciel-300)}
#pm-pied .pm-pied__rappel-champ[aria-invalid="true"]{box-shadow:0 0 0 3px var(--pied-erreur)}
#pm-pied .pm-pied__rappel-bouton{flex:none;height:56px;padding:0 8px 0 24px;border:0;border-radius:var(--r-disque);background:var(--braise-600);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;font:700 16px/1 var(--police-titre);letter-spacing:.005em;white-space:nowrap;cursor:pointer;transition:background var(--d-rapide) var(--ease)}
#pm-pied .pm-pied__rappel-bouton:hover{background:var(--braise-700)}
#pm-pied .pm-pied__rappel-bouton:active{background:var(--braise-800)}
#pm-pied .pm-pied__rappel-bouton[aria-disabled="true"]{background:var(--pied-ligne);color:#8E9BB5;cursor:not-allowed}
#pm-pied .pm-pied__rappel-bouton[aria-disabled="true"] .pm-pied__disque{background:#2A3A5C;color:#8E9BB5}
#pm-pied .pm-pied__rappel-bouton[aria-busy="true"]{opacity:.8;cursor:progress}
#pm-pied .pm-pied__rappel-aide{margin:0;font-size:13px;line-height:1.5;color:var(--pied-texte-3)}
#pm-pied .pm-pied__rappel-aide a{color:var(--pied-texte-2);text-decoration:underline;text-underline-offset:3px}
#pm-pied .pm-pied__rappel-erreur{margin:0;display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.45;color:var(--pied-erreur)}
#pm-pied .pm-pied__rappel-ok{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px;border-radius:16px;background:rgba(61,190,122,.12);box-shadow:inset 0 0 0 1px rgba(61,190,122,.35)}
#pm-pied .pm-pied__rappel-ok[hidden]{display:none}
#pm-pied .pm-pied__rappel-ok-disque{width:44px;height:44px;border-radius:var(--r-disque);background:#fff;display:grid;place-items:center;color:var(--succes-700)}
#pm-pied .pm-pied__rappel-ok strong{display:block;font:700 18px/1.3 var(--police-titre)}
#pm-pied .pm-pied__rappel-ok p{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--pied-texte-2)}
#pm-pied .pm-pied__ecrire{margin-top:auto;display:inline-flex;align-items:center;gap:10px;min-height:44px;width:fit-content;font:600 15px var(--police-texte);text-decoration:none}
#pm-pied .pm-pied__ecrire svg{width:18px;height:18px}
#pm-pied .pm-pied__ecrire:hover{color:var(--ciel-300);text-decoration:underline}

/* Showroom */
#pm-pied .pm-pied__showroom{overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
#pm-pied .pm-pied__plan{position:relative;display:block;min-height:100%;overflow:hidden;background:#0D1C3B;text-decoration:none}
#pm-pied .pm-pied__plan:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--ciel-300)}
#pm-pied .pm-pied__plan-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
#pm-pied .pm-pied__plan-halo{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:var(--r-disque);background:radial-gradient(closest-side,rgba(81,207,244,.34),rgba(81,207,244,.12) 60%,rgba(81,207,244,0))}
#pm-pied .pm-pied__plan-repere{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:var(--r-disque);background:#fff;display:grid;place-items:center;box-shadow:0 0 0 6px rgba(81,207,244,.35),0 12px 28px -8px rgba(0,0,0,.55)}
#pm-pied .pm-pied__plan-repere img{width:34px;height:34px}
#pm-pied .pm-pied__plan-nom{position:absolute;left:50%;top:calc(50% + 40px);transform:translateX(-50%);height:28px;padding:0 12px;display:inline-flex;align-items:center;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 13px/1 var(--police-titre);white-space:nowrap;box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
#pm-pied .pm-pied__plan-itineraire{position:absolute;left:14px;bottom:14px;height:40px;padding:0 16px 0 12px;display:inline-flex;align-items:center;gap:8px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 14px/1 var(--police-titre);box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
#pm-pied .pm-pied__plan-itineraire svg{width:16px;height:16px;color:var(--pic-800)}
#pm-pied .pm-pied__plan:hover .pm-pied__plan-itineraire{background:var(--pic-50)}
#pm-pied .pm-pied__plan-source{position:absolute;right:10px;bottom:10px;padding:3px 7px;border-radius:6px;background:rgba(8,21,48,.72);font-size:12px;line-height:1.3;color:var(--pied-texte-2)}

#pm-pied .pm-pied__showroom-infos{padding:32px;display:flex;flex-direction:column;gap:16px}
#pm-pied .pm-pied__adresse{margin:-6px 0 0;font:700 24px/1.2 var(--police-titre);font-style:normal}
#pm-pied .pm-pied__pastille-statut{width:fit-content;height:30px;padding:0 12px;display:inline-flex;align-items:center;border-radius:var(--r-disque);background:rgba(255,255,255,.08);font-size:14px;font-weight:600}
#pm-pied .pm-horaires__ligne{padding:8px 0 8px 10px;border-top:1px solid var(--pied-ligne);font-size:15px}
#pm-pied .pm-horaires__ligne dt,#pm-pied .pm-horaires__ligne dd{color:var(--pied-texte-3);font-weight:400}
#pm-pied .pm-horaires__ligne dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-pied .pm-horaires__ligne.is-aujourdhui{box-shadow:inset 2px 0 0 var(--ciel-300)}
#pm-pied .pm-horaires__ligne.is-aujourdhui dt,#pm-pied .pm-horaires__ligne.is-aujourdhui dd{color:#fff;font-weight:700}
#pm-pied .pm-pied__services{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
#pm-pied .pm-pied__services li{height:32px;padding:0 12px 0 8px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);font-size:13px;font-weight:600}
#pm-pied .pm-pied__services svg{width:16px;height:16px}
#pm-pied .pm-pied__rdv{margin-top:auto;height:48px;padding:0 6px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1.5px #fff;font:700 15px/1 var(--police-titre);text-decoration:none;white-space:nowrap}
#pm-pied .pm-pied__rdv:hover{background:rgba(255,255,255,.1);color:#fff}
#pm-pied .pm-pied__rdv .pm-pied__disque{width:36px;height:36px;color:var(--pic-800)}
#pm-pied .pm-pied__rdv .pm-pied__disque svg{width:18px;height:18px}

/* ---------- Ligne 2 : marque + navigation ---------- */
#pm-pied .pm-pied__milieu{margin-top:72px;display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px 48px}
#pm-pied .pm-pied__navs{display:contents}
#pm-pied .pm-pied__marque{display:flex;flex-direction:column;gap:20px}
#pm-pied .pm-pied__logo{display:block;width:fit-content}
#pm-pied .pm-pied__logo img{width:220px;height:auto;display:block}
#pm-pied .pm-pied__accroche{margin:0;max-width:360px;font-size:15px;line-height:1.6;color:var(--pied-texte-2);text-wrap:pretty}
#pm-pied .pm-pied__note{width:fit-content;max-width:100%;display:flex;align-items:center;gap:14px;padding:12px 16px 12px 12px;border-radius:18px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);text-decoration:none}
#pm-pied .pm-pied__note:hover{background:rgba(255,255,255,.1);color:#fff}
#pm-pied .pm-pied__note img{width:44px;height:44px;border-radius:var(--r-disque);flex:none}
#pm-pied .pm-pied__note-valeur{font:700 30px/1 var(--police-titre);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#pm-pied .pm-pied__note-detail{display:grid;gap:5px;font-size:13px;color:var(--pied-texte-2);white-space:nowrap}
#pm-pied .pm-pied__etoiles{display:flex;gap:2px;color:var(--pied-or)}
#pm-pied .pm-pied__etoiles svg{width:14px;height:14px}
#pm-pied .pm-pied__note > svg{width:18px;height:18px;margin-left:4px}
#pm-pied .pm-pied__labels{display:grid;gap:10px}
#pm-pied .pm-pied__labels ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
#pm-pied .pm-pied__labels a,#pm-pied .pm-pied__label{display:block;width:88px;height:54px;padding:6px;border-radius:12px;background:#fff}
#pm-pied .pm-pied__labels img{width:100%;height:100%;object-fit:contain}
#pm-pied .pm-pied__facebook{width:fit-content;display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:15px;font-weight:600;text-decoration:none}
#pm-pied .pm-pied__facebook:hover{color:var(--ciel-300)}

#pm-pied .pm-pied__nav{display:flex;flex-direction:column;gap:14px;min-width:0}
#pm-pied .pm-pied__nav-titre{margin:0}
#pm-pied .pm-pied__nav-bouton{display:block;width:100%;padding:0;border:0;background:none;color:var(--ciel-300);font:700 12px/1.2 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;text-align:left;cursor:default;pointer-events:none}
#pm-pied .pm-pied__nav-disque{display:none}
#pm-pied .pm-pied__liens{list-style:none;margin:0;padding:0;display:grid;gap:2px}
#pm-pied .pm-pied__liens a{min-height:34px;display:inline-flex;align-items:center;gap:6px;font-size:15px;line-height:1.35;text-decoration:none}
#pm-pied .pm-pied__liens a:hover{color:var(--ciel-300);text-decoration:underline}
#pm-pied .pm-pied__liens svg{width:14px;height:14px;opacity:.75}

/* ---------- Ligne 3 : zone ---------- */
#pm-pied .pm-pied__zone{margin-top:56px;padding:28px 0;border-top:1px solid var(--pied-ligne);display:flex;align-items:center;justify-content:space-between;gap:14px 40px}
#pm-pied .pm-pied__zone-texte{margin:0;max-width:880px;font-size:17px;line-height:1.65;color:var(--pied-texte-2);text-wrap:pretty}
#pm-pied .pm-pied__zone-texte a{color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:4px}
#pm-pied .pm-pied__zone-texte a:hover{color:var(--ciel-300);text-decoration-color:var(--ciel-300)}
#pm-pied .pm-pied__zone-lien{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;font:700 15px var(--police-titre);color:var(--ciel-300)!important;text-decoration:none;white-space:nowrap}
#pm-pied .pm-pied__zone-lien svg{width:18px;height:18px}
#pm-pied .pm-pied__zone-lien:hover{text-decoration:underline}

/* ---------- Ligne 4 : groupe ---------- */
#pm-pied .pm-pied__groupe{margin-top:12px}
#pm-pied .pm-pied__groupe-tete{display:flex;justify-content:space-between;align-items:baseline;gap:6px 16px;flex-wrap:wrap}
#pm-pied .pm-pied__groupe-tete p:last-child{margin:0;font-size:14px;color:var(--pied-texte-3)}
#pm-pied .pm-pied__groupe-liste{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#pm-pied .pm-pied__societe{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 20px 20px 22px;border-radius:18px;background:var(--pied-verre);box-shadow:var(--pied-anneau);text-decoration:none;transition:background var(--d-rapide) var(--ease)}
#pm-pied .pm-pied__societe:hover{background:rgba(255,255,255,.09);color:#fff}
#pm-pied .pm-pied__societe.is-ici{background:rgba(81,207,244,.08);box-shadow:inset 0 0 0 1px rgba(81,207,244,.45)}
#pm-pied .pm-pied__societe-tuile{width:52px;height:52px;border-radius:14px;background:#fff;display:grid;place-items:center;flex:none}
#pm-pied .pm-pied__societe-tuile img{width:40px;height:40px}
#pm-pied .pm-pied__societe.is-ici .pm-pied__societe-tuile img{width:36px;height:36px}
#pm-pied .pm-pied__societe-corps{display:grid;gap:4px;min-width:0;flex:1}
#pm-pied .pm-pied__societe-cle{display:flex;align-items:center;gap:8px;font:700 12px/1.2 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:var(--pied-texte-3)}
#pm-pied .pm-pied__societe.is-ici .pm-pied__societe-cle{color:var(--ciel-300)}
#pm-pied .pm-pied__societe.is-ici .pm-pied__societe-cle::before{content:"";width:7px;height:7px;border-radius:var(--r-disque);background:var(--ciel-300);flex:none}
#pm-pied .pm-pied__societe-nom{font:700 19px/1.25 var(--police-titre);letter-spacing:-.005em}
#pm-pied .pm-pied__societe-accroche{font-size:14px;color:var(--pied-texte-3)}
#pm-pied .pm-pied__societe-fleche{width:40px;height:40px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);display:grid;place-items:center;flex:none}
#pm-pied .pm-pied__societe-fleche svg{width:18px;height:18px}

/* ---------- Ligne 5 : bas de page ---------- */
#pm-pied .pm-pied__bas{margin-top:48px;padding:20px 0 28px;border-top:1px solid var(--pied-ligne);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;font-size:13px;color:var(--pied-texte-3)}
#pm-pied .pm-pied__bas p{margin:0}
#pm-pied .pm-pied__legal{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 20px}
#pm-pied .pm-pied__legal a{min-height:32px;display:inline-flex;align-items:center;color:var(--pied-texte-3);text-decoration:none}
#pm-pied .pm-pied__legal a:hover{color:#fff;text-decoration:underline}
#pm-pied .pm-pied__remonter{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none}
#pm-pied .pm-pied__remonter .pm-pied__disque-contour{width:32px;height:32px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
#pm-pied .pm-pied__remonter .pm-pied__disque-contour svg{width:16px;height:16px}
#pm-pied .pm-pied__remonter:hover{color:var(--ciel-300)}

/* ---------- Tablette ---------- */
@media (max-width:1119px){
  #pm-pied .pm-pied__conteneur{padding:72px 32px 0}
  #pm-pied .pm-pied__haut{grid-template-columns:1fr}
  #pm-pied .pm-pied__milieu{grid-template-columns:repeat(3,minmax(0,1fr))}
  #pm-pied .pm-pied__marque{grid-column:1/-1}
  #pm-pied .pm-pied__societe-fleche{display:none}
}

/* ---------- Mobile ---------- */
@media (max-width:767px){
  #pm-pied .pm-pied__fond-img{object-position:52% 40%;opacity:.2}
  #pm-pied .pm-pied__conteneur{padding:56px 20px 0}
  #pm-pied .pm-pied__haut{gap:16px}
  #pm-pied .pm-pied__contact{padding:24px 20px;gap:18px}
  #pm-pied .pm-pied__titre{font-size:26px}
  #pm-pied .pm-pied__tel{width:100%;padding:10px 20px 10px 10px;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
  #pm-pied .pm-pied__tel-disque{width:48px;height:48px}
  #pm-pied .pm-pied__tel-numero{font-size:26px}
  #pm-pied .pm-pied__rappel-ligne{flex-direction:column}
  #pm-pied .pm-pied__rappel-champ{flex:0 0 auto}
  #pm-pied .pm-pied__showroom{grid-template-columns:1fr}
  #pm-pied .pm-pied__plan{min-height:240px}
  #pm-pied .pm-pied__showroom-infos{padding:22px 20px 24px}
  #pm-pied .pm-pied__adresse{font-size:22px}
  #pm-pied .pm-pied__milieu{margin-top:48px;grid-template-columns:1fr;gap:32px}
  #pm-pied .pm-pied__logo img{width:190px}
  /* Accordéons */
  #pm-pied .pm-pied__navs{display:block;border-top:1px solid var(--pied-ligne)}
  #pm-pied .pm-pied__nav{gap:0;border-bottom:1px solid var(--pied-ligne)}
  .pm-js #pm-pied .pm-pied__nav-bouton{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fff;font-size:17px;letter-spacing:0;text-transform:none;cursor:pointer;pointer-events:auto}
  .pm-js #pm-pied .pm-pied__nav-disque{display:block;width:32px;height:32px;border-radius:var(--r-disque);flex:none;background:rgba(255,255,255,.1) url("../icones/plus-blanc.svg") center/16px no-repeat}
  .pm-js #pm-pied .pm-pied__nav-bouton[aria-expanded="true"] .pm-pied__nav-disque{background:#fff url("../icones/minus-nuit.svg") center/16px no-repeat}
  #pm-pied .pm-pied__liens{margin:0 0 14px}
  #pm-pied .pm-pied__liens a{min-height:44px;font-size:16px}
  #pm-pied .pm-pied__zone{margin-top:32px;padding:24px 0;flex-direction:column;align-items:flex-start}
  #pm-pied .pm-pied__zone-texte{font-size:16px}
  #pm-pied .pm-pied__groupe{margin-top:8px}
  #pm-pied .pm-pied__groupe-liste{grid-template-columns:1fr}
  #pm-pied .pm-pied__societe{padding:16px 16px 16px 18px}
  #pm-pied .pm-pied__societe-tuile{width:40px;height:40px;border-radius:11px}
  #pm-pied .pm-pied__societe-tuile img{width:31px;height:31px}
  #pm-pied .pm-pied__societe.is-ici .pm-pied__societe-tuile img{width:28px;height:28px}
  #pm-pied .pm-pied__societe-nom{font-size:17px;white-space:nowrap}
  #pm-pied .pm-pied__bas{margin-top:32px}
  #pm-pied .pm-pied__legal a{min-height:44px}
  body.pm-a-barre #pm-pied .pm-pied__bas{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){#pm-pied *{transition:none!important}}

/* Compléments d'intégration (absents de la maquette) */
#pm-pied [hidden]{display:none!important}
#pm-pied .pm-piege{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
#pm-pied .pm-pied__rappel-erreur svg{width:18px;height:18px;margin-top:1px}
#pm-pied .pm-pied__commune{color:#fff;font-weight:600}
#pm-pied .pm-pied__nav-titre{font-size:12px;line-height:1.2}

/* 20. En-tête « clair » — parts/en-tete.php · inc/entete.php · assets/js/pm-entete.js (18 octobre 2026, plan 2-plans/plan-entete-simplifie.md)
   et barre d'action mobile — parts/barre-mobile.php.
   Ordinateur ≥ 1100 px (paliers 1240 · 1320 · 1400), mobile et tablette < 1100 px (devis dans la ligne de 760 à 1099 px).
   Tous les sélecteurs de l'en-tête sont préfixés « #pm-entete » : le Kit Elementor stylise a, button, p et h2.
   L'en-tête ne se cache jamais : il passe en « is-compact » (pm-entete.js). Statut : pm-site.js (data-pm-statut). */

/* --- Défilement vers une ancre, barre d'action mobile, retour du rappel --- */
html{scroll-padding-top:100px}
@media (max-width:1099px){html{scroll-padding-top:80px}}
body.pm-menu-ouvert .pm-barre-mobile{z-index:55;transform:none}
@media (max-width:600px){body.admin-bar.pm-menu-ouvert #wpadminbar,body.admin-bar.pm-et-menu-ouvert #wpadminbar{position:fixed}}
#pm-barre{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px}
#pm-barre a{text-decoration:none}
#pm-barre a:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-barre svg{display:block;flex:none}
#pm-barre .pm-barre-mobile__lien{height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid var(--pierre-300);border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:600 13px/1 var(--police-texte)}
#pm-barre .pm-barre-mobile__lien svg{width:22px;height:22px;color:var(--pic-800)}
#pm-barre .pm-barre-mobile__devis{height:56px;padding:0 9px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:var(--r-disque);background:var(--braise-600);color:#fff;font:700 15px/1.1 var(--police-titre);letter-spacing:.005em}
#pm-barre .pm-barre-mobile__devis:active{background:var(--braise-800)}
#pm-barre .pm-barre-mobile__texte{min-width:0;text-wrap:balance}
#pm-barre .pm-barre-mobile__disque{width:38px;height:38px;border-radius:var(--r-disque);background:#fff;color:var(--braise-600);display:grid;place-items:center}
#pm-barre .pm-barre-mobile__disque svg{width:20px;height:20px}
@media (max-width:339px){#pm-barre .pm-barre-mobile__lien{font-size:12px}}
#pm-rappel-ok:focus,#pm-rappel-ok:focus-visible{outline:none}

/* --- Remise à zéro face au Kit Elementor --- */
#pm-entete a{color:inherit;text-decoration:none}
#pm-entete button{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;font:inherit;letter-spacing:normal;text-transform:none;min-height:0;-webkit-appearance:none;appearance:none;cursor:pointer}
#pm-entete p,#pm-entete h2,#pm-entete dl,#pm-entete dd{margin:0}
#pm-entete .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* --- En-tête --- */
#pm-entete{--pm-et-pad: 20px; --pm-et-gap: 16px; --pm-et-item: 9px; --pm-et-fs: 16px; --pm-et-logo: 40px; --pm-et-barre: 88px; position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) - 45px); z-index: 50; background: #FFFFFF; font-family: var(--police-texte); color: #1F1D1A; -webkit-font-smoothing: antialiased;}
#pm-entete *,#pm-entete *::before,#pm-entete *::after{box-sizing: border-box;}
#pm-entete svg{display: block; flex: none;}
#pm-entete a{text-decoration: none;}
#pm-entete :where(a, button):focus-visible{outline: 3px solid #2691D0; outline-offset: 2px;}
#pm-entete ul{list-style: none; margin: 0; padding: 0;}
#pm-entete .pm-et-in{max-width: 1440px; margin: 0 auto; padding: 0 var(--pm-et-pad);}
#pm-entete .pm-et-serre{display: none;}
#pm-entete .pm-et-xl{display: none;}
#pm-page .pm-et-evitement{position: absolute; left: 12px; top: -100px; z-index: 100; height: 48px; padding: 0 20px; display: inline-flex; align-items: center; border-radius: 999px; background: #0B2154; color: #FFFFFF !important; font: 700 16px var(--police-titre); text-decoration: none;}
#pm-page .pm-et-evitement:focus{top: 12px; outline: 3px solid #2691D0; outline-offset: 2px;}
#pm-contenu{display: block; height: 0; outline: none;}
#pm-entete .pm-et-point{width: 10px; height: 10px; border-radius: 999px; background: #A8A296;}
#pm-entete .pm-et-point[data-etat="ouvert"]{background: #1E7044;}
#pm-entete [data-pm-statut][data-etat="ouvert"]{color: #1E7044 !important;}
#pm-entete .pm-et-disque{width: 42px; height: 42px; border-radius: 999px; background: #E3EAF5; color: #0F3982; display: grid; place-items: center; flex: none;}
#pm-entete .pm-et-disque--36{width: 36px; height: 36px;}
#pm-entete .pm-et-picto{width: 36px; height: 36px; border: 1px solid #0F3982; color: #0F3982; display: grid; place-items: center; flex: none;}
#pm-entete .pm-et-pastille{width: 14px; height: 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(31,29,26,.35); flex: none;}
#pm-entete .pm-et-pastille--grand{width: 20px; height: 20px;}
#pm-entete .pm-et-pastille--pvc{background: #F4F4F1;}
#pm-entete .pm-et-pastille--alu{background: #A7ADB3;}
#pm-entete .pm-et-pastille--bois{background: #B07A4A;}
#pm-entete .pm-et-pastille--vide{box-shadow: none;}
#pm-entete .pm-et-mob{display: none;}
#pm-entete .pm-et-haut{background: #F7F5F1; border-bottom: 1px solid #E0DBD2;}
#pm-entete .pm-et-haut__in{height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 15px; color: #4A463F; white-space: nowrap;}
#pm-entete .pm-et-haut__g,#pm-entete .pm-et-haut__d{display: flex; align-items: center; gap: 18px; min-width: 0;}
#pm-entete .pm-et-haut a{display: inline-flex; align-items: center; gap: 7px; color: #4A463F;}
#pm-entete .pm-et-haut a:hover{color: #0F3982;}
#pm-entete .pm-et-haut svg{color: #0F3982;}
#pm-entete .pm-et-haut__adresse{color: #1F1D1A !important; font-weight: 600;}
#pm-entete .pm-et-haut__adresse .pm-et-xl{font-weight: 400; color: #4A463F;}
#pm-entete .pm-et-haut__bleu{color: #0F3982 !important; font-weight: 600;}
#pm-entete .pm-et-haut__bleu:hover{text-decoration: underline; text-underline-offset: 3px;}
#pm-entete .pm-et-haut strong{color: #0B2154; font-weight: 700;}
#pm-entete .pm-et-etoile svg{color: #F5B301;}
#pm-entete .pm-et-barre{position: relative; background: #FFFFFF; border-bottom: 1px solid #E0DBD2; transition: box-shadow 240ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-barre__in{height: var(--pm-et-barre); display: flex; align-items: center; gap: var(--pm-et-gap); transition: height 240ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-logo{display: block; flex: none; border-radius: 4px;}
#pm-entete .pm-et-logo img{display: block; height: var(--pm-et-logo); width: auto; transition: height 240ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-nav{height: 100%;}
#pm-entete .pm-et-nav > ul{display: flex; align-items: stretch; height: 100%; white-space: nowrap;}
#pm-entete .pm-et-nav > ul > li{display: flex;}
/* Entrées du menu en Red Hat Display, comme les boutons et le logotype (charte, 19 octobre 2026) */
#pm-entete .pm-et-nav a,#pm-entete .pm-et-nav__bouton{height: 100%; padding: 0 var(--pm-et-item); display: flex; align-items: center; gap: 8px; border: 0; background: none; font: 700 var(--pm-et-fs) var(--police-titre); letter-spacing: .005em; color: #0B2154; cursor: pointer; transition: background 160ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-nav a:hover,#pm-entete .pm-et-nav__bouton:hover{background: #F1F5FB; color: #0F3982;}
#pm-entete .pm-et-nav a:focus-visible,#pm-entete .pm-et-nav__bouton:focus-visible{outline-offset: -3px;}
#pm-entete .pm-et-nav__bouton svg{width: 18px; height: 18px; transition: transform 240ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-nav__bouton[aria-expanded="true"]{background: #F1F5FB;}
#pm-entete .pm-et-nav__bouton[aria-expanded="true"] svg{transform: rotate(180deg);}
#pm-entete .pm-et-nav li.is-actif,#pm-entete .pm-et-nav__produits:has([aria-expanded="true"]){box-shadow: inset 0 -3px 0 #2691D0;}
#pm-entete .pm-et-tel{margin-left: auto; display: flex; align-items: center; gap: 12px; flex: none; color: #0B2154; border-radius: 12px;}
#pm-entete .pm-et-tel:hover{color: #0F3982;}
#pm-entete .pm-et-tel__disque{position: relative; width: 48px; height: 48px; border-radius: 999px; background: #E3EAF5; color: #0F3982; display: none; place-items: center; flex: none;}
#pm-entete .pm-et-tel__disque .pm-et-point{position: absolute; top: 3px; right: 3px; width: 12px; height: 12px; box-shadow: 0 0 0 2px #FFFFFF;}
#pm-entete .pm-et-tel__t{display: grid; gap: 2px;}
#pm-entete .pm-et-tel__t strong{font: 700 21px/1 var(--police-titre); font-variant-numeric: tabular-nums; white-space: nowrap;}
#pm-entete .pm-et-tel__st{font-size: 13px; font-weight: 600; color: #4A463F; white-space: nowrap;}
#pm-entete .pm-et-devis{flex: none; height: 56px; padding: 0 6px 0 24px; display: inline-flex; align-items: center; gap: 14px; border-radius: 999px; background: #C84B11; color: #FFFFFF !important; font: 700 17px var(--police-titre); white-space: nowrap; transition: background 160ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-devis:hover{background: #A63D0C;}
#pm-entete .pm-et-devis:active{background: #8A3209;}
#pm-entete .pm-et-devis:focus-visible,#pm-entete .pm-et-menu:focus-visible,#pm-entete .pm-et-appeler:focus-visible,#pm-entete .pm-et-fermer:focus-visible,#pm-entete .pm-et-showroom__btns a:focus-visible,#pm-entete .pm-et-tout:focus-visible,#pm-entete .pm-et-devis-contour:focus-visible{outline: none; box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 5px #2691D0;}
#pm-entete .pm-et-devis__disque{width: 44px; height: 44px; border-radius: 999px; background: #FFFFFF; color: #C84B11; display: grid; place-items: center;}
#pm-entete.is-compact{--pm-et-barre: 72px; --pm-et-logo: 40px;}
#pm-entete.is-compact .pm-et-barre{box-shadow: 0 10px 28px -14px rgba(8,21,48,.28);}
#pm-entete .pm-et-mega{position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: #FFFFFF; border-top: 1px solid #E0DBD2; box-shadow: 0 32px 72px -24px rgba(8,21,48,.32); max-height: calc(100vh - var(--pm-et-barre) - 20px); overflow-y: auto; overscroll-behavior: contain;}
#pm-entete .pm-et-mega[hidden]{display: none;}
#pm-entete .pm-et-mega__in{padding-top: 24px; padding-bottom: 28px; display: grid; gap: 22px;}
#pm-entete .pm-et-mega__tete{display: flex; align-items: center; justify-content: space-between; gap: 16px;}
#pm-entete .pm-et-mega__q{margin: 0; font: 700 22px/1.2 var(--police-titre); color: #0B2154;}
#pm-entete .pm-et-fermer{height: 44px; padding: 0 6px 0 18px; border: 0; border-radius: 999px; background: #F7F5F1; display: inline-flex; align-items: center; gap: 10px; font: 700 15px var(--police-titre); color: #0B2154; cursor: pointer;}
#pm-entete .pm-et-fermer:hover{background: #EEEAE3;}
#pm-entete .pm-et-fermer > span{width: 32px; height: 32px; border-radius: 999px; background: #FFFFFF; display: grid; place-items: center;}
#pm-entete .pm-et-mega__familles{display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px;}
#pm-entete .pm-et-fam{display: flex; flex-direction: column; gap: 12px; min-width: 0;}
#pm-entete .pm-et-fam__tete{display: grid; gap: 12px; color: #0B2154; border-radius: 12px;}
#pm-entete .pm-et-fam__tete:hover{color: #0F3982;}
#pm-entete .pm-et-fam__tete:hover .pm-et-fam__photo img{transform: scale(1.03);}
#pm-entete .pm-et-fam__photo{position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: #EEEAE3;}
#pm-entete .pm-et-fam__photo img{width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms cubic-bezier(.2,.7,.2,1);}
#pm-entete .pm-et-fam__nom{display: flex; align-items: center; gap: 10px; font: 700 19px/1.2 var(--police-titre); text-wrap: balance;}
#pm-entete .pm-et-fam__types{border-top: 1px solid #E0DBD2;}
#pm-entete .pm-et-fam__types li{border-bottom: 1px solid #EEEAE3;}
#pm-entete .pm-et-fam__types a{min-height: 42px; padding: 6px 2px; display: flex; align-items: center; gap: 10px; color: #1F1D1A; font-size: 16px; line-height: 1.3;}
#pm-entete .pm-et-fam__types a:hover{color: #0F3982;}
#pm-entete .pm-et-fam__tout{margin-top: auto; min-height: 40px; display: inline-flex; align-items: center; gap: 8px; font: 700 15px var(--police-titre); color: #0F3982;}
#pm-entete .pm-et-fam__tout:hover{color: #0B2154; text-decoration: underline; text-underline-offset: 4px;}
#pm-entete .pm-et-fam.is-actif .pm-et-fam__nom{color: #0F3982;}
#pm-entete .pm-et-bandeau{padding: 6px; border-radius: 16px; background: #F7F5F1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;}
#pm-entete .pm-et-bandeau li{display: flex;}
#pm-entete .pm-et-bandeau a{flex: 1; min-height: 72px; padding: 12px 16px; display: flex; align-items: center; gap: 14px; border-radius: 12px; color: #0B2154;}
#pm-entete .pm-et-bandeau a:hover{background: #FFFFFF;}
#pm-entete .pm-et-bandeau .pm-et-disque{width: 44px; height: 44px;}
#pm-entete .pm-et-bandeau a > span:last-child{display: grid; gap: 2px; min-width: 0;}
#pm-entete .pm-et-bandeau strong{font: 700 16px/1.25 var(--police-titre);}
#pm-entete .pm-et-bandeau a > span:last-child span{font-size: 14px; line-height: 1.35; color: #4A463F;}
@media (min-width: 1240px){#pm-entete{--pm-et-pad: 32px; --pm-et-gap: 24px; --pm-et-item: 12px; --pm-et-fs: 16px; --pm-et-logo: 46px;}
#pm-entete.is-compact{--pm-et-logo: 40px;}
#pm-entete .pm-et-tel__disque{display: grid;}
#pm-entete .pm-et-mega__familles{gap: 24px;}}
@media (max-width: 1239.98px){#pm-entete .pm-et-large{display: none !important;}
#pm-entete .pm-et-barre .pm-et-devis{height: 52px; padding: 0 5px 0 20px; gap: 12px; font-size: 16px;}
#pm-entete .pm-et-barre .pm-et-devis__disque{width: 42px; height: 42px;}
#pm-entete .pm-et-serre{display: inline;}
#pm-entete .pm-et-haut__g,#pm-entete .pm-et-haut__d{gap: 16px;}}
@media (min-width: 1320px){#pm-entete{--pm-et-gap: 28px; --pm-et-item: 14px; --pm-et-fs: 17px;}}
@media (min-width: 1400px){#pm-entete{--pm-et-pad: 48px; --pm-et-gap: 40px; --pm-et-item: 16px;}
#pm-entete .pm-et-xl{display: inline;}
#pm-entete .pm-et-haut__g,#pm-entete .pm-et-haut__d{gap: 22px;}}
@media (max-width: 1099.98px){#pm-entete .pm-et-ordi{display: none;}
#pm-entete .pm-et-mob{display: block;}
#pm-entete .pm-et-bandeau-tel{height: 44px; padding: 0 12px; display: flex; align-items: center; justify-content: center; gap: 10px; background: #F7F5F1; border-bottom: 1px solid #E0DBD2; color: #0B2154; white-space: nowrap;}
#pm-entete .pm-et-bandeau-tel:focus-visible{outline: none; box-shadow: inset 0 0 0 3px #2691D0;}
#pm-entete .pm-et-bandeau-tel__disque{position: relative; width: 28px; height: 28px; border-radius: 999px; background: #E3EAF5; color: #0F3982; display: grid; place-items: center; flex: none;}
#pm-entete .pm-et-bandeau-tel__disque .pm-et-point{position: absolute; top: -1px; right: -1px; box-shadow: 0 0 0 2px #F7F5F1;}
#pm-entete .pm-et-bandeau-tel strong{font: 700 17px var(--police-titre); font-variant-numeric: tabular-nums;}
#pm-entete .pm-et-bandeau-tel__st{font-size: 14px; font-weight: 600; color: #4A463F; overflow: hidden; text-overflow: ellipsis;}
#pm-entete .pm-et-ligne{position: relative; z-index: 3; height: 68px; padding: 0 10px 0 14px; display: flex; align-items: center; gap: 8px; background: #FFFFFF; border-bottom: 1px solid #E0DBD2;}
#pm-entete .pm-et-ligne .pm-et-logo{margin-right: auto;}
#pm-entete .pm-et-ligne .pm-et-logo img{height: 32px;}
#pm-entete .pm-et-devis--tab{display: none; height: 48px; padding: 0 5px 0 18px; gap: 10px; font-size: 15px;}
#pm-entete .pm-et-devis--tab .pm-et-devis__disque{width: 38px; height: 38px;}
#pm-entete .pm-et-appeler{position: relative; flex: none; height: 48px; padding: 0 14px 0 12px; display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; background: #E3EAF5; color: #0F3982 !important; font: 700 15px var(--police-titre); white-space: nowrap;}
#pm-entete .pm-et-appeler:hover{background: #D6E1F1;}
#pm-entete .pm-et-appeler .pm-et-point{position: absolute; top: 5px; left: 26px; box-shadow: 0 0 0 2px #E3EAF5;}
#pm-entete .pm-et-menu{flex: none; height: 48px; padding: 0 5px 0 16px; border: 0; border-radius: 999px; background: #0B2154; color: #FFFFFF !important; display: inline-flex; align-items: center; gap: 8px; font: 700 15px var(--police-titre); cursor: pointer;}
#pm-entete .pm-et-menu[aria-expanded="true"]{background: #0F3982;}
#pm-entete .pm-et-menu__disque{width: 38px; height: 38px; border-radius: 999px; background: #FFFFFF; color: #0B2154; display: grid; place-items: center;}
#pm-entete .pm-et-ico-x,#pm-entete .pm-et-menu[aria-expanded="true"] .pm-et-ico-menu{display: none;}
#pm-entete .pm-et-menu[aria-expanded="true"] .pm-et-ico-x{display: block;}
html:not(.pm-js) #pm-entete .pm-et-menu:not(.pm-et-menu--sansjs),html.pm-js #pm-entete .pm-et-menu--sansjs{display: none;}
#pm-entete .pm-et-tiroir{position: fixed; left: 0; right: 0; top: var(--pm-et-tiroir-top, 112px); bottom: 0; z-index: 49; background: #FFFFFF; overflow-y: auto; overscroll-behavior: contain;}
#pm-entete .pm-et-tiroir[hidden],#pm-entete .pm-et-ecran[hidden]{display: none;}
#pm-entete .pm-et-tiroir__in{max-width: 640px; margin: 0 auto; padding: 16px 16px calc(120px + env(safe-area-inset-bottom));}
#pm-entete .pm-et-ecran{display: grid; gap: 26px;}
#pm-entete .pm-et-groupe{display: grid; gap: 8px;}
#pm-entete .pm-et-mini{margin: 0; padding: 4px 4px 0; font: 700 13px var(--police-titre); letter-spacing: .14em; text-transform: uppercase; color: #6B665D;}
#pm-entete .pm-et-vignettes{display: grid; gap: 8px;}
#pm-entete .pm-et-tiroir button{white-space: normal;}
#pm-entete .pm-et-vignette{width: 100%; min-height: 80px; padding: 10px; display: flex; align-items: center; gap: 14px; border: 0; border-radius: 14px; background: #F7F5F1; text-align: left; cursor: pointer; color: #0B2154; font: inherit;}
#pm-entete .pm-et-vignette:hover{background: #F1F5FB;}
#pm-entete .pm-et-vignette:focus-visible{outline: none; box-shadow: 0 0 0 3px #2691D0;}
#pm-entete .pm-et-vignette__photo{position: relative; width: 76px; height: 57px; border-radius: 10px; overflow: hidden; flex: none; background: #EEEAE3;}
#pm-entete .pm-et-vignette__photo img{width: 100%; height: 100%; object-fit: cover; display: block;}
#pm-entete .pm-et-vignette__t{flex: 1; min-width: 0; display: grid; gap: 3px;}
#pm-entete .pm-et-vignette__t strong{font: 700 18px/1.2 var(--police-titre);}
#pm-entete .pm-et-vignette__t span{font-size: 14px; line-height: 1.35; color: #4A463F;}
#pm-entete .pm-et-vignette__fl{width: 36px; height: 36px; border-radius: 999px; background: #FFFFFF; color: #0F3982; display: grid; place-items: center; flex: none;}
#pm-entete .pm-et-lignes{border-top: 1px solid #E0DBD2;}
#pm-entete .pm-et-lignes li{border-bottom: 1px solid #E0DBD2;}
#pm-entete .pm-et-lignes a{min-height: 66px; padding: 8px 4px; display: flex; align-items: center; gap: 14px; color: #0B2154;}
#pm-entete .pm-et-lignes a:hover{background: #F7F5F1;}
#pm-entete .pm-et-lignes a:focus-visible{outline: none; box-shadow: inset 0 0 0 3px #2691D0;}
#pm-entete .pm-et-lignes a > svg{color: #8A8479;}
#pm-entete .pm-et-lignes__t{flex: 1; min-width: 0; display: grid; gap: 2px;}
#pm-entete .pm-et-lignes__t strong{font: 700 17px/1.25 var(--police-titre);}
#pm-entete .pm-et-lignes__t span{font-size: 14px; line-height: 1.35; color: #4A463F;}
#pm-entete .pm-et-showroom{padding: 18px 16px; border-radius: 16px; background: #F1F5FB; display: grid; gap: 14px;}
#pm-entete .pm-et-showroom__tete{display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;}
#pm-entete .pm-et-showroom__tete > div{display: grid; gap: 3px;}
#pm-entete .pm-et-showroom__tete strong{font: 700 18px/1.25 var(--police-titre); color: #0B2154;}
#pm-entete .pm-et-showroom__tete > div span{font-size: 15px; color: #4A463F;}
#pm-entete .pm-et-badge{flex: none; padding: 5px 11px; border-radius: 999px; background: #EEEAE3; color: #4A463F; font: 700 13px var(--police-titre);}
#pm-entete .pm-et-badge[data-etat="ouvert"]{background: #E5F2EA;}
#pm-entete .pm-et-horaires{margin: 0; display: grid;}
#pm-entete .pm-et-horaires > div{display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px solid #D9E2F0; font-size: 15px; color: #4A463F;}
#pm-entete .pm-et-horaires dd{margin: 0; font-variant-numeric: tabular-nums;}
#pm-entete .pm-et-horaires .is-jour{color: #0B2154; font-weight: 700;}
#pm-entete .pm-et-showroom__btns{display: grid; grid-template-columns: 1fr 1fr; gap: 8px;}
#pm-entete .pm-et-showroom__btns a{height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; background: #FFFFFF; box-shadow: inset 0 0 0 1.5px #0F3982; color: #0F3982; font: 700 15px var(--police-titre);}
#pm-entete .pm-et-retour{width: 100%; height: 56px; padding: 0 4px; display: flex; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid #E0DBD2; background: none; text-align: left; font: 700 16px var(--police-titre); color: #0F3982; cursor: pointer;}
#pm-entete .pm-et-retour:focus-visible{outline: none; box-shadow: inset 0 0 0 3px #2691D0;}
#pm-entete .pm-et-famille{display: grid; gap: 12px;}
#pm-entete .pm-et-famille__photo{position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #EEEAE3;}
#pm-entete .pm-et-famille__photo img{width: 100%; height: 100%; object-fit: cover; display: block;}
#pm-entete .pm-et-famille h2{margin: 0; font: 700 28px/1.15 var(--police-titre); letter-spacing: -0.015em; color: #0B2154; outline: none;}
#pm-entete .pm-et-famille p{margin: 0; font-size: 16px; line-height: 1.5; color: #4A463F;}
#pm-entete .pm-et-tout{min-height: 64px; padding: 0 8px 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 14px; background: #0F3982; color: #FFFFFF !important; font: 700 17px var(--police-titre);}
#pm-entete .pm-et-tout:hover{background: #0B2154;}
#pm-entete .pm-et-tout > span{width: 44px; height: 44px; border-radius: 999px; background: #FFFFFF; color: #0F3982; display: grid; place-items: center; flex: none;}
#pm-entete .pm-et-devis-contour{height: 56px; padding: 0 6px 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 999px; background: #FFFFFF; box-shadow: inset 0 0 0 1.5px #0F3982; color: #0F3982 !important; font: 700 16px var(--police-titre);}
#pm-entete .pm-et-devis-contour:hover{background: #F1F5FB;}
#pm-entete .pm-et-devis-contour > span{width: 44px; height: 44px; border-radius: 999px; background: #0F3982; color: #FFFFFF; display: grid; place-items: center;}
#pm-entete .pm-et-plus{display: grid; gap: 4px;}
#pm-entete .pm-et-plus a{min-height: 52px; padding: 4px; display: flex; align-items: center; gap: 12px; color: #0F3982; font: 700 16px var(--police-titre);}
#pm-entete .pm-et-plus a:hover{color: #0B2154; text-decoration: underline; text-underline-offset: 4px;}
body.pm-et-menu-ouvert{overflow: hidden;}
body.pm-et-menu-ouvert .pm-barre-mobile{z-index: 55; transform: none !important;}}
@media (min-width: 760px) and (max-width: 1099.98px){#pm-entete .pm-et-devis--tab{display: inline-flex;}}
@media (max-width: 369.98px){#pm-entete .pm-et-ligne .pm-et-logo img{height: 28px;}
#pm-entete .pm-et-appeler{padding: 0 12px 0 10px;}}
@media (prefers-reduced-motion: reduce){#pm-entete *,#pm-entete *::before,#pm-entete *::after{transition: none !important;}}

/* --- Adaptations au site (plan validé le 18 octobre 2026) --- */
/* Pastille « mixte » (fenêtres aluminium-PVC, D3) */
#pm-entete .pm-et-pastille--mixte{background:linear-gradient(90deg,#A7ADB3 50%,#F4F4F1 50%)}
/* Bandeau téléphone mobile : séparateur devant le statut (format « bandeau » de pm-site.js) */
#pm-entete .pm-et-bandeau-tel__st::before{content:"· "}
/* Horaires de la carte showroom : code court [pm_horaires] (Réglages PM), jour du jour mis en avant par pm-site.js */
#pm-entete .pm-et-horaires .pm-horaires{margin:0;display:grid}
#pm-entete .pm-et-horaires .pm-horaires__ligne{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid #D9E2F0;font-size:15px;line-height:1.4;color:#4A463F}
#pm-entete .pm-et-horaires dt{font-weight:inherit}
#pm-entete .pm-et-horaires dd{font-variant-numeric:tabular-nums}
#pm-entete .pm-et-horaires .is-aujourdhui{color:#0B2154;font-weight:700}
/* D1 : sous 768 px, la barre d'action du bas porte déjà « Appeler » ; la ligne garde le logo et « Menu » */
@media (max-width:767.98px){#pm-entete .pm-et-appeler{display:none}}

/* ===== ACCUEIL · sections 21 et suivantes (assemblées depuis les fichiers de section, voir docs/journal-integration.md) ===== */
/* ==========================================================================
   21. Page d'accueil · socle commun aux sections (inc/accueil/socle.php)
   Tout est préfixé par « #pm-page » (identifiant du <body>) : le Kit Elementor stylise a, button, h1–h6,
   label et input (.elementor-kit-8 …) et Hello Elementor donne une bordure aux boutons ; l'identifiant
   fait passer nos règles devant, sans !important.
   Points de rupture des sections : mobile < 760 px · tablette 760–1119 px · ordinateur ≥ 1120 px.
   ========================================================================== */
#pm-page{
  /* Unité des tailles fluides. Les maquettes validées ont été capturées à 1440 px dans une fenêtre d'environ
     1063 px : leurs titres « clamp(…vw…) » y valent 73,8 % de la formule (H1 du héros 44,6 px, H2 34 px).
     On reproduit ce rendu. Pour appliquer les formules des fiches telles quelles : --pm-vw:1vw. */
  --pm-vw:.738vw;
  --pm-h2:clamp(34px,calc(var(--pm-vw)*3.2),48px);
  --pm-pad-y:112px; --pm-pad-x:60px;
  --pm-secondaire-nuit:#C9D2E1;
}
@media (max-width:1119.98px){#pm-page{--pm-pad-y:88px;--pm-pad-x:32px}}
@media (max-width:759.98px){#pm-page{--pm-h2:30px;--pm-pad-y:64px;--pm-pad-x:20px}}

#pm-page [hidden]{display:none!important}

/* --- Remise à zéro dans les blocs du thème (classe « pm-bloc » sur la racine de chaque code court).
       :where() garde une spécificité minimale : une seule classe de composant suffit ensuite. --- */
#pm-page :where(.pm-bloc){font:400 16px/1.5 var(--police-texte);color:var(--encre);letter-spacing:normal;text-align:left}
#pm-page :where(.pm-bloc) :where(h1,h2,h3,h4,h5,h6){margin:0;font-family:var(--police-titre);font-weight:700;font-size:inherit;line-height:1.2;letter-spacing:normal;color:var(--pic-900)}
#pm-page :where(.pm-bloc) :where(p,figure,blockquote,dl,dd,address){margin:0;font-style:normal}
#pm-page :where(.pm-bloc) :where(ul,ol){margin:0;padding:0;list-style:none}
#pm-page :where(.pm-bloc) :where(a){color:inherit;text-decoration:none}
#pm-page :where(.pm-bloc) :where(img,svg,picture){display:block;max-width:100%}
#pm-page :where(.pm-bloc) :where(img){height:auto;border-radius:0}
#pm-page :where(.pm-bloc) :where(svg){flex:none}
#pm-page :where(.pm-bloc) :where(button,[type="button"],[type="submit"]){margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit;text-transform:none;white-space:normal;cursor:pointer;transition:none;-webkit-appearance:none;appearance:none;user-select:auto}
#pm-page :where(.pm-bloc) :where(button):disabled{cursor:not-allowed}
#pm-page :where(.pm-bloc) :where(input,textarea,select){margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;line-height:normal;width:auto;box-shadow:none;transition:none}
#pm-page :where(.pm-bloc) :where(label){display:block;margin:0;font:inherit;color:inherit;line-height:inherit;vertical-align:baseline}
#pm-page :where(.pm-bloc) :where(fieldset){margin:0;padding:0;border:0;min-width:0}
#pm-page :where(.pm-bloc) :where(legend){padding:0;display:block;width:100%}
#pm-page :where(.pm-bloc) :where(figcaption){font:inherit;color:inherit;font-style:normal}
#pm-page :where(.pm-bloc) :where(strong,b){font-weight:700}
#pm-page :where(.pm-bloc) :where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:none}
#pm-page :where(.pm-bloc) :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px;box-shadow:none}
#pm-page :where(.pm-bloc--nuit,.pm-fond-nuit) :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--ciel-300)}

/* --- Sections ---
   Conteneurs Elementor de l'accueil : pleine largeur, marges internes à 0 dans Elementor.
   « pm-section--widgets » (sections 02, 03, 08) : en-tête en widgets + codes courts ; la marge vient d'ici.
   Les sections entièrement en code court posent leur propre marge sur leur racine. */
#pm-page .pm-section{scroll-margin-top:12px}
#pm-page .pm-section--widgets{display:block;padding:var(--pm-pad-y) var(--pm-pad-x)}
#pm-page .pm-section--widgets>*{max-width:1320px;margin-inline:auto;width:100%}
#pm-page .pm-section--widgets>.elementor-widget:not(:last-child){margin-block-end:0}
#pm-page .pm-conteneur{max-width:1320px;margin-inline:auto;width:100%}
/* Section sans contenu (ex. aucune actualité publiée) : le code court ajoute « pm-vide ». */
#pm-page .pm-section:has(.pm-vide){display:none}

/* --- En-tête de section : pm_entete_section() et widgets Elementor (classe « pm-entete-section ») --- */
#pm-page .pm-entete-section{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px 56px;align-items:end;padding:0}
#pm-page .pm-entete-section>*{display:grid;gap:14px;align-content:end;justify-items:start;min-width:0;padding:0}
#pm-page .pm-entete-section>:first-child{max-width:720px}
#pm-page .pm-entete-section>:nth-child(2){justify-self:end;max-width:440px;gap:16px}
#pm-page .pm-entete-section>:only-child{grid-column:1/-1}
#pm-page .pm-entete-section .elementor-widget{margin:0;width:auto;max-width:100%}
#pm-page .pm-titre-section,
#pm-page .pm-entete-section h2{margin:0;font:700 var(--pm-h2)/1.08 var(--police-titre);letter-spacing:-.02em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-entete-section--inverse .pm-titre-section,
#pm-page .pm-fond-nuit .pm-titre-section{color:#fff}
#pm-page .pm-chapo,
#pm-page .pm-chapo p{margin:0;font:400 18px/1.55 var(--police-texte);color:var(--pierre-700);max-width:60ch;text-wrap:pretty}
#pm-page .pm-entete-section--inverse .pm-chapo,
#pm-page .pm-fond-nuit .pm-chapo{color:var(--pm-secondaire-nuit)}
#pm-page .pm-chapo a{color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#pm-page .pm-chapo a:hover{color:var(--pic-900)}
@media (max-width:1119.98px){
  #pm-page .pm-entete-section{grid-template-columns:minmax(0,1fr);gap:16px}
  #pm-page .pm-entete-section>:first-child,
  #pm-page .pm-entete-section>:nth-child(2){justify-self:start;max-width:720px}
}
@media (max-width:759.98px){
  #pm-page .pm-chapo,#pm-page .pm-chapo p{font-size:17px}
}

/* --- Mini-titre (« Choisir par type », « Ce qui vous protège ») --- */
#pm-page .pm-mini-titre{margin:0;font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pierre-600)}

/* --- Lien fléché : pm_lien_fleche() et widget Bouton (classe « pm-lien-fleche ») --- */
#pm-page a.pm-lien-fleche,
#pm-page .pm-lien-fleche .elementor-button{display:inline-flex;align-items:center;gap:10px;min-height:36px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;font:600 15px/1.3 var(--police-texte);letter-spacing:0;color:var(--pic-800);text-decoration:none}
#pm-page a.pm-lien-fleche>span,
#pm-page .pm-lien-fleche .elementor-button-text{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#pm-page a.pm-lien-fleche>svg{width:16px;height:16px;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-lien-fleche .elementor-button-content-wrapper{align-items:center;gap:10px}
#pm-page .pm-lien-fleche .elementor-button-content-wrapper::after{content:"";width:16px;height:16px;flex:none;background:currentColor;transition:transform var(--d-rapide) var(--ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%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' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat}
#pm-page a.pm-lien-fleche:hover,
#pm-page .pm-lien-fleche .elementor-button:hover{color:var(--pic-900);background:none}
#pm-page a.pm-lien-fleche:hover>svg,
#pm-page .pm-lien-fleche .elementor-button:hover .elementor-button-content-wrapper::after{transform:translateX(3px)}
#pm-page .pm-fond-nuit a.pm-lien-fleche,
#pm-page a.pm-lien-fleche--inverse{color:#fff}
#pm-page .pm-fond-nuit a.pm-lien-fleche:hover,
#pm-page a.pm-lien-fleche--inverse:hover{color:var(--ciel-300)}

/* --- Bouton pilule : pm_bouton() ---
   <a|button class="pm-bouton pm-bouton--action"><span class="pm-bouton__texte">…</span><span class="pm-bouton__disque"><svg/></span></a>
   Variantes : --action (Braise, réservé au devis) · --bleu · --contour · --inverse (sur fond Nuit).
   Options : --m (48 px) · --plein (pleine largeur) · --sans-disque · .pm-bouton__avant (icône devant le texte). */
#pm-page .pm-bouton{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 8px 8px 24px;border:0;border-radius:var(--r-disque);font:700 16px/1.2 var(--police-titre);letter-spacing:.005em;text-align:left;text-decoration:none;white-space:normal;cursor:pointer;
  transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-bouton__disque{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-disque);flex:none;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-bouton__disque svg{width:20px;height:20px}
#pm-page .pm-bouton__avant{display:grid;place-items:center;flex:none}
#pm-page .pm-bouton__avant svg{width:20px;height:20px}
#pm-page .pm-bouton:hover .pm-bouton__disque{transform:translateX(3px)}
#pm-page .pm-bouton--sans-disque{justify-content:center;padding:8px 24px}
#pm-page .pm-bouton--plein{display:flex;width:100%}
#pm-page .pm-bouton--m{min-height:48px;padding:7px 7px 7px 20px;font-size:15px}
#pm-page .pm-bouton--m .pm-bouton__disque{width:34px;height:34px}
#pm-page .pm-bouton--m .pm-bouton__disque svg{width:18px;height:18px}
#pm-page .pm-bouton--m.pm-bouton--sans-disque{padding:7px 20px}
#pm-page .pm-bouton--action{background:var(--braise-600);color:#fff}
#pm-page .pm-bouton--action:hover{background:var(--braise-700);color:#fff}
#pm-page .pm-bouton--action:active{background:var(--braise-800)}
#pm-page .pm-bouton--action .pm-bouton__disque{background:#fff;color:var(--braise-600)}
#pm-page .pm-bouton--bleu{background:var(--pic-800);color:#fff}
#pm-page .pm-bouton--bleu:hover{background:var(--pic-900);color:#fff}
#pm-page .pm-bouton--bleu .pm-bouton__disque{background:#fff;color:var(--pic-800)}
#pm-page .pm-bouton--contour{background:#fff;color:var(--pic-800);box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page .pm-bouton--contour:hover{background:var(--pic-50);color:var(--pic-900);box-shadow:inset 0 0 0 2px var(--pic-900)}
#pm-page .pm-bouton--contour .pm-bouton__disque{background:var(--pic-800);color:#fff}
#pm-page .pm-bouton--inverse{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px #fff}
#pm-page .pm-bouton--inverse:hover{background:rgba(255,255,255,.1);color:#fff}
#pm-page .pm-bouton--inverse .pm-bouton__disque{background:#fff;color:var(--pic-900)}
#pm-page .pm-bouton:disabled,#pm-page .pm-bouton[aria-disabled="true"]{cursor:not-allowed;opacity:.7}
#pm-page .pm-bouton:disabled .pm-bouton__disque{transform:none}

/* --- Pilules de choix (onglets de filtre, cases à choix, sous-pages) ---
   <button type="button" class="pm-pilule" aria-pressed="false">Libellé</button>
   Active : aria-pressed="true", aria-checked="true", aria-selected="true" ou classe « is-active ».
   --picto : picto ou pastille devant le texte · --formulaire : 48 px. Ligne : .pm-pilules ; qui défile en mobile : .pm-pilules--defile. */
#pm-page .pm-pilule{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--pierre-300);border-radius:var(--r-disque);background:#fff;font:600 15px/1.2 var(--police-texte);color:var(--encre);text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:border-color var(--d-rapide) var(--ease),background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease)}
#pm-page .pm-pilule svg{width:18px;height:18px;color:var(--pic-800)}
#pm-page .pm-pilule--picto{padding-left:12px}
#pm-page .pm-pilule--formulaire{min-height:48px}
#pm-page .pm-pilule:hover{border-color:var(--pic-800);color:var(--encre)}
#pm-page .pm-pilule:is([aria-pressed="true"],[aria-checked="true"],[aria-selected="true"],.is-active){border-color:var(--pic-800);background:var(--pic-800);color:#fff}
#pm-page .pm-pilule:is([aria-pressed="true"],[aria-checked="true"],[aria-selected="true"],.is-active) svg{color:#fff}
#pm-page .pm-pilule:is(:disabled,[aria-disabled="true"]){border-color:var(--pierre-200);background:var(--pierre-100);color:var(--pierre-500);cursor:not-allowed}
#pm-page .pm-pilules{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:759.98px){
  #pm-page .pm-pilules--defile{flex-wrap:nowrap;margin-inline:-20px;padding-inline:20px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #pm-page .pm-pilules--defile::-webkit-scrollbar{display:none}
  #pm-page .pm-pilules--defile>*{flex:none;scroll-snap-align:start}
}

/* --- Pastilles de matière --- */
#pm-page .pm-pastille{display:inline-block;width:20px;height:20px;border-radius:var(--r-disque);flex:none}
#pm-page .pm-pilule .pm-pastille{width:14px;height:14px}
#pm-page .pm-pastille--pvc{background:#F4F4F1;box-shadow:inset 0 0 0 1px var(--pierre-400)}
#pm-page .pm-pastille--alu{background:#A7ADB3}
#pm-page .pm-pastille--bois{background:#B07A4A}

/* --- Champs des formulaires de l'accueil (rappel des zones, visite au showroom, devis) ---
   <div class="pm-champ"><label class="pm-champ__label" for="x">Téléphone</label>
     <div class="pm-champ__zone pm-champ__zone--icone"><svg/><input class="pm-champ__saisie" id="x" aria-describedby="x-erreur"></div>
     <p class="pm-champ__erreur" id="x-erreur" hidden>…</p></div> */
#pm-page .pm-champ{display:grid;gap:8px;min-width:0}
#pm-page .pm-champ__label{font:600 15px/1.3 var(--police-texte);color:var(--encre)}
#pm-page .pm-champ__label small{font-weight:400;font-size:14px;color:var(--pierre-600)}
#pm-page .pm-champ__zone{position:relative;display:block}
#pm-page .pm-champ__zone>svg{position:absolute;left:18px;top:50%;width:20px;height:20px;margin-top:-10px;color:var(--pierre-600);pointer-events:none}
#pm-page .pm-champ__saisie{display:block;width:100%;height:56px;padding:0 20px;border:1px solid var(--pierre-500);border-radius:var(--r-disque);background:#fff;font:400 17px/1.3 var(--police-texte);color:var(--encre);transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page textarea.pm-champ__saisie{height:auto;min-height:112px;padding:14px 20px;border-radius:var(--r-zone);line-height:1.5;resize:vertical}
#pm-page .pm-champ__zone--icone .pm-champ__saisie{padding-left:48px}
#pm-page .pm-champ__saisie::placeholder{color:var(--pierre-500);opacity:1}
#pm-page .pm-champ__saisie:hover{border-color:var(--encre)}
#pm-page .pm-champ__saisie:focus{outline:none;border-color:var(--pic-800);box-shadow:inset 0 0 0 1px var(--pic-800),0 0 0 3px #B9E4F6}
#pm-page .pm-champ__saisie[aria-invalid="true"]{border-color:var(--erreur-700);box-shadow:inset 0 0 0 1px var(--erreur-700)}
#pm-page .pm-champ__erreur{display:flex;align-items:flex-start;gap:8px;font:400 14px/1.4 var(--police-texte);color:var(--erreur-700)}
#pm-page .pm-champ__erreur svg{width:16px;height:16px;margin-top:2px}
#pm-page .pm-champ__aide{font:400 14px/1.4 var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-piege{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Mention sous un formulaire (cadenas + texte) */
#pm-page .pm-mention{display:flex;align-items:flex-start;gap:8px;font:400 13px/1.45 var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-mention svg{width:16px;height:16px;margin-top:1px}
#pm-page .pm-mention a{color:var(--pic-800);text-decoration:underline;text-underline-offset:3px}

/* --- Étoiles --- */
#pm-page .pm-etoiles{display:inline-flex;gap:2px;color:var(--etoile,#FBBC04)}
#pm-page .pm-etoiles svg{fill:currentColor;stroke:none}
/* Étoiles de la note moyenne (pm_etoiles_note) : dernière étoile remplie au prorata. Héros, section Avis, pied de page. */
#pm-page .pm-etoile{position:relative;display:inline-flex;flex:none;line-height:0}
#pm-page .pm-etoile__fond{display:inline-flex;opacity:.3}
#pm-page .pm-etoile__plein{position:absolute;top:0;bottom:0;left:0;display:flex;overflow:hidden}
#pm-page .pm-etoile__plein svg{flex:none}

/* --- Affichage selon la largeur --- */
@media (min-width:760px){#pm-page .pm-mobile{display:none!important}}
@media (max-width:759.98px){#pm-page .pm-sauf-mobile{display:none!important}}
@media (min-width:1120px){#pm-page .pm-sauf-ordinateur{display:none!important}}
@media (max-width:1119.98px){#pm-page .pm-ordinateur{display:none!important}}

/* --- Sans JavaScript : les éléments qui en dépendent sont masqués, les secours affichés --- */
html:not(.pm-js) #pm-page .pm-avec-js{display:none!important}
html.pm-js #pm-page .pm-sans-js{display:none!important}

/* --- Suggestions de communes (PM.communes.combobox) : le <ul> est placé dans un parent en position relative --- */
#pm-page .pm-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--pierre-200);border-radius:16px;box-shadow:var(--om-2);max-height:320px;overflow:auto;text-align:left}
#pm-page .pm-suggestion{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:44px;padding:10px 14px;border-radius:10px;font:600 15px/1.3 var(--police-texte);color:var(--encre);cursor:pointer}
#pm-page .pm-suggestion__info{font-weight:400;font-size:13px;color:var(--pierre-600);white-space:nowrap;font-variant-numeric:tabular-nums}
#pm-page .pm-suggestion:hover,#pm-page .pm-suggestion[aria-selected="true"]{background:var(--pic-50)}

/* ==========================================================================
   22. Accueil · section 01 « Héros » — [pm_hero] (inc/accueil/hero.php, parts/accueil/hero.php, pm-hero.js)
   ≥ 760 px : héros centré sans formulaire (19 octobre 2026, bloc « Ordinateur et tablette » plus bas).
   < 760 px : version « boutons » (photo de 300 px en haut, texte centré, boutons pleine largeur).
   ========================================================================== */
#pm-page .pm-hero__racine{padding:0 20px 20px;background:#fff;color:#fff}
#pm-page .pm-hero__cadre{position:relative;display:flex;flex-direction:column;min-height:760px;border-radius:0 0 16px 16px;overflow:hidden;background:#13254A}

/* Photos : superposées, la photo affichée au-dessus, la précédente en dessous pendant le fondu */
#pm-page .pm-hero__photos{position:absolute;inset:0;z-index:0;isolation:isolate}
#pm-page .pm-hero__photo{position:absolute;inset:0;opacity:0;z-index:1}
#pm-page .pm-hero__photo.is-dessous{opacity:1;z-index:2}
#pm-page .pm-hero__photo.is-active{opacity:1;z-index:3}
#pm-page .pm-hero__photos.est-anime .pm-hero__photo.is-active{transition:opacity 1200ms cubic-bezier(.4,0,.2,1)}
#pm-page .pm-hero__photo picture,#pm-page .pm-hero__photo img{display:block;width:100%;height:100%}
#pm-page .pm-hero__photo img{object-fit:cover}
#pm-page .pm-hero__voile{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(0deg,rgba(8,21,48,.45) 0%,rgba(8,21,48,0) 18%),linear-gradient(90deg,rgba(8,21,48,.9) 0%,rgba(8,21,48,.82) 40%,rgba(8,21,48,.62) 62%,rgba(8,21,48,.55) 100%)}
#pm-page .pm-hero__dormant{position:absolute;inset:16px;z-index:0;border:1px solid rgba(255,255,255,.42);pointer-events:none}

/* Commandes du diaporama */
#pm-page .pm-hero__commandes{position:absolute;top:30px;right:30px;z-index:4;display:flex;align-items:center;height:44px;padding-left:6px;border-radius:var(--r-disque);background:rgba(8,21,48,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
#pm-page .pm-hero__point{display:grid;place-items:center;min-width:28px;height:44px;border-radius:var(--r-disque)}
#pm-page .pm-hero__point span{display:block;width:10px;height:6px;border-radius:var(--r-disque);background:rgba(255,255,255,.5);transition:width 300ms var(--ease)}
#pm-page .pm-hero__point[aria-current="true"] span{width:22px;background:#fff}
#pm-page .pm-hero__pause{display:grid;place-items:center;width:44px;height:44px;padding:6px;border-radius:var(--r-disque)}
#pm-page .pm-hero__pause-disque{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-disque);background:#fff;color:var(--pic-950)}
#pm-page .pm-hero__pause-disque svg{fill:currentColor}
#pm-page .pm-hero__point:focus-visible,#pm-page .pm-hero__pause:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ciel-300)}

/* Contenu */
#pm-page .pm-hero__contenu{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:72px 72px 48px}
#pm-page .pm-hero__texte{flex:0 1 560px;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:22px}
#pm-page .pm-hero__surtitre{display:flex;align-items:center;gap:14px;font:700 13px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-300)}
#pm-page .pm-hero__surtitre::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
#pm-page .pm-hero__titre{max-width:560px;font:700 clamp(44px,calc(var(--pm-vw)*4.2),60px)/1.03 var(--police-titre);letter-spacing:-.025em;color:#fff;text-wrap:balance}
#pm-page .pm-hero__chapo{max-width:520px;font:400 20px/1.5 var(--police-texte);color:#E4E9F2;text-wrap:pretty}
#pm-page .pm-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:8px}
#pm-page .pm-hero__tel{position:relative;display:inline-flex;align-items:center;gap:14px;height:56px;padding:0 24px 0 7px;border:1.5px solid rgba(255,255,255,.85);border-radius:var(--r-disque);background:rgba(8,21,48,.25);color:#fff;font:700 18px/1 var(--police-titre);font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-hero__tel:hover{background:rgba(255,255,255,.12);color:#fff}
#pm-page .pm-hero__tel-disque{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-disque);background:#fff;color:var(--pic-800);flex:none}
#pm-page .pm-hero__tel-point{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:var(--r-disque);background:var(--pierre-400);box-shadow:0 0 0 2px #fff}
#pm-page .pm-hero__tel-point[data-etat="ouvert"]{background:#3DBE7A}
/* Numéro et statut (statut : ordinateur seulement). En mobile, l'enveloppe s'efface : le numéro reste centré dans le bouton. */
#pm-page .pm-hero__tel-textes{display:contents}
#pm-page .pm-hero__statut{font:400 15px/1.4 var(--police-texte);color:#E4E9F2}
#pm-page .pm-hero__note{display:flex;align-items:center;gap:8px;font:400 15px/1.4 var(--police-texte);color:#E4E9F2}
/* Étoiles du héros : couleur commune --etoile (plus de blanc). */
#pm-page .pm-hero__note strong{color:#fff}
#pm-page .pm-hero__tel:focus-visible,#pm-page .pm-hero__devis:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pic-950),0 0 0 5px var(--ciel-300)}

/* Bouton devis (mobile et, depuis le 19 octobre 2026, ordinateur ; la carte de devis du héros est retirée) */
#pm-page .pm-hero__devis{display:flex;align-items:center;justify-content:space-between;gap:14px;height:60px;padding:0 8px 0 26px;border-radius:var(--r-disque);background:var(--braise-600);color:#fff;font:700 17px/1 var(--police-titre);letter-spacing:.005em;white-space:nowrap;box-shadow:0 18px 36px -18px rgba(200,75,17,.8);transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-hero__devis:hover{background:var(--braise-700);color:#fff}
#pm-page .pm-hero__devis:active{background:var(--braise-800)}
#pm-page .pm-hero__devis-disque{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-disque);background:#fff;color:var(--braise-600);flex:none}

/* Preuves */
#pm-page .pm-hero__preuves{position:relative;z-index:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:0 24px;border-top:1px solid rgba(255,255,255,.2);background:rgba(8,21,48,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#pm-page .pm-hero__preuves li+li{border-left:1px solid rgba(255,255,255,.18)}
#pm-page .pm-hero__preuve{display:flex;align-items:center;gap:14px;height:100%;min-height:76px;padding:14px 24px;color:#fff}
#pm-page .pm-hero__preuve:hover{background:rgba(255,255,255,.06);color:#fff}
#pm-page .pm-hero__preuve:focus-visible{outline:3px solid var(--ciel-300);outline-offset:-3px}
#pm-page .pm-hero__preuve-picto{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.4);border-radius:var(--r-disque);flex:none}
#pm-page .pm-hero__preuve-texte{display:grid;gap:2px;min-width:0}
#pm-page .pm-hero__preuve-titre{font:700 15px/1.25 var(--police-titre);white-space:nowrap}
#pm-page .pm-hero__preuve-sous{font:400 13px/1.3 var(--police-texte);color:var(--pm-secondaire-nuit);white-space:nowrap}

/* Ordinateur étroit et tablette : marges réduites, preuves en 2 × 2 ; sous 1000 px la carte passe sous le texte */
@media (max-width:1239.98px){
  #pm-page .pm-hero__contenu{padding:64px 48px 44px;gap:32px}
  #pm-page .pm-hero__preuves{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}
  #pm-page .pm-hero__preuves li+li{border-left:0}
  #pm-page .pm-hero__preuves li:nth-child(even){border-left:1px solid rgba(255,255,255,.18)}
  #pm-page .pm-hero__preuves li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.18)}
  #pm-page .pm-hero__preuve{padding:14px 32px}
}
@media (max-width:999.98px){
  #pm-page .pm-hero__contenu{flex-direction:column;align-items:flex-start;justify-content:center;padding:96px 40px 40px}
  #pm-page .pm-hero__texte{flex:0 0 auto}
}

/* Ordinateur et tablette (≥ 760 px) : héros centré, sans formulaire (19 octobre 2026, dossier « livraison-heros-ordinateur »,
   plan 2-plans/plan-heros-ordinateur.md). Tout est sous min-width : le mobile (< 760 px) ne change pas. Ce bloc vient après
   les paliers 1 240 et 1 000 px ci-dessus, qu'il remplace pour la mise en page. */
@media (min-width:760px){
  #pm-page .pm-hero__cadre{min-height:780px}
  /* Voile renforcé deux fois le 19 octobre 2026 (demande du client, meilleure lisibilité) : dossier .6 / .62-.52-.82, puis .7 / .7-.62-.88 */
  #pm-page .pm-hero__voile{background:radial-gradient(ellipse 70% 66% at 50% 44%,rgba(8,21,48,.78) 0%,rgba(8,21,48,0) 82%),linear-gradient(180deg,rgba(8,21,48,.76) 0%,rgba(8,21,48,.7) 45%,rgba(8,21,48,.92) 100%)}
  #pm-page .pm-hero__dormant{border-color:rgba(255,255,255,.32);border-radius:10px}
  #pm-page .pm-hero__contenu{order:1;flex:1;flex-direction:row;align-items:center;justify-content:center;gap:0;padding:104px 48px 32px}
  #pm-page .pm-hero__texte{flex:0 1 900px;max-width:900px;align-items:center;gap:20px;text-align:center}
  #pm-page .pm-hero__surtitre{justify-content:center;gap:12px;font-size:14px;line-height:1.2;white-space:nowrap}
  #pm-page .pm-hero__surtitre::after{content:"";width:28px;height:1px;background:currentColor;flex:none}
  #pm-page .pm-hero__titre{max-width:none;font-size:clamp(48px,calc(var(--pm-vw)*4.6),66px);line-height:1.04}
  #pm-page .pm-hero__chapo{max-width:720px;color:#E3EAF5}
  #pm-page .pm-hero__actions{justify-content:center;gap:12px;margin-top:14px}
  #pm-page .pm-hero__devis{height:64px;padding:0 6px 0 26px;gap:16px;font-size:18px;box-shadow:0 18px 40px -16px rgba(200,75,17,.7)}
  #pm-page .pm-hero__devis-court{display:none}
  #pm-page .pm-hero__devis-disque{width:50px;height:50px}
  #pm-page .pm-hero__tel{height:64px;gap:12px;padding:0 24px 0 7px;border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.08)}
  #pm-page .pm-hero__tel:hover{background:rgba(255,255,255,.16)}
  #pm-page .pm-hero__tel-disque{width:50px;height:50px;color:var(--pic-800)}
  #pm-page .pm-hero__tel-textes{display:grid;gap:3px;text-align:left}
  #pm-page .pm-hero__tel-numero{font-size:20px;line-height:1}
  #pm-page .pm-hero__statut{font:600 13px/1.2 var(--police-texte);color:#C9D2E1;white-space:nowrap}
  #pm-page .pm-hero__statut[data-etat="ouvert"]{color:#8FE0B0}
  #pm-page .pm-hero__note{flex-wrap:wrap;justify-content:center;gap:8px 12px;font-size:16px;color:#E3EAF5}
  #pm-page .pm-hero__note-plus{display:inline-flex;align-items:center;gap:12px}
  #pm-page .pm-hero__sep{width:4px;height:4px;border-radius:var(--r-disque);background:rgba(255,255,255,.5);flex:none}
  #pm-page .pm-hero__familles{display:grid;justify-items:center;gap:12px;width:100%;margin-top:12px}
  #pm-page .pm-hero__familles-titre{font:700 14px/1.2 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:#C9D2E1}
  #pm-page .pm-hero__familles ul{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0;padding:0;list-style:none}
  #pm-page .pm-hero__famille{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 8px;border-radius:var(--r-disque);background:rgba(8,21,48,.45);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);color:#fff;font:700 16px/1 var(--police-titre);white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease)}
  #pm-page .pm-hero__famille:hover{background:#fff;color:var(--pic-900)}
  #pm-page .pm-hero__famille:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #fff,0 0 0 3px var(--ciel-300)}
  #pm-page .pm-hero__famille-disque{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-disque);background:#fff;color:var(--pic-800);flex:none}
  /* Points et pause : sous le contenu, à droite, au-dessus des garanties */
  #pm-page .pm-hero__commandes{position:relative;top:auto;right:auto;order:2;align-self:flex-end;height:44px;margin:0 40px 20px;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  #pm-page .pm-hero__point{min-width:24px}
  #pm-page .pm-hero__point span{width:10px;height:10px}
  #pm-page .pm-hero__point[aria-current="true"]{min-width:34px}
  #pm-page .pm-hero__point[aria-current="true"] span{width:24px}
  #pm-page .pm-hero__pause{margin-left:10px;padding:0;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
  #pm-page .pm-hero__pause:hover{background:rgba(255,255,255,.24)}
  #pm-page .pm-hero__pause-disque{background:none;color:#fff}
  /* Garanties : pictos cerclés Ciel 300 ; 4 colonnes à partir de 1 100 px, 2 × 2 en dessous */
  #pm-page .pm-hero__preuves{order:3;border-top-color:rgba(255,255,255,.16);background:rgba(8,21,48,.62)}
  #pm-page .pm-hero__preuve{justify-content:center;padding:18px 20px}
  #pm-page .pm-hero__preuve-picto{width:44px;height:44px;border:0;box-shadow:inset 0 0 0 1.5px var(--ciel-300);color:var(--ciel-300)}
  #pm-page .pm-hero__preuve-titre{font-size:16px}
  #pm-page .pm-hero__preuve-sous{font-size:14px;color:#C9D2E1}
}
@media (min-width:1100px){
  #pm-page .pm-hero__preuves{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(0,1fr);padding:0 24px}
  #pm-page .pm-hero__preuves li:nth-child(n){border-top:0;border-left:0}
  #pm-page .pm-hero__preuves li:nth-child(n+2){border-left:1px solid rgba(255,255,255,.14)}
}
@media (min-width:760px) and (max-width:1099.98px){
  #pm-page .pm-hero__contenu{padding:88px 32px 28px}
  #pm-page .pm-hero__surtitre{font-size:12px}
  #pm-page .pm-hero__preuve{padding:14px 20px}
}

/* Mobile : version « boutons » */
@media (max-width:759.98px){
  #pm-page .pm-hero__racine{padding:0}
  #pm-page .pm-hero__cadre{min-height:0;border-radius:0;background:var(--pic-950)}
  #pm-page .pm-hero__photos,#pm-page .pm-hero__voile{bottom:auto;height:300px}
  #pm-page .pm-hero__voile{background:linear-gradient(180deg,rgba(8,21,48,.2) 0%,rgba(8,21,48,.04) 34%,rgba(8,21,48,.5) 70%,#081530 100%)}
  #pm-page .pm-hero__dormant{inset:10px;bottom:auto;height:228px}
  #pm-page .pm-hero__commandes{top:18px;right:18px}
  #pm-page .pm-hero__contenu{display:block;padding:252px 20px 28px}
  #pm-page .pm-hero__texte{align-items:center;gap:18px;text-align:center}
  #pm-page .pm-hero__surtitre::after{content:"";width:28px;height:1px;background:currentColor;flex:none}
  #pm-page .pm-hero__titre{max-width:none;font-size:40px;line-height:1.02}
  #pm-page .pm-hero__chapo{max-width:32ch;font-size:17px;text-wrap:balance}
  #pm-page .pm-hero__actions{justify-content:center;gap:12px;width:100%;margin-top:6px}
  #pm-page .pm-hero__devis,#pm-page .pm-hero__tel{position:relative;flex:1 1 100%;min-width:0;height:60px}
  #pm-page .pm-hero__devis{justify-content:center;padding:0 56px;font-size:16px;box-shadow:0 18px 36px -16px rgba(200,75,17,.75)}
  #pm-page .pm-hero__devis-texte{flex:1;min-width:0;text-align:center}
  #pm-page .pm-hero__devis .pm-hero__devis-disque{position:absolute;top:8px;right:8px}
  #pm-page .pm-hero__devis-court{display:none}
  #pm-page .pm-hero__tel{padding:0 64px 0 8px;letter-spacing:.01em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  #pm-page .pm-hero__tel-disque{width:42px;height:42px}
  #pm-page .pm-hero__tel-numero{flex:1;text-align:center}
  #pm-page .pm-hero__note{justify-content:center}
  #pm-page .pm-hero__gratuit{margin-top:-10px;font:400 15px/1.4 var(--police-texte);color:#E4E9F2}
  #pm-page .pm-hero__preuve{flex-direction:column;justify-content:flex-start;gap:8px;padding:16px 10px;text-align:center}
  #pm-page .pm-hero__preuve-picto{width:36px;height:36px}
  #pm-page .pm-hero__preuve-picto svg{width:18px;height:18px}
  #pm-page .pm-hero__preuve-titre{font-size:14px;white-space:normal;text-wrap:balance}
  #pm-page .pm-hero__preuve-sous{font-size:12px;white-space:normal}
}
@media (max-width:363.98px){
  #pm-page .pm-hero__devis-long{display:none}
  #pm-page .pm-hero__devis-court{display:inline}
}

/* ===== 23. Accueil · Produits et bandeau conseil (inc/accueil/produits.php, parts/accueil/produits.php, parts/blocs/conseil.php ; version ordinateur des cartes : assets/css/pm-accueil-produits.css) ===== */

/* --- [pm_produits] : question et tuiles (mobile) ---
   31 octobre 2026 : à partir de 760 px, la section affiche 5 cartes famille et une bande conseil
   (assets/css/pm-accueil-produits.css, chargée sur l'accueil seulement) ; onglets, panneaux, photo en fondu et fiche modale
   retirés avec assets/js/pm-produits.js. Sous 760 px : question + tuiles, liens directs vers les pages des familles. */
#pm-page .pm-produits{margin-top:44px}
#pm-page .pm-produits__question{font:700 20px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-produits__tuiles{display:none}

/* Mobile : tuiles (la première en pleine largeur) */
@media (max-width:759.98px){
  #pm-page .pm-produits{margin-top:28px}
  #pm-page .pm-produits__question{font-size:19px}

  #pm-page .pm-produits__tuiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
  #pm-page .pm-produits__tuiles>li{min-width:0}
  #pm-page .pm-produits__tuiles>li:first-child{grid-column:1/-1}
  #pm-page .pm-produits__tuile{position:relative;display:block;aspect-ratio:1/1.12;overflow:hidden;background:#13254A;color:#fff;-webkit-tap-highlight-color:transparent;transition:transform var(--d-rapide) var(--ease)}
  #pm-page .pm-produits__tuile:active{transform:scale(.97)}
  #pm-page .pm-produits__tuile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  #pm-page .pm-produits__tuile::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,21,48,.35) 0%,rgba(8,21,48,0) 30%,rgba(8,21,48,.1) 48%,rgba(8,21,48,.88) 100%);pointer-events:none}
  #pm-page .pm-produits__tuile-picto{position:absolute;top:10px;left:10px;z-index:2;display:grid;place-items:center;width:34px;height:34px;background:#fff;color:var(--pic-800)}
  #pm-page .pm-produits__tuile-picto svg{width:19px;height:19px}
  #pm-page .pm-produits__tuile-bas{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:flex-end;gap:10px;padding:12px}
  #pm-page .pm-produits__tuile-textes{display:grid;gap:3px;flex:1;min-width:0}
  #pm-page .pm-produits__tuile-nom{font:700 17px/1.12 var(--police-titre);letter-spacing:-.01em;text-wrap:balance}
  #pm-page .pm-produits__tuile-resume{font:400 14px/1.4 var(--police-texte);color:#E4E9F2}
  #pm-page .pm-produits__tuile-fleche{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-disque);background:#fff;color:var(--pic-950);flex:none}
  #pm-page .pm-produits__tuile-fleche svg{width:16px;height:16px}
  #pm-page .pm-produits__tuile-legende{position:absolute;top:12px;right:12px;z-index:2;display:grid;justify-items:end;gap:1px;max-width:calc(100% - 72px);padding:5px 10px;border-radius:13px;background:rgba(8,21,48,.6);font:700 12px/1.25 var(--police-titre);letter-spacing:.08em;text-transform:uppercase;text-align:right}
  /* Première tuile : pleine largeur, 16:10, plus grande */
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile{aspect-ratio:16/10}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-picto{width:40px;height:40px}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-picto svg{width:22px;height:22px}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-bas{padding:16px}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-nom{font-size:26px}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-fleche{width:40px;height:40px}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-fleche svg{width:20px;height:20px}
  /* Tuile sans photo : aplat neutre, textes en Bleu, grand picto en filigrane */
  #pm-page .pm-produits__tuile--aplat{background:var(--pierre-100);color:var(--pic-900);box-shadow:inset 0 0 0 1px var(--pierre-200)}
  #pm-page .pm-produits__tuile--aplat::before{content:none}
  #pm-page .pm-produits__tuile--aplat .pm-produits__tuile-fleche{background:var(--pic-800);color:#fff}
  #pm-page .pm-produits__tuile-motif{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);color:var(--pierre-300)}
  #pm-page .pm-produits__tuile-motif svg{width:72px;height:72px;stroke-width:1}
  #pm-page .pm-produits__tuile--aplat .pm-produits__tuile-resume{color:var(--pierre-700)}
  #pm-page .pm-produits__tuiles>li:first-child .pm-produits__tuile-motif{left:72%;top:38%}
}

/* --- [pm_conseil] : bandeau « Conseil gratuit à domicile » (bloc réutilisable) ---
   La photo détourée est posée en bas à gauche et dépasse en haut quand le bandeau est plus bas qu'elle ;
   le texte est décalé de sa largeur (hauteur × 999 / 448 + 46 px). */
#pm-page .pm-conseil{--pm-conseil-h:172px;--pm-conseil-l:430px;position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;min-height:136px;margin-top:64px;padding:24px 28px 24px var(--pm-conseil-l);border-radius:var(--r-tuile);background:var(--pic-50)}
#pm-page .pm-conseil--sans-photo{padding-left:28px}
#pm-page .pm-conseil__visuel{position:absolute;left:0;top:0;bottom:0;width:var(--pm-conseil-l);pointer-events:none}
#pm-page .pm-conseil__halo{position:absolute;inset:0;overflow:hidden;border-radius:var(--r-tuile) 0 0 var(--r-tuile)}
#pm-page .pm-conseil__halo::before{content:"";position:absolute;left:6%;bottom:-70%;width:88%;aspect-ratio:1;border-radius:var(--r-disque);background:radial-gradient(circle,rgba(81,207,244,.38) 0%,rgba(38,145,208,.14) 45%,rgba(241,245,251,0) 70%)}
#pm-page .pm-conseil__photo{position:absolute;left:22px;bottom:0;width:auto;max-width:none;height:var(--pm-conseil-h);transform-origin:50% 100%;filter:drop-shadow(0 -2px 12px rgba(8,21,48,.1));transition:transform 400ms var(--ease)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  #pm-page .pm-conseil:hover .pm-conseil__photo{transform:translateY(-5px) scale(1.02)}
}
#pm-page .pm-conseil__texte{display:grid;gap:6px;flex:1 1 320px;min-width:0;justify-items:start}
#pm-page .pm-conseil__surtitre{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-700)}
#pm-page .pm-conseil__titre{font:700 23px/1.2 var(--police-titre);color:var(--pic-900);text-wrap:balance}
#pm-page .pm-conseil__chapo{font:400 15px/1.5 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-conseil__showroom{display:inline-flex;align-items:center;gap:8px;min-height:32px;font:600 14px/1.3 var(--police-texte);color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#pm-page .pm-conseil__showroom:hover{color:var(--pic-900)}
#pm-page .pm-conseil__showroom svg{width:16px;height:16px}
#pm-page .pm-conseil__actions{display:grid;gap:10px;flex:0 0 auto}
/* Boutons du bandeau aux dimensions de la maquette : Bleu 56 px à disque 44 px, téléphone 48 px */
#pm-page .pm-conseil__actions .pm-bouton--bleu{gap:14px;padding:6px 6px 6px 22px;white-space:nowrap}
#pm-page .pm-conseil__actions .pm-bouton--bleu .pm-bouton__disque{width:44px;height:44px}
#pm-page .pm-conseil__tel{gap:10px;padding:0 18px;color:var(--pic-900);font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-conseil__tel .pm-bouton__avant{color:var(--pic-800)}
#pm-page .pm-conseil__tel .pm-bouton__avant svg{width:18px;height:18px}
#pm-page .pm-conseil__point{width:8px;height:8px;border-radius:var(--r-disque);background:var(--pierre-400);flex:none}
#pm-page .pm-conseil__point[data-etat="ouvert"]{background:var(--succes-700)}

@media (max-width:1119.98px){
  #pm-page .pm-conseil{--pm-conseil-h:150px;--pm-conseil-l:380px}
}
/* Petite tablette : photo réduite pour laisser sa place au texte */
@media (max-width:899.98px){
  #pm-page .pm-conseil{--pm-conseil-h:124px;--pm-conseil-l:322px}
}
/* Mobile : carte pleine largeur, photo au-dessus (elle dépasse de 30 px), boutons pleine largeur, puis lien showroom */
@media (max-width:759.98px){
  #pm-page .pm-conseil{display:grid;grid-template-columns:minmax(0,1fr);gap:0;min-height:0;margin-top:46px;padding:0 18px 18px}
  #pm-page .pm-conseil--sans-photo{padding:18px}
  #pm-page .pm-conseil__visuel{position:relative;width:auto;height:112px;margin:0 -18px 14px;border-bottom:1px solid #D9E2F0}
  #pm-page .pm-conseil__halo{border-radius:var(--r-tuile) var(--r-tuile) 0 0}
  #pm-page .pm-conseil__halo::before{left:50%;bottom:-120%;width:120%;transform:translateX(-50%)}
  #pm-page .pm-conseil__photo{left:50%;height:142px;margin-left:-158px;transform:none;filter:none}
  #pm-page .pm-conseil__texte{gap:4px}
  #pm-page .pm-conseil__titre{font-size:20px}
  #pm-page .pm-conseil__chapo{line-height:1.45}
  #pm-page .pm-conseil__actions{margin-top:14px}
  #pm-page .pm-conseil__actions .pm-bouton{display:flex;width:100%}
  #pm-page .pm-conseil__actions .pm-bouton--bleu{gap:12px;min-height:54px;padding-left:20px;white-space:normal}
  #pm-page .pm-conseil__actions .pm-bouton--bleu .pm-bouton__disque{width:42px;height:42px}
  #pm-page .pm-conseil__tel{min-height:50px}
  #pm-page .pm-conseil__showroom{justify-self:center;min-height:44px;margin-top:14px}
}

/* ===== 24a. Composant · Carrousel (assets/js/pm-carrousel.js ; utilisé par : accueil · engagements, L'entreprise · engagements) =====
   Piste native : grille d'une seule ligne qui défile à l'horizontale, arrêt sur chaque carte (scroll-snap).
   Réglages, sur la racine « .pm-carrousel » uniquement (les variables se calculent à cet endroit) :
   --pm-car-vis   cartes entières visibles (3 sur ordinateur ; 2,3 sur tablette = 2 cartes et l'amorce de la 3ᵉ)
   --pm-car-larg  largeur d'une carte (calculée depuis --pm-car-vis ; 84 % en mobile, 360 px au plus)
   --pm-car-ecart écart entre les cartes
   --pm-car-deb   débord de la piste dans la marge de la page : la piste reste alignée sur le contenu, mais l'ombre
                  au survol et l'anneau de focus ne sont pas coupés ; en mobile, les cartes défilent jusqu'au bord de l'écran.
   Sans JavaScript (pas de classe « pm-js ») : la piste défile ; barre de commandes et progression masquées (.pm-avec-js).
   États posés par le script : aria-current (groupe affiché), aria-disabled (flèche en fin de course),
   .is-statique (tout tient à l'écran : flèches et progression masquées). */
#pm-page .pm-carrousel{--pm-car-vis:3;--pm-car-ecart:16px;--pm-car-deb:16px;
  --pm-car-larg:calc((100% - (var(--pm-car-vis) - 1) * var(--pm-car-ecart)) / var(--pm-car-vis));min-width:0}
@media (max-width:1119.98px){#pm-page .pm-carrousel{--pm-car-vis:2.3}}
@media (max-width:759.98px){#pm-page .pm-carrousel{--pm-car-ecart:12px;--pm-car-deb:var(--pm-pad-x,20px);--pm-car-larg:min(84%,360px)}}

#pm-page .pm-carrousel__piste{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:var(--pm-car-larg);gap:var(--pm-car-ecart);
  margin:-8px calc(-1 * var(--pm-car-deb)) 0;padding:8px var(--pm-car-deb) 28px;list-style:none;
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pm-car-deb);
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
#pm-page .pm-carrousel__piste::-webkit-scrollbar{display:none}
#pm-page .pm-carrousel__diapo{display:flex;min-width:0;scroll-snap-align:start}

/* --- Commandes : groupes (onglets en pastilles) et flèches --- */
#pm-page .pm-carrousel__barre{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;min-width:0}
#pm-page .pm-carrousel__groupes{display:inline-flex;gap:4px;padding:4px;border-radius:var(--r-disque);background:var(--pierre-100);box-shadow:inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-carrousel__groupe{min-height:42px;padding:6px 20px;border:0;border-radius:var(--r-disque);background:transparent;color:var(--pierre-700);
  font:600 15px/1.2 var(--police-titre);letter-spacing:0;text-align:center;cursor:pointer;
  transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-carrousel__groupe:hover{color:var(--pic-900)}
#pm-page .pm-carrousel__groupe[aria-current="true"]{background:#fff;color:var(--pic-900);box-shadow:0 2px 6px -2px rgba(8,21,48,.18),inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-carrousel__groupe:focus-visible,
#pm-page .pm-carrousel__fleche:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-page .pm-carrousel__fleches{display:flex;gap:8px;margin-left:auto;flex:none}
#pm-page .pm-carrousel__fleche{display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);
  box-shadow:inset 0 0 0 1px var(--pierre-300);cursor:pointer;
  transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease),opacity var(--d-rapide) var(--ease)}
#pm-page .pm-carrousel__fleche svg{width:18px;height:18px}
#pm-page .pm-carrousel__fleche:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page .pm-carrousel__fleche[aria-disabled="true"]{opacity:.38;cursor:default;box-shadow:inset 0 0 0 1px var(--pierre-300)}

/* --- Barre de progression : fond Pierre 200, part visible Pic 800 (largeur et position posées par le script) --- */
#pm-page .pm-carrousel__progression{position:relative;height:3px;border-radius:2px;background:var(--pierre-200);overflow:hidden}
#pm-page .pm-carrousel__progression>span{position:absolute;top:0;bottom:0;left:0;width:30%;border-radius:inherit;background:var(--pic-800)}

#pm-page .pm-carrousel.is-statique .pm-carrousel__fleches,
#pm-page .pm-carrousel.is-statique .pm-carrousel__progression{visibility:hidden}

@media (max-width:759.98px){
  #pm-page .pm-carrousel__piste{padding-bottom:16px}
  /* Groupes : deux moitiés égales sur toute la largeur ; un titre long passe sur deux lignes. */
  #pm-page .pm-carrousel__groupes{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%}
  #pm-page .pm-carrousel__groupe{min-height:44px;padding:6px 10px;font-size:14px;text-wrap:balance}
  #pm-page .pm-carrousel__fleche{width:44px;height:44px}
}

/* ===== 24. Accueil · Engagements (inc/accueil/engagements.php, parts/accueil/engagements.php, assets/js/pm-engagements.js) ===== */
/* L'en-tête (widgets Elementor) et la marge de section viennent du conteneur « .pm-section--widgets » :
   la racine ne pose que l'écart sous l'en-tête. */
#pm-page .pm-eng{max-width:1320px;margin:48px auto 0}

/* --- Carrousel des 6 cartes (composant « 24a ») : titres des groupes et flèches au-dessus de la piste,
       barre de progression dessous en mobile seulement --- */
#pm-page .pm-eng__barre{margin-bottom:24px}
#pm-page .pm-eng__progression{display:none}

/* --- Carte (fondation « pm-carte » : filet Pierre 200, survol bordure Pic + ombre + filet lumière) --- */
#pm-page .pm-eng__carte{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;padding:27px;border-radius:var(--r-tuile);scroll-margin-top:96px;
  transition:border-color var(--d-rapide) var(--ease),box-shadow 400ms var(--ease)}
/* Le filet lumière suit les coins arrondis : bande de 3 px peinte en haut d'un calque de la taille de la carte. */
#pm-page .pm-eng__carte::before{bottom:-1px;height:auto;border-radius:inherit;background:var(--filet-lumiere) no-repeat top/100% 3px;pointer-events:none}
/* Mise en évidence (pm-engagements.js) : halo Ciel pendant 1,8 s. */
#pm-page .pm-eng__carte.is-surlignee{box-shadow:0 0 0 3px var(--ciel-500),var(--om-2)}

#pm-page .pm-eng__illustration{flex:none;width:180px;max-width:100%;height:160px}
#pm-page .pm-eng__image{width:100%;height:100%;object-fit:contain}

#pm-page .pm-eng__etiquettes{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-height:24px}
/* « flex:none » : si la place manque, le badge passe à la ligne avant que l'étiquette ne se coupe. */
#pm-page .pm-eng__etiquette{flex:none;max-width:100%;font:700 12px/1.3 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:var(--pic-800)}
/* Badge « Ouvert / Fermé » : rempli par pm-site.js (data-pm-statut="mot"), masqué tant que l'état n'est pas connu. */
#pm-page .pm-eng__statut{flex:none;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-disque);background:var(--pierre-100);color:var(--pierre-700);font:700 12px/1 var(--police-titre);letter-spacing:.06em;white-space:nowrap}
#pm-page .pm-eng__statut:not([data-etat]){display:none}
#pm-page .pm-eng__statut .pm-statut__point{width:6px;height:6px;background:currentColor}
#pm-page .pm-eng__statut[data-etat="ouvert"]{background:var(--succes-100);color:var(--succes-700)}

#pm-page .pm-eng__titre{margin-top:-2px;font:700 22px/1.2 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-eng__texte{font:400 16px/1.5 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}

/* Lien : toute la carte est cliquable (« pm-carte__lien ») ; l'anneau de focus entoure donc la carte. */
#pm-page .pm-eng__lien{display:inline-flex;align-items:center;align-self:flex-start;gap:8px;max-width:100%;margin-top:auto;padding-top:10px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800)}
#pm-page .pm-eng__lien::after{inset:-1px;border-radius:var(--r-tuile)}
#pm-page .pm-eng__lien:focus-visible{outline:none}
#pm-page .pm-eng__lien:focus-visible::after{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-page .pm-eng__lien-texte{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#pm-page .pm-eng__fleche{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:var(--r-disque);transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-eng__fleche svg{width:16px;height:16px}
#pm-page .pm-eng__carte:hover .pm-eng__lien{color:var(--pic-900)}
#pm-page .pm-eng__carte:hover .pm-eng__fleche{transform:translateX(3px)}

/* --- Ligne d'action et logos des labels --- */
#pm-page .pm-eng__bas{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;margin-top:12px;padding-top:32px;border-top:1px solid var(--pierre-200)}
#pm-page .pm-eng__action{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;min-width:0}
/* Bouton de la maquette validée : 58 px, texte 17 px, disque 44 px (à partir de la tablette). */
@media (min-width:760px){
  #pm-page .pm-eng__bouton{gap:16px;min-height:58px;padding:7px 7px 7px 24px;font-size:17px;letter-spacing:0;white-space:nowrap}
  #pm-page .pm-eng__bouton .pm-bouton__disque{width:44px;height:44px}
}
#pm-page .pm-eng__rassurance{display:flex;align-items:center;gap:8px;font:400 14px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-eng__rassurance svg{width:16px;height:16px;color:var(--succes-700)}
#pm-page .pm-eng__labels{display:flex;align-items:center;gap:14px;min-width:0}
#pm-page .pm-eng__labels-titre{white-space:nowrap}
#pm-page .pm-eng__logos{display:flex;flex-wrap:wrap;gap:8px}
#pm-page .pm-eng__logo{display:block;width:96px;height:56px;padding:7px 10px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200);transition:box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-eng__logo:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page .pm-eng__logo-image{width:100%;height:100%;object-fit:contain}


/* --- Mobile : titres des groupes en deux pastilles, une carte à 84 % et l'amorce de la suivante, barre de progression
       (pas de flèches) ; logos puis bouton pleine largeur --- */
@media (max-width:759.98px){
  #pm-page .pm-eng{margin-top:28px}
  #pm-page .pm-eng__barre{margin-bottom:16px}
  #pm-page .pm-eng__barre .pm-carrousel__fleches{display:none}
  #pm-page .pm-eng__progression{display:block}
  #pm-page .pm-eng__carte{gap:8px;padding:20px 20px 18px}
  #pm-page .pm-eng__illustration{width:150px;height:124px}
  #pm-page .pm-eng__titre{margin-top:0;font-size:19px}
  #pm-page .pm-eng__texte{font-size:15px}
  #pm-page .pm-eng__lien{padding-top:8px}
  #pm-page .pm-eng__fleche{width:32px;height:32px;background:var(--pic-100)}
  #pm-page .pm-eng__bas{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:20px;padding-top:0;border-top:0}
  #pm-page .pm-eng__labels{order:-1}
  #pm-page .pm-eng__logo{width:92px;height:54px}
}

/* --- Bandeau « Une entreprise du groupe Pyrénées » (17 octobre 2026) --- */
#pm-page .pm-eng__groupe-bandeau{margin-top:32px;padding:24px 28px;border-radius:var(--r-tuile);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:center}
#pm-page .pm-eng__groupe-texte{display:grid;gap:8px;min-width:0}
#pm-page .pm-eng__groupe-texte p:last-child{max-width:560px;font:400 15px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-eng__groupe-droite{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}
#pm-page .pm-eng__groupe-liste{display:flex;gap:10px;margin:0;padding:0;list-style:none}
#pm-page .pm-eng__groupe-societe{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 14px 8px 8px;border-radius:12px;background:var(--pierre-50);color:var(--pic-900);text-decoration:none;transition:box-shadow var(--d-rapide) var(--ease)}
#pm-page a.pm-eng__groupe-societe:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page a.pm-eng__groupe-societe:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-page .pm-eng__groupe-tuile{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-eng__groupe-tuile img{width:28px;height:28px;object-fit:contain}
#pm-page .pm-eng__groupe-societe strong{display:block;font:700 14px/1.25 var(--police-titre);white-space:nowrap}
#pm-page .pm-eng__groupe-societe small{display:block;font:400 12px/1.3 var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-eng__groupe-lien{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
#pm-page .pm-eng__groupe-lien svg{width:16px;height:16px}
@media (max-width:1119.98px){
  #pm-page .pm-eng__groupe-bandeau{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-eng__groupe-droite{align-items:flex-start}
  #pm-page .pm-eng__groupe-liste{flex-wrap:wrap}
}
@media (max-width:759.98px){
  #pm-page .pm-eng__groupe-bandeau{margin-top:20px;padding:18px}
  #pm-page .pm-eng__groupe-liste{flex-direction:column;width:100%}
  #pm-page .pm-eng__groupe-societe{width:100%}
}
/* ===== 25. Accueil · Réalisations (inc/accueil/realisations.php · parts/accueil/realisations.php ·
   parts/blocs/avant-apres.php · parts/blocs/carte-realisation.php · assets/js/pm-realisations.js · pm-avant-apres.js) ===== */

/* --- Section --- */
#pm-page .pm-real{padding:var(--pm-pad-y) var(--pm-pad-x)}

/* --- Haut : en-tête et chantier à la une à gauche, comparateur à droite ---
   La première ligne absorbe la hauteur en trop : la colonne gauche et le comparateur s'alignent en bas. */
#pm-page .pm-real__haut{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:1fr auto;grid-template-areas:"entete comparateur" "une comparateur";gap:28px 56px}
#pm-page .pm-real__entete{grid-area:entete;align-self:end;display:grid;gap:16px;justify-items:start;min-width:0}
/* Interligne du H2 de la maquette (1,06 ; le socle donne 1,08). */
#pm-page .pm-real .pm-titre-section{line-height:1.06}
#pm-page .pm-real__chiffre{display:flex;align-items:flex-start;gap:8px;font:600 15px/1.35 var(--police-texte);color:var(--succes-700)}
#pm-page .pm-real__chiffre svg{width:18px;height:18px;margin-top:1px}
#pm-page .pm-real__chapo{max-width:520px}
#pm-page .pm-real__comparateur{grid-area:comparateur;align-self:end;min-width:0}
/* Aucun chantier à la une : l'en-tête seul, sur une colonne. */
#pm-page .pm-real--sans-une .pm-real__haut{display:block}
#pm-page .pm-real--sans-une .pm-real__entete{max-width:720px}

/* --- Chantier à la une --- */
#pm-page .pm-real__une{grid-area:une;display:grid;gap:10px;justify-items:start;min-width:0;padding-top:20px;border-top:1px solid var(--encre)}
#pm-page .pm-real__une-sur{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-700)}
#pm-page .pm-real__une-titre{font:700 24px/1.2 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real__une-infos{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font:600 14px/1.3 var(--police-texte);color:var(--pic-800)}
#pm-page .pm-real__une-lieu{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-real__une-lieu svg{width:15px;height:15px}
#pm-page .pm-real__une-meta{font-weight:500;color:var(--pierre-700)}
#pm-page .pm-real__une-resume{font:400 16px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page a.pm-real__une-lien{min-height:40px;margin-top:2px;gap:8px;font:700 15px/1.3 var(--police-titre)}
#pm-page a.pm-real__une-lien>span{text-underline-offset:5px}
/* Version mobile : lieu et produit sur une ligne, flèche dans un disque. */
#pm-page .pm-real__une-mobile{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;font:600 14px/1.35 var(--police-texte);color:var(--pic-800)}
#pm-page .pm-real__une-mobile-texte{display:inline-flex;align-items:center;gap:6px;min-width:0}
#pm-page .pm-real__une-mobile-texte svg{width:15px;height:15px}
#pm-page .pm-real__une-mobile-disque{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-disque);background:var(--pic-100);flex:none}
#pm-page .pm-real__une-mobile-disque svg{width:16px;height:16px}

/* --- Filtres, commune, ligne d'état --- */
#pm-page .pm-real__bas{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:56px;padding-top:32px;border-top:1px solid var(--pierre-200)}
#pm-page .pm-real__outils{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);align-items:center;gap:12px 24px}
#pm-page .pm-real__outils>:only-child{grid-column:1/-1;max-width:400px}
#pm-page .pm-real__filtres{min-width:0}

#pm-page .pm-real__commune{position:relative;min-width:0}
#pm-page .pm-real__commune>svg{position:absolute;left:15px;top:15px;width:18px;height:18px;color:var(--pic-800);pointer-events:none}
#pm-page .pm-real__saisie{display:block;width:100%;height:48px;padding:0 150px 0 42px;border:1px solid var(--pierre-500);border-radius:var(--r-disque);background:#fff;font:500 16px/1.3 var(--police-texte);color:var(--encre);text-overflow:ellipsis;transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real__saisie::placeholder{color:var(--pierre-600);opacity:1}
#pm-page .pm-real__saisie:hover{border-color:var(--encre)}
#pm-page .pm-real__saisie:focus{outline:none;border-color:var(--pic-800);box-shadow:inset 0 0 0 1px var(--pic-800),0 0 0 3px #B9E4F6}
#pm-page .pm-real__commune.is-active .pm-real__saisie{border-color:var(--pic-800)}
#pm-page .pm-real__commune.is-remplie .pm-real__saisie{padding-right:186px}
#pm-page .pm-real__effacer{position:absolute;right:146px;top:8px;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-disque);background:var(--pierre-100);color:var(--encre)}
#pm-page .pm-real__effacer:hover{background:var(--pierre-200)}
#pm-page .pm-real__effacer svg{width:16px;height:16px}
#pm-page .pm-real__geo{position:absolute;right:6px;top:6px;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);font:700 14px/1 var(--police-titre);white-space:nowrap;transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-real__geo:hover{background:#D2DDEF}
#pm-page .pm-real__geo svg{width:16px;height:16px}
#pm-page .pm-real__geo[aria-busy="true"]{cursor:progress;opacity:.7}

#pm-page .pm-real__ligne{display:flex;align-items:center;justify-content:space-between;gap:6px 16px;min-height:28px}
#pm-page .pm-real__etat{display:flex;align-items:flex-start;gap:8px;font:600 15px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real__etat>svg{display:none;width:17px;height:17px;margin-top:2px}
#pm-page .pm-real__etat[data-etat="recent"]>svg:nth-of-type(1),
#pm-page .pm-real__etat[data-etat="proche"]>svg:nth-of-type(2),
#pm-page .pm-real__etat[data-etat="aucun"]>svg:nth-of-type(3),
#pm-page .pm-real__etat[data-etat="erreur"]>svg:nth-of-type(4){display:block}
#pm-page .pm-real__etat[data-etat="proche"]{color:var(--succes-700)}
#pm-page .pm-real__etat[data-etat="erreur"]{color:var(--erreur-700)}
#pm-page .pm-real__etat-lien{margin-left:6px;font-weight:700;color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap}
#pm-page .pm-real__etat-lien:hover{color:var(--pic-900)}
#pm-page .pm-real__compteur{flex:none;font:700 13px/1.6 var(--police-titre);color:var(--pierre-700);font-variant-numeric:tabular-nums;white-space:nowrap}

/* --- Cartes et tuile finale : 3 cartes + tuile sur une ligne (la tuile prend la place qui reste) --- */
#pm-page .pm-real__liste{display:flex;gap:16px;margin-top:6px;padding-bottom:4px}
#pm-page .pm-real__element{display:flex;flex:0 1 calc((73% - 48px) / 3);min-width:0}
#pm-page .pm-real__element--tuile{flex:1 1 27%}

/* Carte d'une réalisation (parts/blocs/carte-realisation.php) */
#pm-page .pm-carte-real{position:relative;display:flex;flex-direction:column;gap:14px;width:100%;min-width:0}
#pm-page .pm-carte-real__visuel{position:relative;aspect-ratio:4/3;border-radius:var(--r-tuile);overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-carte-real__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform var(--d-lente) var(--ease)}
#pm-page .pm-carte-real__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-carte-real__aplat svg{width:40px;height:40px;stroke-width:1.5}
#pm-page .pm-carte-real__badge{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 24px);min-height:30px;padding:4px 12px 4px 9px;border-radius:15px;background:#fff;box-shadow:0 4px 12px -6px rgba(8,21,48,.4);font:700 13px/1.25 var(--police-texte);color:var(--pic-900);pointer-events:none}
#pm-page .pm-carte-real__badge svg{width:14px;height:14px;color:var(--pic-800)}
#pm-page .pm-carte-real__corps{display:grid;gap:8px;padding:0 2px}
#pm-page .pm-carte-real__titre{font:700 19px/1.25 var(--police-titre);letter-spacing:-.005em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-carte-real__lien{color:inherit;transition:color var(--d-rapide) var(--ease)}
#pm-page .pm-carte-real__lien::after{content:"";position:absolute;inset:0;z-index:3;border-radius:var(--r-tuile)}
#pm-page .pm-carte-real__lien:focus-visible{outline:none}
#pm-page .pm-carte-real__lien:focus-visible::after{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-page .pm-carte-real__infos{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font:400 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-carte-real__infos li{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-carte-real__infos svg{width:15px;height:15px;color:var(--pierre-600)}
#pm-page .pm-carte-real__picto{display:inline-grid}
#pm-page .pm-carte-real__picto svg{width:16px;height:16px;color:var(--pic-800)}
#pm-page .pm-carte-real__infos .pm-pastille{width:11px;height:11px;box-shadow:inset 0 0 0 1px rgba(31,29,26,.4)}
#pm-page .pm-carte-real__infos .pm-pastille--pvc{background:#fff}
/* Survol de la maquette : zoom de la photo et titre en Pic 800. */
#pm-page .pm-carte-real:hover .pm-carte-real__photo{transform:scale(1.04)}
#pm-page .pm-carte-real:hover .pm-carte-real__lien{color:var(--pic-800)}

/* Tuile finale : fond Pic, halo Ciel, poseur détouré qui dépasse en haut */
#pm-page .pm-real-tuile{position:relative;display:block;width:100%;height:100%;min-height:320px;border-radius:var(--r-tuile);background:var(--pic-800);color:#fff;isolation:isolate;transition:background-color 200ms var(--ease)}
#pm-page .pm-real-tuile:hover{background:var(--pic-900);color:#fff}
#pm-page .pm-real-tuile__fond{position:absolute;inset:0;z-index:-1;border-radius:inherit;overflow:hidden;pointer-events:none}
#pm-page .pm-real-tuile__halo{position:absolute;right:-28%;bottom:-30%;width:118%;aspect-ratio:1;border-radius:var(--r-disque);background:radial-gradient(circle at 50% 50%,rgba(81,207,244,.55) 0%,rgba(38,145,208,.28) 42%,rgba(15,57,130,0) 70%)}
#pm-page .pm-real-tuile__filet{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--filet-lumiere)}
#pm-page .pm-real-tuile__photo{position:absolute;right:-4px;bottom:3px;z-index:1;width:auto;height:110%;max-width:62%;object-fit:contain;object-position:100% 100%;pointer-events:none;transform-origin:50% 100%;filter:drop-shadow(0 16px 24px rgba(8,21,48,.35));transition:transform 400ms var(--ease)}
#pm-page .pm-real-tuile:hover .pm-real-tuile__photo{transform:translateY(-6px) scale(1.02)}
#pm-page .pm-real-tuile__textes{position:absolute;left:24px;top:24px;right:46%;z-index:2;display:grid;gap:8px}
#pm-page .pm-real-tuile--sans-photo .pm-real-tuile__textes{right:24px}
#pm-page .pm-real-tuile__sur{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:#B9E4F6}
#pm-page .pm-real-tuile__titre{font:700 22px/1.12 var(--police-titre);text-wrap:balance}
#pm-page .pm-real-tuile__texte{font:400 14px/1.45 var(--police-texte);color:#DCE6F5}
#pm-page .pm-real-tuile__aller{position:absolute;left:24px;bottom:24px;z-index:2;display:inline-flex;align-items:center;gap:10px;font:700 15px/1.2 var(--police-titre)}
#pm-page .pm-real-tuile__disque{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-disque);background:#fff;color:var(--pic-950);flex:none;transition:transform var(--d-base) var(--ease)}
#pm-page .pm-real-tuile__disque svg{width:20px;height:20px}
#pm-page .pm-real-tuile:hover .pm-real-tuile__disque{transform:translateX(4px)}

/* --- Bandeau final (tablette et ordinateur) et bouton mobile --- */
#pm-page .pm-real__bandeau{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:18px;padding:22px 24px 22px 28px;border-radius:var(--r-tuile);background:var(--pierre-50)}
#pm-page .pm-real__bandeau-textes{display:grid;gap:4px;min-width:0}
#pm-page .pm-real__bandeau-titre{font:700 21px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-real__bandeau-message{display:flex;align-items:flex-start;gap:8px;font:400 15px/1.35 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real__bandeau-message svg{width:16px;height:16px;margin-top:2px;color:var(--succes-700)}
/* Boutons aux dimensions de la maquette (surcharge locale du bouton du socle) : action 58 px, contour mobile 52 px. */
#pm-page .pm-real__bandeau .pm-bouton{gap:16px;min-height:58px;padding:7px 7px 7px 24px;font-size:17px;white-space:nowrap}
#pm-page .pm-real__bandeau .pm-bouton__disque{width:44px;height:44px}
#pm-page .pm-real__tout{min-height:52px;margin-top:8px;padding:6px 6px 6px 20px}
#pm-page .pm-real__tout .pm-bouton__disque{width:38px;height:38px}
#pm-page .pm-real__tout .pm-bouton__disque svg{width:18px;height:18px}

/* --- Comparateur avant / après (parts/blocs/avant-apres.php) ---
   --pm-aa-pos : position du curseur (0 % = tout « après », 100 % = tout « avant »), écrite par pm-avant-apres.js. */
#pm-page .pm-avant-apres{display:grid;gap:12px;min-width:0;margin:0}
#pm-page .pm-avant-apres__cadre{--pm-aa-pos:50%;position:relative;aspect-ratio:16/11;border-radius:var(--r-tuile);overflow:hidden;background:#13254A;isolation:isolate;-webkit-user-select:none;user-select:none}
#pm-page .pm-avant-apres__vue{position:absolute;inset:0;background:#1C2C4E}
#pm-page .pm-avant-apres__vue--avant{background:#243352;clip-path:inset(0 calc(100% - var(--pm-aa-pos)) 0 0)}
#pm-page .pm-avant-apres__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
/* Démonstration, photo absente : aplat annoté, centré dans sa moitié. */
#pm-page .pm-avant-apres__vide{position:absolute;top:50%;left:75%;display:grid;justify-items:center;gap:8px;width:44%;transform:translate(-50%,-50%);font:600 13px/1.35 var(--police-texte);color:rgba(255,255,255,.62);text-align:center}
#pm-page .pm-avant-apres__vue--avant .pm-avant-apres__vide{left:25%}
#pm-page .pm-avant-apres__vide svg{width:28px;height:28px;stroke-width:1.5}
/* Curseur natif transparent : clavier et lecteurs d'écran. Souris et doigt sont suivis sur le cadre par le script. */
#pm-page .pm-avant-apres__curseur{position:absolute;inset:0;z-index:4;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:none;opacity:0;pointer-events:none;-webkit-appearance:none;appearance:none}
#pm-page .pm-avant-apres__cadre.is-actif{cursor:ew-resize;touch-action:pan-y}
#pm-page .pm-avant-apres__etiquette{position:absolute;top:14px;z-index:2;display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:var(--r-disque);font:700 12px/1 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;pointer-events:none}
#pm-page .pm-avant-apres__etiquette--avant{left:14px;background:rgba(8,21,48,.72);color:#fff}
#pm-page .pm-avant-apres__etiquette--apres{right:14px;background:#fff;color:var(--pic-900)}
#pm-page .pm-avant-apres__trait{position:absolute;top:0;bottom:0;left:var(--pm-aa-pos);z-index:2;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 12px rgba(8,21,48,.35);pointer-events:none}
#pm-page .pm-avant-apres__poignee{position:absolute;top:50%;left:var(--pm-aa-pos);z-index:3;display:grid;place-items:center;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:var(--r-disque);background:#fff;color:var(--pic-950);box-shadow:0 12px 28px -10px rgba(8,21,48,.55);pointer-events:none}
#pm-page .pm-avant-apres__poignee svg{width:24px;height:24px}
#pm-page .pm-avant-apres__curseur:focus-visible{outline:none}
#pm-page .pm-avant-apres__curseur:focus-visible~.pm-avant-apres__poignee{outline:3px solid var(--ciel-500);outline-offset:3px}
/* Démonstration au premier affichage : le script pose « is-demo » le temps des trois mouvements. */
#pm-page .pm-avant-apres__cadre.is-demo .pm-avant-apres__vue--avant{transition:clip-path 520ms cubic-bezier(.4,0,.2,1)}
#pm-page .pm-avant-apres__cadre.is-demo .pm-avant-apres__trait,
#pm-page .pm-avant-apres__cadre.is-demo .pm-avant-apres__poignee{transition:left 520ms cubic-bezier(.4,0,.2,1)}
#pm-page .pm-avant-apres__aide{display:flex;align-items:center;gap:8px;font:400 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-avant-apres__aide svg{width:18px;height:18px}

/* --- Petit ordinateur : la tuile est étroite, le poseur laisse la place au texte --- */
@media (min-width:1120px) and (max-width:1339.98px){
  #pm-page .pm-real__element--tuile .pm-real-tuile__photo{max-width:54%}
}

/* --- Tablette : une colonne en haut, cartes 2 × 2 --- */
@media (max-width:1119.98px){
  #pm-page .pm-real__haut{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"entete" "une" "comparateur"}
  #pm-page .pm-real__comparateur{margin-top:4px}
  #pm-page .pm-real__outils{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real__commune{max-width:400px}
  #pm-page .pm-real__liste{flex-wrap:wrap}
  #pm-page .pm-real__element{flex:0 1 calc(50% - 8px)}
  #pm-page .pm-real__element--tuile{flex:1 1 calc(50% - 8px)}
  #pm-page .pm-real-tuile__photo{height:100%}
}

/* --- Mobile : le chantier à la une passe sous le comparateur, cartes en carrousel --- */
@media (max-width:759.98px){
  #pm-page .pm-real__haut{grid-template-areas:"entete" "comparateur" "une";gap:0}
  #pm-page .pm-real__comparateur{margin-top:24px}
  #pm-page .pm-real__une{gap:6px;margin-top:16px;padding-top:0;border-top:0}
  #pm-page .pm-real__une-titre{font-size:19px;line-height:1.25;letter-spacing:0;text-wrap:wrap}
  #pm-page .pm-avant-apres__cadre{aspect-ratio:4/3}
  #pm-page .pm-avant-apres__vide{width:34%;font-size:12px}

  #pm-page .pm-real__bas{margin-top:36px;padding-top:0;border-top:0}
  /* Place pour l'anneau de focus des pilules, que le défilement horizontal rognerait. */
  #pm-page .pm-real__filtres{margin-block:-3px;padding-block:5px}
  #pm-page .pm-real__commune{max-width:none}
  #pm-page .pm-real__saisie{padding-right:52px}
  #pm-page .pm-real__commune.is-remplie .pm-real__saisie{padding-right:92px}
  #pm-page .pm-real__effacer{right:50px}
  #pm-page .pm-real__geo{padding:0 10px}
  /* Cibles tactiles de 44 px autour des deux boutons du champ. */
  #pm-page .pm-real__effacer::after{content:"";position:absolute;inset:-6px -4px -6px -8px}
  #pm-page .pm-real__geo::after{content:"";position:absolute;inset:-4px}

  /* Compteur du carrousel sur sa ligne, à droite, au-dessus des cartes. */
  #pm-page .pm-real__ligne{flex-direction:column;align-items:stretch;gap:6px}
  #pm-page .pm-real__compteur{align-self:flex-end}

  #pm-page .pm-real__liste{flex-wrap:nowrap;margin:0 -20px;padding:6px 20px 4px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #pm-page .pm-real__liste::-webkit-scrollbar{display:none}
  #pm-page .pm-real__element{flex:0 0 80%;scroll-snap-align:start}
  #pm-page .pm-real__element--tuile{flex:0 0 76%}
  #pm-page .pm-carte-real__titre{font-size:17px}
  #pm-page .pm-real-tuile{min-height:330px}
  #pm-page .pm-real-tuile__photo{right:-6px;height:62%}
  #pm-page .pm-real-tuile__textes{left:20px;top:20px;right:20px}
  #pm-page .pm-real-tuile__titre{font-size:20px}
  #pm-page .pm-real-tuile__aller{left:20px;bottom:20px;max-width:46%}
}

/* ===== 26. Accueil · Avis clients (inc/accueil/avis.php, parts/accueil/avis.php, assets/js/pm-avis.js) =====
   Code court [pm_avis] : section sur fond Nuit + photo d'équipe, note Google, carrousel d'avis, citation, mots qui reviennent.
   États posés par le script : .is-actif / .is-sortant (carte), .is-passe (segment), .is-lecture (carrousel en défilement). */

/* --- Section, photo de fond et voile --- */
/* --pm-vw : la capture validée de cette section a été prise dans une fenêtre plus étroite que les autres ;
   .66vw ramène la citation de l'équipe (formule 4.2) à 40 px à 1440 px, fluide au-delà. Le H2 garde la valeur du socle. */
#pm-page .pm-avis{--pm-vw:.66vw;position:relative;isolation:isolate;overflow:hidden;padding:120px 60px;background:var(--pic-950);color:#fff}
#pm-page .pm-avis__fond{position:absolute;inset:0;z-index:-2;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 62%;opacity:.3;pointer-events:none}
#pm-page .pm-avis::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#081530 0%,rgba(8,21,48,.82) 42%,rgba(8,21,48,.55) 100%)}
#pm-page .pm-avis .pm-titre-section{color:#fff}

/* --- Haut : en-tête + note à gauche, carrousel à droite --- */
#pm-page .pm-avis__haut{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center;min-width:0}
#pm-page .pm-avis--sans-avis .pm-avis__haut{grid-template-columns:minmax(0,1fr)}
#pm-page .pm-avis--sans-avis .pm-avis__intro{max-width:720px}
#pm-page .pm-avis__intro{display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-width:0}
#pm-page .pm-avis__chapo{max-width:460px;font:400 18px/1.55 var(--police-texte);color:var(--pm-secondaire-nuit);text-wrap:pretty}

/* Encart de note Google */
#pm-page .pm-avis__note{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;width:max-content;max-width:100%;margin-top:4px;padding:18px 22px;border-radius:var(--r-tuile);background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
#pm-page .pm-avis__badge{width:64px;height:64px;flex:none;border-radius:var(--r-disque);box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
#pm-page .pm-avis__note-valeur{font:700 56px/1 var(--police-titre);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#fff}
#pm-page .pm-avis__note-detail{display:grid;gap:6px;justify-items:start}
#pm-page .pm-avis__note-etoiles,
#pm-page .pm-avis__carte-etoiles{display:flex}
#pm-page .pm-avis__note-etoiles .pm-etoiles{gap:3px}
#pm-page .pm-avis__note-etoiles svg{width:22px;height:22px}
#pm-page .pm-avis__note-texte{font:400 14px/1.32 var(--police-texte);color:var(--pm-secondaire-nuit);white-space:nowrap}

/* Boutons (tablette et ordinateur) */
#pm-page .pm-avis__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
#pm-page .pm-avis__actions .pm-bouton{white-space:nowrap}
#pm-page .pm-avis__lire{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 20px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1.5px #fff;font:700 16px/1.2 var(--police-titre);letter-spacing:.005em;color:#fff;white-space:nowrap;transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-avis__lire svg{width:18px;height:18px;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-avis__lire:hover{background:rgba(255,255,255,.08);color:#fff}
#pm-page .pm-avis__lire:hover svg{transform:translateX(3px)}

/* --- Carrousel --- */
#pm-page .pm-avis__carrousel{position:relative;min-width:0}
#pm-page .pm-avis__piste{display:grid;gap:16px;touch-action:pan-y}
#pm-page .pm-avis__carte{display:flex;flex-direction:column;gap:18px;min-width:0;min-height:var(--pm-avis-h,0);padding:44px;border-radius:var(--r-zone);background:rgba(14,30,62,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 32px 72px -24px rgba(0,0,0,.5);color:#fff}
/* Avec JavaScript : les cartes sont superposées, une seule est visible (le script ajoute ensuite « hidden » aux autres).
   Entrée : fondu + montée depuis 12 px ; sortie : fondu + montée de 8 px ; 600 ms. Sans JavaScript : toutes lisibles, empilées. */
html.pm-js #pm-page .pm-avis__carrousel[data-pm-avis] .pm-avis__piste{gap:0}
html.pm-js #pm-page .pm-avis__carrousel[data-pm-avis] .pm-avis__carte{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity var(--d-lente) var(--ease),transform var(--d-lente) var(--ease),visibility 0s linear var(--d-lente)}
html.pm-js #pm-page .pm-avis__carrousel[data-pm-avis] .pm-avis__carte.is-actif{opacity:1;visibility:visible;transform:none;transition-delay:0s}
html.pm-js #pm-page .pm-avis__carrousel[data-pm-avis] .pm-avis__carte.is-sortant{transform:translateY(-8px)}
html:not(.pm-js) #pm-page .pm-avis__haut{align-items:start}

#pm-page .pm-avis__carte-haut{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
#pm-page .pm-avis__carte-etoiles .pm-etoiles{gap:4px}
#pm-page .pm-avis__carte-etoiles svg{width:24px;height:24px}
#pm-page .pm-avis__origine{display:inline-flex;align-items:center;gap:8px;flex:none;height:30px;padding:0 12px;border-radius:var(--r-disque);background:rgba(255,255,255,.08);font:700 12px/1 var(--police-titre);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--pm-secondaire-nuit)}
#pm-page .pm-avis__origine svg{width:14px;height:14px;color:#3DBE7A}
#pm-page .pm-avis__guillemet{display:block;height:40px;font:700 88px/.6 var(--police-titre);color:var(--ciel-300)}
#pm-page .pm-avis__texte{font:500 28px/1.38 var(--police-titre);letter-spacing:-.008em;color:#fff;text-wrap:pretty}
#pm-page .pm-avis__carte-bas{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-top:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
#pm-page .pm-avis__auteur{display:flex;align-items:center;gap:14px;min-width:0}
#pm-page .pm-avis__initiale{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:var(--r-disque);background:var(--pic-100);font:700 18px/1 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-avis__identite{display:grid;gap:2px;min-width:0}
#pm-page .pm-avis__prenom{font:700 16px/1.32 var(--police-texte);color:#fff}
#pm-page .pm-avis__lieu{font:400 14px/1.32 var(--police-texte);color:var(--pm-secondaire-nuit)}
#pm-page .pm-avis__chantier{display:flex;align-items:center;gap:12px;min-height:44px;border-radius:10px;color:#fff;transition:color var(--d-rapide) var(--ease)}
#pm-page .pm-avis__chantier:hover{color:var(--ciel-300)}
#pm-page .pm-avis__vignette{display:block;width:96px;height:68px;flex:none;border-radius:10px;overflow:hidden;background:#13254A}
#pm-page .pm-avis__vignette img{width:100%;height:100%;object-fit:cover}
#pm-page .pm-avis__chantier-texte{display:inline-flex;align-items:center;gap:6px;font:700 15px/1.3 var(--police-titre);white-space:nowrap}
#pm-page .pm-avis__chantier-texte svg{width:16px;height:16px;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-avis__chantier:hover .pm-avis__chantier-texte svg{transform:translateX(3px)}

/* Commandes : précédent, segments de progression, suivant, pause */
#pm-page .pm-avis__commandes{display:flex;align-items:center;gap:14px;margin-top:18px}
#pm-page .pm-avis__fleche,
#pm-page .pm-avis__pause{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:var(--r-disque);transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-avis__fleche{background:rgba(255,255,255,.1);color:#fff}
#pm-page .pm-avis__fleche:hover{background:rgba(255,255,255,.2);color:#fff}
#pm-page .pm-avis__fleche svg{width:20px;height:20px}
#pm-page .pm-avis__pause{background:#fff;color:var(--pic-950)}
#pm-page .pm-avis__pause:hover{background:var(--pic-100);color:var(--pic-950)}
#pm-page .pm-avis__pause svg{width:18px;height:18px}
#pm-page .pm-avis__segments{display:flex;flex:1;gap:6px;min-width:0}
/* Zone de clic de 44 px de haut ; la jauge visible en fait 4. */
#pm-page .pm-avis__segment{display:grid;align-items:center;flex:1;min-width:0;height:44px;border-radius:4px;background:none}
#pm-page .pm-avis__segment:hover{background:none}
#pm-page .pm-avis__jauge{position:relative;display:block;height:4px;border-radius:var(--r-disque);background:rgba(255,255,255,.22);overflow:hidden;transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-avis__segment:hover .pm-avis__jauge{background:rgba(255,255,255,.4)}
#pm-page .pm-avis__jauge::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#fff;transform:translateX(-101%)}
/* Segments déjà vus : pleins. Segment de l'avis affiché : plein à l'arrêt, se remplit en 7 s pendant le défilement. */
#pm-page .pm-avis__segment.is-passe .pm-avis__jauge::after,
#pm-page .pm-avis__segment[aria-current="true"] .pm-avis__jauge::after{transform:none}
#pm-page .pm-avis__carrousel.is-lecture .pm-avis__segment[aria-current="true"] .pm-avis__jauge::after{animation:pm-avis-jauge var(--pm-avis-duree,7000ms) linear both}
@keyframes pm-avis-jauge{from{transform:translateX(-101%)}to{transform:none}}

/* --- Bas : citation de l'équipe + mots qui reviennent --- */
#pm-page .pm-avis__bas{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:24px 56px;align-items:end;margin-top:72px;padding-top:48px;border-top:1px solid rgba(255,255,255,.14)}
#pm-page .pm-avis--sans-mots .pm-avis__bas{grid-template-columns:minmax(0,1fr)}
#pm-page .pm-avis__citation{display:grid;gap:20px;min-width:0}
#pm-page .pm-avis__citation-texte{font:700 clamp(40px,calc(var(--pm-vw)*4.2),64px)/1.04 var(--police-titre);letter-spacing:-.03em;color:#fff;text-wrap:balance}
#pm-page .pm-avis__accent{color:var(--ciel-300)}
#pm-page .pm-avis__signature{display:flex;align-items:center;gap:12px;font:400 15px/1.32 var(--police-texte);color:var(--pm-secondaire-nuit)}
#pm-page .pm-avis__signature strong{font-weight:700;color:#fff}
#pm-page .pm-avis__symbole{width:34px;height:auto;flex:none;padding:4px;border-radius:8px;background:#fff}
#pm-page .pm-avis__mots{display:grid;gap:16px;min-width:0;padding:22px 24px 24px;border-radius:var(--r-tuile);background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
#pm-page .pm-avis__mots-tete{display:flex;align-items:center;gap:12px}
#pm-page .pm-avis__mots-badge{width:36px;height:36px;flex:none;border-radius:var(--r-disque)}
#pm-page .pm-avis__mots-titres{display:grid;gap:2px;min-width:0}
#pm-page .pm-avis__mots-titre{font:700 18px/1.3 var(--police-titre);color:#fff}
#pm-page .pm-avis__mots-sous{font:400 13px/1.3 var(--police-texte);color:var(--pm-secondaire-nuit)}
#pm-page .pm-avis__mots-liste{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#pm-page .pm-avis__mot{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px 0 10px;border-radius:var(--r-disque);background:#fff;box-shadow:0 10px 24px -12px rgba(0,0,0,.55);font:700 15px/1 var(--police-titre);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-avis__mot svg{width:17px;height:17px;color:var(--succes-700)}
/* Les deux premiers mots sont mis en avant. */
#pm-page .pm-avis__mot:nth-child(-n+2){height:44px;padding:0 16px 0 12px;font-size:17px}
#pm-page .pm-avis__mot:nth-child(-n+2) svg{width:20px;height:20px}

/* Lien « Lire les N avis » du mobile (bouton inverse du socle, un peu plus bas) */
#pm-page .pm-avis__lire-mobile{min-height:52px;margin-top:22px;padding:7px 7px 7px 20px}
#pm-page .pm-avis__lire-mobile .pm-bouton__disque{width:38px;height:38px;color:var(--pic-950)}
#pm-page .pm-avis__lire-mobile .pm-bouton__disque svg{width:18px;height:18px}

/* --- Tablette (760 – 1119 px) : une colonne --- */
@media (max-width:1119.98px){
  #pm-page .pm-avis{padding:88px 32px}
  #pm-page .pm-avis__haut{grid-template-columns:minmax(0,1fr);gap:40px}
  #pm-page .pm-avis__bas{grid-template-columns:minmax(0,1fr)}
}

/* --- Mobile (< 760 px) --- */
@media (max-width:759.98px){
  #pm-page .pm-avis{padding:64px 20px}
  #pm-page .pm-avis__fond{object-position:49% 64%;opacity:.26}
  #pm-page .pm-avis::before{background:linear-gradient(180deg,rgba(8,21,48,.55) 0%,rgba(8,21,48,.9) 55%,#081530 100%)}
  #pm-page .pm-avis__haut{gap:28px}
  #pm-page .pm-avis__chapo{font-size:17px}
  #pm-page .pm-avis__badge{width:52px;height:52px}
  #pm-page .pm-avis__note-valeur{font-size:44px}
  #pm-page .pm-avis__note-etoiles svg{width:20px;height:20px}
  #pm-page .pm-avis__carte{gap:14px;padding:24px}
  #pm-page .pm-avis__carte-etoiles svg{width:20px;height:20px}
  #pm-page .pm-avis__guillemet{height:30px;font-size:64px}
  #pm-page .pm-avis__texte{font-size:19px}
  #pm-page .pm-avis__vignette{width:64px;height:46px}
  #pm-page .pm-avis__bas{margin-top:40px;padding-top:32px}
  #pm-page .pm-avis__citation-texte{font-size:32px}
}

/* --- Mouvement réduit : changement d'avis immédiat, aucune jauge animée --- */
@media (prefers-reduced-motion:reduce){
  html.pm-js #pm-page .pm-avis__carrousel[data-pm-avis] .pm-avis__carte{transition:none;transform:none}
  #pm-page .pm-avis__carrousel.is-lecture .pm-avis__segment[aria-current="true"] .pm-avis__jauge::after{animation:none}
}

/* ===== 27. Accueil · Zones d'intervention (inc/accueil/zones.php, parts/accueil/zones.php, assets/js/pm-zones.js) =====
   Colonne gauche : en-tête + recherche (remplacée par le mini-formulaire de rappel). Colonne droite : carte SVG.
   Zoom : le script transforme « .pm-zones__couche » et tient à jour --pmz-ik (inverse du zoom) pour que le showroom,
   les points et le repère gardent leur taille. */
#pm-page .pm-zones{padding:var(--pm-pad-y) var(--pm-pad-x)}
#pm-page .pm-zones__grille{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:center}
/* Formulaire de rappel ouvert : la colonne gauche devient la plus haute ; la carte reste en haut au lieu de redescendre. */
#pm-page .pm-zones.is-rappel .pm-zones__grille{align-items:start}
#pm-page .pm-zones__intro{display:flex;flex-direction:column;gap:18px;min-width:0}
#pm-page .pm-zones .pm-titre-section{font-size:clamp(34px,calc(var(--pm-vw)*3),46px);line-height:1.06}

/* --- Recherche « Intervenez-vous chez moi ? » --- */
#pm-page .pm-zones__boite,
#pm-page .pm-zones__rappel{margin-top:6px;padding:24px;border-radius:var(--r-tuile);background:var(--pierre-50);box-shadow:inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-zones__boite,
#pm-page .pm-zones__chercher,
#pm-page .pm-zones__secours{display:grid;gap:14px}
#pm-page .pm-zones__secours{justify-items:start}
#pm-page .pm-zones__question{font:700 24px/1.2 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900)}
#pm-page .pm-zones__chercher .pm-champ__zone>svg{color:var(--pic-800)}
#pm-page .pm-zones__saisie{padding-right:134px;font-weight:500;font-size:16px;text-overflow:ellipsis}
#pm-page .pm-zones__saisie::placeholder{color:var(--pierre-600)}
#pm-page .pm-zones__verifier{position:absolute;right:4px;top:4px;display:flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font:700 15px/1 var(--police-titre);transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-zones__verifier:hover{background:var(--pic-900)}
#pm-page .pm-zones__verifier svg{width:18px;height:18px}
#pm-page .pm-zones__introuvable{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:12px;background:var(--alerte-100);font:400 14px/1.45 var(--police-texte);color:#5C3D00}
#pm-page .pm-zones__introuvable svg{width:18px;height:18px;margin-top:1px;color:var(--pic-800)}
#pm-page .pm-zones__introuvable a{font-weight:700;color:var(--pic-900);white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
#pm-page .pm-zones__atouts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font:400 14px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-zones__atout{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--succes-700)}
#pm-page .pm-zones__atout svg{width:16px;height:16px}
#pm-page .pm-zones__point-median{color:var(--pierre-400)}
#pm-page .pm-zones__tel{justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:40px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800);font-variant-numeric:tabular-nums}
#pm-page .pm-zones__tel svg{width:18px;height:18px}
#pm-page .pm-zones__tel:hover span{text-decoration:underline;text-underline-offset:5px}

/* --- Mini-formulaire de rappel --- */
#pm-page .pm-zones__rappel,
#pm-page .pm-zones__saisie-rappel{display:grid;gap:18px;min-width:0}
#pm-page .pm-zones__rappel-tete{display:grid;gap:4px}
#pm-page .pm-zones__rappel-surtitre{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-700)}
#pm-page .pm-zones__rappel-titre{font:700 26px/1.15 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900)}
#pm-page .pm-zones__rappel-titre:focus-visible{outline:none}
/* Encart de zone : vert dans le rayon, ambre au-delà. */
#pm-page .pm-zones__zone{display:flex;align-items:center;gap:12px;padding:10px 8px 10px 12px;border-radius:14px;background:var(--succes-100);box-shadow:inset 0 0 0 1px #CFE6D8;color:var(--succes-700)}
#pm-page .pm-zones__zone--hors{background:var(--alerte-100);box-shadow:inset 0 0 0 1px #F2DFB0;color:#7A5000}
#pm-page .pm-zones__zone-disque{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:var(--r-disque);background:#fff}
#pm-page .pm-zones__zone-disque svg{width:18px;height:18px}
#pm-page .pm-zones__zone-disque svg:last-child,
#pm-page .pm-zones__zone--hors .pm-zones__zone-disque svg:first-child{display:none}
#pm-page .pm-zones__zone--hors .pm-zones__zone-disque svg:last-child{display:block}
#pm-page .pm-zones__zone-texte{flex:1;min-width:0;display:grid;gap:1px;font:400 13px/1.35 var(--police-texte)}
#pm-page .pm-zones__zone-texte strong{font:700 15px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-zones__modifier{flex:none;min-height:40px;padding:0 10px;border-radius:var(--r-disque);font:700 14px/1 var(--police-titre);color:var(--pic-800);text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-zones__modifier:hover{color:var(--pic-900)}
#pm-page .pm-zones__groupe{display:grid;gap:12px;min-width:0}
#pm-page .pm-zones__etape{display:flex;align-items:center;gap:10px;font:700 16px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-zones__numero{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font-size:13px}
#pm-page .pm-zones__etape-aide{margin-left:auto;font:500 13px/1.3 var(--police-texte);color:var(--pierre-600);white-space:nowrap}
#pm-page .pm-zones__numero-saisi{font-variant-numeric:tabular-nums}
#pm-page .pm-zones__envoi{display:grid;gap:10px}
#pm-page .pm-zones__envoi .pm-bouton[aria-disabled="true"]{cursor:progress}
#pm-page .pm-zones__envoye{display:grid;gap:10px;justify-items:start}
#pm-page .pm-zones__envoye:focus-visible{outline:none}
#pm-page .pm-zones__envoye-disque{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-disque);background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-zones__merci{font:700 20px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-zones__recap{font:400 15px/1.5 var(--police-texte);color:var(--pierre-700)}

/* --- Carte --- */
#pm-page .pm-zones__col{position:relative;display:grid;gap:12px;min-width:0}
#pm-page .pm-zones__hote{position:relative;margin-bottom:48px}
#pm-page .pm-zones__hote--sans-photo{margin-bottom:0}
#pm-page .pm-zones__carte{position:relative;aspect-ratio:800/560;border-radius:var(--r-tuile);overflow:hidden;overflow:clip;background:var(--pic-950);box-shadow:0 32px 72px -32px rgba(8,21,48,.55);touch-action:pan-y;-webkit-user-select:none;user-select:none}
@supports not (aspect-ratio:1){#pm-page .pm-zones__carte{height:0;padding-bottom:70%}}
/* Zoomée : la carte se déplace au doigt ou à la souris (à l'échelle 1, la page défile normalement). */
#pm-page .pm-zones__hote.is-zoome .pm-zones__carte{touch-action:none;cursor:grab}
#pm-page .pm-zones__hote.is-zoome .pm-zones__carte.is-glisse{cursor:grabbing}
#pm-page .pm-zones__couche{position:absolute;inset:0;transform-origin:0 0}
#pm-page .pm-zones__svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
/* Étiquettes des communes, créées par le script dans le SVG (tailles en pixels d'écran : le script compense le zoom). */
#pm-page .pm-zones__etiquette text{font:700 12px var(--police-texte);fill:#fff;stroke:rgba(8,21,48,.7);stroke-width:3px;stroke-linejoin:round;paint-order:stroke}
#pm-page .pm-zones__etiquette circle{fill:#fff}
#pm-page .pm-zones__etiquette--2 text{font-weight:600;stroke-width:2.6px;opacity:.92}
#pm-page .pm-zones__etiquette--2 circle{opacity:.8}
#pm-page .pm-zones__showroom,
#pm-page .pm-zones__point{position:absolute;left:var(--x);top:var(--y);display:grid;place-items:center}
#pm-page .pm-zones__showroom{z-index:3;width:34px;height:34px;border-radius:10px;background:var(--pic-950);color:#fff;box-shadow:0 0 0 3px #fff;transform:translate(-50%,-50%) scale(var(--pmz-ik,1))}
#pm-page .pm-zones__showroom svg{width:18px;height:18px}
/* Points de chantier : vrais boutons. --dx / --dy : écart posé par le script quand un point touche le showroom. */
#pm-page .pm-zones__point{z-index:4;width:24px;height:24px;border-radius:var(--r-disque);transform:translate(-50%,-50%) scale(var(--pmz-ik,1)) translate(var(--dx,0px),var(--dy,0px))}
#pm-page .pm-zones__point>span{display:grid;place-items:center;width:24px;height:24px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 13px/1 var(--police-titre);box-shadow:0 0 0 3px rgba(255,255,255,.25),0 6px 14px -6px rgba(0,0,0,.6);transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-zones__point--2,
#pm-page .pm-zones__point--2>span{width:30px;height:30px}
#pm-page .pm-zones__point--3,
#pm-page .pm-zones__point--3>span{width:36px;height:36px}
#pm-page .pm-zones__point:hover>span{background:var(--pic-50)}
#pm-page .pm-zones__point[aria-pressed="true"]{z-index:6}
#pm-page .pm-zones__point[aria-pressed="true"]>span{background:var(--ciel-300);box-shadow:0 0 0 5px rgba(81,207,244,.35),0 8px 18px -6px rgba(0,0,0,.6)}
/* Focus lisible sur le bleu clair comme sur le bleu nuit : anneau Nuit puis anneau blanc. */
#pm-page .pm-zones__point:focus-visible{outline:none;z-index:7}
#pm-page .pm-zones__point:focus-visible>span{box-shadow:0 0 0 2px var(--pic-950),0 0 0 5px #fff}
@media (pointer:coarse){
  #pm-page .pm-zones__point{width:44px;height:44px}
}
/* Repère temporaire d'une commune cherchée qui n'a pas de point. */
#pm-page .pm-zones__repere{position:absolute;z-index:5;width:0;height:0;transform:scale(var(--pmz-ik,1))}
#pm-page .pm-zones__repere::before{content:"";position:absolute;left:-10px;top:-10px;width:20px;height:20px;border-radius:var(--r-disque);background:var(--ciel-300);box-shadow:0 0 0 3px #fff,0 0 0 9px rgba(81,207,244,.3)}
#pm-page .pm-zones__repere span{position:absolute;left:16px;top:-14px;display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 13px/1 var(--police-titre);white-space:nowrap;box-shadow:0 8px 18px -8px rgba(0,0,0,.6)}

/* --- Habillage de la carte : bulle d'aide, zoom, légende, fourgon --- */
#pm-page .pm-zones__aide{position:absolute;right:14px;top:14px;z-index:7;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 6px;border-radius:var(--r-disque);background:rgba(8,21,48,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);font:600 13px/1 var(--police-texte);color:#fff;white-space:nowrap;pointer-events:none}
#pm-page .pm-zones__aide-disque{display:grid;place-items:center;width:22px;height:22px;border-radius:var(--r-disque);background:#fff;color:var(--pic-800)}
#pm-page .pm-zones__aide-disque svg{width:12px;height:12px}
#pm-page .pm-zones__zoom{position:absolute;right:14px;bottom:14px;z-index:8;display:flex;flex-direction:column;gap:6px}
#pm-page .pm-zones__zoom button,
#pm-page .pm-zones__agrandir{background:#fff;color:var(--pic-950);box-shadow:0 8px 18px -8px rgba(0,0,0,.6);transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-zones__zoom button{display:grid;place-items:center;width:44px;height:44px;border-radius:12px}
#pm-page .pm-zones__zoom button:hover,
#pm-page .pm-zones__agrandir:hover{background:var(--pic-50)}
/* Bouton sans effet au zoom en cours (aria-disabled) : même aspect que sur la maquette, sans réaction au survol. */
#pm-page .pm-zones__zoom button[aria-disabled="true"],
#pm-page .pm-zones__zoom button[aria-disabled="true"]:hover{background:#fff;cursor:default}
#pm-page .pm-zones__zoom button:focus-visible,
#pm-page .pm-zones__agrandir:focus-visible{outline-color:var(--ciel-300)}
#pm-page .pm-zones__agrandir{position:absolute;right:10px;bottom:10px;z-index:8;height:44px;padding:0 14px 0 10px;border-radius:var(--r-disque);color:var(--pic-900);font:700 14px/1 var(--police-titre)}
#pm-page .pm-zones__agrandir-non,
#pm-page .pm-zones__hote.is-zoome .pm-zones__agrandir-oui{display:flex;align-items:center;gap:8px}
#pm-page .pm-zones__agrandir svg{width:18px;height:18px}
#pm-page .pm-zones__agrandir-oui,
#pm-page .pm-zones__hote.is-zoome .pm-zones__agrandir-non{display:none}
#pm-page .pm-zones__legende{position:absolute;left:14px;top:14px;z-index:7;display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.92);font:600 12px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-zones__legende li{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-zones__legende-showroom{width:12px;height:12px;border-radius:3px;background:var(--pic-950)}
#pm-page .pm-zones__legende-zone{width:24px;height:10px;border-radius:3px;background:linear-gradient(90deg,var(--ciel-300),var(--ciel-500) 50%,var(--pic-700) 50%)}
/* Photo du fourgon : déborde de la carte, en bas à gauche. */
#pm-page .pm-zones__fourgon{position:absolute;left:-44px;bottom:-50px;z-index:10;width:40%;pointer-events:none}
#pm-page .pm-zones__fourgon-photo{width:100%;height:auto;filter:drop-shadow(0 18px 16px rgba(8,21,48,.45))}
#pm-page .pm-zones__fourgon-legende{position:absolute;left:calc(100% + 14px);bottom:8px;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 14px 6px 6px;border-radius:18px;background:var(--pic-50);font:700 13px/1.3 var(--police-titre);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-zones__fourgon-disque{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:var(--r-disque);background:var(--pic-800);color:#fff}
#pm-page .pm-zones__fourgon-disque svg{width:13px;height:13px}

/* --- Fiche d'un point : bulle sur la carte. « .pm-zones__fiches » contient toutes les fiches (une seule affichée),
       le bouton « Devis à… » et le bouton de fermeture, communs à toutes. --- */
#pm-page .pm-zones__fiches{position:absolute;right:70px;top:14px;z-index:9;display:grid;gap:12px;width:290px;max-width:calc(100% - 84px);padding:16px;border-radius:var(--r-tuile);background:#fff;box-shadow:0 32px 72px -24px rgba(0,0,0,.6)}
html.pm-js #pm-page .pm-zones__fiches:not(.is-ouvert),
html.pm-js #pm-page .pm-zones__fiche:not(.is-active){display:none}
#pm-page .pm-zones__fiche{display:grid;gap:2px;min-width:0}
/* Au clavier, le focus passe du point à sa fiche : l'anneau entoure toute la bulle. */
#pm-page .pm-zones__fiche:focus-visible{outline:none}
#pm-page .pm-zones__fiches:has(.pm-zones__fiche:focus-visible){outline:3px solid var(--ciel-300);outline-offset:2px}
#pm-page .pm-zones__fiche-nom{padding-right:40px;font:700 18px/1.25 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-zones__fiche-meta{font:400 13px/1.35 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-zones__fermer{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-disque);background:var(--pierre-100);color:var(--encre)}
#pm-page .pm-zones__fermer:hover{background:var(--pierre-200)}
#pm-page .pm-zones__fermer svg{width:14px;height:14px}
#pm-page .pm-zones__chantiers{display:grid;gap:8px;margin-top:10px}
#pm-page .pm-zones__chantier{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;align-items:center;color:var(--encre)}
#pm-page .pm-zones__chantier:hover{color:var(--pic-800)}
#pm-page .pm-zones__vignette{display:grid;place-items:center;width:60px;height:44px;border-radius:8px;overflow:hidden;background:var(--pierre-100);color:var(--pierre-500)}
#pm-page .pm-zones__vignette img{width:100%;height:100%;object-fit:cover}
#pm-page .pm-zones__chantier-texte{display:grid;gap:2px;min-width:0}
#pm-page .pm-zones__chantier-titre{font:700 14px/1.3 var(--police-titre)}
#pm-page .pm-zones__chantier-produit{font:400 12px/1.3 var(--police-texte);color:var(--pierre-600)}

/* --- Communes principales --- */
#pm-page .pm-zones__villes{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;margin-top:36px;padding-top:20px;border-top:1px solid var(--pierre-200)}
#pm-page .pm-zones__villes-liste{display:flex;flex-wrap:wrap;align-items:center}
#pm-page .pm-zones__villes-liste li{display:flex;align-items:center;min-height:44px;font:700 16px/1.2 var(--police-titre);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-zones__villes-liste li:not(:last-child)::after{content:"/";padding:0 10px;color:var(--ciel-500)}
#pm-page .pm-zones__villes-liste a{display:inline-flex;align-items:center;min-height:44px}
#pm-page .pm-zones__villes-liste a:hover{color:var(--pic-800);text-decoration:underline;text-underline-offset:5px}
#pm-page .pm-zones__villes a.pm-zones__toutes{margin-left:auto;min-height:44px;white-space:nowrap}

/* --- Sans JavaScript : pas de recherche ni de points ; les fiches forment une liste sous la carte --- */
html:not(.pm-js) #pm-page .pm-zones__fiches{position:static;width:auto;max-width:none;padding:0;background:none;box-shadow:none;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
html:not(.pm-js) #pm-page .pm-zones__fiches>p{grid-column:1/-1;margin-top:8px}
html:not(.pm-js) #pm-page .pm-zones__fiche{align-content:start;padding:16px;border-radius:var(--r-tuile);background:var(--pierre-50)}
html:not(.pm-js) #pm-page .pm-zones__fiche-nom{padding-right:0}
html:not(.pm-js) #pm-page .pm-zones__fiche--membre{display:none}
html:not(.pm-js) #pm-page .pm-zones__legende{position:static;padding:0;background:none}
html:not(.pm-js) #pm-page .pm-zones__grille{align-items:start}

/* --- Tablette : une colonne --- */
@media (max-width:1119.98px){
  #pm-page .pm-zones__grille{grid-template-columns:minmax(0,1fr);align-items:start}
  #pm-page .pm-zones__boite,
  #pm-page .pm-zones__rappel{max-width:640px}
  #pm-page .pm-zones__fourgon{left:-10px;width:36%}
}

/* --- Mobile --- */
@media (max-width:759.98px){
  #pm-page .pm-zones .pm-titre-section{font-size:30px}
  #pm-page .pm-zones__grille{gap:28px}
  #pm-page .pm-zones__boite,
  #pm-page .pm-zones__rappel{padding:18px;max-width:none}
  #pm-page .pm-zones__question{font-size:20px}
  #pm-page .pm-zones__atouts{column-gap:6px}
  #pm-page .pm-zones__saisie{padding-right:96px}
  #pm-page .pm-zones__chercher .pm-champ__zone--icone .pm-zones__saisie{padding-left:44px}
  #pm-page .pm-zones__chercher .pm-champ__zone>svg{left:16px}
  #pm-page .pm-zones__verifier{padding:0 16px}
  #pm-page .pm-zones__verifier svg{display:none}
  #pm-page .pm-zones__tel,
  #pm-page .pm-zones__modifier{min-height:44px}
  #pm-page .pm-zones__rappel-titre{font-size:22px}
  /* Pilules de projet : une ligne qui défile, jusqu'aux bords de l'encart (intérieur de 18 px). */
  #pm-page .pm-zones__rappel .pm-pilules--defile{margin-inline:-18px;padding-inline:18px;scroll-padding-inline:18px}
  #pm-page .pm-zones__hote{margin-bottom:70px}
  #pm-page .pm-zones__hote--sans-photo{margin-bottom:0}
  #pm-page .pm-zones__showroom{width:30px;height:30px;border-radius:9px}
  #pm-page .pm-zones__showroom svg{width:16px;height:16px}
  /* Points : zone de toucher de 44 px autour d'une pastille plus petite. */
  #pm-page .pm-zones__point{width:44px;height:44px}
  #pm-page .pm-zones__point>span{width:20px;height:20px}
  #pm-page .pm-zones__point--2>span{width:24px;height:24px}
  #pm-page .pm-zones__point--3>span{width:28px;height:28px}
  #pm-page .pm-zones__aide{left:10px;right:auto;top:10px}
  #pm-page .pm-zones__legende{position:static;padding:0;background:none}
  #pm-page .pm-zones__fourgon{left:-8px;bottom:-70px;width:54%}
  #pm-page .pm-zones__fourgon-legende{left:calc(100% + 6px);bottom:2px;width:168px;max-width:calc(85% + 8px);white-space:normal}
  /* Fiche d'un point : sous la carte. */
  #pm-page .pm-zones__fiches{position:relative;right:auto;top:auto;width:auto;max-width:none;background:var(--pierre-50);box-shadow:none}
  #pm-page .pm-zones__fiche-nom{padding-right:48px}
  #pm-page .pm-zones__fermer{right:8px;top:8px;width:44px;height:44px;background:var(--pierre-200)}
  #pm-page .pm-zones__chantier{grid-template-columns:72px minmax(0,1fr);gap:12px;min-height:56px}
  #pm-page .pm-zones__vignette{width:72px;height:54px}
  #pm-page .pm-zones__chantier-titre{font-size:15px}
  #pm-page .pm-zones__chantier-produit{font-size:13px}
  #pm-page .pm-zones__villes{margin-top:28px}
  #pm-page .pm-zones__villes a.pm-zones__toutes{margin-left:0}
}

/* ===== 28. Accueil · Showroom (inc/accueil/showroom.php, parts/accueil/showroom.php, parts/blocs/showroom-rdv.php, assets/js/pm-showroom.js) ===== */

/* --- Section : marge, en-tête, grille photo / carte / infos --- */
#pm-page .pm-showroom{padding:96px 60px}
#pm-page .pm-showroom__entete{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:end}
#pm-page .pm-showroom__titres{display:grid;gap:18px;justify-items:start;min-width:0}
#pm-page .pm-showroom .pm-surtitre{line-height:17px}
#pm-page .pm-showroom .pm-titre-section{font-size:clamp(34px,calc(var(--pm-vw)*3),46px);line-height:1.06}
#pm-page .pm-showroom__chapo,
#pm-page .pm-showroom__chapo p{max-width:600px;line-height:1.6}
#pm-page .pm-showroom__chapo p+p{margin-top:12px}
#pm-page .pm-showroom__chapo a{font-weight:600}
#pm-page .pm-showroom__corps{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto 1fr;grid-template-areas:"photo carte" "infos carte";gap:24px 48px;align-items:start;margin-top:40px}
#pm-page .pm-showroom__corps>.pm-rdv{grid-area:carte}

/* --- Photo et pastille de statut --- */
#pm-page .pm-showroom__photo{grid-area:photo;position:relative;min-width:0;aspect-ratio:16/10;border-radius:var(--r-zone);overflow:hidden;background:var(--pierre-200);box-shadow:0 32px 72px -40px rgba(8,21,48,.5)}
#pm-page .pm-showroom__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:32% 50%}
#pm-page .pm-showroom__photo--vide{display:grid;place-items:center;background:var(--pierre-100);box-shadow:none;color:var(--pierre-400)}
#pm-page .pm-showroom__statut{position:absolute;left:18px;top:18px;max-width:calc(100% - 36px);height:36px;padding:0 14px 0 12px;border-radius:var(--r-disque);background:rgba(255,255,255,.95);box-shadow:0 8px 20px -10px rgba(8,21,48,.5);font:700 13px/normal var(--police-titre);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-showroom__statut .pm-statut__texte{overflow:hidden;text-overflow:ellipsis}
#pm-page .pm-showroom__statut .pm-statut__point{box-shadow:0 0 0 3px rgba(138,132,121,.2)}
#pm-page .pm-showroom__statut[data-etat="ouvert"] .pm-statut__point{box-shadow:0 0 0 3px rgba(30,112,68,.18)}
/* Tant que le script n'a pas calculé l'état (ou sans JavaScript), les statuts restent invisibles : les horaires sont juste à côté. */
#pm-page .pm-showroom [data-pm-statut]:not([data-etat]),
#pm-page .pm-rdv [data-pm-statut]:not([data-etat]){visibility:hidden}

/* --- Bandeau d'infos : adresse, horaires, téléphone --- */
#pm-page .pm-showroom__infos{grid-area:infos;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;min-width:0;padding:22px 24px;border-radius:var(--r-zone);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-showroom__info{display:grid;gap:8px;align-content:start;justify-items:start;min-width:0}
#pm-page .pm-showroom__info>*{min-width:0;max-width:100%}
#pm-page .pm-showroom__info+.pm-showroom__info{padding-left:24px;border-left:1px solid var(--pierre-200)}
#pm-page .pm-showroom__info-titre{display:flex;align-items:center;gap:8px;min-height:16px;line-height:16px}
#pm-page .pm-showroom__info-titre svg{width:16px;height:16px;color:var(--pic-800)}
#pm-page .pm-showroom__info-tete{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
#pm-page .pm-showroom__badge{flex:none;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-disque);background:var(--pierre-100);font:700 12px/normal var(--police-titre);letter-spacing:.1em;text-transform:uppercase;color:var(--pierre-700)}
#pm-page .pm-showroom__badge .pm-statut__point{width:6px;height:6px;background:currentColor}
#pm-page .pm-showroom__badge[data-etat="ouvert"]{background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-showroom__adresse{display:grid;gap:2px;font:400 15px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-showroom__rue{font:700 17px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-showroom__atouts{display:flex;flex-wrap:wrap;gap:6px}
#pm-page .pm-showroom__atouts li{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px 0 8px;border-radius:var(--r-disque);background:var(--pic-100);font:600 13px/normal var(--police-texte);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-showroom__atouts svg{width:16px;height:16px}
#pm-page a.pm-showroom__itineraire{gap:8px;min-height:40px;font:700 15px/1.3 var(--police-titre)}
#pm-page a.pm-showroom__itineraire>span{text-underline-offset:5px}
#pm-page .pm-showroom .pm-horaires{width:100%}
#pm-page .pm-showroom .pm-horaires__ligne{gap:10px;padding:5px 0 5px 8px;border-top:0}
#pm-page .pm-showroom .pm-horaires__ligne dt,
#pm-page .pm-showroom .pm-horaires__ligne dd{font:400 14px/18px var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-showroom .pm-horaires__ligne dd{font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-showroom .pm-horaires__ligne.is-aujourdhui dt,
#pm-page .pm-showroom .pm-horaires__ligne.is-aujourdhui dd{font-weight:700;color:var(--pic-900)}
#pm-page .pm-showroom__note{font:400 13px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-showroom__note--tel{font-size:14px}
#pm-page .pm-showroom__tel{font:700 20px/1.3 var(--police-titre);color:var(--pic-900);font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-showroom__tel:hover{color:var(--pic-800);text-decoration:underline;text-underline-offset:5px}

/* --- Carte de réservation (bloc réutilisable [pm_showroom_rdv]) --- */
#pm-page .pm-rdv{container:pm-rdv/inline-size;min-width:0;padding:26px 28px;border-radius:var(--r-zone);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200),0 32px 72px -36px rgba(8,21,48,.32)}
#pm-page .pm-rdv__form,
#pm-page .pm-rdv__confirmation,
#pm-page .pm-rdv__appel{display:grid;gap:20px;min-width:0}
#pm-page .pm-rdv__tete{display:grid;gap:6px}
#pm-page .pm-rdv__surtitre{font:700 12px/1.35 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-700)}
#pm-page .pm-rdv__court{display:none}
#pm-page .pm-rdv__titre{font:700 28px/1.15 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900)}
#pm-page .pm-rdv__titre:focus-visible{outline-offset:4px}
#pm-page .pm-rdv__texte{font:400 15px/1.5 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-rdv__sms{white-space:nowrap;font-variant-numeric:tabular-nums}

/* Retour du formulaire envoyé sans JavaScript */
#pm-page .pm-rdv__retour{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 14px;border-radius:12px;font:600 15px/1.4 var(--police-texte)}
#pm-page .pm-rdv__retour svg{width:20px;height:20px}
#pm-page .pm-rdv__retour--succes{background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-rdv__retour--erreur{background:var(--erreur-100);color:var(--erreur-700)}

/* Étapes */
#pm-page .pm-rdv__etape{display:grid;gap:14px;min-width:0}
#pm-page .pm-rdv__etape--coordonnees{gap:12px}
#pm-page .pm-rdv__etape-titre{display:flex;align-items:center;gap:10px;font:700 16px/21px var(--police-titre);color:var(--pic-900)}
#pm-page .pm-rdv__numero{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:var(--r-disque);background:var(--pic-800);font:700 13px/normal var(--police-titre);color:#fff}

/* Jours (avec JavaScript) */
#pm-page .pm-rdv__jours{display:grid;grid-template-columns:repeat(var(--pm-rdv-jours,6),minmax(0,1fr));gap:6px}
#pm-page .pm-rdv__jour{display:grid;place-content:center;justify-items:center;gap:2px;min-width:0;height:76px;border:1px solid var(--pierre-300);border-radius:14px;background:#fff;color:var(--pic-900);text-align:center;transition:background-color var(--d-rapide) var(--ease),border-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease)}
#pm-page .pm-rdv__jour:hover{border-color:var(--pic-800)}
#pm-page .pm-rdv__jour[aria-checked="true"]{border-color:var(--pic-800);background:var(--pic-800);color:#fff}
#pm-page .pm-rdv__jour-nom{font:700 12px/14px var(--police-titre);letter-spacing:.06em;text-transform:uppercase}
#pm-page .pm-rdv__jour-numero{font:700 20px/1.1 var(--police-titre);font-variant-numeric:tabular-nums}
#pm-page .pm-rdv__jour-mois{font:400 12px/16px var(--police-texte)}

/* Créneaux : un panneau par jour ; avec JavaScript, seul le jour choisi est affiché */
#pm-page .pm-rdv__panneaux{display:grid;gap:18px;min-width:0}
#pm-page .pm-rdv__panneau-titre{margin-bottom:10px;font:700 15px/1.3 var(--police-titre);color:var(--pic-900)}
html.pm-js #pm-page .pm-rdv__panneau:not(.is-actif){display:none}
html.pm-js #pm-page .pm-rdv__panneau-titre{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#pm-page .pm-rdv__lignes{display:grid;gap:14px}
#pm-page .pm-rdv__ligne{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px 12px;align-items:center}
#pm-page .pm-rdv__moment{font:600 13px/17px var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-rdv__creneaux{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#pm-page .pm-rdv__creneau{position:relative;min-width:0}
#pm-page .pm-rdv__creneau input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#pm-page .pm-rdv__creneau input:disabled{cursor:not-allowed}
#pm-page .pm-rdv__heure{display:grid;place-items:center;height:48px;padding:0 6px;border:1px solid var(--pierre-300);border-radius:var(--r-disque);background:#fff;font:700 15px/normal var(--police-titre);font-variant-numeric:tabular-nums;color:var(--pic-900);transition:background-color var(--d-rapide) var(--ease),border-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease)}
#pm-page .pm-rdv__creneau input:hover+.pm-rdv__heure{border-color:var(--pic-800)}
#pm-page .pm-rdv__creneau input:checked+.pm-rdv__heure{border-color:var(--pic-800);background:var(--pic-800);color:#fff}
#pm-page .pm-rdv__creneau input:focus-visible+.pm-rdv__heure{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-page .pm-rdv__creneau input:disabled+.pm-rdv__heure{border-color:var(--pierre-200);background:var(--pierre-100);color:var(--pierre-500);text-decoration:line-through}
#pm-page .pm-rdv__ferme{display:flex;align-items:center;min-height:48px;font:400 14px/18px var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-rdv__legende{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font:400 13px/17px var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-rdv__legende-complet{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-rdv__pastille{width:14px;height:14px;border-radius:var(--r-disque);background:linear-gradient(var(--pierre-500),var(--pierre-500)) center/8px 1px no-repeat var(--pierre-100);box-shadow:inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-rdv__erreur{display:flex;align-items:flex-start;gap:8px;font:600 14px/1.4 var(--police-texte);color:var(--erreur-700)}
#pm-page .pm-rdv__erreur svg{width:18px;height:18px;margin-top:1px}

/* Coordonnées : champs du socle, aux mesures de la maquette (rayon 12, 16 px) */
#pm-page .pm-rdv__champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
#pm-page .pm-rdv .pm-champ{gap:6px}
#pm-page .pm-rdv .pm-champ__label{font-size:14px;line-height:18px}
#pm-page .pm-rdv .pm-champ__saisie{padding:0 16px;border-radius:12px;font:500 16px/1.3 var(--police-texte)}
#pm-page .pm-rdv .pm-champ__zone--icone .pm-champ__saisie{padding-left:44px;font-variant-numeric:tabular-nums}
#pm-page .pm-rdv .pm-champ__zone>svg{left:16px;width:18px;height:18px;margin-top:-9px}
#pm-page .pm-rdv .pm-champ__saisie::placeholder{color:var(--pierre-600)}
#pm-page .pm-rdv .pm-champ__erreur{font-size:13px;font-weight:600}

/* Envoi */
#pm-page .pm-rdv__pied{display:grid;gap:10px}
#pm-page .pm-rdv__envoi{padding:6px 6px 6px 22px;letter-spacing:0}
#pm-page .pm-rdv__envoi .pm-bouton__texte{min-width:0;line-height:1.25}
#pm-page .pm-rdv__envoi .pm-bouton__disque{width:44px;height:44px}
/* Sans créneau choisi : bouton gris, toujours cliquable (il affiche l'erreur). Avec créneau : « pm-bouton--action » (Braise). */
html.pm-js #pm-page .pm-rdv__envoi:not(.pm-bouton--action){background:var(--pierre-100);color:var(--pierre-700)}
html.pm-js #pm-page .pm-rdv__envoi:not(.pm-bouton--action):hover{background:var(--pierre-200)}
html.pm-js #pm-page .pm-rdv__envoi:not(.pm-bouton--action) .pm-bouton__disque{background:#fff;color:var(--pierre-700)}
/* Sans JavaScript : le bouton envoie toujours la demande. */
html:not(.pm-js) #pm-page .pm-rdv__envoi{background:var(--braise-600);color:#fff}
html:not(.pm-js) #pm-page .pm-rdv__envoi:hover{background:var(--braise-700)}
html:not(.pm-js) #pm-page .pm-rdv__envoi .pm-bouton__disque{background:#fff;color:var(--braise-600)}
#pm-page .pm-rdv__mention{color:var(--pierre-700)}

/* Confirmation */
#pm-page .pm-rdv__coche{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-disque);background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-rdv__coche svg{width:28px;height:28px}
#pm-page .pm-rdv__confirmation .pm-rdv__titre{line-height:1.2}
#pm-page .pm-rdv__recap{display:grid;gap:12px;padding:16px;border-radius:16px;background:var(--pierre-50)}
#pm-page .pm-rdv__recap li{display:flex;align-items:center;gap:12px;font:400 15px/1.4 var(--police-texte);color:var(--encre)}
#pm-page .pm-rdv__recap svg{width:20px;height:20px;color:var(--pic-800)}
#pm-page .pm-rdv__recap-date span{font:700 16px/1.35 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-rdv__actions{display:flex;flex-wrap:wrap;gap:10px}
#pm-page .pm-rdv__action{flex:1 1 160px;gap:10px;padding:7px 18px;white-space:nowrap}
#pm-page .pm-rdv__action--agenda{flex-basis:200px}
#pm-page .pm-rdv__action .pm-bouton__avant svg{width:18px;height:18px}
#pm-page .pm-rdv__modifier{justify-self:start;min-height:40px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#pm-page .pm-rdv__modifier:hover{color:var(--pic-900)}

/* Encart « Appelez-nous » (aucun créneau à proposer) */
#pm-page .pm-rdv__appeler{justify-content:center;font-variant-numeric:tabular-nums}
#pm-page .pm-rdv__statut{font:400 14px/1.4 var(--police-texte);color:var(--pierre-700)}

/* Contrastes forcés (Windows) : l'état choisi ne repose pas que sur la couleur de fond */
@media (forced-colors:active){
  #pm-page .pm-rdv__jour[aria-checked="true"],
  #pm-page .pm-rdv__creneau input:checked+.pm-rdv__heure{outline:3px solid Highlight;outline-offset:-3px}
}

/* --- Bandeau d'infos trop étroit pour trois colonnes (ordinateur de 1120 à 1399 px, tablette de 760 à 839 px) :
       adresse et horaires côte à côte, téléphone dessous --- */
@media (min-width:1120px) and (max-width:1399.98px),(min-width:760px) and (max-width:839.98px){
  #pm-page .pm-showroom__infos{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
  #pm-page .pm-showroom__info:nth-child(3){grid-column:1/-1;padding:18px 0 0;border-left:0;border-top:1px solid var(--pierre-200)}
}

/* --- Tablette : photo, carte, infos --- */
@media (max-width:1119.98px){
  #pm-page .pm-showroom{padding:72px 32px}
  #pm-page .pm-showroom__entete{grid-template-columns:minmax(0,1fr);gap:20px}
  #pm-page .pm-showroom__corps{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"photo" "carte" "infos";gap:24px}
}

/* --- Mobile --- */
@media (max-width:759.98px){
  #pm-page .pm-showroom{padding:64px 20px}
  #pm-page .pm-showroom__entete{gap:16px}
  #pm-page .pm-showroom .pm-titre-section{font-size:30px}
  #pm-page .pm-showroom__corps{gap:20px;margin-top:24px}
  #pm-page .pm-showroom__statut{left:12px;top:12px;max-width:calc(100% - 24px)}
  #pm-page .pm-showroom__infos{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px}
  #pm-page .pm-showroom__info+.pm-showroom__info{padding:16px 0 0;border-left:0;border-top:1px solid var(--pierre-200)}
  /* Cibles tactiles de 44 px sans écarter les lignes */
  #pm-page a.pm-showroom__itineraire{min-height:44px;margin-block:-2px}
  #pm-page .pm-showroom__tel{display:inline-flex;align-items:center;min-height:44px;margin-block:-9px}
  #pm-page .pm-rdv{padding:20px 18px}
  #pm-page .pm-rdv__titre{font-size:24px}
  #pm-page .pm-rdv__long{display:none}
  #pm-page .pm-rdv__court{display:inline}
  #pm-page .pm-rdv__jour{height:68px}
  #pm-page .pm-rdv__ligne{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-rdv__champs{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-rdv__modifier{min-height:44px}
}

/* Petits mobiles : les six jours gardent 44 px de large */
@media (max-width:379.98px){
  #pm-page .pm-rdv__jours{gap:4px}
}

/* Carte dans une colonne étroite (ordinateur de 1120 à 1300 px, bloc réutilisable) : champs empilés, libellés courts, lignes sur une colonne */
@container pm-rdv (max-width:379.98px){
  #pm-page .pm-rdv__champs{grid-template-columns:minmax(0,1fr)}
}
@container pm-rdv (max-width:359.98px){
  #pm-page .pm-rdv__long{display:none}
  #pm-page .pm-rdv__court{display:inline}
}
@container pm-rdv (max-width:319.98px){
  #pm-page .pm-rdv__ligne{grid-template-columns:minmax(0,1fr)}
}

/* ===== 29. Accueil · Actualités (inc/accueil/actualites.php, parts/accueil/actualites.php, assets/js/pm-actualites.js) ===== */
/* --- Particularités de la section sur son conteneur Elementor (#actualites) : marge 104 × 60, H2 de 44 px,
       lien de l'en-tête en bas à droite. L'en-tête lui-même est fait de widgets (voir le socle). --- */
#pm-page #actualites{--pm-h2:44px;--pm-pad-y:104px;padding:var(--pm-pad-y) var(--pm-pad-x)}
@media (min-width:760px){
  #pm-page #actualites .pm-entete-section{grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:end}
  #pm-page #actualites .pm-entete-section>:first-child{max-width:760px}
  #pm-page #actualites .pm-entete-section>:nth-child(2){justify-self:end;max-width:none}
}
/* Lien « Toutes les actualités » de l'en-tête (widget Bouton, classe « pm-lien-fleche ») : bouton contour de la maquette,
   48 px, filet 1,5 px Pic 800, disque Pic 800 de 36 px à flèche blanche. Le balisage du widget ne change pas. */
#pm-page #actualites .pm-lien-fleche .elementor-button{min-height:48px;padding:6px 7.5px 6px 21.5px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1.5px var(--pic-800);font:700 15px/1.2 var(--police-titre);color:var(--pic-800);white-space:nowrap;
  transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page #actualites .pm-lien-fleche .elementor-button:hover{background:var(--pic-50);color:var(--pic-900);box-shadow:inset 0 0 0 2px var(--pic-900)}
#pm-page #actualites .pm-lien-fleche .elementor-button:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px;box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page #actualites .pm-lien-fleche .elementor-button-text{text-decoration:none}
#pm-page #actualites .pm-lien-fleche .elementor-button-content-wrapper{gap:12px}
#pm-page #actualites .pm-lien-fleche .elementor-button-content-wrapper::after{width:36px;height:36px;border-radius:var(--r-disque);-webkit-mask:none;mask:none;
  background:var(--pic-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/18px no-repeat}
@media (max-width:1119.98px){
  #pm-page #actualites{--pm-h2:38px;--pm-pad-y:80px}
}
@media (max-width:759.98px){
  #pm-page #actualites{--pm-h2:30px;--pm-pad-y:64px}
  /* Le lien de l'en-tête laisse la place au bouton pleine largeur placé sous les cartes. */
  #pm-page #actualites .pm-entete-section .pm-lien-fleche{display:none}
  #pm-page #actualites .pm-entete-section>:nth-child(2):not(:has(>:not(.pm-lien-fleche))){display:none}
}

/* --- Liste des articles --- */
#pm-page .pm-actus{max-width:1320px;margin:40px auto 0}
#pm-page .pm-actus__liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
#pm-page .pm-actus__item{display:flex;min-width:0}

/* --- Carte article : un lien entier (fondation « pm-carte » : filet Pierre 200, survol bordure Pic + ombre + filet lumière) --- */
#pm-page .pm-actu{flex:1;min-width:0;display:flex;flex-direction:column;border-radius:var(--r-zone);color:var(--encre)}
#pm-page .pm-actu:hover{color:var(--encre)}
/* Le filet lumière suit les coins arrondis : bande de 3 px peinte en haut d'un calque de la taille de la carte. */
#pm-page .pm-actu::before{bottom:-1px;height:auto;border-radius:inherit;background:var(--filet-lumiere) no-repeat top/100% 3px;pointer-events:none}

/* Photo 4:3 à fond perdu ; sans image mise en avant : aplat neutre et picto de la catégorie. */
#pm-page .pm-actu__visuel{position:relative;flex:none;aspect-ratio:4/3;overflow:hidden;border-radius:19px 19px 0 0;background:var(--pierre-100)}
#pm-page .pm-actu__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#pm-page .pm-actu__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-actu__aplat svg{width:40px;height:40px;stroke-width:1.5}
#pm-page .pm-actu__categorie{position:absolute;top:13px;left:13px;z-index:1;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 26px);min-height:30px;padding:4px 12px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);box-shadow:0 4px 12px -4px rgba(8,21,48,.25);font:700 12px/1.2 var(--police-titre);letter-spacing:.12em;text-transform:uppercase}
#pm-page .pm-actu__categorie svg{width:14px;height:14px}

#pm-page .pm-actu__corps{flex:1;display:flex;flex-direction:column;gap:10px;padding:18px 19px 19px}
#pm-page .pm-actu__meta{font:400 14px/1.35 var(--police-texte);color:var(--pierre-700)}
/* Hauteur minimale de 3 lignes (71 px ; 2 lignes, 45 px en mobile) : les extraits des cartes voisines restent alignés. */
#pm-page .pm-actu__titre{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;min-height:3.75em;font:700 19px/1.25 var(--police-titre);color:var(--pic-900);text-wrap:balance}
#pm-page .pm-actu__extrait{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;font:400 15px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-actu__lire{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800)}
#pm-page .pm-actu__lire svg{width:16px;height:16px;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-actu:hover .pm-actu__lire svg{transform:translateX(3px)}

/* --- Tablette : 2 colonnes --- */
@media (max-width:1119.98px){
  #pm-page .pm-actus__liste{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}

/* --- Mobile : ligne qui défile (cartes à 82 %, arrêt sur chaque carte), débord de 20 px de chaque côté ; bouton dessous --- */
/* --- Actualités · tablette étroite (760–899 px) : trois colonnes couperaient les titres ; ligne qui défile, comme en mobile --- */
@media (min-width:760px) and (max-width:899.98px){
  #pm-page .pm-actus__liste{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:44%;gap:16px;margin:-6px -32px;padding:6px 32px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:32px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #pm-page .pm-actus__liste::-webkit-scrollbar{display:none}
  #pm-page .pm-actus__item{scroll-snap-align:start}
}
@media (max-width:759.98px){
  #pm-page .pm-actus{margin-top:24px}
  /* 6 px en haut et en bas (compensés par la marge) : l'anneau de focus et l'ombre ne sont pas rognés par le défilement. */
  #pm-page .pm-actus__liste{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;margin:-6px -20px;padding:6px 20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #pm-page .pm-actus__liste::-webkit-scrollbar{display:none}
  #pm-page .pm-actus__item{scroll-snap-align:start}
  #pm-page .pm-actu__corps{padding:16px 17px 17px}
  #pm-page .pm-actu__titre{min-height:2.5em;font-size:18px}
  /* Bouton de la maquette : 52 px (disque de 40 px). */
  #pm-page .pm-actus__tout{min-height:52px;margin-top:24px;padding:6px 7.5px 6px 21.5px}
}

/* ===== 30. Accueil · FAQ (inc/accueil/faq.php, parts/blocs/faq.php, assets/js/pm-faq.js) =====
   Code court [pm_faq]. « pm-faq--accueil » : section complète (en-tête + carte contact à gauche, filtres + accordéon
   à droite ; la carte contact passe sous la liste en tablette et en mobile). « pm-faq--liste » : accordéon seul.
   États : .pm-faq__item.is-ouverte (réponse ouverte) · .is-suite (au-delà de 5 en mobile, derrière « Voir les autres »).
   Sans JavaScript (pas de classe « pm-js » sur <html>), toutes les réponses sont dépliées. */
#pm-page .pm-faq{
  --faq-rayon:18px;          /* cartes des questions (valeur des captures ; la fiche écrit 16) */
  --faq-rayon-contact:20px;  /* carte contact (captures ; la fiche écrit 16) */
  --faq-ecart:10px;          /* entre deux questions (captures ; la fiche écrit 20, qui est l'écart filtres / liste) */
}
#pm-page .pm-faq--accueil{padding:104px var(--pm-pad-x)}   /* 104 × 60 · 80 × 32 · 64 × 20 */
#pm-page .pm-faq__grille{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);grid-template-rows:auto 1fr;grid-template-areas:"tete liste" "contact liste";gap:32px 72px;align-items:start}

/* --- En-tête --- */
#pm-page .pm-faq__tete{grid-area:tete;display:grid;gap:16px;min-width:0}
#pm-page .pm-faq .pm-surtitre::before{width:32px}   /* filet de 32 px (brief §4) ; les fondations en ligne en donnent 28 */
#pm-page .pm-faq__titre{font-size:44px}
#pm-page .pm-faq__chapo{max-width:460px;font-size:18px;line-height:1.6}

/* --- Colonne des questions : filtres, liste, « Voir les autres » --- */
#pm-page .pm-faq__corps{grid-area:liste;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
#pm-page .pm-faq__filtres{padding:2px}
#pm-page .pm-faq__filtre{gap:7px;padding-right:14px;font-size:14px}
#pm-page .pm-faq__nombre{position:relative;font-size:13px;opacity:.75}   /* relative : garde le texte masqué (« questions ») dans la ligne qui défile */

#pm-page .pm-faq__liste{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--faq-ecart)}
#pm-page .pm-faq__item{border-radius:var(--faq-rayon);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200);transition:box-shadow var(--d-base) var(--ease)}
html.pm-js #pm-page .pm-faq__item.is-ouverte{box-shadow:inset 0 0 0 1.5px var(--pic-800),0 16px 40px -20px rgba(8,21,48,.25)}
#pm-page .pm-faq__bouton{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:16px;align-items:center;width:100%;min-height:72px;padding:16px 18px 16px 24px;border-radius:var(--faq-rayon);font:700 18px/1.35 var(--police-titre);color:var(--pic-900);transition:color var(--d-rapide) var(--ease)}
#pm-page .pm-faq__bouton:hover{color:var(--pic-800)}
html:not(.pm-js) #pm-page .pm-faq__bouton{cursor:default}
html:not(.pm-js) #pm-page .pm-faq__bouton:hover{color:var(--pic-900)}
#pm-page .pm-faq__disque{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);transition:background-color var(--d-rapide) var(--ease),color var(--d-rapide) var(--ease)}
#pm-page .pm-faq__disque svg{grid-area:1/1;width:16px;height:16px}
#pm-page .pm-faq__disque svg:last-child,
#pm-page .pm-faq__item.is-ouverte .pm-faq__disque svg:first-child{display:none}
#pm-page .pm-faq__item.is-ouverte .pm-faq__disque svg:last-child{display:block}
#pm-page .pm-faq__item.is-ouverte .pm-faq__disque{background:var(--pic-800);color:#fff}

/* Réponse : la hauteur s'anime par la rangée de grille (0fr → 1fr) ; fermée, elle sort aussi de l'ordre de tabulation. */
#pm-page .pm-faq__panneau{display:grid;grid-template-rows:1fr}
#pm-page .pm-faq__panneau-int{min-height:0;overflow:hidden}
html.pm-js #pm-page .pm-faq__panneau{transition:grid-template-rows var(--d-base) var(--ease),visibility 0s linear var(--faq-delai,0s)}
html.pm-js #pm-page .pm-faq__item:not(.is-ouverte) .pm-faq__panneau{grid-template-rows:0fr;visibility:hidden;--faq-delai:var(--d-base)}
/* Ouverture par ancre ou changement de filtre : état posé sans animation (pm-faq.js). */
html.pm-js #pm-page .pm-faq.is-sans-transition :is(.pm-faq__item,.pm-faq__panneau){transition:none}
#pm-page .pm-faq__reponse{display:grid;gap:12px;padding:0 24px 24px}
#pm-page .pm-faq__texte{display:grid;gap:10px;max-width:640px;font-size:16px;line-height:1.65;color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-faq__texte a{color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
#pm-page .pm-faq__texte a:hover{color:var(--pic-900)}
#pm-page .pm-faq__texte :is(ul,ol){display:grid;gap:4px;padding-left:1.25em;list-style:disc}
#pm-page .pm-faq__texte ol{list-style:decimal}
#pm-page .pm-faq__lien{position:relative;justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:32px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800)}
#pm-page .pm-faq__lien span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#pm-page .pm-faq__lien svg{width:16px;height:16px;transition:transform var(--d-rapide) var(--ease)}
#pm-page .pm-faq__lien:hover{color:var(--pic-900)}
#pm-page .pm-faq__lien:hover svg{transform:translateX(3px)}

/* « Voir les N autres questions » : mobile seulement (voir plus bas) */
#pm-page .pm-faq__plus{display:none}

/* --- Carte contact --- */
#pm-page .pm-faq__contact{grid-area:contact;display:grid;min-width:0;max-width:440px;border:1px solid var(--pierre-200);border-radius:var(--faq-rayon-contact);background:#fff;overflow:hidden}
#pm-page .pm-faq__photo{position:relative;aspect-ratio:16/10;background:var(--pierre-100)}
#pm-page .pm-faq__photo-img{width:100%;height:100%;object-fit:cover}
#pm-page .pm-faq__legende{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 24px);height:30px;padding:0 12px;border-radius:var(--r-disque);background:#fff;box-shadow:0 4px 12px -4px rgba(8,21,48,.3);font:700 12px/1 var(--police-titre);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--pic-900)}
#pm-page .pm-faq__legende svg{width:14px;height:14px;color:var(--pic-800)}
#pm-page .pm-faq__legende span{overflow:hidden;text-overflow:ellipsis;line-height:30px}   /* hauteur pleine : les accents des capitales ne sont pas rognés */
#pm-page .pm-faq__contact-corps{display:grid;gap:16px;align-content:start;min-width:0;padding:26px 28px}
#pm-page .pm-faq__contact-textes{display:grid;gap:6px}
#pm-page .pm-faq__contact-titre{font:700 20px/1.25 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-faq__contact-texte{font-size:15px;line-height:1.5;color:var(--pierre-700)}
#pm-page .pm-faq__tel{justify-self:start;display:inline-flex;align-items:center;gap:12px;border-radius:var(--r-disque);color:var(--pic-900);transition:color var(--d-rapide) var(--ease)}
#pm-page .pm-faq__tel:hover{color:var(--pic-800)}
#pm-page .pm-faq__tel-disque{position:relative;display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800)}
#pm-page .pm-faq__tel-disque svg{width:22px;height:22px}
#pm-page .pm-faq__tel-point{position:absolute;top:5px;right:5px;width:11px;height:11px;border-radius:var(--r-disque);background:var(--pierre-400);box-shadow:0 0 0 2px var(--pic-100)}
#pm-page .pm-faq__tel-point[data-etat="ouvert"]{background:var(--succes-700)}
#pm-page .pm-faq__tel-numero{font:700 24px/1.2 var(--police-titre);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-faq__statut{display:flex;align-items:center;gap:8px;min-height:24px;font-size:14px;line-height:1.3;color:var(--pierre-700)}
#pm-page .pm-faq__badge{display:inline-flex;align-items:center;gap:6px;flex:none;height:24px;padding:0 10px;border-radius:var(--r-disque);background:var(--pierre-100);font:700 12px/1 var(--police-titre);letter-spacing:.08em;text-transform:uppercase;color:var(--pierre-700)}
#pm-page .pm-faq__badge[data-etat="ouvert"]{background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-faq__badge-point{width:6px;height:6px;border-radius:var(--r-disque);background:currentColor}
/* Tant que pm-site.js n'a pas calculé le statut, la ligne garde sa place sans rien afficher de faux. */
#pm-page .pm-faq__statut [data-pm-statut]:not([data-etat]){visibility:hidden}
#pm-page .pm-faq__ecrire{padding:6px 6px 6px 18px}
#pm-page .pm-faq__ecrire .pm-bouton__disque{width:36px;height:36px}

/* --- Tablette : une colonne (en-tête, liste, carte contact) --- */
@media (max-width:1119.98px){
  #pm-page .pm-faq--accueil{padding-block:80px}
  #pm-page .pm-faq__grille{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"tete" "liste" "contact";gap:32px}
  #pm-page .pm-faq__titre{font-size:38px}
  #pm-page .pm-faq__contact{max-width:none}
}
/* Tablette seulement : carte contact pleine largeur, photo à gauche (en 16/10 elle ferait 600 px de haut). */
@media (min-width:760px) and (max-width:1119.98px){
  #pm-page .pm-faq__contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  #pm-page .pm-faq__photo{aspect-ratio:auto;min-height:280px}
  #pm-page .pm-faq__photo-img{position:absolute;inset:0}
  #pm-page .pm-faq__contact-corps{align-content:center;padding:32px}
  #pm-page .pm-faq__contact-corps:only-child{grid-column:1/-1}
  #pm-page .pm-faq__ecrire{max-width:440px}
}

/* --- Mobile --- */
@media (max-width:759.98px){
  #pm-page .pm-faq--accueil{padding-block:64px}
  #pm-page .pm-faq__grille{gap:24px}
  #pm-page .pm-faq__titre{font-size:30px}
  #pm-page .pm-faq__chapo{font-size:16px}
  #pm-page .pm-faq__corps{gap:16px}
  #pm-page .pm-faq__filtres{padding:2px 20px 4px}
  /* La ligne défile : l'anneau de focus reste dans la marge de 2 px pour ne pas être rogné. */
  #pm-page .pm-faq__filtre:focus-visible{outline-offset:-1px}
  #pm-page .pm-faq__bouton{min-height:64px;padding:14px 14px 14px 18px;font-size:16px}
  #pm-page .pm-faq__reponse{padding:0 18px 20px}
  /* Cible tactile de 44 px sans changer la hauteur visible du lien. */
  #pm-page .pm-faq__lien::after{content:"";position:absolute;inset:-6px 0}
  html.pm-js #pm-page .pm-faq__item.is-suite{display:none}
  #pm-page .pm-faq__plus{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:0 20px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1.5px var(--pic-800);font:700 15px/1.2 var(--police-titre);color:var(--pic-800)}
  #pm-page .pm-faq__plus svg{width:18px;height:18px}
  #pm-page .pm-faq__contact-corps{padding:20px 18px}
}

@media (hover:hover){
  #pm-page .pm-faq__plus:hover{background:var(--pic-50);color:var(--pic-900)}
}
@media (prefers-reduced-motion:reduce){
  html.pm-js #pm-page .pm-faq :is(.pm-faq__item,.pm-faq__panneau){transition:none}
}

/* ===== 31. Accueil · section 10 « Devis » en 3 questions — [pm_devis] (inc/accueil/devis.php, parts/blocs/devis-questions.php, pm-devis.js) ===== */
/* Colonne centrée de 860 px sur fond blanc (ou Pierre 50 : « pm-devis--pierre ») : surtitre H2 + compteur, barre de
   progression, une question à la fois (H3), puis la bande d'appel. Seuils : mobile < 760 px ; au-delà, même mise en page.
   Avec JavaScript (html.pm-js) une seule étape est affichée ; sans, les 3 étapes se suivent avec un seul bouton d'envoi. */
#pm-page .pm-devis{--pm-devis-fond:#fff;--pm-devis-survol:var(--pic-50);--pm-devis-bande:var(--pic-50);--pm-devis-filet:#D3DEF0;
  --pm-devis-anneau:0 0 0 2px var(--pm-devis-fond),0 0 0 5px var(--ciel-500);
  padding:64px 60px 72px;background:var(--pm-devis-fond)}
#pm-page .pm-devis--pierre{--pm-devis-fond:var(--pierre-50);--pm-devis-survol:#fff;--pm-devis-bande:#fff;--pm-devis-filet:var(--pierre-200)}
#pm-page .pm-devis__colonne{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;max-width:860px;margin-inline:auto}
#pm-page .pm-devis__formulaire{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}

/* --- Surtitre (H2), compteur, barre de progression --- */
#pm-page .pm-devis__tete{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
#pm-page .pm-devis__ligne{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
#pm-page .pm-devis__surtitre{display:flex;align-items:center;gap:12px;min-width:0;font:700 13px/17px var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pic-800);white-space:nowrap}
/* Titre trop long pour la ligne : le filet se réduit d'abord, les points de suspension ne viennent qu'en dernier recours. */
#pm-page .pm-devis__surtitre::before{content:"";flex:0 1000 auto;width:28px;min-width:0;height:1px;background:currentColor}
#pm-page .pm-devis__surtitre-texte{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
#pm-page .pm-devis__compteur{flex:none;font:700 13px/17px var(--police-titre);color:var(--pic-900);font-variant-numeric:tabular-nums;white-space:nowrap}
#pm-page .pm-devis__barre{height:6px;border-radius:var(--r-disque);background:var(--pierre-200);overflow:hidden}
#pm-page .pm-devis__avance{display:block;width:33%;height:100%;border-radius:inherit;background:var(--filet-lumiere);transition:width 360ms var(--ease)}
#pm-page .pm-devis[data-etape="2"] .pm-devis__avance{width:67%}
#pm-page .pm-devis:is([data-etape="3"],[data-etape="4"]) .pm-devis__avance{width:100%}

/* --- Corps : une étape = question (H3) + sous-titre + contenu --- */
#pm-page .pm-devis__corps{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start;min-height:330px}
#pm-page .pm-devis__etape{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
html.pm-js #pm-page .pm-devis__etape:not(.is-courante){display:none}
html:not(.pm-js) #pm-page .pm-devis__corps{gap:40px}
#pm-page .pm-devis__entete{display:grid;gap:6px}
#pm-page .pm-devis__question{font:700 40px/1.08 var(--police-titre);letter-spacing:-.02em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-devis__question:focus-visible{outline:none}
#pm-page .pm-devis__aide{font:400 17px/1.5 var(--police-texte);color:var(--pierre-700)}

/* --- Case à cocher ou bouton radio habillé : le champ couvre toute la tuile, invisible mais focalisable --- */
#pm-page .pm-devis__tuile,
#pm-page .pm-devis__chantier{position:relative;display:block;cursor:pointer}
#pm-page .pm-devis__case{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}

/* --- Étape 1 : tuiles à choix multiple, « Suivant » dans la 8ᵉ case --- */
#pm-page .pm-devis__tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#pm-page .pm-devis__tuile-corps{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:12px;height:100%;min-height:116px;padding:18px;border:1px solid var(--pierre-300);border-radius:18px;background:#fff;
  transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-base) var(--ease)}
#pm-page .pm-devis__picto{display:grid;place-items:center;flex:none;width:48px;height:48px;border:1px solid var(--pic-800);background:#fff;color:var(--pic-800)}
#pm-page .pm-devis__picto svg{width:24px;height:24px}
#pm-page .pm-devis__tuile-nom{padding-right:22px;font:700 16px/1.25 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__coche{position:absolute;top:12px;right:12px;display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:var(--r-disque);color:#fff}
#pm-page .pm-devis__coche svg{width:14px;height:14px;opacity:0}
#pm-page .pm-devis__case:checked + .pm-devis__tuile-corps{padding:17px;border:2px solid var(--pic-800);box-shadow:0 16px 32px -20px rgba(8,21,48,.4)}
#pm-page .pm-devis__case:checked + .pm-devis__tuile-corps .pm-devis__picto{background:var(--pic-800);color:#fff}
#pm-page .pm-devis__case:checked + .pm-devis__tuile-corps .pm-devis__coche{top:11px;right:11px;background:var(--pic-800)}
#pm-page .pm-devis__case:checked + .pm-devis__tuile-corps .pm-devis__coche svg{opacity:1}
#pm-page .pm-devis__case:focus-visible + .pm-devis__tuile-corps,
#pm-page .pm-devis__case:focus-visible + .pm-devis__chantier-corps{box-shadow:var(--pm-devis-anneau)}
#pm-page .pm-devis__case:checked:focus-visible + .pm-devis__tuile-corps{box-shadow:var(--pm-devis-anneau),0 16px 32px -20px rgba(8,21,48,.4)}
#pm-page .pm-devis__case-suivant{display:flex;align-items:center;min-height:116px}

/* --- Bouton d'action (Braise) : « Suivant », « Envoyer ma demande ». Un seul à l'écran. --- */
#pm-page .pm-devis__suivant{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:56px;padding:0 7px 0 22px;border-radius:var(--r-disque);background:var(--braise-600);color:#fff;font:700 16px/1.2 var(--police-titre);white-space:nowrap;
  transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-devis__suivant:active{background:var(--braise-800)}
#pm-page .pm-devis__suivant:disabled{opacity:.7;cursor:progress}
#pm-page .pm-devis__suivant--large{flex:0 0 auto;gap:16px;width:auto;min-width:260px;margin-left:auto;padding-left:24px}
#pm-page .pm-devis__disque{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:var(--r-disque);background:#fff;color:var(--braise-600)}
#pm-page .pm-devis__disque svg{width:20px;height:20px}

/* --- Étape 2 : type de chantier (cartes radio) et code postal --- */
#pm-page .pm-devis__chantier-zone{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
#pm-page .pm-devis__champ{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-content:start;min-width:0}
#pm-page .pm-devis__champ[role="radiogroup"]{gap:10px}
#pm-page .pm-devis__champ--cp{max-width:380px}
#pm-page .pm-devis__label{font:600 15px/20px var(--police-texte);color:var(--encre)}
#pm-page .pm-devis__facultatif{font-weight:400;color:var(--pierre-600)}
#pm-page .pm-devis__chantiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#pm-page .pm-devis__chantier-corps{display:flex;align-items:center;gap:14px;height:100%;min-height:76px;padding:8px 18px;border:1px solid var(--pierre-300);border-radius:16px;background:#fff;
  transition:border-color var(--d-rapide) var(--ease)}
#pm-page .pm-devis__rond{position:relative;flex:none;width:24px;height:24px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1.5px var(--pierre-500)}
#pm-page .pm-devis__rond::after{content:"";position:absolute;inset:7px;border-radius:inherit;background:#fff;opacity:0}
#pm-page .pm-devis__chantier-texte{display:grid;gap:2px;min-width:0}
#pm-page .pm-devis__chantier-nom{font:700 17px/22px var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__chantier-detail{font:400 14px/18px var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__case:checked + .pm-devis__chantier-corps{padding:7px 17px;border:2px solid var(--pic-800)}
#pm-page .pm-devis__case:checked + .pm-devis__chantier-corps .pm-devis__rond{background:var(--pic-800);box-shadow:none}
#pm-page .pm-devis__case:checked + .pm-devis__chantier-corps .pm-devis__rond::after{opacity:1}

/* --- Champs de saisie : 56 px, rayon 12 --- */
#pm-page .pm-devis__saisie{display:block;width:100%;height:56px;padding:0 16px;border:1px solid var(--pierre-500);border-radius:12px;background:#fff;font:400 17px/1.3 var(--police-texte);color:var(--encre);
  transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-devis__saisie--chiffres{font-variant-numeric:tabular-nums}
#pm-page .pm-devis__saisie::placeholder{color:var(--pierre-600);opacity:1}
#pm-page .pm-devis__saisie:focus{outline:2px solid transparent;border-color:var(--pic-800);box-shadow:inset 0 0 0 1px var(--pic-800),0 0 0 3px #B9E4F6}
#pm-page .pm-devis__saisie[aria-invalid="true"]{border-color:var(--erreur-700);box-shadow:inset 0 0 0 1px var(--erreur-700)}
#pm-page .pm-devis__saisie[aria-invalid="true"]:focus{box-shadow:inset 0 0 0 1px var(--erreur-700),0 0 0 3px #B9E4F6}
#pm-page .pm-devis__message{display:flex;align-items:flex-start;gap:8px;font:400 14px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__message-icone{display:none;flex:none;margin-top:2px;color:var(--pic-800)}
#pm-page .pm-devis__message-icone svg{width:16px;height:16px}
#pm-page .pm-devis__message[data-etat="defaut"] [data-icone="defaut"],
#pm-page .pm-devis__message[data-etat="ok"] [data-icone="ok"],
#pm-page .pm-devis__message[data-etat="info"] [data-icone="info"]{display:block}
#pm-page .pm-devis__message[data-etat="ok"],
#pm-page .pm-devis__message[data-etat="ok"] .pm-devis__message-icone{color:var(--succes-700)}
#pm-page .pm-devis__message[data-etat="info"]{color:#7A5000}
#pm-page .pm-devis__message[data-etat="info"] .pm-devis__message-icone{color:var(--pierre-700)}
#pm-page .pm-devis__erreur{font:400 14px/1.45 var(--police-texte);color:var(--erreur-700)}
#pm-page .pm-devis__erreur--icone{display:flex;align-items:flex-start;gap:8px}
#pm-page .pm-devis__erreur svg{width:16px;height:16px;margin-top:2px}

/* --- Étape 3 : coordonnées sur 3 colonnes, mention de confidentialité --- */
#pm-page .pm-devis__coordonnees{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
#pm-page .pm-devis__champs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#pm-page .pm-devis__mention{display:flex;align-items:flex-start;gap:10px;font:400 13px/1.5 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__mention svg{width:16px;height:16px;margin-top:2px;color:var(--pierre-600)}
#pm-page .pm-devis__mention a{color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

/* --- Encart d'erreur (aucun projet, envoi refusé ; message du serveur sans JavaScript) --- */
#pm-page .pm-devis__alerte{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:var(--erreur-100);font:400 15px/20px var(--police-texte);color:var(--erreur-700)}
#pm-page .pm-devis__alerte svg{width:18px;height:18px}

/* --- Navigation : « Retour » à gauche, bouton d'action à droite --- */
#pm-page .pm-devis__navigation{display:flex;flex-wrap:wrap-reverse;align-items:center;justify-content:space-between;gap:12px 16px}
html.pm-js #pm-page .pm-devis:not([data-etape]) .pm-devis__navigation{display:none}
#pm-page .pm-devis__retour{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 14px 0 8px;border-radius:var(--r-disque);font:600 15px/1.2 var(--police-texte);color:var(--pic-800);
  transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-devis__retour svg{width:18px;height:18px}

/* --- Remerciement : frise à 3 lignes, visite au showroom, autre demande --- */
#pm-page .pm-devis__frise{display:grid;border-top:1px solid var(--pierre-200)}
#pm-page .pm-devis__frise li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--pierre-200);font:400 16px/1.45 var(--police-texte);color:var(--encre)}
#pm-page .pm-devis__numero{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);font:700 14px/1 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__frise .is-faite .pm-devis__numero{background:var(--succes-700);box-shadow:none;color:#fff}
#pm-page .pm-devis__numero svg{width:16px;height:16px;stroke-width:2.5}
#pm-page .pm-devis__suite{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#pm-page .pm-devis__showroom{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:6px 6px 6px 20px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1.5px var(--pic-800);font:700 15px/1.2 var(--police-titre);color:var(--pic-800);
  transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-devis__showroom-disque{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff}
#pm-page .pm-devis__showroom-disque svg{width:18px;height:18px}
#pm-page .pm-devis__autre{height:52px;padding:0 12px;border-radius:var(--r-disque);font:600 15px/1.2 var(--police-texte);color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* --- Bande d'appel : toute la bande est un lien tel: --- */
#pm-page .pm-devis__appel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 16px 16px 20px;border-radius:18px;background:var(--pm-devis-bande);box-shadow:inset 0 0 0 1px var(--pm-devis-filet);color:var(--encre);
  transition:box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-devis__appel-disque{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800)}
#pm-page .pm-devis__appel-disque svg{width:22px;height:22px}
#pm-page .pm-devis__appel-point{position:absolute;top:4px;right:4px;width:11px;height:11px;border-radius:var(--r-disque);background:var(--pierre-400);box-shadow:0 0 0 2px var(--pic-100)}
#pm-page .pm-devis__appel-point[data-etat="ouvert"]{background:var(--succes-700)}
#pm-page .pm-devis__appel-corps{display:grid;gap:2px;min-width:0}
#pm-page .pm-devis__appel-titre{font:700 18px/1.25 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__appel-statut{font:400 14px/18px var(--police-texte);color:var(--pierre-700);text-wrap:balance}
#pm-page .pm-devis__appel-numero{display:flex;align-items:center;height:52px;padding:0 22px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1.5px var(--pic-800);font:700 20px/1 var(--police-titre);color:var(--pic-900);font-variant-numeric:tabular-nums;white-space:nowrap}

/* --- Focus visible : double anneau (fond de la section + Ciel 500) ; le contour transparent sert aux couleurs forcées --- */
#pm-page .pm-devis :is(a,button):focus-visible{outline:2px solid transparent;outline-offset:2px;box-shadow:var(--pm-devis-anneau)}
#pm-page .pm-devis__showroom:focus-visible{box-shadow:inset 0 0 0 1.5px var(--pic-800),var(--pm-devis-anneau)}
#pm-page .pm-devis__mention a:focus-visible{border-radius:4px}

@media (hover:hover){
  #pm-page .pm-devis__tuile:hover .pm-devis__tuile-corps,
  #pm-page .pm-devis__chantier:hover .pm-devis__chantier-corps{border-color:var(--pic-800)}
  #pm-page .pm-devis__saisie:hover{border-color:var(--encre)}
  #pm-page .pm-devis__saisie:focus{border-color:var(--pic-800)}
  #pm-page .pm-devis__saisie[aria-invalid="true"]:is(:hover,:focus){border-color:var(--erreur-700)}
  #pm-page .pm-devis__suivant:hover:not(:disabled){background:var(--braise-700)}
  #pm-page .pm-devis__suivant:active:not(:disabled){background:var(--braise-800)}
  #pm-page .pm-devis__retour:hover,
  #pm-page .pm-devis__showroom:hover,
  #pm-page .pm-devis__autre:hover{background:var(--pm-devis-survol);color:var(--pic-900)}
  #pm-page .pm-devis__mention a:hover{color:var(--pic-900)}
  #pm-page .pm-devis__appel:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--encre)}
}

/* --- Mobile : liste de projets, cartes empilées, boutons pleine largeur --- */
@media (max-width:759.98px){
  #pm-page .pm-devis{padding:48px 20px 56px}
  #pm-page .pm-devis__colonne,
  #pm-page .pm-devis__formulaire{gap:22px}
  #pm-page .pm-devis__surtitre{font-size:12px;line-height:16px}
  #pm-page .pm-devis__surtitre::before{content:none}
  #pm-page .pm-devis__corps{gap:18px;min-height:0}
  #pm-page .pm-devis__etape{gap:18px}
  html:not(.pm-js) #pm-page .pm-devis__corps{gap:32px}
  #pm-page .pm-devis__question{font-size:28px}
  #pm-page .pm-devis__aide{font-size:15px}
  #pm-page .pm-devis__tuiles{grid-template-columns:minmax(0,1fr);gap:8px}
  #pm-page .pm-devis__tuile-corps{flex-direction:row;justify-content:flex-start;align-items:center;min-height:58px;padding:4px 14px 4px 10px;border-radius:14px}
  #pm-page .pm-devis__picto{width:38px;height:38px}
  #pm-page .pm-devis__picto svg{width:20px;height:20px}
  #pm-page .pm-devis__tuile-nom{flex:1;min-width:0;padding-right:0}
  #pm-page .pm-devis__coche{position:static;background:#fff;box-shadow:inset 0 0 0 1.5px var(--pierre-500)}
  #pm-page .pm-devis__case:checked + .pm-devis__tuile-corps{padding:3px 13px 3px 9px}
  #pm-page .pm-devis__case:checked + .pm-devis__tuile-corps .pm-devis__coche{box-shadow:none}
  #pm-page .pm-devis__case-suivant{min-height:0;margin-top:10px}
  #pm-page .pm-devis__suivant{padding-left:24px}
  #pm-page .pm-devis__suivant--large{flex:1 1 100%;min-width:0}
  #pm-page .pm-devis__chantiers{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-devis__chantier-corps{min-height:68px}
  #pm-page .pm-devis__champ--cp{max-width:none}
  #pm-page .pm-devis__champs{grid-template-columns:minmax(0,1fr)}
  /* Lien dans la mention : zone tactile de 44 px sans changer l'interligne. */
  #pm-page .pm-devis__mention a{display:inline-block;margin-block:-13px;padding-block:13px}
  #pm-page .pm-devis__showroom{display:flex;width:100%}
  #pm-page .pm-devis__appel{grid-template-columns:auto minmax(0,1fr);padding:14px 16px}
  #pm-page .pm-devis__appel-titre{font-size:16px}
}

@media (prefers-reduced-motion:reduce){
  #pm-page .pm-devis :is(.pm-devis__avance,.pm-devis__tuile-corps,.pm-devis__chantier-corps,.pm-devis__saisie,.pm-devis__suivant,.pm-devis__retour,.pm-devis__showroom,.pm-devis__appel){transition:none}
}

/* ===== 32. Page Réalisations · archive et fiche provisoire (archive-realisation.php · single-realisation.php ·
   parts/realisations/*.php · inc/realisations/vue.php) =====
   Blocs : pm-real-heros · pm-real-dernier · pm-real-filtres (pm-real-pastille, pm-real-volet, pm-real-choix,
   pm-real-vues) · pm-real-resultats (pm-real-une, pm-real-actifs, pm-real-proximite, pm-real-grille,
   pm-real-carte, pm-real-appel, pm-real-suite, pm-real-pagination, pm-real-vide) · pm-real-plan (pm-real-selection,
   pm-real-liste, pm-real-ligne) · pm-real-secteurs (pm-real-secteur) · pm-real-fiche.
   États posés par le script de la phase C : .is-script (sur <main>) · .is-collee et .is-volet (barre de filtres) ·
   .is-ouvert (volet) · .is-active (pastille, bascule) · .is-actif / .is-survol (point, ligne) · .is-zoom (carte) ·
   [aria-busy="true"] (grille, liste). Hauteur de l'en-tête du site au-dessus de la barre : --pm-real-haut. */

#pm-page .pm-real-page{--pm-real-haut:0px;--pm-real-barre:72px;display:block}
@media (max-width:759.98px){#pm-page .pm-real-page{--pm-real-barre:118px}}

/* --- Éléments partagés : picto encadré, pastille de matière, boutons --- */
#pm-page .pm-real-meta{display:inline-flex;align-items:center;gap:8px;min-width:0}
#pm-page .pm-real-picto{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--pic-800);color:var(--pic-800);flex:none}
#pm-page .pm-real-picto svg{width:16px;height:16px}
#pm-page .pm-real-matiere{display:inline-block;width:12px;height:12px;border-radius:var(--r-disque);background:var(--pierre-200);box-shadow:inset 0 0 0 1px rgba(31,29,26,.35);flex:none}
#pm-page .pm-real-matiere--pvc{background:#F4F4F1}
#pm-page .pm-real-matiere--aluminium{background:#A7ADB3}
#pm-page .pm-real-matiere--bois{background:#B07A4A}
#pm-page .pm-real-matiere--acier{background:#8A8479}
#pm-page .pm-real-matiere--toile{background:#E0DBD2}
#pm-page .pm-real-matiere--mixte{background:linear-gradient(90deg,#A7ADB3 50%,#B07A4A 50%)}
/* Boutons du socle à la hauteur de la maquette de cette page (52 px, texte sur une ligne). */
#pm-page .pm-real-bouton{min-height:52px;padding:6px 6px 6px 20px;font-size:15px;white-space:nowrap}
#pm-page .pm-real-bouton .pm-bouton__disque svg{width:18px;height:18px}
#pm-page .pm-real-bouton.pm-bouton--sans-disque{padding:6px 22px}
#pm-page .pm-real-bouton--blanc{background:#fff;color:var(--pic-900);box-shadow:none}
#pm-page .pm-real-bouton--blanc:hover{background:var(--pic-100);color:var(--pic-900);box-shadow:none}
#pm-page .pm-real-bouton--blanc .pm-bouton__disque{background:var(--pic-900);color:#fff}

/* ==========================================================================
   Héros
   ========================================================================== */
#pm-page .pm-real-heros{position:relative;isolation:isolate;background:var(--pic-950);color:#fff}
#pm-page .pm-real-heros__fond{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
#pm-page .pm-real-heros__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:.3}
#pm-page .pm-real-heros__voile{position:absolute;inset:0;background:linear-gradient(90deg,#081530 0%,rgba(8,21,48,.82) 42%,rgba(8,21,48,.55) 100%)}
#pm-page .pm-real-heros__interieur{max-width:1440px;margin:0 auto;padding:32px 60px 56px}

#pm-page .pm-real-heros__ariane ol{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:700 12px/1.3 var(--police-titre);letter-spacing:.12em;text-transform:uppercase}
#pm-page .pm-real-heros__ariane li{display:flex;align-items:center;gap:10px}
#pm-page .pm-real-heros__ariane a{color:#C9D2E1}
#pm-page .pm-real-heros__ariane a:hover{color:#fff}
#pm-page .pm-real-heros__ariane [aria-current]{color:#fff}
#pm-page .pm-real-heros__barre{color:var(--ciel-300)}
#pm-page .pm-real-heros__retour a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-right:8px;font:700 12px/1.3 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:#fff}
#pm-page .pm-real-heros__retour svg{width:18px;height:18px;color:var(--ciel-300)}

#pm-page .pm-real-heros__grille{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center;margin-top:28px}
#pm-page .pm-real-heros--seul .pm-real-heros__grille{grid-template-columns:minmax(0,1fr);padding-block:40px}
#pm-page .pm-real-heros__texte{display:flex;flex-direction:column;gap:18px;min-width:0}
#pm-page .pm-real-heros__surtitre{display:flex;align-items:center;gap:12px;font:700 13px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-300)}
#pm-page .pm-real-heros__surtitre::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
#pm-page .pm-real-heros__titre{font:700 56px/1.04 var(--police-titre);letter-spacing:-.025em;color:#fff;text-wrap:balance}
#pm-page .pm-real-heros__chapo{max-width:640px;font:400 19px/1.55 var(--police-texte);color:#C9D2E1;text-wrap:pretty}

/* Carte « Dernier chantier » */
#pm-page .pm-real-dernier{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);min-width:0;border-radius:var(--r-tuile);overflow:hidden;background:#fff;box-shadow:0 32px 72px -24px rgba(0,0,0,.55);color:var(--encre)}
#pm-page .pm-real-dernier__visuel{position:relative;display:block;aspect-ratio:2/1;overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-real-dernier__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-dernier__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-real-dernier__aplat svg{width:44px;height:44px;stroke-width:1.5}
#pm-page .pm-real-dernier__etiquette{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 10px;border-radius:var(--r-disque);background:var(--ciel-300);color:var(--pic-950);font:700 12px/1 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
#pm-page .pm-real-dernier__point{width:8px;height:8px;border-radius:var(--r-disque);background:var(--pic-950)}
#pm-page .pm-real-dernier__lieu{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 10px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 13px/1 var(--police-titre);white-space:nowrap;pointer-events:none}
#pm-page .pm-real-dernier__lieu svg{width:14px;height:14px;color:var(--pic-800)}
#pm-page .pm-real-dernier__corps{display:grid;gap:12px;align-content:center;padding:20px 24px 22px}
#pm-page .pm-real-dernier__surtitre{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pic-800)}
#pm-page .pm-real-dernier__titre{font:700 22px/1.2 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-dernier__infos{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font:600 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-dernier__duree{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-real-dernier__duree svg{width:15px;height:15px;color:var(--pic-800)}
#pm-page .pm-real-dernier__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
#pm-page .pm-real-dernier__actions>*{flex:1 1 180px}
#pm-page .pm-real-dernier__pres{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 20px;border-top:1px solid var(--pierre-200);background:var(--pierre-50)}
#pm-page .pm-real-dernier__pres-disque{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);flex:none}
#pm-page .pm-real-dernier__pres-disque svg{width:18px;height:18px}
#pm-page .pm-real-dernier__pres-texte{flex:1;min-width:0;font:400 14px/1.35 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-dernier__pres-bouton{display:inline-flex;align-items:center;height:44px;padding:0 16px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-800);font:700 14px/1 var(--police-titre);white-space:nowrap;flex:none}
#pm-page .pm-real-dernier__pres-bouton:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-800)}

/* Preuves */
#pm-page .pm-real-heros__bande{border-top:1px solid rgba(255,255,255,.14);background:rgba(8,21,48,.55)}
#pm-page .pm-real-heros__preuves{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1440px;margin:0 auto;padding:0 60px}
#pm-page .pm-real-heros__preuves--3{grid-template-columns:repeat(3,minmax(0,1fr))}
#pm-page .pm-real-heros__preuve{display:flex;align-items:center;gap:14px;padding:18px 24px;border-left:1px solid rgba(255,255,255,.14)}
#pm-page .pm-real-heros__preuve:first-child{border-left:0}
#pm-page .pm-real-heros__preuve-disque{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--ciel-300);border-radius:var(--r-disque);color:var(--ciel-300);flex:none}
#pm-page .pm-real-heros__preuve-disque svg{width:20px;height:20px}
#pm-page .pm-real-heros__preuve--note .pm-real-heros__preuve-disque svg{color:#fff;fill:currentColor;stroke:none}
#pm-page .pm-real-heros__preuve-texte{display:grid;gap:2px;min-width:0}
#pm-page .pm-real-heros__preuve-texte strong{font:700 15px/1.25 var(--police-titre);color:#fff}
#pm-page .pm-real-heros__preuve-texte span{font:400 13px/1.3 var(--police-texte);color:#C9D2E1}
#pm-page .pm-real-heros__preuves-mobile{display:grid;gap:8px;padding:0 20px 24px;font:400 14px/1.4 var(--police-texte);color:#C9D2E1}
#pm-page .pm-real-heros__note,
#pm-page .pm-real-heros__photos{display:flex;align-items:center;gap:8px}
/* Étoiles du héros Réalisations : couleur commune --etoile. */
#pm-page .pm-real-heros__note strong{color:#fff}
#pm-page .pm-real-heros__photos svg{width:16px;height:16px;color:var(--ciel-300)}

@media (max-width:1119.98px){
  #pm-page .pm-real-heros__interieur{padding:28px 32px 48px}
  #pm-page .pm-real-heros__grille{grid-template-columns:minmax(0,1fr);gap:28px}
  #pm-page .pm-real-heros__titre{font-size:46px}
  /* Carte en deux colonnes : photo à gauche, texte à droite, pied sur toute la largeur. */
  #pm-page .pm-real-dernier{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  #pm-page .pm-real-dernier__visuel{aspect-ratio:auto;min-height:240px}
  #pm-page .pm-real-dernier__pres{grid-column:1/-1}
  #pm-page .pm-real-heros__preuves{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 32px}
  #pm-page .pm-real-heros__preuve{padding:16px}
  #pm-page .pm-real-heros__preuve:nth-child(odd){border-left:0}
  #pm-page .pm-real-heros__preuve:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}
}
@media (max-width:759.98px){
  #pm-page .pm-real-heros__photo{opacity:.26}
  #pm-page .pm-real-heros__voile{background:linear-gradient(180deg,rgba(8,21,48,.55) 0%,rgba(8,21,48,.88) 60%,#081530 100%)}
  #pm-page .pm-real-heros__interieur{padding:8px 20px 24px}
  #pm-page .pm-real-heros__grille{gap:20px;margin-top:4px}
  #pm-page .pm-real-heros--seul .pm-real-heros__grille{padding-block:16px}
  #pm-page .pm-real-heros__texte{gap:12px}
  #pm-page .pm-real-heros__titre{font-size:32px}
  #pm-page .pm-real-heros__chapo{font-size:17px;line-height:1.5}
  #pm-page .pm-real-dernier{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real-dernier__visuel{aspect-ratio:16/10;min-height:0}
  #pm-page .pm-real-dernier__corps{padding:16px 18px 18px}
  #pm-page .pm-real-dernier__titre{font-size:20px}
  #pm-page .pm-real-dernier__actions>*{flex:1 1 100%}
  #pm-page .pm-real-dernier__pres{padding:10px 12px 10px 14px}
}

/* ==========================================================================
   Barre de filtres collante et volet
   ========================================================================== */
#pm-page .pm-real-ancre{display:block;height:0;scroll-margin-top:var(--pm-real-haut)}
#pm-page .pm-real-filtres{position:sticky;top:var(--pm-real-haut);z-index:40;background:#fff;border-bottom:1px solid var(--pierre-200);transition:top var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease)}
#pm-page .pm-real-filtres.is-collee{box-shadow:0 12px 28px -20px rgba(8,21,48,.35)}
/* Volet ouvert : la barre passe devant l'en-tête et la barre d'action mobile du site. */
#pm-page .pm-real-filtres.is-volet,
#pm-page .pm-real-filtres:has(.pm-real-volet__panneau:target){z-index:55}
#pm-page .pm-real-filtres__barre{display:flex;align-items:center;gap:16px;max-width:1440px;margin:0 auto;padding:14px 60px}

/* Pastilles de familles : une ligne qui défile si elle déborde (la marge négative laisse la place de l'anneau de focus). */
#pm-page .pm-real-filtres__familles{flex:1 1 auto;display:flex;gap:8px;min-width:0;margin:-6px -3px;padding:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#pm-page .pm-real-filtres__familles::-webkit-scrollbar{display:none}
/* position:relative : le texte masqué du nombre (position absolue) reste dans la zone qui défile. */
#pm-page .pm-real-pastille{position:relative;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 10px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--encre);font:600 15px/1 var(--police-texte);white-space:nowrap;flex:none;transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-pastille svg{width:18px;height:18px;color:var(--pic-800)}
#pm-page .pm-real-pastille:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--encre)}
#pm-page .pm-real-pastille__nombre{min-width:24px;height:22px;padding:0 7px;border-radius:var(--r-disque);background:var(--pierre-100);color:var(--pierre-700);font:700 12px/22px var(--police-titre);text-align:center}
#pm-page .pm-real-pastille.is-active{background:var(--pic-800);box-shadow:inset 0 0 0 1px var(--pic-800);color:#fff}
#pm-page .pm-real-pastille.is-active svg{color:#fff}
#pm-page .pm-real-pastille.is-active .pm-real-pastille__nombre{background:rgba(255,255,255,.2);color:#fff}

/* Bouton « Filtres » */
#pm-page .pm-real-volet{position:relative;display:flex;flex:none}
#pm-page .pm-real-filtres__bouton{position:relative;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 14px 0 12px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-900);font:600 15px/1 var(--police-texte);white-space:nowrap;transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-filtres__bouton svg{width:18px;height:18px;color:var(--pic-800)}
#pm-page .pm-real-filtres__bouton:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-900)}
#pm-page .pm-real-filtres--actifs .pm-real-filtres__bouton,
#pm-page .pm-real-volet.is-ouvert .pm-real-filtres__bouton,
#pm-page .pm-real-volet:has(.pm-real-volet__panneau:target) .pm-real-filtres__bouton{background:var(--pic-50);box-shadow:inset 0 0 0 1px var(--pic-800)}
#pm-page .pm-real-filtres__nombre{min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font:700 12px/22px var(--police-titre);text-align:center}

/* Volet : fermé par défaut ; ouvert par l'ancre #pm-real-filtres (sans script) ou par la classe « is-ouvert ». */
#pm-page .pm-real-volet__panneau{display:none;position:absolute;right:0;top:calc(100% + 10px);z-index:2;gap:22px;width:420px;max-width:calc(100vw - 40px);max-height:calc(100vh - var(--pm-real-haut) - var(--pm-real-barre) - 24px);padding:21px 23px 17px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--pierre-200);border-radius:var(--r-tuile);background:#fff;box-shadow:0 32px 72px -24px rgba(8,21,48,.45);text-align:left;scroll-margin-top:calc(var(--pm-real-haut) + var(--pm-real-barre) - 4px)}
@supports (height:100dvh){#pm-page .pm-real-volet__panneau{max-height:calc(100dvh - var(--pm-real-haut) - var(--pm-real-barre) - 24px)}}
#pm-page .pm-real-volet__panneau:target,
#pm-page .pm-real-volet.is-ouvert .pm-real-volet__panneau{display:grid}
#pm-page .pm-real-volet__panneau:focus{outline:none}
#pm-page .pm-real-volet__voile{display:none}
#pm-page .pm-real-volet__tete{display:flex;align-items:center;justify-content:space-between;gap:12px}
#pm-page .pm-real-volet__titre{font:700 20px/1.2 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-real-volet__fermer{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-disque);background:var(--pierre-50);color:var(--pic-950);flex:none}
#pm-page .pm-real-volet__fermer:hover{background:var(--pierre-100);color:var(--pic-950)}
#pm-page .pm-real-volet__fermer svg{width:20px;height:20px}
#pm-page .pm-real-volet__formulaire{display:grid;gap:22px;min-width:0}
#pm-page .pm-real-volet__groupe{display:grid;gap:10px;min-width:0}
#pm-page .pm-real-volet__legende{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pierre-600)}
/* Dans un <fieldset>, la légende n'est pas un élément de la grille : l'écart est porté par sa marge. */
#pm-page fieldset.pm-real-volet__groupe>.pm-real-volet__legende{margin-bottom:10px}

#pm-page .pm-real-volet__champ{position:relative}
#pm-page .pm-real-volet__champ>svg{position:absolute;left:18px;top:18px;width:20px;height:20px;color:var(--pic-800);pointer-events:none}
#pm-page .pm-real-volet__saisie{display:block;width:100%;height:56px;padding:0 150px 0 48px;border:1px solid var(--pierre-500);border-radius:var(--r-disque);background:#fff;font:500 16px/1.3 var(--police-texte);color:var(--encre);text-overflow:ellipsis;transition:border-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-volet__saisie::placeholder{color:var(--pierre-600);opacity:1}
#pm-page .pm-real-volet__saisie:hover{border-color:var(--encre)}
#pm-page .pm-real-volet__saisie:focus{outline:none;border:1px solid var(--pic-800);box-shadow:0 0 0 3px rgba(38,145,208,.35)}
#pm-page .pm-real-volet__afficher{position:absolute;right:6px;top:6px;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 6px 0 18px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font:700 15px/1 var(--police-titre);white-space:nowrap}
#pm-page .pm-real-volet__afficher:hover{background:var(--pic-900);color:#fff}
#pm-page .pm-real-volet__afficher-disque{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-disque);background:#fff;color:var(--pic-800)}
#pm-page .pm-real-volet__afficher-disque svg{width:16px;height:16px}
/* Suggestions de communes (remplies par le script) : dans le volet, sous le champ. */
#pm-page .pm-real-volet__suggestions{position:relative;z-index:1;margin:6px 0 0;padding:6px;border-radius:var(--r-tuile);background:#fff;box-shadow:0 24px 48px -16px rgba(8,21,48,.35),inset 0 0 0 1px var(--pierre-200)}
#pm-page .pm-real-volet__suggestions [role="option"]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:6px 12px;border-radius:10px;font:600 15px/1.3 var(--police-texte);color:var(--pic-900);cursor:pointer}
#pm-page .pm-real-volet__suggestions [role="option"]:hover,
#pm-page .pm-real-volet__suggestions [role="option"][aria-selected="true"]{background:var(--pic-50)}
#pm-page .pm-real-volet__suggestions [role="option"]>:last-child:not(:first-child){font-weight:400;font-size:13px;color:var(--pierre-700);white-space:nowrap;font-variant-numeric:tabular-nums}
#pm-page .pm-real-volet__message{display:flex;align-items:flex-start;gap:8px;font:400 14px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-volet__message svg{width:16px;height:16px;margin-top:2px;color:var(--pic-800)}
#pm-page .pm-real-volet__message a{color:var(--pic-800);font-weight:600;text-decoration:underline;text-underline-offset:3px}
#pm-page .pm-real-volet__message--erreur{font-weight:600;color:var(--erreur-700)}
#pm-page .pm-real-volet__message--erreur svg{color:currentColor}
#pm-page .pm-real-volet__raccourcis{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#pm-page .pm-real-volet__geo{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 10px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);font:700 14px/1 var(--police-titre);white-space:nowrap}
#pm-page .pm-real-volet__geo:hover{background:#D3DEF0}
#pm-page .pm-real-volet__geo[aria-busy="true"]{cursor:progress;opacity:.7}
#pm-page .pm-real-volet__geo svg{width:16px;height:16px}
#pm-page .pm-real-volet__ou{font:400 14px/1 var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-real-volet__raccourci{display:inline-flex;align-items:center;height:40px;padding:0 14px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--encre);font:600 14px/1 var(--police-texte);white-space:nowrap}
#pm-page .pm-real-volet__raccourci:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-900)}
#pm-page .pm-real-volet__commune{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;height:44px;padding:0 10px 0 14px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font:600 15px/1 var(--police-texte)}
#pm-page .pm-real-volet__commune:hover{background:var(--pic-900);color:#fff}
#pm-page .pm-real-volet__commune svg{width:16px;height:16px}

/* Choix en pilules : de vrais boutons radio, masqués, dont le libellé porte l'habillage. */
#pm-page .pm-real-volet__choix{display:flex;flex-wrap:wrap;gap:8px}
#pm-page .pm-real-choix{position:relative;display:inline-flex}
#pm-page .pm-real-choix input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
#pm-page .pm-real-choix input:disabled{cursor:not-allowed}
#pm-page .pm-real-choix__pilule{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--encre);font:600 15px/1 var(--police-texte);white-space:nowrap;transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-choix__pilule .pm-real-matiere{width:14px;height:14px;margin-left:-4px}
#pm-page .pm-real-choix input:hover+.pm-real-choix__pilule{box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page .pm-real-choix input:checked+.pm-real-choix__pilule{background:var(--pic-800);box-shadow:inset 0 0 0 1px var(--pic-800);color:#fff}
#pm-page .pm-real-choix input:checked+.pm-real-choix__pilule .pm-real-matiere{box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
#pm-page .pm-real-choix input:disabled+.pm-real-choix__pilule{background:var(--pierre-100);box-shadow:none;color:var(--pierre-600)}
#pm-page .pm-real-choix input:focus-visible+.pm-real-choix__pilule{box-shadow:0 0 0 2px #fff,0 0 0 5px var(--ciel-500)}
/* « Tous » sert à décocher sans script : le script fait basculer les pilules et le masque. */
#pm-page .pm-real-page.is-script .pm-real-choix--tous{display:none}
#pm-page .pm-real-volet__aide{font:400 13px/1.4 var(--police-texte);color:var(--pierre-600)}
#pm-page .pm-real-volet__pied{position:sticky;bottom:-1px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -4px;padding:16px 4px 4px;border-top:1px solid var(--pierre-100);background:#fff}
#pm-page .pm-real-volet__effacer{display:inline-flex;align-items:center;height:44px;padding:0 6px;border-radius:6px;color:var(--pic-800);font:700 15px/1 var(--police-titre);text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-volet__effacer:hover{color:var(--pic-900)}
#pm-page .pm-real-volet__voir{display:inline-flex;align-items:center;height:48px;padding:0 22px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff;font:700 15px/1 var(--police-titre);white-space:nowrap}
#pm-page .pm-real-volet__voir:hover{background:var(--pic-900);color:#fff}

/* Bascule Grille / Carte */
#pm-page .pm-real-vues{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--r-disque);background:var(--pierre-50);box-shadow:inset 0 0 0 1px var(--pierre-200);flex:none}
#pm-page .pm-real-vues__lien{display:flex;align-items:center;border-radius:var(--r-disque);color:var(--pierre-700)}
#pm-page .pm-real-vues__pilule{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r-disque);font:600 14px/1 var(--police-texte);white-space:nowrap;transition:background-color var(--d-rapide) var(--ease)}
#pm-page .pm-real-vues__pilule svg{width:16px;height:16px;color:var(--pierre-600)}
#pm-page .pm-real-vues__lien:hover{color:var(--pic-900)}
#pm-page .pm-real-vues__lien.is-active{color:var(--pic-900)}
#pm-page .pm-real-vues__lien.is-active .pm-real-vues__pilule{background:#fff;box-shadow:0 1px 3px rgba(8,21,48,.18)}
#pm-page .pm-real-vues__lien.is-active svg{color:var(--pic-800)}

@media (max-width:1119.98px){
  #pm-page .pm-real-filtres__barre{padding:14px 32px}
}
@media (max-width:759.98px){
  /* Deux lignes : les pastilles qui défilent, puis « Filtres » et la bascule. */
  #pm-page .pm-real-filtres__barre{flex-wrap:wrap;gap:10px;padding:10px 20px}
  #pm-page .pm-real-filtres__familles{flex:1 1 100%;margin:-6px -20px;padding:6px 20px;scroll-padding-inline:20px}
  #pm-page .pm-real-volet{position:static;flex:1 1 auto}
  #pm-page .pm-real-vues{padding:0 4px}
  #pm-page .pm-real-vues__lien{height:44px}
  /* Le volet devient une feuille qui monte du bas, sur un voile. */
  #pm-page .pm-real-volet__panneau{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;max-width:none;max-height:86vh;padding:20px 20px calc(16px + env(safe-area-inset-bottom));border:0;border-radius:24px 24px 0 0;box-shadow:0 -24px 72px -24px rgba(8,21,48,.45)}
  @supports (height:100dvh){#pm-page .pm-real-volet__panneau{max-height:86dvh}}
  #pm-page .pm-real-volet__panneau:target~.pm-real-volet__voile,
  #pm-page .pm-real-volet.is-ouvert .pm-real-volet__voile{display:block;position:fixed;inset:0;z-index:1;background:rgba(8,21,48,.5)}
  #pm-page .pm-real-volet__saisie{padding-right:108px}
  #pm-page .pm-real-volet__afficher{padding:0 18px}
  #pm-page .pm-real-volet__geo,
  #pm-page .pm-real-volet__raccourci{height:44px}
}

/* ==========================================================================
   Résultats
   ========================================================================== */
#pm-page .pm-real-resultats{padding:40px 60px 104px;background:#fff}
#pm-page .pm-real-resultats__une{margin-bottom:56px}
#pm-page .pm-real-resultats__tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
#pm-page .pm-real-resultats__titres{display:grid;gap:4px;min-width:0}
#pm-page .pm-real-resultats__titre{font:700 30px/1.15 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900)}
#pm-page .pm-real-resultats__sous-titre{font:400 15px/1.4 var(--police-texte);color:var(--pierre-700)}

/* Filtres actifs */
#pm-page .pm-real-actifs{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#pm-page .pm-real-actif{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 14px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-900);font:600 14px/1 var(--police-texte);white-space:nowrap}
#pm-page .pm-real-actif:hover{background:#D3DEF0;color:var(--pic-900)}
#pm-page .pm-real-actif svg{width:14px;height:14px}
#pm-page .pm-real-actifs__effacer{display:inline-flex;align-items:center;height:36px;padding:0 6px;border-radius:6px;color:var(--pic-800);font:700 14px/1 var(--police-titre);text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-actifs__effacer:hover{color:var(--pic-900)}

/* État de proximité : ambre par défaut (aucun chantier proche, hors zone, commune introuvable), vert s'il y en a. */
#pm-page .pm-real-proximite{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;padding:12px 16px;border-radius:12px;background:var(--alerte-100);color:#7A5000;font:600 15px/1.4 var(--police-texte)}
#pm-page .pm-real-proximite--vert{background:var(--succes-100);color:var(--succes-700)}
#pm-page .pm-real-proximite__icone{display:grid;flex:none}
#pm-page .pm-real-proximite__icone svg{width:20px;height:20px}
#pm-page .pm-real-proximite__icone svg:first-child,
#pm-page .pm-real-proximite--vert .pm-real-proximite__icone svg:last-child{display:none}
#pm-page .pm-real-proximite--vert .pm-real-proximite__icone svg:first-child{display:block}
#pm-page .pm-real-proximite__texte{flex:1 1 240px;min-width:0}
#pm-page .pm-real-proximite__texte a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
#pm-page .pm-real-proximite__lien{display:inline-flex;align-items:center;gap:6px;min-height:24px;color:var(--pic-800);font:700 15px/1.3 var(--police-titre)}
#pm-page .pm-real-proximite__lien span{text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-proximite__lien:hover{color:var(--pic-900)}
#pm-page .pm-real-proximite__lien svg{width:16px;height:16px}

/* Grille */
#pm-page .pm-real-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px}
#pm-page .pm-real-grille[aria-busy="true"],
#pm-page .pm-real-liste[aria-busy="true"]{opacity:.5;pointer-events:none}
#pm-page .pm-real-grille__element{display:flex;min-width:0}
/* La carte d'appel occupe toute la ligne ; sa marge laisse dépasser la photo du poseur. */
#pm-page .pm-real-grille__element--appel{grid-column:1/-1;margin-top:44px}

/* Carte d'une réalisation : le lien du titre rend toute la carte cliquable. */
#pm-page .pm-real-carte{position:relative;flex:1;display:flex;flex-direction:column;min-width:0;border-radius:var(--r-tuile);overflow:hidden;background:#fff;transition:box-shadow var(--d-base) var(--ease)}
#pm-page .pm-real-carte::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--pierre-200);pointer-events:none;transition:box-shadow var(--d-base) var(--ease)}
#pm-page .pm-real-carte:not(.pm-real-carte--sans-lien):hover{box-shadow:0 16px 40px -16px rgba(8,21,48,.22)}
#pm-page .pm-real-carte:not(.pm-real-carte--sans-lien):hover::after{box-shadow:inset 0 0 0 1px var(--pic-800)}
#pm-page .pm-real-carte__visuel{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-real-carte__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-carte__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-real-carte__aplat svg{width:40px;height:40px;stroke-width:1.5}
#pm-page .pm-real-carte__badge{position:absolute;top:12px;left:12px;z-index:1;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 24px);height:30px;padding:0 12px 0 10px;border-radius:var(--r-disque);background:#fff;box-shadow:0 1px 2px rgba(8,21,48,.12);color:var(--pic-900);font:700 13px/1.2 var(--police-titre);white-space:nowrap;pointer-events:none}
#pm-page .pm-real-carte__badge svg{width:14px;height:14px;color:var(--pic-800)}
#pm-page .pm-real-carte__badge span{overflow:hidden;text-overflow:ellipsis}
#pm-page .pm-real-carte__corps{flex:1;display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px}
#pm-page .pm-real-carte__meta{font:600 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-carte__meta .pm-real-meta{gap:10px}
#pm-page .pm-real-carte__titre{font:700 19px/1.3 var(--police-titre);letter-spacing:-.005em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-carte__lien{color:inherit}
#pm-page .pm-real-carte__lien::after{content:"";position:absolute;inset:0;z-index:3;border-radius:var(--r-tuile)}
#pm-page .pm-real-carte__pied{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;margin-top:auto;padding-top:6px;font:400 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-carte__duree{display:inline-flex;align-items:center;gap:6px;min-width:0}
#pm-page .pm-real-carte__duree svg{width:15px;height:15px;color:var(--pic-800)}
#pm-page .pm-real-carte__disque{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);flex:none}
#pm-page .pm-real-carte__disque svg{width:16px;height:16px}
#pm-page .pm-real-carte--sans-lien .pm-real-carte__disque{display:none}

/* Carte d'appel */
#pm-page .pm-real-appel{position:relative;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:center;min-height:300px;min-width:0;border-radius:var(--r-tuile);background:var(--pic-50)}
#pm-page .pm-real-appel--sans-photo{grid-template-columns:minmax(0,1fr)}
#pm-page .pm-real-appel__texte{display:grid;gap:14px;min-width:0;padding:40px 44px}
#pm-page .pm-real-appel__surtitre{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pic-800)}
#pm-page .pm-real-appel__titre{font:700 30px/1.15 var(--police-titre);letter-spacing:-.015em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-appel__chapo{max-width:560px;font:400 16px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-real-appel__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
#pm-page .pm-real-appel__devis{padding:7px 7px 7px 24px;white-space:nowrap}
#pm-page .pm-real-appel__devis .pm-bouton__disque{width:42px;height:42px}
#pm-page .pm-real-appel__tel{display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 20px 0 6px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-900);white-space:nowrap}
#pm-page .pm-real-appel__tel:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-900)}
#pm-page .pm-real-appel__tel-disque{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-disque);background:var(--pic-100);color:var(--pic-800);flex:none}
#pm-page .pm-real-appel__tel-disque svg{width:20px;height:20px}
#pm-page .pm-real-appel__tel-point{position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:var(--r-disque);background:var(--pierre-400);box-shadow:0 0 0 2px var(--pic-100)}
#pm-page .pm-real-appel__tel-point[data-etat="ouvert"]{background:var(--succes-700)}
#pm-page .pm-real-appel__tel-texte{display:grid;gap:1px}
#pm-page .pm-real-appel__numero{font:700 18px/1.15 var(--police-titre);font-variant-numeric:tabular-nums}
#pm-page .pm-real-appel__statut{font:400 13px/1.2 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-appel__visuel{position:relative;align-self:stretch;min-width:0}
#pm-page .pm-real-appel__photo{position:absolute;right:40px;bottom:0;width:auto;height:118%;max-width:none;pointer-events:none}

/* Suite : chantiers vus, barre de progression, « Afficher plus », pagination. */
#pm-page .pm-real-suite{display:grid;justify-items:center;gap:14px;margin-top:48px;text-align:center}
#pm-page .pm-real-suite__texte{font:400 15px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-suite__barre{width:min(280px,100%);height:4px;border-radius:var(--r-disque);background:var(--pierre-200);overflow:hidden}
#pm-page .pm-real-suite__barre span{display:block;height:100%;border-radius:var(--r-disque);background:var(--pic-800);transition:width var(--d-base) var(--ease)}
#pm-page .pm-real-suite__plus{display:inline-flex;align-items:center;gap:14px;height:52px;padding:0 6px 0 22px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-800);font:700 15px/1 var(--police-titre);white-space:nowrap}
#pm-page .pm-real-suite__plus:hover{background:var(--pic-50);color:var(--pic-800)}
#pm-page .pm-real-suite__disque{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-disque);background:var(--pic-800);color:#fff}
#pm-page .pm-real-suite__disque svg{width:18px;height:18px}
#pm-page .pm-real-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;margin-top:6px}
#pm-page .pm-real-pagination__pages{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
#pm-page .pm-real-pagination__page{display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border-radius:var(--r-disque);box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-800);font:700 14px/1 var(--police-titre);font-variant-numeric:tabular-nums}
#pm-page a.pm-real-pagination__page:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-800)}
#pm-page .pm-real-pagination__page.is-active{background:var(--pic-800);box-shadow:none;color:#fff}
#pm-page .pm-real-pagination__sens{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 10px;border-radius:6px;color:var(--pic-800);font:700 14px/1 var(--police-titre)}
#pm-page .pm-real-pagination__sens span{text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-pagination__sens:hover{color:var(--pic-900)}
#pm-page .pm-real-pagination__sens svg{width:16px;height:16px}
/* Avec le script, « Afficher plus » ajoute les cartes sur place : la pagination numérotée n'est plus utile. */
#pm-page .pm-real-page.is-script .pm-real-pagination{display:none}

/* Aucun résultat */
#pm-page .pm-real-vide{display:grid;justify-items:center;gap:14px;margin-top:28px;padding:48px 32px;border-radius:var(--r-tuile);background:var(--pierre-50);text-align:center}
#pm-page .pm-real-vide__disque{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-disque);background:#fff;color:var(--pic-800)}
#pm-page .pm-real-vide__disque svg{width:24px;height:24px}
#pm-page .pm-real-vide__titre{font:700 22px/1.25 var(--police-titre);color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-vide__texte{max-width:520px;font:400 16px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-real-vide__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}

/* Chantier à la une */
#pm-page .pm-real-une{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);border-radius:var(--r-tuile);overflow:hidden;background:var(--pic-950);color:#fff}
#pm-page .pm-real-une__mosaique{position:relative;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;min-width:0}
#pm-page .pm-real-une__case{position:relative;display:block;min-height:120px;overflow:hidden;background:#13254A}
#pm-page .pm-real-une__case--grande{grid-row:1/span 2;min-height:500px}
#pm-page .pm-real-une--1 .pm-real-une__mosaique{grid-template-columns:minmax(0,1fr)}
#pm-page .pm-real-une--2 .pm-real-une__case:not(.pm-real-une__case--grande){grid-row:1/span 2}
#pm-page .pm-real-une__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-une__aplat{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.22)}
#pm-page .pm-real-une__aplat svg{stroke-width:1.5}
#pm-page .pm-real-une__badge{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 28px);height:32px;padding:0 12px 0 10px;border-radius:var(--r-disque);background:#fff;color:var(--pic-900);font:700 13px/1.2 var(--police-titre);white-space:nowrap;pointer-events:none}
#pm-page .pm-real-une__badge svg{width:14px;height:14px;color:var(--pic-800)}
#pm-page .pm-real-une__galerie{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 10px;border-radius:var(--r-disque);background:rgba(8,21,48,.78);color:#fff;font:600 13px/1 var(--police-texte);white-space:nowrap;pointer-events:none}
#pm-page .pm-real-une__galerie svg{width:14px;height:14px}
#pm-page .pm-real-une__texte{display:flex;flex-direction:column;justify-content:center;gap:16px;min-width:0;padding:40px 44px}
#pm-page .pm-real-une__surtitre{font:700 12px/1.3 var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-300)}
#pm-page .pm-real-une__titre{font:700 30px/1.15 var(--police-titre);letter-spacing:-.015em;color:#fff;text-wrap:balance}
#pm-page .pm-real-une__resume{font:400 16px/1.6 var(--police-texte);color:#C9D2E1;text-wrap:pretty}
#pm-page .pm-real-une__reperes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.14)}
#pm-page .pm-real-une__repere{display:grid;gap:3px;align-content:start;min-width:0;padding:12px 14px;background:#0E1E3E}
#pm-page .pm-real-une__repere:last-child:nth-child(odd){grid-column:1/-1}
#pm-page .pm-real-une__repere dt{font:700 12px/1.3 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:var(--ciel-300)}
#pm-page .pm-real-une__repere dd{font:700 15px/1.3 var(--police-titre);color:#fff}
#pm-page .pm-real-une__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}

@media (max-width:1119.98px){
  #pm-page .pm-real-resultats{padding:36px 32px 88px}
  #pm-page .pm-real-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  #pm-page .pm-real-grille__element--appel{margin-top:0}
  #pm-page .pm-real-appel{grid-template-columns:minmax(0,1fr);min-height:0}
  #pm-page .pm-real-appel__texte{padding:32px}
  #pm-page .pm-real-une{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real-une__mosaique{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto}
  #pm-page .pm-real-une__case{min-height:170px}
  #pm-page .pm-real-une__case--grande{grid-column:1/-1;grid-row:auto;min-height:360px}
  #pm-page .pm-real-une--2 .pm-real-une__case:not(.pm-real-une__case--grande){grid-column:1/-1;grid-row:auto}
  #pm-page .pm-real-une__texte{padding:28px 32px 32px}
  #pm-page .pm-real-une__titre{font-size:28px}
}
@media (max-width:759.98px){
  #pm-page .pm-real-resultats{padding:24px 20px 64px}
  #pm-page .pm-real-resultats__une{margin-bottom:36px}
  #pm-page .pm-real-resultats__titre{font-size:24px}
  #pm-page .pm-real-actif,
  #pm-page .pm-real-actifs__effacer{height:44px}
  #pm-page .pm-real-proximite__lien{min-height:44px}
  #pm-page .pm-real-grille{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:20px}
  #pm-page .pm-real-carte__corps{padding:16px 18px 18px}
  #pm-page .pm-real-carte__titre{font-size:18px}
  #pm-page .pm-real-appel__texte{padding:24px 20px}
  #pm-page .pm-real-appel__titre{font-size:24px}
  #pm-page .pm-real-appel__actions>*{flex:1 1 100%}
  #pm-page .pm-real-appel__devis{white-space:normal}
  #pm-page .pm-real-suite{margin-top:32px}
  #pm-page .pm-real-vide{margin-top:20px;padding:32px 20px}
  #pm-page .pm-real-vide__actions>*{flex:1 1 100%}
  #pm-page .pm-real-une__case{min-height:112px}
  #pm-page .pm-real-une__case--grande{min-height:240px}
  #pm-page .pm-real-une__texte{padding:22px 20px 24px}
  #pm-page .pm-real-une__titre{font-size:22px}
  #pm-page .pm-real-une__actions>*{flex:1 1 100%}
}

/* ==========================================================================
   Vue carte
   ========================================================================== */
#pm-page .pm-real-plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:start;margin-top:28px}
#pm-page .pm-real-plan__colonne{order:2;position:sticky;top:calc(var(--pm-real-haut) + var(--pm-real-barre) + 20px);display:grid;gap:14px;min-width:0;transition:top var(--d-base) var(--ease)}
#pm-page .pm-real-plan__liste{order:1;min-width:0}
#pm-page .pm-real-plan__carte{position:relative;aspect-ratio:800/560;border-radius:var(--r-tuile);overflow:hidden;background:var(--pic-950)}
#pm-page .pm-real-plan__couche{position:absolute;inset:0;transform-origin:0 0;transition:transform 480ms var(--ease)}
#pm-page .pm-real-plan__svg,
#pm-page .pm-real-plan__couche>svg,
#pm-page .pm-real-plan__couche>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;pointer-events:none}
/* Points : cible de 44 px, pastille dont la taille suit le nombre de chantiers. --pm-real-zoom-inverse garde leur taille au zoom. */
#pm-page .pm-real-plan__point{position:absolute;left:var(--x);top:var(--y);z-index:1;display:grid;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:var(--r-disque);transform:scale(var(--pm-real-zoom-inverse,1));transition:transform 480ms var(--ease)}
#pm-page .pm-real-plan__pastille{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-disque);background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.22);color:var(--pic-900);font:700 13px/1 var(--police-titre);font-variant-numeric:tabular-nums;transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-plan__point--2 .pm-real-plan__pastille{width:30px;height:30px}
#pm-page .pm-real-plan__point--3 .pm-real-plan__pastille{width:34px;height:34px}
#pm-page .pm-real-plan__point--agglo{z-index:2}
#pm-page .pm-real-plan__point--agglo .pm-real-plan__pastille{width:42px;height:42px}
#pm-page .pm-real-plan__point:is(:hover,:focus-visible,.is-actif,.is-survol){z-index:3}
#pm-page .pm-real-plan__point:is(:hover,:focus-visible,.is-actif,.is-survol) .pm-real-plan__pastille{background:var(--ciel-300);box-shadow:0 0 0 6px rgba(81,207,244,.35);color:var(--pic-950)}
#pm-page .pm-real-plan__nom{display:none;position:absolute;left:50%;top:calc(100% - 4px);transform:translateX(-50%);font:700 12px/1.2 var(--police-titre);color:#fff;text-shadow:0 1px 2px #081530,0 0 6px #081530;white-space:nowrap;pointer-events:none}
#pm-page .pm-real-plan__point--agglo .pm-real-plan__nom,
#pm-page .pm-real-plan__point:is(:hover,:focus-visible,.is-actif,.is-survol) .pm-real-plan__nom,
#pm-page .pm-real-plan.is-zoom .pm-real-plan__nom{display:block}
#pm-page .pm-real-plan__showroom{position:absolute;left:var(--x);top:var(--y);display:grid;place-items:center;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:9px;background:var(--pic-950);box-shadow:0 0 0 2px #fff;color:#fff;transform:scale(var(--pm-real-zoom-inverse,1));transition:transform 480ms var(--ease)}
#pm-page .pm-real-plan__showroom svg{width:16px;height:16px}
#pm-page .pm-real-plan__aide{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 24px);height:32px;padding:0 12px;border-radius:var(--r-disque);background:#fff;box-shadow:0 8px 20px -10px rgba(8,21,48,.5);color:var(--pic-900);font:600 13px/1.2 var(--police-texte);pointer-events:none}
#pm-page .pm-real-plan__aide svg{width:15px;height:15px;color:var(--pic-800)}
#pm-page .pm-real-plan__zoom{position:absolute;right:12px;bottom:12px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--r-disque);background:#fff;box-shadow:0 8px 20px -10px rgba(8,21,48,.5)}
#pm-page .pm-real-plan__zoom button{height:36px;padding:0 12px;border-radius:var(--r-disque);color:var(--pic-900);font:600 13px/1 var(--police-texte);text-align:center;white-space:nowrap}
#pm-page .pm-real-plan__zoom button[aria-pressed="true"]{background:var(--pic-800);color:#fff}

/* Carte de sélection : commune du point choisi, devis, retour à toutes les communes. */
#pm-page .pm-real-selection{display:grid;gap:14px 20px;align-items:center;padding:18px 20px;border-radius:var(--r-tuile);background:var(--pic-50)}
#pm-page .pm-real-selection__texte{display:grid;gap:4px;min-width:0}
#pm-page .pm-real-selection__titre{font:700 20px/1.2 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-real-selection__info{font:400 14px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-selection__page{width:max-content;max-width:100%;margin-top:2px;color:var(--pic-800);font:700 14px/1.3 var(--police-titre);text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-selection__page:hover{color:var(--pic-900)}
#pm-page .pm-real-selection__actions{display:flex;flex-wrap:wrap;gap:8px}
#pm-page .pm-real-selection__devis{white-space:nowrap}
#pm-page .pm-real-selection__toutes{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 16px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-800);font:700 15px/1 var(--police-titre);white-space:nowrap}
#pm-page .pm-real-selection__toutes:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-800)}

/* Liste compacte */
#pm-page .pm-real-liste{display:grid;gap:12px}
#pm-page .pm-real-ligne{position:relative;display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;align-items:center;padding:10px;border-radius:var(--r-tuile);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-200);transition:background-color var(--d-rapide) var(--ease),box-shadow var(--d-rapide) var(--ease)}
#pm-page .pm-real-ligne:not(.pm-real-ligne--sans-lien):hover{box-shadow:inset 0 0 0 1px var(--pic-800)}
#pm-page .pm-real-ligne.is-survol{background:var(--pic-50);box-shadow:inset 0 0 0 1px var(--pic-800)}
#pm-page .pm-real-ligne__visuel{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-real-ligne__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-ligne__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-real-ligne__aplat svg{width:26px;height:26px;stroke-width:1.5}
#pm-page .pm-real-ligne__corps{display:grid;gap:6px;min-width:0}
#pm-page .pm-real-ligne__meta{display:flex;align-items:center;gap:8px;font:600 13px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-ligne__picto{display:grid;color:var(--pic-800)}
#pm-page .pm-real-ligne__picto svg{width:15px;height:15px}
#pm-page .pm-real-ligne__titre{font:700 17px/1.3 var(--police-titre);color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-ligne__lien{color:inherit}
#pm-page .pm-real-ligne__lien::after{content:"";position:absolute;inset:0;border-radius:var(--r-tuile)}
#pm-page .pm-real-ligne__infos{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font:400 13px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-ligne__lieu{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--pic-800)}
#pm-page .pm-real-ligne__lieu svg{width:13px;height:13px}

@media (max-width:1119.98px){
  /* Une colonne : la carte au-dessus, la liste dessous. */
  #pm-page .pm-real-plan{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real-plan__colonne{order:0;position:relative;top:auto}
  #pm-page .pm-real-selection{grid-template-columns:minmax(0,1fr) auto}
}
@media (max-width:759.98px){
  #pm-page .pm-real-plan{gap:16px;margin-top:20px}
  #pm-page .pm-real-plan__pastille{width:24px;height:24px}
  #pm-page .pm-real-plan__point--2 .pm-real-plan__pastille{width:28px;height:28px}
  #pm-page .pm-real-plan__point--3 .pm-real-plan__pastille{width:32px;height:32px}
  #pm-page .pm-real-plan__point--agglo .pm-real-plan__pastille{width:40px;height:40px}
  #pm-page .pm-real-plan__zoom button{height:44px}
  #pm-page .pm-real-selection{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real-selection__page{display:inline-flex;align-items:center;min-height:44px;margin-top:0}
  #pm-page .pm-real-selection__actions>*{flex:1 1 100%}
  #pm-page .pm-real-ligne{grid-template-columns:112px minmax(0,1fr);gap:14px}
  #pm-page .pm-real-ligne__titre{font-size:16px}
}

/* ==========================================================================
   Secteurs
   ========================================================================== */
#pm-page .pm-real-secteurs{padding:104px 60px;background:var(--pierre-50);scroll-margin-top:calc(var(--pm-real-haut) + var(--pm-real-barre))}
#pm-page .pm-real-secteurs__tete{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px 56px;align-items:end}
#pm-page .pm-real-secteurs__titres{display:grid;gap:14px;min-width:0}
#pm-page .pm-real-secteurs__titre{font:700 44px/1.06 var(--police-titre);letter-spacing:-.02em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-secteurs__texte{font:400 18px/1.55 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-real-secteurs__liste{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:40px}
#pm-page .pm-real-secteurs__element{display:flex;min-width:0}
/* Tuile d'un secteur (18 octobre 2026) : carte du département, repère, chantiers, communes, bouton. Toute la tuile mène au bouton (lien étiré), les communes restent cliquables au-dessus. */
#pm-page .pm-real-secteur{position:relative;flex:1;display:flex;flex-direction:column;min-width:0;border-radius:var(--r-tuile);background:#fff;border:2px solid var(--pierre-200);overflow:hidden;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}
#pm-page .pm-real-secteur.is-coeur{border-color:var(--pic-800)}
#pm-page .pm-real-secteur:hover{border-color:var(--pic-800);box-shadow:0 18px 36px -22px rgba(8,21,48,.35)}
#pm-page .pm-real-secteur.is-actif{border-color:var(--ciel-500);box-shadow:0 0 0 3px rgba(38,145,208,.2)}
#pm-page .pm-real-secteur__carte{position:relative;display:block;height:150px;padding:18px 16px 12px;background:var(--pic-50)}
#pm-page .pm-real-secteur__carte img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease)}
#pm-page .pm-real-secteur:hover .pm-real-secteur__carte img{transform:scale(1.04)}
#pm-page .pm-real-secteur__code{position:absolute;top:12px;left:12px;min-width:40px;height:28px;padding:0 8px;border:1px solid var(--pic-800);background:#fff;display:grid;place-items:center;font:700 13px/1 var(--police-titre);color:var(--pic-800)}
#pm-page .pm-real-secteur__badge{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:var(--pic-800);color:#fff;font:700 12px/1 var(--police-titre);letter-spacing:.04em;text-transform:uppercase}
#pm-page .pm-real-secteur__badge svg{width:14px;height:14px}
#pm-page .pm-real-secteur__corps{flex:1;display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px}
#pm-page .pm-real-secteur__nom{font:700 22px/1.15 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-real-secteur__departement{font:400 14px/1.3 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-secteur__repere{display:flex;align-items:center;gap:8px;margin-top:6px;font:600 14px/1.35 var(--police-texte);color:var(--pic-800)}
#pm-page .pm-real-secteur__repere svg{width:16px;height:16px;flex:none}
#pm-page .pm-real-secteur__nombre{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin-top:4px;padding:5px 11px;border-radius:999px;background:var(--succes-100);color:var(--succes-700);font:700 13px/1.3 var(--police-texte)}
#pm-page .pm-real-secteur__nombre.is-neutre{background:var(--pierre-100);color:var(--pierre-700)}
#pm-page .pm-real-secteur__nombre svg{width:16px;height:16px;flex:none}
#pm-page .pm-real-secteur__communes{margin-top:10px;display:grid;gap:8px}
#pm-page .pm-real-secteur__mini{font:700 12px/1.3 var(--police-titre);letter-spacing:.08em;text-transform:uppercase;color:var(--pierre-700)}
#pm-page .pm-real-secteur__communes ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
#pm-page .pm-real-secteur__communes a{position:relative;z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--encre);font:600 14px/1.2 var(--police-texte);text-decoration:none;transition:box-shadow .16s var(--ease),background .16s var(--ease)}
#pm-page .pm-real-secteur__communes a:hover{background:var(--pic-50);box-shadow:inset 0 0 0 1.5px var(--pic-800);color:var(--pic-900)}
#pm-page .pm-real-secteur__km{font-weight:400;font-size:13px;color:var(--pierre-700)}
#pm-page .pm-real-secteur__cta{margin-top:auto;padding-top:14px;border-top:1px solid var(--pierre-200);display:flex;align-items:center;justify-content:space-between;gap:10px;font:700 15px/1.3 var(--police-titre);color:var(--pic-800);text-decoration:none}
#pm-page .pm-real-secteur__cta::after{content:"";position:absolute;inset:0;z-index:1}
#pm-page .pm-real-secteur__cta:hover{color:var(--pic-900)}
#pm-page .pm-real-secteur__fl{width:36px;height:36px;border-radius:999px;background:var(--pic-100);color:var(--pic-800);display:grid;place-items:center;flex:none;transition:background .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}
#pm-page .pm-real-secteur:not(.is-sans) .pm-real-secteur__fl{background:var(--pic-800);color:#fff}
#pm-page .pm-real-secteur:hover .pm-real-secteur__fl{background:var(--pic-900);color:#fff;transform:translateX(3px)}
/* Sous les tuiles : « Votre commune n'est pas citée ? » et pages locales. */
#pm-page .pm-real-secteurs__bas{margin-top:24px;display:grid;gap:16px}
#pm-page .pm-real-secteurs__chercher{display:flex;align-items:center;gap:18px;padding:18px 22px;border-radius:var(--r-tuile);background:var(--pic-900);color:#fff}
#pm-page .pm-real-secteurs__disque{width:52px;height:52px;border-radius:999px;background:rgba(255,255,255,.1);color:var(--ciel-300,#7fcbef);display:grid;place-items:center;flex:none}
#pm-page .pm-real-secteurs__chercher-t{flex:1;min-width:0;display:grid;gap:3px}
#pm-page .pm-real-secteurs__q{font:700 19px/1.25 var(--police-titre);color:#fff}
#pm-page .pm-real-secteurs__r{font:400 15px/1.45 var(--police-texte);color:rgba(255,255,255,.8)}
#pm-page .pm-real-secteurs__actions{display:flex;align-items:center;gap:20px;flex:none}
#pm-page .pm-real-secteurs__btn{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 6px 0 22px;border-radius:999px;background:#fff;color:var(--pic-900);font:700 16px/1.2 var(--police-titre);text-decoration:none;white-space:nowrap}
#pm-page .pm-real-secteurs__btn:hover{background:var(--pic-50);color:var(--pic-900)}
#pm-page .pm-real-secteurs__btn .pm-real-secteur__fl{width:40px;height:40px;background:var(--pic-800);color:#fff}
#pm-page .pm-real-secteurs__lien{color:#fff;font:600 15px/1.3 var(--police-texte);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;white-space:nowrap}
#pm-page .pm-real-secteurs__lien:hover{color:#fff;text-decoration-thickness:2px}
#pm-page .pm-real-secteurs__villes{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font:400 15px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-secteurs__villes a{color:var(--pic-800);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#pm-page .pm-real-secteurs__villes a:hover{color:var(--pic-900);text-decoration-thickness:2px}
@media (max-width:1119.98px){
  #pm-page .pm-real-secteurs__chercher{flex-wrap:wrap}
  #pm-page .pm-real-secteurs__actions{width:100%;padding-left:70px}
}
@media (max-width:759.98px){
  /* Mobile : les 4 tuiles en rail horizontal (balayage au doigt), l'amorce de la suivante reste visible. */
  #pm-page .pm-real-secteurs .pm-real-secteurs__liste{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:min(84%,340px);gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin:28px -20px 0;padding:4px 20px 10px;scroll-padding:0 20px;scrollbar-width:none}
  #pm-page .pm-real-secteurs .pm-real-secteurs__liste::-webkit-scrollbar{display:none}
  #pm-page .pm-real-secteurs__element{scroll-snap-align:start}
  #pm-page .pm-real-secteur__carte{height:118px;padding:14px 12px 10px}
  #pm-page .pm-real-secteur__corps{padding:16px 16px 18px}
  #pm-page .pm-real-secteur__nom{font-size:20px}
  #pm-page .pm-real-secteur__communes a{min-height:44px}
  #pm-page .pm-real-secteurs__chercher{flex-direction:column;align-items:flex-start;gap:14px;padding:20px}
  #pm-page .pm-real-secteurs__actions{flex-direction:column;align-items:stretch;gap:12px;padding-left:0}
  #pm-page .pm-real-secteurs__btn{white-space:normal}
  #pm-page .pm-real-secteurs__lien{align-self:center;min-height:44px;display:inline-flex;align-items:center}
}

@media (max-width:1119.98px){
  #pm-page .pm-real-secteurs{padding:88px 32px}
  #pm-page .pm-real-secteurs__tete{grid-template-columns:minmax(0,1fr)}
  #pm-page .pm-real-secteurs__titre{font-size:38px}
  #pm-page .pm-real-secteurs__liste{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:759.98px){
  #pm-page .pm-real-secteurs{padding:64px 20px}
  #pm-page .pm-real-secteurs__titre{font-size:30px}
  #pm-page .pm-real-secteurs__texte{font-size:17px}
  #pm-page .pm-real-secteurs__liste{grid-template-columns:minmax(0,1fr);margin-top:28px}
}

/* ==========================================================================
   Fiche d'une réalisation (gabarit provisoire)
   ========================================================================== */
#pm-page .pm-real-fiche{padding:32px 60px 88px;background:#fff}
#pm-page .pm-real-fiche__interieur{display:grid;gap:28px;max-width:1080px;margin:0 auto}
#pm-page .pm-real-fiche__ariane ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font:700 12px/1.3 var(--police-titre);letter-spacing:.12em;text-transform:uppercase;color:var(--pierre-600)}
#pm-page .pm-real-fiche__ariane li{display:flex;align-items:center;gap:10px;min-width:0}
#pm-page .pm-real-fiche__ariane a{color:var(--pic-800)}
#pm-page .pm-real-fiche__ariane a:hover{color:var(--pic-900);text-decoration:underline;text-underline-offset:4px}
#pm-page .pm-real-fiche__ariane [aria-current]{color:var(--pierre-700)}
#pm-page .pm-real-fiche__tete{display:grid;gap:14px}
#pm-page .pm-real-fiche__titre{font:700 44px/1.08 var(--police-titre);letter-spacing:-.02em;color:var(--pic-900);text-wrap:balance}
#pm-page .pm-real-fiche__mentions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;font:600 15px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-fiche__mentions li{display:inline-flex;align-items:center;gap:6px}
#pm-page .pm-real-fiche__mentions li+li::before{content:"·";margin:0 10px;color:var(--pierre-400)}
#pm-page .pm-real-fiche__mentions svg{width:16px;height:16px;color:var(--pic-800)}
#pm-page .pm-real-fiche__visuel{position:relative;aspect-ratio:16/10;border-radius:var(--r-tuile);overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-real-fiche__photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-fiche__aplat{position:absolute;inset:0;display:grid;place-items:center;color:var(--pierre-400)}
#pm-page .pm-real-fiche__aplat svg{width:48px;height:48px;stroke-width:1.5}
#pm-page .pm-real-fiche__recit{display:grid;gap:20px;max-width:760px}
#pm-page .pm-real-fiche__resume{font:400 18px/1.6 var(--police-texte);color:var(--pierre-700);text-wrap:pretty}
#pm-page .pm-real-fiche__mot{padding:20px 24px;border-left:3px solid var(--ciel-500);border-radius:0 var(--r-tuile) var(--r-tuile) 0;background:var(--pierre-50)}
#pm-page .pm-real-fiche__mot blockquote{padding:0;border:0;font:500 18px/1.55 var(--police-texte);color:var(--pic-900);quotes:none}
#pm-page .pm-real-fiche__mot figcaption{margin-top:8px;font:600 14px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-real-fiche__bloc{display:grid;gap:16px}
#pm-page .pm-real-fiche__sous-titre{font:700 26px/1.2 var(--police-titre);letter-spacing:-.01em;color:var(--pic-900)}
#pm-page .pm-real-fiche__galerie{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#pm-page .pm-real-fiche__galerie li{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--pierre-100)}
#pm-page .pm-real-fiche__vignette{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
#pm-page .pm-real-fiche__avant-apres{max-width:860px}
#pm-page .pm-real-fiche__retour a.pm-lien-fleche{min-height:44px}
@media (max-width:1119.98px){
  #pm-page .pm-real-fiche{padding:28px 32px 72px}
  #pm-page .pm-real-fiche__titre{font-size:38px}
}
@media (max-width:759.98px){
  #pm-page .pm-real-fiche{padding:8px 20px 56px}
  #pm-page .pm-real-fiche__interieur{gap:22px}
  #pm-page .pm-real-fiche__ariane a{display:inline-flex;align-items:center;min-height:44px}
  #pm-page .pm-real-fiche__titre{font-size:30px}
  #pm-page .pm-real-fiche__visuel{aspect-ratio:4/3}
  #pm-page .pm-real-fiche__resume{font-size:17px}
  #pm-page .pm-real-fiche__sous-titre{font-size:22px}
  #pm-page .pm-real-fiche__galerie{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}

/* ==========================================================================
   Focus visible : double anneau blanc + Ciel 500 (fond Nuit : Nuit + Ciel 300). En fin de fichier, et avec
   une spécificité qui passe devant les ombres « inset » des composants.
   ========================================================================== */
#pm-page :is(.pm-real-heros,.pm-real-filtres,.pm-real-resultats,.pm-real-secteurs,.pm-real-fiche) :is(a,button,summary,[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--ciel-500)}
#pm-page :is(.pm-real-heros__interieur,.pm-real-une) :is(a,button):focus-visible{box-shadow:0 0 0 2px var(--pic-950),0 0 0 5px var(--ciel-300)}
#pm-page .pm-real-dernier :is(a,button):focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 5px var(--ciel-500)}
/* Liens qui couvrent une photo : anneau à l'intérieur, pour ne pas être rogné. */
#pm-page :is(.pm-real-dernier__visuel,.pm-real-une__case--grande):focus-visible{box-shadow:inset 0 0 0 3px var(--ciel-300)}
/* Cartes et lignes : l'anneau suit le bord de la carte (le lien du titre la couvre), à l'intérieur pour ne pas être rogné. */
#pm-page :is(.pm-real-carte__lien,.pm-real-ligne__lien):focus-visible{box-shadow:none}
#pm-page :is(.pm-real-carte__lien,.pm-real-ligne__lien):focus-visible::after{box-shadow:inset 0 0 0 3px var(--ciel-500),inset 0 0 0 5px #fff}
#pm-page .pm-real-plan__point:focus-visible{box-shadow:0 0 0 3px var(--ciel-300)}
/* Le volet reçoit le focus quand on y arrive (ancre ou script) : pas d'anneau sur le conteneur lui-même. */
#pm-page .pm-real-filtres .pm-real-volet .pm-real-volet__panneau[tabindex]:focus-visible{box-shadow:0 32px 72px -24px rgba(8,21,48,.45)}

/* ===== PAGE RÉALISATIONS · gabarit du thème parent =====
   Hello Elementor limite « .site-main » à 1140 px : l'archive et la fiche occupent toute la largeur,
   chaque bloc gère lui-même ses marges intérieures. */
#pm-page .site-main.pm-real-page{max-width:none;width:100%;margin-inline:0;padding-inline:0}
/* ==========================================================================
   Pages simples (modele par defaut de Hello : mentions legales, confidentialite, pages en attente de contenu) et page 404.
   Audit UX (1.20.0) : colonne de lecture, marges du site et typographie du design system.
   Sans effet sur les pages Elementor ni sur les gabarits du theme.
   ========================================================================== */
#pm-page.page-template-default:not(.elementor-page) #content.site-main,
#pm-page.error404 #content.site-main{max-width:808px;margin:0 auto;padding:56px 24px 80px;color:var(--encre)}
#pm-page.page-template-default:not(.elementor-page) #content .page-header .entry-title,
#pm-page.error404 #content .page-header .entry-title{margin:0 0 24px;font:700 clamp(32px,5vw,44px)/1.1 var(--police-titre);letter-spacing:-.02em;color:var(--pic-900);text-wrap:balance}
#pm-page.page-template-default:not(.elementor-page) #content .page-content :is(h2,h3,h4),
#pm-page.error404 #content .page-content :is(h2,h3,h4){margin:40px 0 12px;font-family:var(--police-titre);font-weight:700;line-height:1.2;color:var(--pic-900);text-wrap:balance}
#pm-page.page-template-default:not(.elementor-page) #content .page-content h2{font-size:clamp(22px,3.4vw,28px)}
#pm-page.page-template-default:not(.elementor-page) #content .page-content h3{font-size:20px}
#pm-page.page-template-default:not(.elementor-page) #content .page-content h4{font-size:17px}
#pm-page.page-template-default:not(.elementor-page) #content .page-content :is(p,li),
#pm-page.error404 #content .page-content :is(p,li){font:400 16px/1.65 var(--police-texte);color:var(--encre)}
#pm-page.page-template-default:not(.elementor-page) #content .page-content p,
#pm-page.error404 #content .page-content p{margin:0 0 16px}
#pm-page.page-template-default:not(.elementor-page) #content .page-content :is(ul,ol){margin:0 0 16px;padding-left:22px}
#pm-page.page-template-default:not(.elementor-page) #content .page-content a:not(.pm-bouton),
#pm-page.error404 #content .page-content p a:not(.pm-bouton){color:var(--pic-800);text-decoration:underline;text-underline-offset:3px}
@media (max-width:759.98px){
#pm-page.page-template-default:not(.elementor-page) #content.site-main,
#pm-page.error404 #content.site-main{padding:32px 20px 56px}
}
/* Page 404 (template-parts/404.php du theme enfant) */
#pm-page .pm-404__code{margin:0 0 12px;font:700 13px var(--police-titre);letter-spacing:.14em;text-transform:uppercase;color:var(--pic-800)}
#pm-page .pm-404__liens{list-style:none;margin:20px 0 32px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
#pm-page .pm-404__liens a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:var(--r-disque);background:#fff;box-shadow:inset 0 0 0 1px var(--pierre-300);color:var(--pic-900);font:600 15px var(--police-texte);text-decoration:none}
#pm-page .pm-404__liens a:hover{box-shadow:inset 0 0 0 1.5px var(--pic-800)}
#pm-page .pm-404__actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}

/* Fenêtres mixtes alu-PVC (1.24.7) */
#pm-entete .pm-pastille--alu-pvc{background:linear-gradient(90deg,#A7ADB3 50%,#F4F4F1 50%)}

/* ===== Mention obligatoire France Rénov' (arrêté du 7 juillet 2026 · pm_france_renov_ligne(), inc/pied-de-page.php) =====
   19 octobre 2026, demande du client : l'encart blanc placé avant le pied de page devient une ligne discrète en tête du bas
   de page (pied du site et pied du tunnel de devis), sur toutes les pages. Texte de l'annexe I mot pour mot, lien cliquable. */
#pm-pied .pm-frenov-ligne,.pm-dp-pied .pm-frenov-ligne{flex:1 1 100%;display:flex;align-items:flex-start;gap:8px;margin:0;font:500 14px/1.5 var(--police-texte);color:rgba(255,255,255,.82);text-wrap:pretty}
#pm-pied .pm-frenov-ligne svg,.pm-dp-pied .pm-frenov-ligne svg{flex:none;width:16px;height:16px;margin-top:3px;color:var(--ciel-300)}
#pm-pied .pm-frenov-ligne a,.pm-dp-pied .pm-frenov-ligne a{font-weight:700;color:#fff;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
#pm-pied .pm-frenov-ligne a:hover,.pm-dp-pied .pm-frenov-ligne a:hover{color:var(--ciel-300)}
#pm-pied .pm-frenov-ligne a:focus-visible,.pm-dp-pied .pm-frenov-ligne a:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-pied .pm-pied__bas .pm-frenov-ligne{padding-bottom:12px;border-bottom:1px solid var(--pied-ligne)}
.pm-dp-pied .pm-frenov-ligne{grid-column:1/-1;margin-top:8px}


/* ===== Plan du site ([pm_plan_du_site], inc/pied-de-page.php, 19 octobre 2026) ===== */
.pm-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 48px;margin-top:8px}
.pm-plan__bloc h2{margin:24px 0 10px}
.pm-plan ul{margin:0 0 6px;padding-left:20px}
.pm-plan li{margin:6px 0;line-height:1.45}
.pm-plan li>ul{margin-top:4px}
.pm-plan a{font-weight:600}


/* Menu mobile, 20 octobre 2026 : les vignettes des familles sont des liens directs (plus des boutons). */
#pm-entete a.pm-et-vignette{text-decoration:none}
#pm-entete a.pm-et-vignette:hover,#pm-entete a.pm-et-vignette:focus{color:#0B2154;text-decoration:none}

/* ===== Bloc devis en 2 étapes (26 octobre 2026, plan 2-plans/plan-devis-2-etapes.md) =====
   Projet, puis coordonnées (code postal en tête) ; question facultative sur le type de chantier au remerciement. */
#pm-page .pm-devis[data-etape="1"] .pm-devis__avance{width:50%}
#pm-page .pm-devis:is([data-etape="2"],[data-etape="4"]) .pm-devis__avance{width:100%}
#pm-page .pm-devis__recap{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:12px;background:var(--pierre-50);font:400 15px/1.4 var(--police-texte);color:var(--encre)}
#pm-page .pm-devis--pierre .pm-devis__recap{background:#fff}
#pm-page .pm-devis__recap > svg{flex:none;width:18px;height:18px;color:var(--succes-700)}
#pm-page .pm-devis__recap > span{flex:1;min-width:0}
#pm-page .pm-devis__modifier{flex:none;min-height:44px;padding:0 10px;border:0;border-radius:var(--r-disque);background:none;font:600 15px/1.2 var(--police-texte);color:var(--pic-800);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-transform:none;letter-spacing:normal;cursor:pointer}
#pm-page .pm-devis__modifier:is(:hover,:focus){background:var(--pm-devis-survol);color:var(--pic-900)}
#pm-page .pm-devis__aide-champ{font:400 13px/1.4 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__preciser{display:grid;gap:12px;padding:16px;border-radius:16px;background:var(--pic-50);box-shadow:inset 0 0 0 1px #D3DEF0}
#pm-page .pm-devis__preciser-q{display:grid;gap:2px;font:400 14px/1.45 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__preciser-q strong{font:700 17px/1.3 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__preciser-choix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#pm-page .pm-devis__preciser-btn{display:grid;gap:2px;justify-items:start;align-content:center;min-height:64px;padding:10px 16px;border:1px solid var(--pierre-300);border-radius:14px;background:#fff;color:var(--encre);text-align:left;text-transform:none;letter-spacing:normal;white-space:normal;cursor:pointer}
#pm-page .pm-devis__preciser-btn strong{font:700 16px/1.25 var(--police-titre);color:var(--pic-900)}
#pm-page .pm-devis__preciser-btn span{font:400 13px/1.35 var(--police-texte);color:var(--pierre-700)}
#pm-page .pm-devis__preciser-btn:is(:hover,:focus){background:#fff;color:var(--encre)}
#pm-page .pm-devis__preciser-btn[aria-pressed="true"]{padding:9px 15px;border:2px solid var(--pic-800)}
#pm-page .pm-devis__preciser-btn:disabled{cursor:default}
#pm-page .pm-devis__preciser-btn:disabled:not([aria-pressed="true"]){opacity:.55}
#pm-page .pm-devis__preciser-ok{font:600 14px/1.4 var(--police-texte);color:var(--succes-700)}
#pm-page .pm-devis__preciser-ok:empty{display:none}
@media (hover:hover){
  #pm-page .pm-devis__preciser-btn:hover:not(:disabled){border-color:var(--pic-800)}
}
/* Mobile : tuiles sur 2 colonnes, toutes visibles d'un coup ; « Continuer » sur toute la largeur. */
@media (max-width:759.98px){
  #pm-page .pm-devis__tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  #pm-page .pm-devis__tuile-corps{gap:8px;min-height:60px;padding:6px 8px}
  #pm-page .pm-devis__case:checked + .pm-devis__tuile-corps{padding:5px 7px}
  #pm-page .pm-devis__picto{width:32px;height:32px}
  #pm-page .pm-devis__picto svg{width:18px;height:18px}
  #pm-page .pm-devis__tuile-nom{font-size:14px;line-height:1.2}
  #pm-page .pm-devis__coche{width:20px;height:20px}
  #pm-page .pm-devis__case-suivant{grid-column:1 / -1}
  #pm-page .pm-devis__preciser-choix{grid-template-columns:minmax(0,1fr)}
}

/* Héros de l'accueil sur mobile (27 octobre 2026, demande du client) : photo unique de l'équipe, sans diaporama ni commandes. */
#pm-page .pm-hero--mobile-fixe .pm-hero__photo--mobile{opacity:1;z-index:3}
@media (max-width:759.98px){#pm-page .pm-hero--mobile-fixe .pm-hero__photo[data-pm-photo],#pm-page .pm-hero--mobile-fixe .pm-hero__commandes{display:none}}
@media (min-width:760px){#pm-page .pm-hero--mobile-fixe .pm-hero__photo--mobile{display:none}}
/* --- Précisions libres sur le projet, sur tous les formulaires (27 octobre 2026) --- */
#pm-page textarea.pm-devis__saisie{height:auto;min-height:104px;padding:14px 16px;line-height:1.5;resize:vertical}
#pm-page .pm-champ__facultatif{font-weight:400;color:var(--pierre-600)}
#pm-page .pm-rdv__message{margin-top:8px}
:is(#pm-page,#pm-pied) .pm-plus>summary{list-style:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-left:-8px;padding:6px 14px 6px 8px;border-radius:22px;font:600 14px/1.35 var(--police-texte);text-align:left;cursor:pointer}
:is(#pm-page,#pm-pied) .pm-plus>summary::-webkit-details-marker{display:none}
:is(#pm-page,#pm-pied) .pm-plus>summary::marker{content:""}
:is(#pm-page,#pm-pied) .pm-plus__disque{width:26px;height:26px;border-radius:999px;display:grid;place-items:center;flex:none}
:is(#pm-page,#pm-pied) .pm-plus__disque>span{line-height:0}
:is(#pm-page,#pm-pied) .pm-plus__disque svg{width:14px;height:14px}
:is(#pm-page,#pm-pied) .pm-plus__moins,:is(#pm-page,#pm-pied) .pm-plus[open] .pm-plus__plus{display:none}
:is(#pm-page,#pm-pied) .pm-plus[open] .pm-plus__moins{display:block}
:is(#pm-page,#pm-pied) .pm-plus__facultatif{font-weight:400}
#pm-page .pm-pp-express__plus>summary{color:var(--pic-800)}
#pm-page .pm-pp-express__plus>summary:hover{background:var(--pic-50)}
#pm-page .pm-pp-express__plus .pm-plus__disque{background:var(--pic-100);color:var(--pic-800)}
#pm-page .pm-pp-express__plus .pm-plus__facultatif{color:var(--pierre-600)}
#pm-page textarea.pm-pp-express__texte{display:block;width:100%;height:auto;min-height:96px;margin-top:6px;padding:12px 16px;line-height:1.5;resize:vertical}
#pm-pied .pm-pied__rappel-plus>summary{color:var(--pied-texte-2)}
#pm-pied .pm-pied__rappel-plus>summary:hover{background:rgba(255,255,255,.06)}
#pm-pied .pm-pied__rappel-plus .pm-plus__disque{background:rgba(255,255,255,.12);color:#fff}
#pm-pied .pm-pied__rappel-texte{display:block;width:100%;min-height:104px;margin:6px 0 0;padding:14px 22px;border:0;border-radius:20px;background:#fff;color:var(--encre);font:400 16px/1.5 var(--police-texte);box-shadow:none;resize:vertical}
#pm-pied .pm-pied__rappel-texte::placeholder{color:var(--pierre-600)}
#pm-pied .pm-pied__rappel-texte:focus{outline:none;box-shadow:0 0 0 3px var(--ciel-300)}
#pm-page .pm-plus>summary:focus-visible{outline:3px solid var(--ciel-500);outline-offset:2px}
#pm-pied .pm-plus>summary:focus-visible{outline:3px solid var(--ciel-300);outline-offset:2px}
/* --- Commune du chantier après le code postal, formulaires de devis (27 octobre 2026) --- */
#pm-page [data-pm-cp-commune][hidden]{display:none}
#pm-page [data-pm-cp-commune] select.pm-cp-commune__liste{-webkit-appearance:none;appearance:none;width:100%;padding-right:44px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2345506A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px 18px;cursor:pointer;text-overflow:ellipsis;white-space:nowrap}
#pm-page [data-pm-cp-commune] select.pm-cp-commune__liste:invalid{color:var(--pierre-600)}
#pm-page [data-pm-cp-commune] select.pm-cp-commune__liste option{color:var(--encre)}
/* --- Code postal et commune dans un seul module, formulaires de devis (27 octobre 2026) --- */
#pm-page [data-pm-cp-commune]{display:contents}
#pm-page .pm-cp-module{position:relative;min-width:0}
#pm-page .pm-cp-module>input{width:100%}
#pm-page .pm-cp-liste{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;padding:12px 0 6px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--pierre-200),0 20px 44px -14px rgba(15,25,45,.32);text-align:left}
#pm-page .pm-cp-liste[hidden]{display:none}
#pm-page .pm-cp-liste__titre{margin:0;padding:0 18px 8px;font:700 15px/1.3 var(--police-titre);letter-spacing:0;text-transform:none;color:var(--pic-900)}
#pm-page .pm-cp-liste__options{position:relative;max-height:248px;margin:0;padding:0 6px;list-style:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#pm-page .pm-cp-liste__option{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin:0;padding:10px 12px;border-radius:10px;font:400 16px/1.3 var(--police-texte);color:var(--encre);cursor:pointer;-webkit-tap-highlight-color:transparent}
#pm-page .pm-cp-liste__option::before{content:none}
#pm-page .pm-cp-liste__option:hover,#pm-page .pm-cp-liste__option.is-active{background:var(--pic-50)}
#pm-page .pm-cp-liste__option[aria-selected="true"]{font-weight:600;color:var(--pic-800)}
#pm-page .pm-cp-liste__option[aria-selected="true"]::after{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%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' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
/* --- Formulaires de devis identiques : devis express (27 octobre 2026) --- */
#pm-page .pm-pp-express__champ textarea.pm-pp-express__texte{margin-top:0;min-height:84px}
#pm-page .pm-pp-express__aide{margin:0;font-size:13px;line-height:1.4;color:var(--pierre-700)}
#pm-page .pm-pp-express__rgpd a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* Devis express : plus de photo dans la carte, précisions sur 2 lignes, pour garder le bouton dans la première vue (27 octobre 2026). La photo du produit reste en haut de page sur mobile et tablette. */
#pm-page .pm-pp-express__photo{display:none}
#pm-page .pm-pp-express__champ textarea.pm-pp-express__texte{min-height:68px}
/* ==========================================================================
   Formulaires de devis, 28 octobre 2026 (analyse UX : lots « À faire d'abord » et « Au passage »).
   ========================================================================== */
/* Validation au fil de la saisie : coche verte dans le champ juste (PM.verifier, pm-site.js). */
:is(#pm-page,#pm-pied) input[data-pm-valide="true"]:not([aria-invalid="true"]){padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231E7044' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px 20px}
/* Bloc devis en 3 étapes : avancement par tiers ; coordonnées sur 2 colonnes, e-mail en pleine largeur. */
#pm-page .pm-devis[data-etape="1"] .pm-devis__avance{width:33%}
#pm-page .pm-devis[data-etape="2"] .pm-devis__avance{width:67%}
#pm-page .pm-devis:is([data-etape="3"],[data-etape="4"]) .pm-devis__avance{width:100%}
@media (min-width:760px){
	#pm-page .pm-devis__champs{grid-template-columns:repeat(2,minmax(0,1fr))}
	#pm-page .pm-devis__champs > .pm-devis__champ:last-child{grid-column:1 / -1}
}
/* Devis express : aide sous le téléphone ; espacement resserré pour garder le bouton dans la première vue. */
#pm-page .pm-pp-express__corps{gap:10px}
/* Pied de page : question facultative après la demande de rappel (« C'est pour… »). */
#pm-pied .pm-pied__rappel-projet{margin-top:14px;display:grid;gap:10px}
#pm-pied .pm-pied__rappel-projet[hidden]{display:none}
#pm-pied .pm-pied__rappel-ok .pm-pied__rappel-projet-q{margin:0;font:700 15px/1.35 var(--police-titre);color:#fff}
#pm-pied .pm-pied__rappel-projet-q span{font:400 14px/1.35 var(--police-texte);color:var(--pied-texte-2)}
#pm-pied .pm-pied__rappel-puces{display:flex;flex-wrap:wrap;gap:8px}
#pm-pied .pm-pied__rappel-puce{min-height:40px;margin:0;padding:8px 14px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:transparent;font:600 14px/1.2 var(--police-texte);color:#fff;text-transform:none;letter-spacing:normal;cursor:pointer}
#pm-pied .pm-pied__rappel-puce:hover:not(:disabled){border-color:#fff;background:rgba(255,255,255,.08)}
#pm-pied .pm-pied__rappel-puce[aria-pressed="true"]{border-color:#fff;background:#fff;color:var(--pic-900)}
#pm-pied .pm-pied__rappel-puce:disabled{opacity:.45;cursor:default}
#pm-pied .pm-pied__rappel-puce:focus-visible{outline:3px solid var(--ciel-300);outline-offset:2px}
#pm-pied .pm-pied__rappel-ok .pm-pied__rappel-projet-ok{margin:0;font-size:14px;font-weight:600;color:#fff}
#pm-pied .pm-pied__rappel-ok .pm-pied__rappel-projet-ok:empty{display:none}
/* Commune : conteneur vide (liste déplacée sous le code postal, erreur masquée) retiré de la grille, sans espace fantôme. */
#pm-page .pm-cp-commune:not(:has(> :not(input[type="hidden"]):not([hidden]))){display:none}

/* Comparateur, photos en hauteur (classe ajoutée par parts/blocs/avant-apres.php et pm-avant-apres.js) :
   même cadre que les autres chantiers (pas de saut de mise en page à l'accueil quand le chantier à la une change),
   menuiserie entière au centre, fond flouté de la même photo sur les côtés. Mobile : cadre 3:4, photo entière. */
#pm-page .pm-avant-apres__fond{position:absolute;top:-30px;left:-30px;width:calc(100% + 60px);height:calc(100% + 60px);max-width:none;object-fit:cover;filter:blur(22px) saturate(.85) brightness(.78);pointer-events:none}
#pm-page .pm-avant-apres--portrait .pm-avant-apres__photo{object-fit:contain;filter:drop-shadow(0 6px 24px rgba(8,21,48,.35))}
@media (max-width:759.98px){
  #pm-page .pm-avant-apres--portrait .pm-avant-apres__cadre{aspect-ratio:3/4}
  #pm-page .pm-avant-apres--portrait .pm-avant-apres__photo{object-fit:cover;filter:none}
  #pm-page .pm-avant-apres--portrait .pm-avant-apres__fond{display:none}
}
/* Bloc devis, étape 1 : projet déjà coché pour le visiteur (30 octobre 2026). */
#pm-page .pm-devis__aide.is-coche{color:var(--pic-900);font-weight:600}
