/* pe-hero.css :: canonical .pe-* styles. Loaded on front + Elementor preview + editor canvas via novamira-sandbox/pe_assets.php. Theme-independent. Migrated from Customizer post 29. */
/* =====================================================
   Plan-evacuation.fr — Custom CSS (clean master)
   ===================================================== */

/* 1. Google Fonts */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500 700;font-display:swap;src:url('fonts/fraunces-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* 2. Design tokens + Elementor global typography CSS vars */
:root {
  --f-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --f-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --c-ink:       #0B1B2B;
  --c-red:       #E11D2A;
  --c-red-dark:  #B5151F;
  --c-red-soft:  #FCEBEC;
  --c-graphite:  #2A2F36;
  --c-steel:     #5E6A78;
  --c-line:      #E3E8EF;
  --c-paper:     #F5F7FA;
  /* Elementor global typography overrides */
  --e-global-typography-primary-font-family:   "Fraunces";
  --e-global-typography-primary-font-weight:   600;
  --e-global-typography-secondary-font-family: "Fraunces";
  --e-global-typography-secondary-font-weight: 600;
  --e-global-typography-text-font-family:      "Inter";
  --e-global-typography-text-font-weight:      400;
  --e-global-typography-accent-font-family:    "Inter";
  --e-global-typography-accent-font-weight:    600;
}

/* 3. Base typography */
html { scroll-behavior: smooth; }
body, button, input, select, textarea {
  font-family: var(--f-sans) !important;
  font-size: 17px;
  line-height: 1.6;
}

/* 4. Headings: H1 H2 H4 = Fraunces */
.elementor-widget-heading .elementor-heading-title,
h1, h2, h4 {
  font-family: var(--f-serif) !important;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--c-ink);
  text-transform: none;
}
.elementor-widget-heading h1.elementor-heading-title, h1 {
  font-size: clamp(2.1rem, 4.4vw, 3.6rem);
  letter-spacing: -0.02em;
}
.elementor-widget-heading h2.elementor-heading-title, h2 {
  font-size: clamp(1.7rem, 3vw, 2.4rem);
}

/* 5. H3 = Inter bold */
.elementor-widget-heading h3.elementor-heading-title, h3 {
  font-family: var(--f-sans) !important;
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  font-weight: 700;
  letter-spacing: -0.005em;
  text-transform: none;
}

/* 6. Fraunces exceptions */
.pe-serif .elementor-heading-title,
.pe-pill  .elementor-heading-title,
.pe-stepnum .elementor-heading-title,
.pe-target-t .elementor-heading-title {
  font-family: var(--f-serif) !important;
  text-transform: none;
}

/* 7. Text / paragraphs */
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  font-family: var(--f-sans) !important;
  font-size: 1rem;
  line-height: 1.6;
}

/* 8. Icon-box titles (card H3) */
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-title a {
  font-family: var(--f-sans) !important;
  font-weight: 700;
  text-transform: none;
}

/* 9. Accordion */
.elementor-accordion .elementor-accordion-title {
  font-family: var(--f-sans) !important;
  font-weight: 600;
  font-size: 1.02rem;
}

/* 10. Buttons — base aligned to landing V4 .btn (weight 600 + letter-spacing) */
.elementor-widget-button .elementor-button {
  font-family: var(--f-sans) !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
}

/* =====================================================
   Section anchors
   ===================================================== */
#services, #etablissements, #reglementation,
#process, #faq, #devis { scroll-margin-top: 84px; }

/* =====================================================
   Header (XPRO sticky)
   ===================================================== */
.xpro-theme-builder-header {
  position: sticky; top: 0; z-index: 1000; background: #fff;
  border-bottom: 1px solid var(--c-line);
}
.pe-header-inner > .e-con-inner {
  flex-direction:  row !important;
  align-items:     center !important;
  justify-content: space-between !important;
  flex-wrap:       nowrap !important;
  gap: 24px;
}
.xpro-theme-builder-header .elementor-widget-image img {
  height: 40px !important; width: auto !important; display: block;
}
/* Nav underline hover */
.xpro-theme-builder-header li > a.xpro-elementor-nav-link { position: relative; }
.xpro-theme-builder-header li:not(.pe-menu-cta) > a.xpro-elementor-nav-link::after {
  content: ''; position: absolute; left: 6px; right: 6px; bottom: 8px;
  height: 2px; background: var(--c-red);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .25s cubic-bezier(.2,.7,.2,1);
}
.xpro-theme-builder-header li:not(.pe-menu-cta) > a.xpro-elementor-nav-link:hover::after { transform: scaleX(1); }
.xpro-theme-builder-header li:not(.pe-menu-cta) > a.xpro-elementor-nav-link:hover { color: #0B1B2B !important; }
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link { color: #2A2F36 !important; transition: color .2s ease; }
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link:hover { color: #000 !important; }
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link::after { display: none !important; }

/* =====================================================
   Cards hover
   ===================================================== */
.pe-card { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.pe-card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -20px rgba(11,27,43,.25); border-color: transparent !important; }

/* =====================================================
   Components
   ===================================================== */
/* Eyebrow pill */
.pe-eyebrow .elementor-heading-title {
  display: inline-block !important;
  font-family: var(--f-sans) !important;
  font-size: .78rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--c-red) !important;
  font-weight: 600;
  padding: .5em .95em;
  border: 1px solid var(--c-red);
  border-radius: 999px;
  line-height: 1.45;
  font-family: var(--f-sans);
}
.pe-eyebrow--light .elementor-heading-title {
  color: #fff !important;
  border-color: rgba(255,255,255,.5) !important;
}

/* Trust bar labels */
.pe-trust .elementor-heading-title {
  font-size: .8rem; letter-spacing: .06em; text-transform: uppercase;
  color: #2A2F36 !important; font-weight: 700; opacity: .85;
}

/* Pill (01, 02...) */
.pe-pill .elementor-heading-title {
  display: inline-block;
  font-family: var(--f-serif) !important;
  font-size: .8rem; color: var(--c-red); background: var(--c-red-soft);
  padding: .25em .75em; border-radius: 999px; font-weight: 600;
}

/* Step number */
.pe-stepnum .elementor-heading-title {
  font-family: var(--f-serif) !important;
  font-size: 2.2rem; font-weight: 700; color: var(--c-ink); opacity: .2; line-height: 1;
}

/* Tag (impression block) */
.pe-tag .elementor-heading-title {
  display: inline-block; font-size: .82rem; color: #fff;
  border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.05);
  padding: .5em 1em; border-radius: 999px; font-weight: 500;
}

/* Card meta (uppercase label under card) */
.pe-cardmeta .elementor-widget-container,
.pe-cardmeta p {
  font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-steel); font-weight: 600; margin: 0;
}

/* Target-type (etablissements) */
.pe-target-t .elementor-heading-title {
  font-family: var(--f-serif) !important;
  font-size: 1.05rem; font-weight: 600; color: var(--c-ink);
}

/* Microbenefit chip */
.pe-microben .elementor-heading-title { font-size: .86rem; font-weight: 600; color: #2A2F36; }

/* Tile icon box */
.pe-tile .elementor-icon-box-title { font-size: .86rem; font-weight: 600; }
.pe-cardicon { width: 48px !important; height: 48px !important; border-radius: 12px; background: var(--c-paper); display: flex !important; align-items: center; justify-content: center; flex: 0 0 auto; }
.pe-cardicon .elementor-widget-icon { margin: 0; }

/* Before/after chip */
.pe-chip .elementor-heading-title {
  display: inline-block; font-size: .86rem; font-weight: 600; color: #2A2F36; white-space: nowrap;
  background: #fff; border: 1px solid var(--c-line); border-radius: 999px; padding: .5em 1.05em;
}
.pe-chip .elementor-heading-title::before { content: '\2713'; color: var(--c-red); font-weight: 800; margin-right: .5em; }

/* =====================================================
   WPForms quote form
   ===================================================== */
.pe-quote-form .wpforms-field-label { font-weight: 600; color: #2A2F36; font-size: .9rem; }
.pe-quote-form input[type=text],
.pe-quote-form input[type=email],
.pe-quote-form input[type=tel],
.pe-quote-form select,
.pe-quote-form textarea { border: 1px solid var(--c-line) !important; border-radius: 10px !important; padding: .7em .9em !important; font-size: .98rem; }
.pe-quote-form .wpforms-submit { background: var(--c-red) !important; border: 0 !important; border-radius: 999px !important; padding: .85em 1.7em !important; font-weight: 600 !important; color: #fff !important; font-size: 1rem; }
.pe-quote-form .wpforms-submit:hover { background: var(--c-red-dark) !important; }

/* =====================================================
   Footer
   ===================================================== */
.pe-foot-brand .elementor-heading-title { font-size: 1.3rem; font-weight: 800; color: #fff; font-family: var(--f-sans) !important; }
.pe-foot-h .elementor-heading-title { font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; font-family: var(--f-sans) !important; color: #fff; }
.pe-foot a { color: rgba(255,255,255,.7); text-decoration: none; }
.pe-foot a:hover { color: #fff; }
.pe-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pe-foot p { color: rgba(255,255,255,.7); }
/* ===== HERO (match landing) ===== */
/* Eyebrow: white pill + red dot */
.pe-hero-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:.6em;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:#2A2F36;font-weight:600;background:#fff;border:1px solid #E3E8EF;border-radius:999px;padding:.5em 1em;box-shadow:0 1px 2px rgba(11,27,43,.06),0 1px 1px rgba(11,27,43,.04);line-height:1;font-family:var(--f-sans);}
.pe-hero-eyebrow .elementor-heading-title::before{content:'';width:8px;height:8px;border-radius:50%;background:#E11D2A;box-shadow:0 0 0 4px rgba(225,29,42,.15);flex:none;}
/* Red CTA: shadow + lift */
.pe-cta-red .elementor-button{box-shadow:0 8px 20px -8px rgba(225,29,42,.55);transition:transform .25s ease,box-shadow .25s ease,background .25s ease;}
.pe-cta-red .elementor-button:hover{transform:translateY(-1px);box-shadow:0 14px 26px -10px rgba(225,29,42,.55);}
/* Ghost CTA (white/border): rollover */
.pe-cta-ghost .elementor-button{transition:transform .25s ease,border-color .25s ease,background .25s ease;}
.pe-cta-ghost .elementor-button:hover{border-color:#0B1B2B !important;transform:translateY(-1px);}
/* Hero frame + overlays */
.pe-hero-frame{position:relative !important;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(11,27,43,.25),0 12px 30px -10px rgba(11,27,43,.15);background:#fff;padding:0 !important;}
.pe-hero-frame > .e-con-inner{padding:0 !important;}
.pe-hero-frame .elementor-widget-image,.pe-hero-frame .elementor-widget-image .elementor-widget-container{line-height:0;width:100%;}
.pe-hero-frame img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;}
.pe-hero-badge{position:absolute !important;top:20px;left:20px;width:auto !important;background:#fff;border:1px solid #E3E8EF;border-radius:12px;padding:10px 14px;box-shadow:0 6px 22px rgba(11,27,43,.08);z-index:3;}
.pe-hero-badge > .e-con-inner{padding:0 !important;}
.pe-hero-badge p{margin:0;line-height:1.1;}
.pe-hero-badge strong{font-family:'Fraunces',serif;font-size:1.1rem;color:#0B1B2B;display:block;}
.pe-hero-badge span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#E11D2A;font-weight:700;display:block;}
.pe-hero-meta{position:absolute !important;left:20px;right:20px;bottom:20px;width:auto !important;display:grid !important;grid-template-columns:1fr 1fr;gap:10px;z-index:3;}
.pe-hero-meta > .e-con-inner{padding:0 !important;display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
.pe-hero-meta-card{background:rgba(11,27,43,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:13px 15px;}
.pe-hero-meta-card > .e-con-inner{padding:0 !important;}
.pe-hero-meta-card p{margin:0;line-height:1.25;color:#fff;}
.pe-hero-meta-card span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.6;display:block;margin-bottom:3px;}
.pe-hero-meta-card strong{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:600;line-height:1.12;margin:0 0 2px;display:block;color:#fff;}
.pe-hero-meta-card small{font-size:.8rem;opacity:.72;display:block;line-height:1.3;}
@media(max-width:920px){.pe-hero-frame img{aspect-ratio:4/3;}}
@media(max-width:520px){.pe-hero-meta,.pe-hero-meta > .e-con-inner{grid-template-columns:1fr;}}
/* pe-hero-meta-nobreak */
.pe-hero-meta-card, .pe-hero-meta-card *{word-break:normal !important;overflow-wrap:normal !important;hyphens:none !important;}
.pe-hero-meta-card small{font-size:.74rem;line-height:1.25;}
.pe-hero-meta-card span{font-size:.68rem;}

/* pe-nobreak-global : stop Astra forcing mid-word breaks (FR) */
.elementor-heading-title,.elementor-widget-text-editor,.elementor-widget-text-editor p,.elementor-icon-box-title,.elementor-icon-box-description,.elementor-icon-list-text,.elementor-button,.elementor-accordion-title,.elementor-tab-title{word-break:normal !important;overflow-wrap:break-word !important;word-wrap:break-word !important;hyphens:none !important;}

/* Mobile/tablet (stacked layout <=1024px): image column first, matching the reference mockup */
@media (max-width:1024px){
  .pe-hero-col-media{order:-1;}
}

/* ===== Clients / trust strip :: centered Fraunces title + auto-scroll Inter chips (CSS-only marquee, no JS) ===== */
.pe-trust-wrap > .e-con-inner{ flex-direction:column !important; align-items:stretch !important; }
.pe-trust-title .elementor-widget-container{ text-align:center; }
.pe-trust-title .elementor-widget-container, .pe-trust-title .elementor-widget-container p{
  font-family:var(--f-serif,'Fraunces',Georgia,serif);
  font-size:clamp(1.2rem,2.4vw,1.7rem); font-weight:600; line-height:1.25;
  color:var(--c-ink,#0B1B2B); letter-spacing:-.01em; margin:0 0 22px;
}
.pe-marquee{ position:relative; width:100%; overflow:hidden !important;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%); }
.pe-marquee > .e-con-inner{ padding:0 !important; display:block !important; }
.pe-marquee-track{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center; justify-content:flex-start;
  width:max-content !important; gap:14px; animation:pe-marquee-scroll 36s linear infinite; will-change:transform; }
.pe-marquee-track > .e-con-inner{ display:contents !important; }
.pe-marquee:hover .pe-marquee-track{ animation-play-state:paused; }
@keyframes pe-marquee-scroll{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
.pe-marquee .pe-trust{ flex:0 0 auto !important; width:auto !important; margin:0 !important; }
.pe-marquee .pe-trust .elementor-heading-title{ display:flex; align-items:center; gap:.55em; white-space:nowrap;
  font-family:var(--f-sans,'Inter',sans-serif); font-size:.82rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--c-ink,#0B1B2B) !important; opacity:1; background:#fff; border:1px solid var(--c-line,#E3E8EF); border-radius:999px;
  padding:.62em 1.15em; line-height:1; box-shadow:0 1px 2px rgba(11,27,43,.05),0 1px 1px rgba(11,27,43,.03); }
.pe-marquee .pe-trust .elementor-heading-title::before{ content:''; flex:none; width:6px; height:6px; border-radius:50%;
  background:var(--c-red,#E11D2A); box-shadow:0 0 0 3px rgba(225,29,42,.14); }
@media (prefers-reduced-motion:reduce){
  .pe-marquee{ -webkit-mask:none; mask:none; overflow:visible !important; }
  .pe-marquee-track{ animation:none; flex-wrap:wrap !important; width:auto !important; justify-content:center; row-gap:12px; }
}
/* pe-trust-title fix :: this Elementor build prints the text-editor <p> directly (no .elementor-widget-container wrapper) */
.pe-trust-title{ text-align:center !important; }
.pe-trust-title, .pe-trust-title > p, .pe-trust-title p{
  font-family:var(--f-serif,'Fraunces',Georgia,serif) !important;
  font-size:clamp(1.3rem,2.6vw,1.85rem) !important; font-weight:600 !important;
  line-height:1.25 !important; color:var(--c-ink,#0B1B2B) !important;
  letter-spacing:-.01em !important; margin:0 auto 20px !important;
}
/* ===== technique / preuves / benefices refinements (2026-06-02) ===== */
/* Contenu technique: right photo full-width, square, rounded frame */
.elementor-element-104918d .elementor-widget-image img{ display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:18px; box-shadow:0 18px 42px -16px rgba(11,27,43,.30); }
.elementor-element-104918d .widget-image-caption, .elementor-element-104918d figcaption{ text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.85rem; color:var(--c-steel,#6B7785); margin-top:10px; }
/* Preuves: bigger square photos in rounded frame (2-up) */
.elementor-element-e7a6f7f .elementor-widget-image{ overflow:hidden; border-radius:18px; box-shadow:0 12px 32px -14px rgba(11,27,43,.22); }
.elementor-element-e7a6f7f .elementor-widget-image img{ display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:18px; }
/* Benefices: shorter cards (landing padding ~24px) */
.elementor-element-e8efccd .pe-card{ padding:22px 24px !important; }
/* ===== Form: compact 2-col rows like landing (2026-06-02) ===== */
.elementor-element-d5e2c6e .wpforms-field-container{ display:flex; flex-wrap:wrap; column-gap:20px; row-gap:0; align-items:flex-start; }
.elementor-element-d5e2c6e .wpforms-field{ width:100%; box-sizing:border-box; float:none !important; clear:none !important; }
.elementor-element-d5e2c6e .wpforms-field.wpforms-one-half{ width:calc(50% - 10px); margin-left:0 !important; }
@media (max-width:600px){ .elementor-element-d5e2c6e .wpforms-field.wpforms-one-half{ width:100%; } }
/* tech caption single line (centered) */
.elementor-element-fc94d73, .elementor-element-fc94d73 p{ text-align:center !important; white-space:nowrap; font-size:.8rem; color:var(--c-steel,#6B7785); margin:12px 0 0 !important; }
/* ===== button + step hovers vs landing (2026-06-02) ===== */
/* Notre approche: 'Voir notre process' text link -> red on hover (.btn-link) */
.pe-cta-link .elementor-button{ transition:color .25s ease, transform .25s ease; }
.pe-cta-link .elementor-button:hover{ color:var(--c-red,#E11D2A) !important; transform:translateX(2px); }
/* Reglementation: dark button -> small lift on hover (.btn-secondary) */
.pe-cta-dark .elementor-button{ transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
.pe-cta-dark .elementor-button:hover{ transform:translateY(-1px); box-shadow:0 12px 26px -12px rgba(11,27,43,.55); }
/* Comment ca fonctionne: step number -> opaque red on card hover (.steps li:hover .step-num) */
.elementor-element-b0626f3 .pe-stepnum .elementor-heading-title{ transition:opacity .35s ease, color .35s ease; }
.elementor-element-b0626f3 .pe-card:hover .pe-stepnum .elementor-heading-title{ opacity:1 !important; color:var(--c-red,#E11D2A) !important; }
/* ===== Refinements batch 2: CTA center / FAQ / form / footer logo (2026-06-02) ===== */
/* CTA final: center the content block in the full-width section */
.elementor-element-a80fa08{ margin-left:auto !important; margin-right:auto !important; }
/* FAQ accordion ef33224: toggle icon on the RIGHT (question aligns with title) */
.elementor-element-ef33224 .elementor-tab-title{ display:flex !important; align-items:center; justify-content:space-between; gap:16px; }
.elementor-element-ef33224 .elementor-accordion-title{ flex:1 1 auto; }
.elementor-element-ef33224 .elementor-accordion-icon{ order:2; margin:0 0 0 auto !important; padding:0 !important; float:none !important; }
/* Form: reduce space before first fields */
.elementor-element-631f1ab{ padding-top:0 !important; margin-top:0 !important; }
.elementor-element-d5e2c6e .wpforms-form{ margin-top:0 !important; }
.elementor-element-d5e2c6e .wpforms-field-container > .wpforms-field:first-child{ margin-top:0 !important; padding-top:0 !important; }
/* Form: fix select option clipping (ERP/placeholder cut off) */
.elementor-element-d5e2c6e .wpforms-field select{ height:auto !important; min-height:48px; line-height:1.5 !important; padding-top:.6em !important; padding-bottom:.6em !important; }
/* Form left CTAs: hover like landing (ghost-inverse + white) */
.pe-cta-ghost-inv .elementor-button{ transition:border-color .25s ease, background-color .25s ease, transform .25s ease; }
.pe-cta-ghost-inv .elementor-button:hover{ border-color:#fff !important; background-color:rgba(255,255,255,.08) !important; transform:translateY(-1px); }
.pe-cta-white .elementor-button{ transition:transform .25s ease, box-shadow .25s ease; }
.pe-cta-white .elementor-button:hover{ transform:translateY(-1px); box-shadow:0 12px 26px -12px rgba(0,0,0,.45); }
/* Footer: logo rendered white on dark footer */
.pe-foot-logo img{ height:34px; width:auto; max-width:none; }
/* ===== Refinements batch 3 (2026-06-02): BA / FAQ / approche / form / footer logo ===== */
/* Avant-apres: center content block */
.elementor-element-a41e09b{ margin-left:auto !important; margin-right:auto !important; }
/* BA title -> Fraunces + size/weight matching landing .ba-head h3 — selector must beat h3.elementor-heading-title (0,2,1+!important) */
.elementor-element-a41e09b .elementor-element-ff708e1 .elementor-heading-title{ font-family:var(--f-serif,'Fraunces',Georgia,serif) !important; font-size:clamp(1.5rem,2.4vw,2rem) !important; font-weight:600 !important; letter-spacing:-.01em !important; }
/* BA microbenefit chips -> Inter */
.elementor-element-17ad490 .pe-chip .elementor-heading-title{ font-family:var(--f-sans,'Inter',sans-serif) !important; }
/* BA slider: rounded frame */
.elementor-element-38e6e51 .xpro-compare-wrapper{ border-radius:18px !important; overflow:hidden; box-shadow:0 18px 42px -16px rgba(11,27,43,.28); }
/* BA labels -> pills like landing */
.elementor-element-38e6e51 .xpro-compare-before-label, .elementor-element-38e6e51 .xpro-compare-after-label{ background:rgba(11,27,43,.85) !important; color:#fff !important; border-radius:999px !important; padding:.45em .95em !important; font-family:var(--f-sans,'Inter',sans-serif) !important; font-size:.78rem !important; font-weight:600 !important; letter-spacing:.02em; border:0 !important; }
/* FAQ: offset right (centered narrower column) + rounded, white, spaced blocks */
.elementor-element-ef33224 .elementor-accordion{ max-width:700px; margin-right:0 !important; margin-left:auto; margin-right:auto; display:flex; flex-direction:column; gap:10px; }
.elementor-element-ef33224 .elementor-accordion-item{ background:#fff !important; border:1px solid var(--c-line,#E3E8EF) !important; border-radius:14px !important; overflow:hidden; }
.elementor-element-ef33224 .elementor-tab-title{ padding:18px 22px !important; border:0 !important; background:transparent !important; }
.elementor-element-ef33224 .elementor-tab-content{ padding:0 22px 20px !important; border:0 !important; }
/* Notre approche: full photo + rounded */
.elementor-element-97ab783 img{ border-radius:18px !important; box-shadow:0 20px 44px -18px rgba(11,27,43,.30); }
/* Form: hover lift ONLY on the submit button, not the whole form card */
.elementor-element-11e3b21.pe-card:hover{ transform:none !important; box-shadow:0 30px 60px -20px rgba(11,27,43,.16) !important; border-color:var(--c-line,#E3E8EF) !important; }
.elementor-element-d5e2c6e .wpforms-submit-container{ text-align:center; }
.elementor-element-d5e2c6e button.wpforms-submit{ text-align:center; justify-content:center; transition:transform .2s ease, box-shadow .2s ease; }
.elementor-element-d5e2c6e button.wpforms-submit:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -12px rgba(225,29,42,.5); }
/* Footer logo: real colored logo on white rounded pastille (full column width) */
.pe-foot-logo{ display:block; background:#fff; border-radius:12px; padding:12px 16px; width:100%; box-sizing:border-box; text-align:center; }
.pe-foot-logo img{ filter:none !important; height:30px; width:auto; max-width:100%; display:inline-block; }
/* checkbox 2-col (Votre besoin on 2 lines) */
.elementor-element-d5e2c6e .wpforms-field-checkbox ul{ display:grid !important; grid-template-columns:1fr 1fr; gap:6px 20px; list-style:none; margin:0; padding:0; }
.elementor-element-d5e2c6e .wpforms-field-checkbox li{ width:auto !important; }

/* =====================================================
   USER FIXES 2026-06-03 — hero / constat / photos / form (match landing)
   ===================================================== */
/* HERO 1: first title fits on 3 lines (FR title is longer than the landing's) */
.elementor-element-081e3f0 .elementor-heading-title{ font-size: clamp(2rem, 3.7vw, 3.25rem) !important; }
/* HERO 3: lead paragraph 'Création, mise à jour…' exactly like landing .lead */
.elementor-element-8029c1b, .elementor-element-8029c1b p{ font-family:var(--f-sans)!important; font-size:clamp(1.05rem,1.35vw,1.18rem)!important; line-height:1.6!important; font-weight:400!important; color:var(--c-graphite)!important; }
.elementor-element-8029c1b{ max-width:58ch; }
/* HERO 4: right meta cards exactly like landing (span Inter / strong Fraunces / small Inter) */
.pe-hero-meta-card span{ font-size:.72rem!important; letter-spacing:.12em!important; opacity:.7!important; font-weight:400!important; }
.pe-hero-meta-card strong{ font-family:'Fraunces',Georgia,serif!important; font-size:1.1rem!important; font-weight:700!important; }
.pe-hero-meta-card small{ font-size:.78rem!important; opacity:.7!important; }
/* HERO 2 + 2b: desktop — center the hero row + 2-col reassurance so the left column matches the right (image) height */
@media(min-width:1025px){
  .elementor-element-4082817, .elementor-element-4082817 > .e-con-inner{ align-items:center!important; }
  .elementor-element-aae342b .elementor-icon-list-items{ display:grid!important; grid-template-columns:1fr 1fr!important; gap:10px 22px!important; }
  .elementor-element-aae342b .elementor-icon-list-item{ margin:0!important; padding:0!important; }
}
/* CONSTAT: desktop — vertically center the left text block against the taller card grid */
@media(min-width:1025px){
  .elementor-element-0889b44, .elementor-element-0889b44 > .e-con-inner{ align-items:center!important; }
}
/* PHOTOS: crop the white-wall contour with object-fit:cover like the landing (approche / technique / preuves) */
.elementor-element-97ab783 img{ width:100%!important; aspect-ratio:4/5!important; object-fit:cover!important; object-position:center!important; height:auto!important; }
@media(min-width:1025px){
  .elementor-element-104918d .elementor-widget-image img{ aspect-ratio:4/5!important; object-fit:cover!important; object-position:center!important; }
}
.elementor-element-e7a6f7f .elementor-widget-image img{ object-position:center!important; }
/* FORM: vertically center the 'Envoyer ma demande' label inside the red button */
.elementor-element-d5e2c6e button.wpforms-submit{ display:inline-flex!important; align-items:center!important; justify-content:center!important; line-height:1.2!important; height:auto!important; min-height:0!important; }

/* =====================================================
   USER FIXES 2026-06-03 (batch 5) — photos white contour / before-after slider / FAQ
   ===================================================== */
/* PHOTOS: crop the white-wall contour (zoom). Cadre #3159c07 image was swapped to corporate id71 in Elementor data. */
.elementor-element-97ab783{ overflow:hidden!important; border-radius:18px!important; }
.elementor-element-97ab783 img{ transform:scale(1.5)!important; transform-origin:32% 48%!important; }
.elementor-element-104918d .elementor-widget-image{ overflow:hidden!important; border-radius:18px!important; }
.elementor-element-104918d .elementor-widget-image img{ transform:scale(1.55)!important; transform-origin:58% 50%!important; }
.elementor-element-2aba03f{ overflow:hidden!important; }
.elementor-element-2aba03f img{ transform:scale(1.3)!important; transform-origin:66% 50%!important; }
.elementor-element-e7a6f7f .elementor-element-3159c07 img{ object-position:70% 50%!important; }
/* BEFORE/AFTER SLIDER: after-label red (before stays navy), slider centered, chips row = slider width */
.elementor-element-38e6e51 .xpro-compare-after-label{ background:rgba(225,29,42,.92)!important; }
.elementor-element-125b51f{ max-width:1100px!important; margin-left:auto!important; margin-right:auto!important; padding:0!important; }
.elementor-element-38e6e51, .elementor-element-38e6e51 .xpro-compare-wrapper{ width:100%!important; }
.elementor-element-4094f08{ max-width:1100px!important; margin-left:auto!important; margin-right:auto!important; padding:0!important; }
.elementor-element-4094f08 .pe-chip{ text-align:center!important; margin:0!important; }
@media(min-width:921px){ .elementor-element-4094f08, .elementor-element-4094f08 > .e-con-inner{ display:grid!important; grid-template-columns:repeat(4,1fr)!important; gap:12px!important; } }
@media(max-width:920px) and (min-width:521px){ .elementor-element-4094f08, .elementor-element-4094f08 > .e-con-inner{ display:grid!important; grid-template-columns:repeat(2,1fr)!important; gap:12px!important; } }
@media(max-width:520px){ .elementor-element-4094f08, .elementor-element-4094f08 > .e-con-inner{ display:grid!important; grid-template-columns:1fr!important; gap:10px!important; } }
/* FAQ: header eyebrow aligned with other sections (x=160) + questions block centered on page */
.elementor-element-349f413, .elementor-element-8efec21{ width:100%!important; max-width:100%!important; }
.elementor-element-ef33224 .elementor-accordion{ margin-left:auto!important; margin-right:auto!important; }
@media(min-width:1025px){ .elementor-element-349f413{ padding-left:40px!important; } }

/* =====================================================
   USER FIXES 2026-06-03 (batch 6) — white-contour real fix / button heights / meta one-line / form align / before-after HTML slider
   ===================================================== */
/* PHOTOS: the "contour blanc" was the 10px padding on each photo's shadowed frame container (photo sat inset, padding showed bg as a white border). Remove that padding so the photo fills its frame. Also undo the earlier zoom. */
.elementor-element-97ab783 img,.elementor-element-104918d .elementor-widget-image img,.elementor-element-2aba03f img{ transform:none!important; }
.elementor-element-d1bd8b7,.elementor-element-104918d,.elementor-element-30bbafd,.elementor-element-709a032,.elementor-element-2003705,.elementor-element-a8f1332{ padding:0!important; overflow:hidden!important; }
/* HERO: the 2 CTAs same height (like landing) */
.elementor-element-c04a4d4 .elementor-button,.elementor-element-f51b140 .elementor-button{ min-height:54px!important; padding-top:0!important; padding-bottom:0!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; }
/* FINAL CTA (last block before footer): 3 buttons same height */
.elementor-element-cccc193 .elementor-button,.elementor-element-2e4ef1b .elementor-button,.elementor-element-4f0c183 .elementor-button{ min-height:54px!important; padding-top:0!important; padding-bottom:0!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; }
/* HERO right meta cards: small text on ONE line + cards a bit shorter */
.pe-hero-meta-card small{ white-space:nowrap!important; font-size:.66rem!important; }
.pe-hero-meta-card{ padding:11px 14px!important; }
/* FORM: align first row (Nom / Entreprise + Email) — right field kept a 15px top offset that the first field didn't */
#wpforms-27-field_2-container{ margin-top:0!important; padding-top:0!important; }
/* BEFORE/AFTER slider: Xpro abandoned, replaced by an HTML widget (#38e6e51) = the landing's slider exactly */
.pe-ba.ba-slider{ margin:0 auto!important; max-width:1100px; width:100%; }
.pe-ba .ba-stage{ position:relative; width:100%; aspect-ratio:16/9; border-radius:18px; overflow:hidden; background:#0B1B2B; box-shadow:0 22px 50px -18px rgba(11,27,43,.18),0 6px 16px -6px rgba(11,27,43,.08); border:1px solid #E3E8EF; -webkit-user-select:none; user-select:none; touch-action:none; --pos:50%; }
.pe-ba .ba-after{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.pe-ba .ba-before-wrap{ position:absolute; inset:0; width:100%; height:100%; overflow:hidden; clip-path:inset(0 calc(100% - var(--pos)) 0 0); -webkit-clip-path:inset(0 calc(100% - var(--pos)) 0 0); will-change:clip-path; pointer-events:none; }
.pe-ba .ba-before{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.pe-ba .ba-divider{ position:absolute; top:0; bottom:0; left:var(--pos); width:2px; background:#fff; box-shadow:0 0 0 1px rgba(11,27,43,.15),0 0 22px rgba(255,255,255,.4); transform:translateX(-1px); pointer-events:none; z-index:3; }
.pe-ba .ba-handle{ position:absolute; top:50%; left:var(--pos); transform:translate(-50%,-50%); width:52px; height:52px; border-radius:50%; background:#fff; color:#0B1B2B; display:grid; place-items:center; box-shadow:0 12px 28px -10px rgba(11,27,43,.45),0 4px 10px -2px rgba(11,27,43,.25),inset 0 0 0 1px #E3E8EF; cursor:ew-resize; z-index:4; border:0; padding:0; transition:transform .15s ease,background .2s ease,color .2s ease; }
.pe-ba .ba-handle:hover{ background:#E11D2A; color:#fff; transform:translate(-50%,-50%) scale(1.06); }
.pe-ba .ba-handle svg{ display:block; }
.pe-ba .ba-label{ position:absolute; top:14px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:#fff; background:rgba(11,27,43,.78); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); padding:.45em .8em; border-radius:999px; z-index:2; pointer-events:none; }
.pe-ba .ba-label-before{ left:14px; }
.pe-ba .ba-label-after{ right:14px; background:rgba(225,29,42,.92); }
.pe-ba .ba-hint{ position:absolute; bottom:14px; left:50%; transform:translateX(-50%); font-size:.78rem; font-weight:600; letter-spacing:.06em; color:#fff; background:rgba(11,27,43,.7); padding:.45em 1em; border-radius:999px; z-index:2; pointer-events:none; opacity:.95; transition:opacity .4s ease; }
.pe-ba .ba-stage.is-touched .ba-hint{ opacity:0; }
.pe-ba .ba-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; border:0; background:transparent; opacity:0; cursor:ew-resize; z-index:5; -webkit-appearance:none; appearance:none; }
.pe-ba .ba-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:60px; height:100%; background:transparent; cursor:ew-resize; }
.pe-ba .ba-range::-moz-range-thumb{ width:60px; height:100%; background:transparent; border:0; cursor:ew-resize; }
@media(max-width:640px){ .pe-ba .ba-handle{ width:44px; height:44px; } .pe-ba .ba-label{ font-size:.62rem; padding:.4em .7em; } }

/* =====================================================
   USER FIXES 2026-06-03 (batch 7) — final CTA: hover on the 2 buttons that lacked it (like landing)
   ===================================================== */
/* 'Envoyer mes plans' (#2e4ef1b, ghost-inverse): border->#fff + light fill + lift */
.elementor-element-2e4ef1b .elementor-button{ transition:border-color .25s ease, background-color .25s ease, transform .25s ease, box-shadow .25s ease !important; }
.elementor-element-2e4ef1b .elementor-button:hover{ border-color:#fff !important; background-color:rgba(255,255,255,.08) !important; transform:translateY(-1px); }
/* 'Etre rappele rapidement' (#4f0c183, white): paper bg + lift + shadow */
.elementor-element-4f0c183 .elementor-button{ transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease !important; }
.elementor-element-4f0c183 .elementor-button:hover{ background-color:#F5F7FA !important; transform:translateY(-1px); box-shadow:0 14px 28px -12px rgba(0,0,0,.45) !important; }

/* =====================================================
   USER FIXES 2026-06-03 (batch 9) — buttons / CTA / hover harmonization vs landing V4
   Scope: font-weight + hover easing ONLY. Radius (50px = full pill), padding,
   button heights and hover lifts (translateY(-1px)) already match the landing.
   ===================================================== */
/* V4: .btn base weight = 600; only .btn-on-dark (white solid on a dark section) = 700.
   The base rule (#10) now sets 600 for every button; restore 700 on the 2 white-on-dark CTAs. */
.pe-cta-white .elementor-button,
.elementor-element-daaee71 .elementor-button,
.elementor-element-4f0c183 .elementor-button{ font-weight:700 !important; }
/* Unify every button's hover easing to the landing's premium curve (was 'ease').
   Covers every property the .pe-cta-* :hover rules animate, so transitions stay smooth. */
.elementor-widget-button .elementor-button{
  transition: transform .25s cubic-bezier(.2,.7,.2,1), background-color .25s cubic-bezier(.2,.7,.2,1), color .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s cubic-bezier(.2,.7,.2,1), border-color .25s cubic-bezier(.2,.7,.2,1); }
/* Red form submit = a .btn-primary: smooth its background on hover too (was instant). */
.pe-quote-form .wpforms-submit,
.elementor-element-d5e2c6e button.wpforms-submit{ transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s cubic-bezier(.2,.7,.2,1), background-color .25s cubic-bezier(.2,.7,.2,1) !important; }

/* =====================================================
   USER FIXES 2026-06-03 (batch 11) — form reassurance note under submit (= landing V4 .form-note)
   ===================================================== */
.pe-form-note, .pe-form-note p{ font-size:.82rem !important; color:var(--c-steel) !important; font-weight:400 !important; line-height:1.5 !important; margin:.7em 0 0 !important; text-align:center; }

/* =====================================================
   USER FIXES 2026-06-03 (batch 12) — card heights vs landing V4
   ===================================================== */
/* Etablissements: cards hug their content (kill the inherited subtitle margin). */
.elementor-element-a0b4c96 .pe-card{ align-self:start !important; }
/* Le constat (batch 14): equal-height 2x2 on user request -> cards stretch to the row, content top-aligned. */
.elementor-element-26d68a9 .pe-card{ align-self:stretch !important; justify-content:flex-start !important; }

/* =====================================================
   USER FIX 2026-06-04 (batch 15) — FAQ: remove link-underline on questions + 2 columns (desktop / wide tablet), 1 col mobile
   ===================================================== */
/* 1. The question is an <a> that Astra underlines -> looks like a link. Remove underline (colors kept: navy questions / active red). */
.elementor-element-ef33224 .elementor-accordion-title,
.elementor-element-ef33224 .elementor-accordion-title:hover,
.elementor-element-ef33224 .elementor-accordion-title:focus{ text-decoration:none !important; }
/* 2. 2 balanced columns from 820px up (desktop + wide tablet) to halve the section height; below 820px the existing flex-column = 1 col (mobile, no horizontal overflow). align-self:start so an open item doesn't stretch its neighbour. */
@media (min-width:820px){
  .elementor-element-ef33224 .elementor-accordion{ display:grid !important; grid-template-columns:1fr 1fr !important; align-content:start !important; gap:10px 20px !important; max-width:920px !important; }
  .elementor-element-ef33224 .elementor-accordion-item{ align-self:start !important; }
}
/* Etablissements: the subtitle <p> carried a ~26px inherited bottom-margin + oversized line-height -> wasted space; tighten so cards hug content like V4 .targets-grid */
.elementor-element-a0b4c96 .pe-card p{ margin:0 !important; line-height:1.4 !important; }
.elementor-element-a0b4c96 .pe-card .elementor-heading-title{ line-height:1.2 !important; }
/* Impression & supports block: trim vertical padding so it's shorter (closer to the landing height) */
.elementor-element-f57071c{ padding-top:22px !important; padding-bottom:22px !important; }

/* =====================================================
   USER FIX 2026-06-03 (batch 13) — "back to top" button = red/white safety-sign panel
   Overrides Astra #ast-scroll-top appearance ONLY (theme + its scroll JS untouched).
   ===================================================== */
#ast-scroll-top{
  width:48px !important; height:48px !important; box-sizing:border-box !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  padding:0 !important;
  background:#cf193d !important;
  color:#fff !important;
  border:2px solid #fff !important;
  border-radius:12px !important;
  box-shadow:0 6px 18px -6px rgba(11,27,43,.28), 0 2px 6px -2px rgba(11,27,43,.18) !important;
  transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
#ast-scroll-top .ast-icon, #ast-scroll-top svg, #ast-scroll-top .ast-arrow-svg{
  width:22px !important; height:auto !important; fill:#fff !important; color:#fff !important; margin:0 !important; line-height:0;
}
#ast-scroll-top:hover{
  background:#a8112e !important;
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px -8px rgba(11,27,43,.32), 0 3px 8px -3px rgba(11,27,43,.2) !important;
}
#ast-scroll-top:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(207,25,61,.35), 0 6px 18px -6px rgba(11,27,43,.28) !important;
}
@media (max-width:768px){
  #ast-scroll-top{ width:44px !important; height:44px !important; border-radius:11px !important; }
  #ast-scroll-top .ast-icon, #ast-scroll-top svg, #ast-scroll-top .ast-arrow-svg{ width:20px !important; }
}

/* =====================================================
   USER FIX 2026-06-04 (batch 16) — "Contenu technique" ONLY
   Scope: grid #a816039 (.pe-tile cards) + right photo #104918d.
   neutral cards (red on hover only) · 01–20 numbering · icons locked
   to a fixed vertical zone · left grid = right photo height on desktop
   (tops & bottoms aligned). CSS only — no Elementor data / text change.
   ===================================================== */
/* Tile frame: stable top-aligned structure, neutral by default */
.elementor-element-a816039 .pe-tile{
  position:relative !important; box-sizing:border-box !important;
  display:flex !important; flex-direction:column !important;
  align-items:center !important; justify-content:flex-start !important;
  padding:16px 10px 14px !important;
  border-color:var(--c-line) !important;
  box-shadow:0 1px 2px rgba(11,27,43,.04);
  overflow:hidden;
}
/* No movement on hover (override global .pe-card lift); red accent only */
.elementor-element-a816039 .pe-tile:hover{
  transform:translateY(-2px) !important;
  border-color:var(--c-red) !important;
  box-shadow:0 14px 28px -10px rgba(11,27,43,.18), 0 4px 10px -4px rgba(225,29,42,.18) !important;
}
/* Fixed icon zone (cartouche): icon sits at the same Y in every card */
.elementor-element-a816039 .pe-tile .elementor-icon-box-wrapper{
  display:flex; flex-direction:column; align-items:center; width:100%;
}
.elementor-element-a816039 .pe-tile .elementor-icon-box-icon{
  width:46px !important; height:46px !important; flex:0 0 46px !important;
  margin:16px auto 6px auto !important; padding:0 !important; border-radius:12px;
  background-color:var(--c-paper) !important;
  box-shadow:inset 0 0 0 1px var(--c-line), 0 1px 1px rgba(11,27,43,.04);
  display:flex !important; align-items:center; justify-content:center;
  transition:background-color .35s ease, box-shadow .35s ease;
}
.elementor-element-a816039 .pe-tile .elementor-icon-box-icon .elementor-icon{
  color:var(--c-ink) !important; background:transparent !important; font-size:22px;
}
.elementor-element-a816039 .pe-tile .elementor-icon-box-icon .elementor-icon i,
.elementor-element-a816039 .pe-tile .elementor-icon-box-icon .elementor-icon svg{
  color:inherit !important; fill:currentColor !important;
}
/* Rollover: cartouche red + glyph white — no layout shift */
.elementor-element-a816039 .pe-tile:hover .elementor-icon-box-icon{
  background-color:var(--c-red) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.15), 0 8px 16px -10px rgba(225,29,42,.55);
}
.elementor-element-a816039 .pe-tile:hover .elementor-icon-box-icon .elementor-icon,
.elementor-element-a816039 .pe-tile:hover .elementor-icon-box-icon .elementor-icon i,
.elementor-element-a816039 .pe-tile:hover .elementor-icon-box-icon .elementor-icon svg{
  color:#fff !important; fill:#fff !important;
}
/* Label: compact, 2-line reserve so rows stay uniform (icon unaffected) */
.elementor-element-a816039 .pe-tile .elementor-icon-box-content{ width:100%; }
.elementor-element-a816039 .pe-tile .elementor-icon-box-title{
  font-size:.82rem !important; font-weight:600 !important; line-height:1.2 !important;
  color:var(--c-ink) !important; margin:0 !important; text-align:center;
  min-height:2.4em; display:flex; align-items:center; justify-content:center;
}
.elementor-element-a816039 .pe-tile .elementor-icon-box-description{ display:none !important; }
/* Numbering 01–20 top-right (Fraunces, discreet → red on hover) via CSS counter */
.elementor-element-a816039{ counter-reset:petech; }
.elementor-element-a816039 .pe-tile{ counter-increment:petech; }
.elementor-element-a816039 .pe-tile::after{
  content:counter(petech,decimal-leading-zero);
  position:absolute; top:8px; right:10px;
  font-family:var(--f-serif); font-size:.66rem; font-weight:600;
  letter-spacing:.06em; color:var(--c-steel); opacity:.55;
  line-height:1; pointer-events:none;
  transition:color .35s ease, opacity .35s ease;
}
.elementor-element-a816039 .pe-tile:hover::after{ color:var(--c-red); opacity:1; }
/* Desktop: left grid and right photo same height (tops & bottoms aligned) */
@media (min-width:1025px){
  .elementor-element-87da70a,
  .elementor-element-87da70a > .e-con-inner{ align-items:stretch !important; }
  .elementor-element-104918d{ position:relative !important; flex:1 1 auto !important; min-height:0 !important; }
  .elementor-element-104918d .elementor-widget-image{
    position:absolute !important; inset:0 !important; margin:0 !important;
    height:100% !important; width:100% !important; overflow:hidden; border-radius:18px;
  }
  .elementor-element-104918d .elementor-widget-image > .elementor-widget-container{ height:100% !important; width:100% !important; }
  .elementor-element-104918d .elementor-widget-image img{
    height:100% !important; width:100% !important;
    aspect-ratio:auto !important; object-fit:cover !important; display:block;
  }
  .elementor-element-8bf953d{ position:relative !important; }
  .elementor-element-fc94d73{ position:absolute !important; left:0 !important; right:0 !important; top:100% !important; margin:6px 0 0 !important; white-space:normal !important; flex:0 0 auto; }
}


/* ===== Batch B (2026-06-04): demo avant/apres - fix debordement tablette (<=1024px) =====
   Section #17ad490 : le conteneur slider #125b51f a width:1100px et la colonne titre
   #a41e09b a width:780px en dur (donnees Elementor) -> ils ne retrecissent pas sous le
   viewport en tablette, le slider etait coupe a droite (body overflow-x:hidden).
   On contraint les blocs de la demo au viewport a <=1024px. Desktop (>=1025px) inchange.
   Slider et son JS non touches. ===== */
@media (max-width:1024px){
  .elementor-element-17ad490 .elementor-element-9a44f89,
  .elementor-element-17ad490 .elementor-element-a41e09b,
  .elementor-element-17ad490 .elementor-element-125b51f,
  .elementor-element-17ad490 .elementor-element-4094f08{
    width:100% !important; max-width:100% !important; box-sizing:border-box !important;
  }
  .elementor-element-17ad490 .elementor-element-125b51f .pe-ba.ba-slider{
    width:100% !important; max-width:100% !important;
  }
}


/* ===== Batch C (2026-06-04): CTA final - fix debordement horizontal tablette (<=1024px) =====
   Section #4b1cb9a (full-width) > wrapper #a463f09 (100%) > contenu #a80fa08 qui a
   width:820px EN DUR (donnees Elementor, pas de width_tablet/_mobile) -> ne retrecit pas
   sous le viewport en tablette -> ~47px de scroll horizontal a 820px (right=844).
   On contraint le bloc de contenu + son wrapper + la rangee de 3 boutons (#30a6630) au
   viewport a <=1024px (max-width:100% + box-sizing + flex-wrap). Desktop (>=1025px) INCHANGE :
   #a80fa08 garde width:820px centre (batch-2). Mobile reste propre (boutons wrap). ===== */
@media (max-width:1024px){
  .elementor-element-4b1cb9a .elementor-element-a463f09,
  .elementor-element-4b1cb9a .elementor-element-a80fa08,
  .elementor-element-4b1cb9a .elementor-element-30a6630{
    max-width:100% !important; box-sizing:border-box !important;
  }
  .elementor-element-4b1cb9a .elementor-element-30a6630{
    flex-wrap:wrap !important;
  }
}


/* ===== Batch D (2026-06-04) : "Contenu technique" - suppression du scroll horizontal fantome =====
   Cause REELLE (mesuree en live, ce n'est PAS la marquee) : la section #cedfe8c (grille technique
   20 tuiles en flex/grid) injecte une largeur intrinseque fantome dans documentElement.scrollWidth
   (~47px a 820px, ~10px a 390px) alors qu'AUCUNE boite visible ne depasse le viewport (rien coupe).
   Diagnostic display:none section par section : seule #cedfe8c retire le scroll ; la marquee #dbf7034
   en retire 0 (son track 2709px est deja clippe par .pe-marquee{overflow:hidden} + body{overflow-x:hidden}).
   Fix = overflow-x:clip sur la section : clip pur (PAS un scroll-container), overflow-y reste visible
   -> la legende photo en position:absolute/top:100% n'est pas coupee.
   Verifie : maxScrollX=0 a 820 et 390, rendu 1440 inchange, zero modif visuelle, animation marquee OK. */
.elementor-element-cedfe8c{ overflow-x:clip; }

/* ===================================================================
   Micro-fix (2026-06-04) — Champ "Plans existants disponibles ?"
   WPForms 27 · field 7 (radio Oui/Non) : les deux options sur une
   même ligne. Scope strict #wpforms-27-field_7 — n'affecte aucun
   autre champ (le champ 8 "Votre besoin" reste en grille 2 colonnes).
   =================================================================== */
#wpforms-27-field_7{
  display:flex;
  flex-flow:row wrap;
  gap:8px 32px;
  align-items:center;
}
#wpforms-27-field_7 > li{
  margin:0;
}

/* ===== Bouclier de protection transfere de CTA2 (#pcbsec1) vers CTA1 (#4b1cb9a) — 2026-06-05 ===== */

/* --- Shield widget stretch (fix lignes invisibles) --- */
.elementor-element-4b1cb9a .elementor-element-pcbshd1{
  align-self:stretch !important;
  width:100% !important;
}
.elementor-element-4b1cb9a .pe-ctaB-sep{
  display:flex; align-items:center; justify-content:center; gap:16px;
  width:100%; max-width:340px; margin:42px auto 0;
}
.elementor-element-4b1cb9a .pe-ctaB-sep-line{
  flex:1 1 auto; height:1px; background-color:rgba(225,29,42,.45);
}
.elementor-element-4b1cb9a .pe-ctaB-sep-badge{
  flex:0 0 auto; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  border-radius:999px;
  background-color:rgba(225,29,42,.10);
  border:1px solid rgba(225,29,42,.45);
}
.elementor-element-4b1cb9a .pe-ctaB-sep-badge svg{ display:block; }
/* ===== fin bouclier CTA1 ===== */

/* ===== Titre CTA1 (#b4ec46e .pe-ctaB-title) rendu visible + premium coherent Variante B — 2026-06-05 ===== */
.elementor-element-4b1cb9a .pe-ctaB-title .elementor-heading-title{
  color:#fff !important;
  font-family:"Fraunces", Georgia, serif !important;
  font-weight:600 !important;
  font-size:clamp(1.7rem, 1.1rem + 2.4vw, 2.5rem) !important;
  line-height:1.18 !important;
  letter-spacing:-.01em !important;
  text-align:center !important;
  margin:0 auto !important;
}
/* ===== fin titre CTA1 ===== */

/* =====================================================
   MOD 1 (2026-06-16) — Email header : rouge (normal) / noir (survol)
   Cible UNIQUEMENT l'item mailto du header (.pe-menu-cta = contact@plan-evacuation.fr).
   Scope strict header + mailto -> aucun autre lien rouge du site n'est impacte.
   Le lien mailto reste cliquable (seule la couleur change). Desktop + mobile.
   ===================================================== */
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link,
.xpro-theme-builder-header a[href^="mailto:"]{ color:var(--c-red) !important; }
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link:hover,
.xpro-theme-builder-header .pe-menu-cta > a.xpro-elementor-nav-link:focus,
.xpro-theme-builder-header a[href^="mailto:"]:hover,
.xpro-theme-builder-header a[href^="mailto:"]:focus{ color:#000 !important; }

/* =====================================================
   MOD 3 (2026-06-16, rev.2) — Bandeau bleu "Impression & supports d'affichage" :
   bloc catalogue COMPACT a droite — image reduite (~200px) + vrai bouton CATALOGUE centre dessous.
   Ouvre le PDF Marcal en nouvel onglet (rel noopener noreferrer). Aucun soulignement.
   Zoom doux image au survol (scale 1.05), SANS decalage (overflow:hidden + transform).
   Bouton pilule rouge coherent avec les CTA du site (esprit .pe-cta-red).
   ===================================================== */
.pe-catalogue{ display:block; width:100%; max-width:210px; margin-left:auto; text-decoration:none !important; }
.pe-catalogue:hover, .pe-catalogue:focus, .pe-catalogue:focus-visible, .pe-catalogue:active, .pe-catalogue:visited{ text-decoration:none !important; outline:none; }
.pe-catalogue-media{ display:block; position:relative; overflow:hidden; aspect-ratio:1/1; border-radius:14px; background:var(--c-paper); border:1px solid rgba(255,255,255,.18); box-shadow:0 12px 30px -16px rgba(0,0,0,.45); }
.pe-catalogue-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform .5s cubic-bezier(.2,.7,.2,1); will-change:transform; }
.pe-catalogue:hover .pe-catalogue-media img, .pe-catalogue:focus-visible .pe-catalogue-media img{ transform:scale(1.05); }
.pe-catalogue-btn{ display:block; width:max-content; max-width:100%; margin:12px auto 0; text-align:center; text-decoration:none !important; font-family:var(--f-sans); font-weight:600; font-size:.82rem; letter-spacing:.08em; line-height:1; color:#fff; background:var(--c-red); border:1px solid var(--c-red); border-radius:999px; padding:.72em 1.4em; box-shadow:0 8px 20px -8px rgba(225,29,42,.55); transition:background-color .25s cubic-bezier(.2,.7,.2,1), transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s cubic-bezier(.2,.7,.2,1); }
.pe-catalogue:hover .pe-catalogue-btn, .pe-catalogue:focus-visible .pe-catalogue-btn{ background:var(--c-red-dark); border-color:var(--c-red-dark); transform:translateY(-1px); box-shadow:0 14px 26px -10px rgba(225,29,42,.55); }
/* Tablette : bloc centre */
@media (max-width:1024px){ .pe-catalogue{ max-width:200px; margin-left:auto; margin-right:auto; } }
/* Mobile : compact, centre, pas de gros espace vertical inutile */
@media (max-width:767px){ .pe-catalogue{ max-width:190px; margin-left:auto; margin-right:auto; } }

/* =====================================================
   MOD footer brand (2026-06-16) — bloc identite du footer :
   logo plus present (remplit le cartouche), cartouche blanc premium,
   description plus fine en gris bleute. Scope strict : colonne #addb531
   (logo .pe-foot-logo + description #036057b). Image NON modifiee (CSS only).
   ===================================================== */
/* Cartouche : logo agrandi qui remplit le bloc, padding volontaire, aligne a gauche (desktop) */
.pe-foot-logo{ max-width:340px; padding:16px 20px !important; border-radius:14px !important; margin-left:0; margin-right:auto; text-align:left; }
.pe-foot-logo img{ width:100% !important; height:auto !important; max-width:300px !important; display:block; margin:0; }
/* Description : plus petite, gris bleute discret, largeur de ligne limitee */
.elementor-element-036057b, .elementor-element-036057b p{ font-size:15px !important; line-height:1.62 !important; color:#A7B4C4 !important; max-width:320px; margin:0 !important; }
/* Espace logo <-> texte resserre */
.elementor-element-addb531{ gap:10px !important; }
/* Mobile : bloc centre, texte un peu plus petit */
@media (max-width:767px){
  .pe-foot-logo{ margin-left:auto; margin-right:auto; }
  .elementor-element-036057b, .elementor-element-036057b p{ font-size:14px !important; max-width:320px; margin-left:auto !important; margin-right:auto !important; text-align:center; }
}

/* Footer disclaimer : remonte le gris inline .45 -> .60 (lisible mais discret) — 2026-06-17 */
.elementor-element-8c7cb4c p{ color:rgba(255,255,255,.60) !important; }

/* ===== Pages legales : harmonisation typographique des titres (2026-06-29) ===== */
/* Police de titre = Fraunces (fonte de marque du site) sur les 3 pages legales */
body.page-id-148 .entry-content :is(h1,h2,h3,h4,h5,h6),
body.page-id-147 .entry-content :is(h1,h2,h3,h4,h5,h6),
body.page-id-153 .cmplz-document :is(h1,h2,h3,h4,h5,h6){
  font-family:"Fraunces",Georgia,"Times New Roman",serif !important;
  font-weight:600 !important;
  color:#0B1B2B;
  letter-spacing:-0.01em;
}
/* Hierarchie de tailles coherente sur la page cookies Complianz (153) */
body.page-id-153 .cmplz-document h2{ font-size:1.55rem !important; line-height:1.25 !important; margin:2.2rem 0 .75rem !important; }
body.page-id-153 .cmplz-document h3{ font-size:1.2rem  !important; line-height:1.3  !important; margin:1.5rem 0 .5rem  !important; }
body.page-id-153 .cmplz-document h4{ font-size:1.02rem !important; line-height:1.35 !important; margin:1.1rem 0 .4rem  !important; }
/* Rythme vertical des titres Gutenberg (147 / 148) */
body.page-id-148 .entry-content h2, body.page-id-147 .entry-content h2{ margin:2rem 0 .7rem !important; line-height:1.25 !important; }
/* Lisibilite du corps */
body.page-id-148 .entry-content, body.page-id-147 .entry-content, body.page-id-153 .cmplz-document{ line-height:1.7; }
@media (max-width:767px){
  body.page-id-153 .cmplz-document h2{ font-size:1.3rem !important; }
  body.page-id-153 .cmplz-document h3{ font-size:1.1rem !important; }
  body.page-id-148 .entry-content h2, body.page-id-147 .entry-content h2{ font-size:1.5rem !important; }
}

/* ===== Footer : equilibrage bloc logo/texte avec la colonne Prestations (2026-06-29) ===== */
@media (min-width:768px){
  .elementor-element-addb531{
    gap:18px !important;                 /* respiration logo <-> texte (au lieu de 10px) */
    align-self:stretch !important;       /* le bloc prend la hauteur de la colonne voisine */
    justify-content:center !important;   /* centrage vertical du bloc logo+texte */
  }
  .elementor-element-036057b, .elementor-element-036057b p{
    line-height:1.8 !important;          /* texte descriptif plus aere */
  }
}

/* ===== Variante B2 : Impression & supports prets a poser (A/B, hybride facon A) 2026-06-29 ===== */
.pe-print-supports-variant-b{ position:relative; background:#0B1B2B; border-radius:22px; padding:40px;
  transition:transform .35s ease, box-shadow .35s ease; }
.pe-print-supports-variant-b:hover{ transform:translateY(-4px); box-shadow:0 30px 60px -20px rgba(11,27,43,.45); }
.pe-print-supports-variant-b .pe-vb{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; align-items:center; }
.pe-print-supports-variant-b .pe-vb-title{ font-family:"Fraunces",Georgia,"Times New Roman",serif; color:#fff;
  font-size:1.95rem; line-height:1.2; font-weight:600; letter-spacing:-0.01em; margin:0 0 .6rem; }
.pe-print-supports-variant-b .pe-vb-desc{ color:rgba(255,255,255,.80); font-size:1rem; line-height:1.6; margin:0 0 1.1rem; max-width:48ch; }
.pe-print-supports-variant-b .pe-vb-badges{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; }
.pe-print-supports-variant-b .pe-vb-badges li{ font-size:.8rem; color:#d6f3f5; background:rgba(45,212,222,.10);
  border:1px solid rgba(45,212,222,.32); border-radius:999px; padding:.3rem .72rem; line-height:1; }
/* Colonne catalogue : reutilise le composant .pe-catalogue de la version A (cadre blanc + zoom + bouton sous image) */
.pe-print-supports-variant-b .pe-vb-cat{ display:flex; justify-content:flex-end; }
.pe-print-supports-variant-b .pe-vb-cat .pe-catalogue{ max-width:240px; }
@media (max-width:1024px){
  .pe-print-supports-variant-b .pe-vb{ gap:30px; }
  .pe-print-supports-variant-b .pe-vb-title{ font-size:1.6rem; }
}
@media (max-width:767px){
  .pe-print-supports-variant-b{ padding:24px 22px; }
  .pe-print-supports-variant-b .pe-vb{ grid-template-columns:1fr; gap:20px; }
  .pe-print-supports-variant-b .pe-vb-cat{ justify-content:center; }
  .pe-print-supports-variant-b .pe-vb-title{ font-size:1.5rem; }
}

/* A11y 2026-06-22 : contraste des petits numeros rouges sur fonds teintes (rouge legerement plus fonce, scope cible) */
.elementor-element-0e891e7 .elementor-heading-title,
.elementor-element-59c35e6 .elementor-heading-title,
.elementor-element-7cd303a .elementor-heading-title,
.elementor-element-1234d64 .elementor-heading-title{ color:#C8161F !important; }

/* ===== Form devis + CTA final : micro-corrections (2026-06-22) ===== */
@media(min-width:768px){
  .pe-quote-form .wpforms-submit-container{ text-align:right !important; }
}
@media(max-width:767px){
  .pe-quote-form .wpforms-submit-container{ text-align:center !important; }
  .pe-quote-form .wpforms-submit{ width:100% !important; }
}
/* Espacement uniforme des 3 notes sous le formulaire */
.elementor-element-11e3b21 .pe-form-note, .elementor-element-11e3b21 .pe-form-note p{ margin-top:0 !important; }
.elementor-element-11e3b21 .elementor-element-6f0e59e p{ margin:0 !important; }
/* CTA final sur une seule ligne en desktop, wrap autorise en mobile */
@media(min-width:768px){
  .elementor-element-4b1cb9a .pe-ctaB-title .elementor-heading-title{ white-space:nowrap !important; font-size:clamp(1.6rem, 1rem + 1.8vw, 2.15rem) !important; }
  .elementor-element-a80fa08{ max-width:960px !important; }
}
@media(max-width:767px){
  .elementor-element-4b1cb9a .pe-ctaB-title .elementor-heading-title{ white-space:normal !important; }
}

/* TXT2 'plans existants' : plus discret + centre (2026-06-22) */
.elementor-element-6f0e59e, .elementor-element-6f0e59e p{ font-size:.82rem !important; text-align:center !important; }

/* Complianz : masquer la pastille flottante 'Gerer le consentement' (remplacee par le lien footer natif .cmplz-manage-consent) 2026-06-22 */

/* Form notes : taille homogene + lignes equilibrees (anti mots orphelins) 2026-06-22 */
.elementor-element-11e3b21 .pe-form-note p, .elementor-element-11e3b21 .elementor-element-6f0e59e p{ text-wrap:balance; width:100%; max-width:none; margin-left:auto; margin-right:auto; }

/* Complianz : masquer la pastille flottante (gardee dans le DOM pour le lien footer .pe-cookie-link via script) 2026-06-22 */
.cmplz-btn.cmplz-manage-consent{ display:none !important; }

/* =====================================================================
   CORRECTIONS MOBILE CIBLEES — 2026-06-29 (run pre-prod)
   Scope : mobile uniquement (<=767 / 640 / 520). Desktop INCHANGE.
   Bloc additif reversible (sauvegarde : scratchpad backup-20260629-pe-hero.css).
   ===================================================================== */

/* --- P3 : cadres bleu marine du hero -> 2 colonnes (~moitie largeur) + carte 1 allegee --- */
@media (max-width:520px){
  /* 2026-06-30 : le wrapper .pe-hero-meta ne contient qu'UN enfant (.e-con-inner) -> 1 colonne ;
     c'est .e-con-inner qui porte la grille 2 colonnes. (Avant : les 2 grilles 2-col imbriquees
     ecrasaient les cartes a ~61px et le texte debordait.) Cartes elargies + padding augmente. */
  .pe-hero-meta{ grid-template-columns:1fr !important; }
  .pe-hero-meta > .e-con-inner{ grid-template-columns:1fr 1fr !important; gap:8px !important; }
  .pe-hero-meta-card{ padding:12px 14px !important; }
  .pe-hero-meta-card span{ font-size:.58rem !important; margin-bottom:2px !important; }
  .pe-hero-meta-card strong{ font-size:.92rem !important; }
  .pe-hero-meta-card small{ white-space:normal !important; font-size:.62rem !important; line-height:1.22 !important; }
  /* carte 1 : ne garder que "d'experience" (retrait de "plans d'evacuation") */
  .elementor-element-67c1fd1 small{ font-size:0 !important; line-height:0 !important; }
  .elementor-element-67c1fd1 small::after{ content:"d\2019 exp\E9 rience"; font-size:.62rem; line-height:1.22; opacity:.72; display:block; }
}

/* --- P6 : legende sous l'image acrylique -> retour ligne apres "acrylique", sans tiret, FINITION capitales (mobile) --- */
@media (max-width:767px){
  .elementor-element-fc94d73 p{ font-size:0 !important; line-height:0 !important; }
  .elementor-element-fc94d73 p::after{
    content:"Plan d\2019 \E9 tage sur support acrylique\A FINITION premium corporate";
    white-space:pre-line; font-size:.8rem; line-height:1.35; display:block;
  }
}

/* --- P7 : pastilles du comparateur raccourcies sur mobile (fin de superposition) --- */
@media (max-width:640px){
  /* 2026-06-30 : padding en px (et non em) car font-size:0 annulait le padding em -> capsules trop serrees */
  .pe-ba .ba-label{ font-size:0 !important; padding:7px 12px !important; }
  .pe-ba .ba-label::after{ font-size:.6rem; letter-spacing:.08em; }
  .pe-ba .ba-label-before::after{ content:"PLAN BRUT"; }
  .pe-ba .ba-label-after::after{ content:"PLAN FINALIS\C9"; }
}

/* --- P8 : bouton "Etre rappele" dans le bloc intro/reassurance — mobile.
   2026-06-30 : redescendu (apres le texte d'intro, AVANT la checklist) ; n'est plus tout en haut
   et ne colle plus au formulaire. (checklist 2d7ae81 passe apres le bouton 7e9c97b.) --- */
@media (max-width:767px){
  .elementor-element-2d7ae81{ order:1 !important; }
  .elementor-element-7e9c97b{ order:0 !important; margin-top:10px !important; margin-bottom:0 !important; }
}

/* --- P9 : FAQ, phrase rouge "Posez-la nous directement." sur sa propre ligne (mobile) --- */
@media (max-width:767px){
  .elementor-element-b2cef81 a{ display:block; white-space:nowrap; margin-top:.15em; }
}

/* --- P10 : titre "Recevez votre devis ... 24-48 h" sur 2 lignes max (mobile) --- */
@media (max-width:767px){
  .elementor-element-4b1cb9a .pe-ctaB-title .elementor-heading-title{
    text-wrap:balance; font-size:clamp(1.25rem, 4.7vw, 1.6rem) !important; line-height:1.2 !important;
  }
}

/* --- P11 : menu Xpro lisible sur TOUTES les pages (home incluse) ; corrige le menu grise des la 1re ouverture.
   2026-06-30 : exclusion :not(.home) retiree -> liens navy garantis quel que soit l'etat JS du menu.
   Le lien contact reste rouge. Fond d'en-tete blanc -> navy lisible (desktop comme mobile). --- */
.xpro-theme-builder-header-nav .menu-item > a{ color:#0B1B2B !important; }
.xpro-theme-builder-header-nav .menu-item > a[href^="mailto:"]{ color:#E11D2A !important; }

/* --- P3b : eviter la coupure de "Multi-sites" sur l'eyebrow des cartes hero (mobile) ---
   L'eyebrow est un noeud texte nu dans le <p> (pas de <span>) : on reduit la taille du <p>
   pour qu'il tienne sur 1 ligne ; <strong> et <small> gardent leurs tailles (!important). --- */
@media (max-width:520px){
  .pe-hero-meta-card p{ font-size:.66rem !important; white-space:nowrap !important; }
  .pe-hero-meta-card p strong, .pe-hero-meta-card p small{ white-space:normal !important; }
}

/* --- P4 : animation plan (start/end frame) -> reduire le vide vertical autour du visuel (mobile).
   Le canvas 16:9 etait centre dans un sticky 100vh -> ~310px de vide haut/bas.
   On reduit la hauteur du sticky ; la hauteur du conteneur (180vh) et le mapping des frames sont INCHANGES. --- */
@media (max-width:768px){
  .pe-scroll-plan__sticky{ height:50vh !important; }
}

/* =====================================================================
   CORRECTIONS MOBILE — 2026-06-30 (finition pre-prod)
   ===================================================================== */

/* --- Phase 3 : carte "Entrepots" equilibree avec "Residences" (sous-titre 1->2 lignes), mobile.
   Ajout safe via CSS ::after, sans edition _elementor_data ni regression d'ordre. --- */
@media (max-width:767px){
  .elementor-element-2c0328d p::after{ content:" & logistique"; }
}

/* --- Phase 6 : bas de page CTA "Plans conformes..." -> 3 lignes centrees, sans puces (mobile) --- */
@media (max-width:767px){
  .elementor-element-b89c4f1{ text-align:center !important; }
  .elementor-element-b89c4f1 span{ font-size:0 !important; }
  .elementor-element-b89c4f1 span::after{
    content:"Plans conformes NF X 08-070\A R\E9 alis\E9 s par des experts\A Livr\E9 s rapidement";
    white-space:pre-line; display:block; font-size:.95rem; line-height:1.75; color:#fff;
  }
}

/* =====================================================================
   CORRECTIONS MOBILE — 2026-06-30b (ancre formulaire + reorder typologies)
   ===================================================================== */

/* --- P-ancre : le bouton "Etre rappele" (#daaee71) pointe desormais vers #wpforms-27.
   scroll-margin-top compense le header sticky (~69px) -> le haut du formulaire arrive
   juste sous le header. Meme offset que #devis (convention du site). --- */
#wpforms-27{ scroll-margin-top:88px; }

/* --- P-reorder : "Copropriete & Syndic" + "Entrepots" cote a cote sur mobile.
   Les 12 cartes sont enfants directs de la grille #a0b4c96 -> reorder par CSS order (mobile only).
   Seul changement : Entrepots (eee6433) et Sites industriels (ac33881) sont permutes
   -> ligne 3 = Copropriete | Entrepots. Desktop INCHANGE. --- */
@media (max-width:767px){
  .elementor-element-a0b4c96 .elementor-element-9e994f5{ order:0 !important; }   /* ERP */
  .elementor-element-a0b4c96 .elementor-element-42b6090{ order:1 !important; }   /* Bureaux */
  .elementor-element-a0b4c96 .elementor-element-242eb2a{ order:2 !important; }   /* Commerces */
  .elementor-element-a0b4c96 .elementor-element-8ea1c29{ order:3 !important; }   /* Hotels */
  .elementor-element-a0b4c96 .elementor-element-97b6773{ order:4 !important; }   /* Coproprietes & Syndics */
  .elementor-element-a0b4c96 .elementor-element-eee6433{ order:5 !important; }   /* Entrepots (etait 6) */
  .elementor-element-a0b4c96 .elementor-element-ac33881{ order:6 !important; }   /* Sites industriels (etait 5) */
  .elementor-element-a0b4c96 .elementor-element-3941cca{ order:7 !important; }   /* Collectivites */
  .elementor-element-a0b4c96 .elementor-element-5369424{ order:8 !important; }   /* Etabl. scolaires */
  .elementor-element-a0b4c96 .elementor-element-66dbe13{ order:9 !important; }   /* Etabl. medicaux */
  .elementor-element-a0b4c96 .elementor-element-92e581e{ order:10 !important; }  /* Residences */
  .elementor-element-a0b4c96 .elementor-element-de49792{ order:11 !important; }  /* Reseaux d'enseignes */
  /* couple Copropriete/Entrepots : hauteurs egalisees proprement */
  .elementor-element-97b6773, .elementor-element-eee6433{ align-self:stretch !important; }
}

/* =====================================================================
   CORRECTIONS MOBILE — 2026-06-30c (menu accueil + slider + titres + Residences)
   ===================================================================== */

/* --- Fix 1 : lien "Plan evacuation" (accueil) reserve au menu MOBILE -> masque en desktop. --- */
@media (min-width:1025px){
  .xpro-theme-builder-header-nav .menu-item.pe-mobile-home{ display:none !important; }
}

/* --- Fix 2 : pastilles du slider avant/apres descendues (position verticale uniquement), mobile.
   Largeur/labels/taille image inchanges ; seul 'top' passe de 14px a 24px. --- */
@media (max-width:640px){
  /* 2026-06-30d : pastilles slider = vraies capsules premium, centrees (flex) + descendues + marges px equilibrees */
  .pe-ba .ba-label{
    top:24px !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
    line-height:1 !important; box-sizing:border-box !important;
    padding:8px 13px !important;
  }
  .pe-ba .ba-label::after{ line-height:1 !important; }
}

/* --- Fix 3 : titres "Etablissements scolaires/medicaux" -> empecher la coupure du mot
   "Etablissements" (le "s" partait seul a la ligne). overflow-wrap normal + taille legerement reduite. Mobile. --- */
@media (max-width:767px){
  .elementor-element-b9d8445 .elementor-heading-title,
  .elementor-element-742c52a .elementor-heading-title{
    overflow-wrap:normal !important; word-break:normal !important; hyphens:none !important;
    font-size:14px !important; letter-spacing:-0.01em !important;
  }
}

/* --- Fix 4 : carte "Residences" -> 3e ligne pour egaliser la hauteur avec "Reseaux d'enseignes".
   Sous-titre "Privees & gerees" -> "... multi-sites" (via ::after, mobile) + hauteurs egalisees. --- */
@media (max-width:767px){
  .elementor-element-b176c4b p::after{ content:" multi\2011sites"; }  /* trait d'union insecable -> "multi-sites" reste groupe sur sa ligne */
  .elementor-element-92e581e, .elementor-element-de49792{ align-self:stretch !important; }
}

/* =====================================================================
   CORRECTIONS MOBILE PAYSAGE + FIREFOX PORTRAIT — 2026-07-01
   Scope tel paysage : (orientation:landscape) & max-width:1024 & max-height:500
   -> exclut tablette (hauteur>500) et desktop (largeur>1024). Portrait: max-width 767/1024.
   ===================================================================== */

/* --- C1 : pastille "Glissez pour comparer" compacte + 1 ligne, alignee sur "Plan brut" (tel paysage) --- */
@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  .pe-ba .ba-hint{ white-space:nowrap !important; font-size:.72rem !important; padding:.45em .8em !important; bottom:12px !important; }
}

/* --- C3 : "LE CONSTAT" (b2c4e0f) tel paysage : titre+texte pleine largeur, 4 cadres larges/bas sous le texte --- */
@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  .elementor-element-0889b44 > .e-con-inner{ flex-direction:column !important; align-items:stretch !important; }
  .elementor-element-b76cb8e, .elementor-element-c9408e8{ width:100% !important; max-width:100% !important; }
  .elementor-element-26d68a9 > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important; grid-auto-rows:1fr !important; gap:10px !important; }
  .elementor-element-26d68a9 .pe-card{ height:100% !important; padding:14px 16px !important; }
  .elementor-element-26d68a9 .pe-card p,
  .elementor-element-26d68a9 .pe-card .elementor-heading-title{ overflow-wrap:normal !important; word-break:normal !important; hyphens:none !important; }
}
@media (orientation:landscape) and (min-width:820px) and (max-width:1024px) and (max-height:500px){
  .elementor-element-26d68a9 > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important; } /* cadres texte = 2x2 (plus larges, moins hauts) */
}

/* --- C4 : "CONTENU TECHNIQUE" (cedfe8c) tel paysage : image au-dessus, tuiles 4/ligne --- */
@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  .elementor-element-87da70a > .e-con-inner{ flex-direction:column !important; align-items:stretch !important; }
  .elementor-element-55dc6e5{ width:100% !important; }
  .elementor-element-8bf953d{ order:-1 !important; width:100% !important; max-width:240px !important; margin-left:auto !important; margin-right:auto !important; }
  .elementor-element-a816039 > .e-con-inner{ grid-template-columns:repeat(4,1fr) !important; grid-auto-rows:1fr !important; gap:8px !important; }
  .elementor-element-a816039 .pe-card{ height:100% !important; }
}

/* --- C5 : anti-coupure de mots (Firefox+Chrome) cartes secteurs + footer copro + hauteurs uniformes --- */
@media (max-width:1024px){
  .elementor-element-a0b4c96 .elementor-heading-title,
  .elementor-element-463fc20 .elementor-heading-title,
  .elementor-element-1ec9162 .elementor-heading-title{ overflow-wrap:normal !important; word-break:normal !important; hyphens:none !important; -webkit-hyphens:none !important; }
}
@media (max-width:767px){
  .elementor-element-a0b4c96 > .e-con-inner{ grid-auto-rows:1fr !important; align-items:stretch !important; }
  .elementor-element-a0b4c96 > .e-con-inner > *{ height:100% !important; }
}
/* =====================================================================
   RESIDU 3PX — chips avant/apres (#4094f08) — 2026-07-01
   A >=921px la grille chips passe en 4 col (cellules 212px) mais les
   titres etaient white-space:nowrap -> "Support pret pour impression"
   (239px) debordait de 3px a 932x430. Fix: 2 col + titres qui wrappent,
   uniquement en tel paysage. Desktop (4 col) inchange.
   ===================================================================== */
@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  .elementor-element-4094f08, .elementor-element-4094f08 > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important; }
  .elementor-element-4094f08 .pe-chip .elementor-heading-title{ white-space:normal !important; overflow-wrap:normal !important; word-break:normal !important; hyphens:none !important; }
}
/* =====================================================================
   CORRECTIONS FORMULAIRE MOBILE PAYSAGE (WPForms 27, #d5e2c6e) — 2026-07-03
   C: bouton "Envoyer ma demande" centre. D: champs demi-largeur empiles
   (Nom/Entreprise, Email, etc.) -> pleine largeur, alignes, * non orphelin.
   Scope: tel paysage uniquement. Desktop + mobile portrait inchanges.
   ===================================================================== */
@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  /* D : champs 1/2 largeur empiles en pleine largeur */
  .elementor-element-d5e2c6e .wpforms-field.wpforms-one-half{ width:100% !important; margin-left:0 !important; }
  .elementor-element-d5e2c6e .wpforms-field-label{ white-space:normal !important; }
  /* C : bouton submit centre */
  .elementor-element-d5e2c6e .wpforms-submit-container{ text-align:center !important; }
  .elementor-element-d5e2c6e button.wpforms-submit{ margin-left:auto !important; margin-right:auto !important; float:none !important; }
}