/* ss-site — CSS commun de squaredsphere.com, extrait de index.html le 2026-11-02.
   Ne pas modifier l'ordre des blocs : il reproduit la cascade de la page unique. */
/* Titres de rubrique promus de h2 en h1 (data-ex-h2) : même rendu que le h2 d'origine. */
:where(h1[data-ex-h2]){font-size:1.5em}
/* Transitions de page fluides (navigation entre pages du même site) */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}
#mainNav{view-transition-name:ss-barre}

/* ═══ Bloc 1 : feuille principale (index.html, ligne 775) ═══ */

:where(ss-b){font-weight:bolder}
:where(ss-h3,ss-h4){display:block;font-weight:bold}:where(ss-h3){font-size:1.17em;margin-block:1em}:where(ss-h4){margin-block:1.33em}

/* ── Titres : jamais de coupure de mots ── */
h1:not(:where([data-ex-h2])), h2, h1:where([data-ex-h2]), h3, h4, h5, h6 , ss-h3, ss-h4{
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  white-space: normal !important;
}

/* ════════════════════════════════════════════════════════
   ALIGNEMENTS — règle définitive Squared Sphere
   ════════════════════════════════════════════════════════

   CENTRÉS : grands titres de section (hero, intro, CTA,
             témoignages, réalisations, shops...)
   GAUCHE  : titres de paragraphes, sous-sections, étapes
   JUSTIFY : tous les paragraphes de contenu
   ════════════════════════════════════════════════════════ */

/* ── Paragraphes : toujours justifiés ── */
p { text-align: justify; }

/* ── Titres de section (grands) : centrés ── */
.hero h1:not(:where([data-ex-h2])),
.hero h2,
.hero h1:where([data-ex-h2]),
.section-header h2,
.section-header h1:where([data-ex-h2]),
.section-header h3,
.cta-banner h2,
.cta-banner h1:where([data-ex-h2]),
.cta-band h2,
.cta-band h1:where([data-ex-h2]),
.art-cta h2,
.art-cta h1:where([data-ex-h2]),
.tcard h2,
.tcard h1:where([data-ex-h2]),
.lead-section h2,
.lead-section h1:where([data-ex-h2]),
.shop-hero h2,
.shop-hero h1:where([data-ex-h2]),
.srv-hero h2,
.srv-hero h1:where([data-ex-h2]),
.zone-hero h1:not(:where([data-ex-h2])),
.zone-hero h2,
.zone-hero h1:where([data-ex-h2]),
.pres-hero h1:not(:where([data-ex-h2])),
.pres-hero h2,
.pres-hero h1:where([data-ex-h2]),
.audiences h2,
.audiences h1:where([data-ex-h2]),
.trust h2,
.trust h1:where([data-ex-h2]),
.metrics h2,
.metrics h1:where([data-ex-h2]),
.real-grid > h2,
.real-grid > h1:where([data-ex-h2]),
.bm-section h2,
.bm-section h1:where([data-ex-h2]),
.btp-bridge h2,
.btp-bridge h1:where([data-ex-h2]),
.method-recap h2,
.method-recap h1:where([data-ex-h2]),
.carousel-section h2,
.carousel-section h1:where([data-ex-h2]),
.photo-banner-content h2,
.photo-banner-content h1:where([data-ex-h2]),
.immersive-content h2,
.immersive-content h1:where([data-ex-h2]),
.lead-visual h2 ,
.lead-visual h1:where([data-ex-h2]) ,
.section-header ss-h3{
  text-align: center !important;
}

/* ── Titres de paragraphes (sous-sections, étapes) : gauche ── */
.step-detail h2,.step-detail h1:where([data-ex-h2]),
.step-detail h3,
.step-detail h4,
.srv-card h3,
.srv-card h4,
.zone-card h3,
.zone-card h4,
.tcard h3,
.tcard h4,
.about-text h2,
.about-text h1:where([data-ex-h2]),
.about-text h3,
.art-body h2,
.art-body h1:where([data-ex-h2]),
.art-body h3,
.art-body h4,
.product-full-info h3,
.product-full-info h4,
.legal-content h2,
.legal-content h1:where([data-ex-h2]),
.legal-content h3,
.mc-sheet h3,
.art-interview h3,
.digital-offer h3,
.footer-top h3,
.footer-top h4,
.mm-srv-panel h3,
.zone-content h3,
.zone-content h4,
.section h3:not(.section-header h3),
.section h4 ,
.step-detail ss-h3,
.step-detail ss-h4,
.srv-card ss-h3,
.srv-card ss-h4,
.zone-card ss-h3,
.zone-card ss-h4,
.tcard ss-h3,
.tcard ss-h4,
.about-text ss-h3,
.art-body ss-h3,
.art-body ss-h4,
.product-full-info ss-h3,
.product-full-info ss-h4,
.legal-content ss-h3,
.mc-sheet ss-h3,
.art-interview ss-h3,
.digital-offer ss-h3,
.footer-top ss-h3,
.footer-top ss-h4,
.mm-srv-panel ss-h3,
.zone-content ss-h3,
.zone-content ss-h4,
.section ss-h3:not(.section-header ss-h3),
.section ss-h4 {
  text-align: left !important;
}

/* ── Boutons, nav, badges : centrés ── */
button, .btn, .nav-cta, .stag, .badge,
.mm-item, .mm-cta, .mm-sub { 
  text-align: center !important; 
}

/* ── Exceptions paragraphes centrés légitimes ── */
.hero p,
.hero-sub,
.section-header p,
.cta-banner p,
.cta-band p,
.art-cta p,
.stat-label,
.metrics p,
footer p,
nav p {
  text-align: center !important;
}



:root{
  --bg:#fafafa;--bg-deep:#eaeaef;--bg-dark:#1d1d1f;--text:#1d1d1f;--text-s:#2a2a2a;
  --text-l:#555;--accent:#1a6b3c;--accent-h:#12943a;--accent-g:rgba(26,107,60,0.10);
  --warm:#e8640a;--green:#30d158;--purple:#7c3aed;--white:#fff;--card:#fff;
  --card-b:rgba(0,0,0,0.04);--div:rgba(0,0,0,0.06);
  --sh-s:0 2px 20px rgba(0,0,0,0.04);--sh-m:0 8px 40px rgba(0,0,0,0.07);
  --sh-l:0 20px 60px rgba(0,0,0,0.10);--sh-g:0 8px 40px rgba(26,107,60,0.18);
  --r:20px;--rl:28px;--tr:cubic-bezier(0.25,0.46,0.45,0.94);
  --px:40px;   /* padding horizontal desktop */
  --px-m:8px; /* padding horizontal mobile — VALEUR UNIQUE pour tout le site */
}
*{margin:0;padding:0;box-sizing:border-box;}html,body{overflow-x:hidden;max-width:100vw;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}

/* === DÉFILEMENT « ÉCRAN PAR ÉCRAN » DE LA VITRINE (tactile uniquement) ===
   Sur mobile, le défilement accroche sur la vitrine puis sur la section
   suivante : le pouce sent une résistance douce et la page se cale
   proprement, sans jamais retenir le visiteur.

   « proximity » et non « mandatory » : mandatory force l'accrochage même
   quand la section dépasse la hauteur de l'écran, ce qui rend impossible
   la lecture d'un contenu long. proximity n'agit qu'à l'approche d'un point.

   pointer:coarse restreint l'effet aux écrans tactiles — à la molette il
   serait perçu comme un à-coup. */
@media (max-width: 900px) and (pointer: coarse) {
  html { scroll-snap-type: y proximity; }
  #vitrine, #pourquoi-nous { scroll-snap-align: start; scroll-snap-stop: normal; }
  /* La nav est fixe : sans cette marge, le haut de la section suivante
     se calerait derrière elle. */
  #pourquoi-nous { scroll-margin-top: 64px; }
}
/* Un visiteur qui a demandé moins d'animations ne veut pas d'accrochage. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-snap-type: none !important; }
}
body{font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;line-height:1.6;font-weight:400;}

/* === NAV === */
nav{position:fixed;top:0;width:100%;z-index:1000;background:rgba(255,255,255,0.06);backdrop-filter:saturate(120%) blur(4px);-webkit-backdrop-filter:saturate(120%) blur(4px);border-bottom:1px solid rgba(255,255,255,0.08);transition:all .3s;}
/* Nav sur fond sombre (hero) → textes blancs */
nav.on-dark .nav-item>a{color:#fff;}
nav.on-dark .nav-item>a:hover{color:rgba(255,255,255,.95);}
nav.on-dark .nav-logo{color:#fff!important;-webkit-text-stroke:0 transparent;text-shadow:0 1px 4px rgba(0,0,0,.3);}
nav.on-dark .nav-slogan{color:rgba(255,255,255,.95);}
nav.on-dark .cart-btn{color:rgba(255,255,255,.85);}
nav.on-dark .hamburger span{background:#fff;}
nav.on-dark .nav-services-mobile{color:#fff;border-color:rgba(255,255,255,.4);}
nav.on-dark .cart-count{background:#fff;color:#1a6b3c;}
/* Nav sur fond clair → textes sombres (défaut) */
nav.on-light .nav-item>a{color:var(--text);}
nav.on-light .nav-logo{color:#0a0a0a!important;}
nav.on-light .nav-slogan{color:#555;}
nav.on-light .cart-btn{color:var(--text-s);}
nav.on-light .hamburger span{background:var(--text);}
nav.on-light .nav-services-mobile{color:var(--text-s);border-color:var(--div);}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;}
.nav-brand{display:flex;flex-direction:column;cursor:pointer;gap:2px;}
.nav-logo{font-family:'Julius Sans One',sans-serif;font-weight:400;font-size:1.1rem;letter-spacing:.18em;color:#1d1d1f;padding:7px 18px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,0.5) 0%,rgba(240,240,245,0.3) 100%);box-shadow:0 2px 8px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.7);border:1px solid rgba(255,255,255,0.4);transition:all 0.3s;}
.nav-logo span{color:var(--accent);}
.nav-slogan{font-size:0.52rem;font-weight:400;color:#555;letter-spacing:0.08em;text-align:center;text-transform:uppercase;display:none;}
.nav-links{display:flex;gap:0;align-items:center;height:100%;}
.nav-item{position:relative;height:100%;display:flex;align-items:center;}
.nav-item>a{font-size:0.78rem;font-weight:700;color:#1a1a1a;text-decoration:none;padding:0 13px;height:100%;display:flex;align-items:center;transition:color 0.2s;cursor:pointer;letter-spacing:0.07em;text-transform:uppercase;position:relative;}
.nav-item>a:not(.nav-cta)::after{content:'';position:absolute;bottom:10px;left:13px;right:13px;height:1.5px;background:var(--accent);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.25,.46,.45,.94);}
.nav-item>a:not(.nav-cta):hover::after,.nav-item:hover>a:not(.nav-cta)::after{transform:scaleX(1);}
.nav-item>a:hover{color:var(--accent);}
/* MEGA MENU — dark green translucent */
.mega-overlay{position:fixed;inset:0;top:64px;background:rgba(0,0,0,0.45);opacity:0;visibility:hidden;transition:opacity 0.3s;z-index:998;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:none;}
.mega-overlay.show{opacity:1;visibility:visible;}
.mega-menu{position:fixed;top:64px;left:0;right:0;transform:none;background:rgba(220,245,230,0.18);backdrop-filter:saturate(160%) blur(24px);-webkit-backdrop-filter:saturate(160%) blur(24px);border-radius:0;padding:0;width:100%;max-height:0;opacity:0;visibility:hidden;overflow:hidden;transition:all .35s var(--tr);box-shadow:0 8px 32px rgba(0,0,0,0.04);border-top:1px solid rgba(100,200,130,0.15);z-index:999;}
.nav-item:hover .mega-menu{max-height:520px;opacity:1;visibility:visible;padding:14px 40px 14px;}
.mega-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:1280px;margin:0 auto;}
/* Le menu Zones n'a que 3 colonnes */
.nav-item:nth-of-type(2) .mega-menu{width:100%;}
.nav-item:nth-of-type(2) .mega-columns{grid-template-columns:1fr 1fr 1fr;}
/* Le menu Réalisations a 6 colonnes compactes */
.nav-item:nth-of-type(3) .mega-menu{width:100%;}
.nav-item:nth-of-type(3) .mega-columns{grid-template-columns:repeat(6,1fr);gap:8px;}
.nav-item:nth-of-type(3) .m-icon{width:100%;height:52px;border-radius:8px;font-size:1.4rem;margin-bottom:6px;background:rgba(255,255,255,.07);overflow:hidden;position:relative;}
.nav-item:nth-of-type(3) .mega-col a{flex-direction:column;align-items:flex-start;padding:6px 8px;gap:0;}
.nav-item:nth-of-type(3) .m-text{width:100%;}
.nav-item:nth-of-type(3) .m-title{font-size:.64rem;}
.nav-item:nth-of-type(3) .m-desc{font-size:.58rem;}
.mega-col h4,
.mega-col ss-h4{font-size:0.57rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:rgba(0,0,0,0.6);margin-bottom:6px;border-bottom:1px solid rgba(0,0,0,0.12);padding-bottom:4px;}
.mega-col a{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:8px;text-decoration:none;color:#000;transition:background 0.15s;cursor:pointer;font-size:0.68rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;}
.mega-col a:hover{background:rgba(0,0,0,0.05);}
.mega-col a .m-icon{width:24px;height:24px;border-radius:6px;background:rgba(0,0,0,0.06);display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0;}
.mega-col a .m-text .m-title{color:#000;font-weight:800;font-size:0.67rem;letter-spacing:0.05em;text-transform:uppercase;display:block;white-space:nowrap;}
.mega-col a .m-text .m-desc{font-size:0.60rem;color:rgba(0,0,0,0.75);margin-top:0;display:block;line-height:1.2;text-transform:none;letter-spacing:0;font-weight:500;white-space:nowrap;}
.mega-col a .m-text{display:flex;flex-direction:column;}
/* HAMBURGER */
.hamburger{background:none;border:none;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:relative;margin-left:4px;flex-shrink:0;overflow:hidden;}
.hamburger span{position:absolute;left:50%;top:50%;width:22px;height:2px;background:var(--text);border-radius:2px;transition:all .25s ease;display:block;}
.hamburger span:nth-child(1){transform:translate(-50%,-50%) translateY(-6px);}
.hamburger span:nth-child(2){transform:translate(-50%,-50%) translateY(0px);opacity:1;width:22px;}
.hamburger span:nth-child(3){transform:translate(-50%,-50%) translateY(6px);}
/* state: 3 lines */
.hamburger.s3 span:nth-child(1){transform:translate(-50%,-50%) translateY(-6px);opacity:1;width:22px;}
.hamburger.s3 span:nth-child(2){transform:translate(-50%,-50%) translateY(0px);opacity:1;width:22px;}
.hamburger.s3 span:nth-child(3){transform:translate(-50%,-50%) translateY(6px);opacity:1;width:22px;}
/* state: dot */
.hamburger.s1 span:nth-child(1){transform:translate(-50%,-50%) translateY(0) scaleX(0);opacity:0;}
.hamburger.s1 span:nth-child(2){transform:translate(-50%,-50%) translateY(0);opacity:1;width:6px;height:6px;border-radius:50%;}
.hamburger.s1 span:nth-child(3){transform:translate(-50%,-50%) translateY(0) scaleX(0);opacity:0;}
/* state: open X */
.hamburger.open span:nth-child(1){transform:translate(-50%,-50%) translateY(0)!important;opacity:0!important;width:22px!important;}
.hamburger.open span:nth-child(2){transform:translate(-50%,-50%) translateY(0)!important;opacity:1!important;width:28px!important;height:2px!important;border-radius:2px!important;}
.hamburger.open span:nth-child(3){transform:translate(-50%,-50%) translateY(0)!important;opacity:0!important;width:22px!important;}

/* MOBILE NAV */
.nav-mobile-row{display:none;}

.nav-right-desktop{display:flex;align-items:center;gap:4px;}
.nav-services-mobile{display:none;}
/* Mobile services overlay */
.mob-srv-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1096;opacity:0;visibility:hidden;transition:all .25s;}
.mob-srv-overlay.show{opacity:1;visibility:visible;}
.mob-srv-panel{position:fixed;bottom:0;left:0;right:0;top:0;background:rgba(0,0,0,0.45);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:0;z-index:1097;padding:56px 24px 24px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;box-shadow:none;max-height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.mob-srv-panel.open{opacity:1;visibility:visible;bottom:0;}
.mob-srv-panel h3,
.mob-srv-panel ss-h3{font-family:'Julius Sans One',sans-serif;font-size:1.05rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:12px;padding-bottom:8px;padding-right:36px;border-bottom:1px solid rgba(255,255,255,.15);}
.mob-srv-item{display:flex;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer;color:#fff;font-size:1rem;opacity:0;}
@keyframes srvFadeUp{0%{opacity:0;transform:translateY(14px);}100%{opacity:1;transform:translateY(0);}}
.mob-srv-panel.open .mob-srv-item{animation:srvFadeUp .35s ease forwards;}
.mob-srv-item:last-child{border-bottom:none;}
.mob-srv-text strong,
.mob-srv-text ss-b{color:#fff!important;display:block;font-size:1.1rem;}
.mob-srv-text span{color:rgba(255,255,255,.55)!important;font-size:1rem;}
.mob-srv-icon{width:20px;height:20px;background:var(--accent-g);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:.65rem;flex-shrink:0;}
.mob-zones-section-title{font-family:'Julius Sans One',sans-serif;font-size:1.05rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:16px 0 4px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);}
.mob-zones-section-title:first-of-type{border-top:none;padding-top:0;margin-top:4px;}
.mob-srv-text strong,
.mob-srv-text ss-b{color:#fff !important;display:block;font-family:'Josefin Sans',sans-serif;font-size:.64rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin-bottom:0;}
.mob-srv-text span{display:none;}
.mob-srv-close{position:fixed;top:20px;right:20px;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.95);font-size:2rem;font-weight:200;line-height:1;z-index:2;padding:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:0;}
@media(max-width:968px){
  #mainNav{height:auto!important;}
  .nav-inner{flex-wrap:wrap;height:auto!important;padding:5px 12px 4px;gap:0;}
  /* Ligne 1 : Logo + Cart + Hamburger */
  .nav-brand{flex:1;min-width:0;justify-content:flex-start;align-items:center;padding:0;flex-direction:row;gap:8px;}
  .nav-slogan{display:none;}
  .nav-links{display:none!important;}
  .nav-cta{display:none!important;}
  /* Garder nav-right-desktop visible sur mobile (cart + burger) */
  .nav-right-desktop{display:flex!important;align-items:center;gap:0;margin-left:auto;}
  .nav-right-desktop .cart-btn{padding:0 6px 0 4px;}
  .nav-right-desktop .nav-account-btn{width:30px;height:30px;}
  .nav-logo{font-size:.58rem!important;padding:3px 7px!important;letter-spacing:.06em!important;border-radius:9px!important;}
  /* Ligne 2 : Services seul, pleine largeur */
  .nav-mobile-row{display:flex;width:100%;align-items:center;gap:6px;padding:4px 0 2px;border-top:1px solid var(--div);margin-top:4px;}

  .nav-mobile-row .cart-btn{display:none;}   /* cart déjà en ligne 1 */
  .nav-mobile-row .hamburger{display:none;}  /* burger déjà en ligne 1 */
  .nav-services-mobile{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;font-family:'Josefin Sans',sans-serif;font-size:1.2rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-s);cursor:pointer;padding:0 10px;border:1.5px solid var(--div);border-radius:980px;height:36px;background:transparent;white-space:nowrap;}
  body.boutique-mobile .nav-mobile-row{display:none!important;}
  /* Boutique mobile : le carrousel occupe tout l'ecran, on retire les pastilles flottantes */
  body.boutique-mobile .wa-btn,
  body.boutique-mobile .chatbot-btn,
  body.boutique-mobile .chatbot-panel,
  body.boutique-mobile .social-bar,
  body.boutique-mobile .sticky-guide{display:none!important;}
  .nav-services-mobile:hover{color:var(--accent);border-color:var(--accent);}
}


/* CTA */
.nav-cta{background:linear-gradient(135deg,var(--accent),#2ea05a)!important;color:var(--white)!important;padding:10px 22px!important;border-radius:980px;font-family:'Outfit',sans-serif!important;font-size:0.73rem!important;font-weight:600!important;letter-spacing:0.08em!important;text-transform:uppercase!important;margin-left:12px;height:auto!important;transition:all 0.3s!important;box-shadow:0 2px 12px rgba(26,107,60,0.35);animation:ctaPulse 2.5s ease-in-out infinite;}
.nav-cta:hover{background:linear-gradient(135deg,var(--accent-h),#35b564)!important;box-shadow:0 4px 20px rgba(26,107,60,0.5);transform:translateY(-1px);}
@keyframes ctaPulse{0%,100%{box-shadow:0 2px 12px rgba(26,107,60,0.35);}50%{box-shadow:0 4px 24px rgba(26,107,60,0.6);}}
.cart-btn{position:relative;font-size:0.78rem;font-weight:400;color:var(--text-s);cursor:pointer;padding:0 20px 0 12px;display:flex;align-items:center;gap:6px;}
.cart-btn:hover{color:var(--accent);}
.cart-count{background:var(--accent);color:var(--white);font-size:0.55rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:absolute;top:-4px;right:0;}
/* MOBILE MENU — slide from right */
.mob-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1098;opacity:0;visibility:hidden;transition:all .3s;}
.mob-overlay.show{opacity:1;visibility:visible;}
.mobile-menu{
  position:fixed;
  top:0;left:0;right:0;
  width:100%;max-width:100%;
  height:100vh;
  /* Fond quasi opaque : à 25 % d'opacité, le contenu de la page traversait
     le menu et rendait les rubriques illisibles au-dessus des visuels sombres. */
  background:linear-gradient(165deg,#0a1f12 0%,#123320 55%,#08200f 130%);
  backdrop-filter:blur(16px) saturate(1.1);
  -webkit-backdrop-filter:blur(16px) saturate(1.1);
  z-index:1099;
  overflow-y:auto;
  padding:0 0 12px;
  transition:transform .35s cubic-bezier(.25,.46,.45,.94),visibility .35s;
  transform:translateX(100%);
  visibility:hidden;
}
.mobile-menu.open{transform:translateX(0);visibility:visible;}
/* Navigateurs sans backdrop-filter (anciens Firefox, WebView) : fond plein,
   sinon le flou absent laisse un panneau translucide illisible. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .mobile-menu{background:#f7fbff;}
}
/* Filet de sécurité : si les animations sont désactivées (réglage système
   « réduire les animations »), les rubriques resteraient à opacity:0. */
@media(prefers-reduced-motion:reduce){
  .mobile-menu .mm-item,
  .mobile-menu .mm-srv-toggle,
  .mobile-menu.open .mm-item,
  .mobile-menu.open .mm-srv-toggle{
    animation:none!important;opacity:1!important;transform:none!important;filter:none!important;
  }
}
@media(min-width:969px){
  .mobile-menu{left:auto;right:0;width:360px;max-width:360px;border-left:1px solid rgba(255,255,255,.3);box-shadow:-8px 0 40px rgba(0,0,0,.12);}
}
/* Items — même police, même gabarit, marges G/D identiques */
.mobile-menu .mm-item{
  font-family:'Julius Sans One',sans-serif;
  font-size:1.05rem;
  font-weight:400;
  color:#111;
  text-decoration:none;
  display:block;
  padding:5px 20px;
  margin:0 12px;
  border-radius:8px;
  border:none;
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.05em;
  text-align:left;
  line-height:1.4;
  transition:background .15s,color .15s;
  opacity:0;
  transform:translateY(-16px) scale(.94);
  filter:blur(3px);
}
@keyframes mmDrop{0%{opacity:0;transform:translateY(-16px) scale(.94);filter:blur(3px);}65%{opacity:1;transform:translateY(2px) scale(1.01);filter:blur(0);}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}}
.mobile-menu.open .mm-item,.mobile-menu.open .mm-srv-toggle{animation:mmDrop .38s cubic-bezier(.34,1.56,.64,1) forwards;}
.mobile-menu.open .mm-srv-toggle{animation-delay:.04s;opacity:0;transform:translateY(-16px) scale(.94);filter:blur(3px);}
.mobile-menu.open .mm-item:nth-child(1){animation-delay:.04s;}
.mobile-menu.open .mm-item:nth-child(2){animation-delay:.08s;}
.mobile-menu.open .mm-item:nth-child(3){animation-delay:.12s;}
.mobile-menu.open .mm-item:nth-child(4){animation-delay:.16s;}
.mobile-menu.open .mm-item:nth-child(5){animation-delay:.20s;}
.mobile-menu.open .mm-item:nth-child(6){animation-delay:.24s;}
.mobile-menu.open .mm-item:nth-child(7){animation-delay:.28s;}
.mobile-menu.open .mm-item:nth-child(8){animation-delay:.32s;}
.mobile-menu .mm-item:hover{background:rgba(26,107,60,.08);color:var(--accent);}
/* === Menu burger SquaredSphere : habillage vert nuit (cohérent marque) === */
.mobile-menu .mm-item{color:rgba(255,255,255,.93)!important;}
.mobile-menu .mm-item:hover{background:rgba(52,211,153,.16)!important;color:#7ee9ad!important;}
.mobile-menu .mm-sub{color:rgba(255,255,255,.74)!important;}
.mobile-menu .mm-sub:hover{color:#7ee9ad!important;background:rgba(52,211,153,.10)!important;}
.mobile-menu .mm-srv-toggle{color:rgba(255,255,255,.93)!important;}
.mobile-menu .mm-close{color:rgba(255,255,255,.82)!important;}
.mobile-menu .mm-avis-mobile{color:rgba(255,255,255,.82)!important;}
.mobile-menu .mm-avis-mobile:hover{color:#7ee9ad!important;}
.mobile-menu .mm-quick-wa,.mobile-menu .mm-quick-chat{color:rgba(255,255,255,.9)!important;}
.mobile-menu .mm-srv-arrow{color:#7ee9ad!important;}
/* « Commencer ici » : première entrée du menu, et seule entrée d'action.
   Traitée en bouton plein pour ne pas se confondre avec les liens de page.
   Le vert clair est celui du survol du menu, pas une couleur de plus. */
.mobile-menu .mm-item.mm-start{
  color:#0f1c14!important;background:#7ee9ad;font-weight:700;
  margin:2px 12px 12px;padding:10px 20px;border-radius:10px;
  text-align:center;letter-spacing:.08em;}
.mobile-menu .mm-item.mm-start:hover{background:#9df3c2!important;color:#0f1c14!important;}
/* Échelonnement d'apparition : la liste compte plus de huit entrées. */
.mobile-menu.open .mm-item:nth-child(9){animation-delay:.36s;}
.mobile-menu.open .mm-item:nth-child(10){animation-delay:.40s;}
.mobile-menu.open .mm-item:nth-child(11){animation-delay:.44s;}
.mobile-menu.open .mm-item:nth-child(12){animation-delay:.48s;}
.mobile-menu.open .mm-item:nth-child(13){animation-delay:.52s;}
.mobile-menu.open .mm-item:nth-child(14){animation-delay:.56s;}
/* Sous-items services */
.mobile-menu .mm-sub{font-family:'Julius Sans One',sans-serif;font-size:.82rem;font-weight:400;color:#333;text-decoration:none;padding:4px 20px 4px 32px;margin:0 12px;display:block;border-radius:6px;text-transform:uppercase;letter-spacing:.04em;transition:background .15s,color .15s;}
.mobile-menu .mm-sub:hover{color:#1a3d24;background:rgba(26,107,60,.05);}
/* Services accordion toggle — même gabarit exact que mm-item */
.mm-srv-toggle{display:block;width:calc(100% - 24px);background:none;border:none;padding:5px 20px;margin:0 12px;border-radius:8px;cursor:pointer;font-family:'Julius Sans One',sans-serif;font-size:1.05rem;font-weight:400!important;text-transform:uppercase;letter-spacing:.05em;line-height:1.4;color:#111;text-align:left;position:relative;transition:background .15s,color .15s;}
.mm-srv-toggle:hover{background:rgba(26,107,60,.08);color:var(--accent);}
.mm-srv-arrow{font-size:.65rem;transition:transform .3s;display:inline-block;color:#111;position:absolute;right:20px;top:50%;transform:translateY(-50%);}
.mm-srv-arrow.open{transform:translateY(-50%) rotate(180deg);}
.mm-srv-panel{overflow:hidden;max-height:0;visibility:hidden;opacity:0;transition:max-height .3s cubic-bezier(.25,.46,.45,.94),visibility 0s .3s,opacity .2s;}
.mm-srv-panel.open{max-height:340px;visibility:visible;opacity:1;transition:max-height .3s cubic-bezier(.25,.46,.45,.94),visibility 0s,opacity .2s;}
@keyframes mm-pulse{
  0%{transform:scale(1) translateY(0);box-shadow:0 6px 0 #0d5c22,0 8px 24px rgba(26,107,60,.5),0 0 0 0 rgba(26,107,60,.55);}
  25%{transform:scale(1.07) translateY(-3px);box-shadow:0 10px 0 #0d5c22,0 18px 40px rgba(26,107,60,.65),0 0 0 10px rgba(26,107,60,.08);}
  50%{transform:scale(1.04) translateY(-2px);box-shadow:0 8px 0 #0d5c22,0 14px 32px rgba(26,107,60,.55),0 0 0 20px rgba(26,107,60,.0);}
  75%{transform:scale(1.06) translateY(-3px);box-shadow:0 10px 0 #0d5c22,0 16px 36px rgba(26,107,60,.6),0 0 0 8px rgba(26,107,60,.06);}
  100%{transform:scale(1) translateY(0);box-shadow:0 6px 0 #0d5c22,0 8px 24px rgba(26,107,60,.5),0 0 0 0 rgba(26,107,60,.55);}
}
@keyframes mm-shine{
  0%{background-position:-200% center;}
  100%{background-position:200% center;}
}
.mobile-menu .mm-cta{display:block;margin:8px 20px 4px;text-align:center;background:linear-gradient(135deg,#2da84a,#1a6b3c 50%,#22883a);color:#fff!important;border-radius:10px;padding:11px 14px;font-family:'Josefin Sans';font-size:0.78rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;border:none;width:calc(100% - 40px);white-space:nowrap;box-shadow:0 4px 0 #0d5c22,0 6px 20px rgba(26,107,60,.4),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -1px 0 rgba(0,0,0,.15);animation:mm-pulse 1.2s ease-in-out infinite;position:relative;overflow:hidden;}
.mobile-menu .mm-cta::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.25) 50%,transparent 60%);background-size:200% 100%;animation:mm-shine 2s linear infinite;}
.mm-close{background:none;border:none;font-size:2rem;font-weight:200;cursor:pointer;color:var(--text-s);padding:0;line-height:1;margin-left:auto;flex-shrink:0;}
/* AVIS LINK — mobile/tablette uniquement */
.mm-avis-mobile{
  display:block;
  text-align:center;
  margin:0 12px;
  padding:5px 20px;
  background:none;
  border:none;
  border-radius:8px;
  font-family:'Julius Sans One',sans-serif;
  font-size:1.05rem;font-weight:400;
  line-height:1.4;
  letter-spacing:.05em;text-transform:uppercase;
  color:#111;cursor:pointer;
  text-decoration:none;
  transition:color .15s;
}
.mm-avis-mobile:hover{color:var(--accent);background:rgba(26,107,60,.05);border-color:transparent;}
/* VIDEO ENCART — masqué par défaut, affiché desktop */
.mm-video-encart{display:none;}
.mm-video-label{display:none;}
.mm-video-caption{display:none;}
/* BUDGET WIDGET — masqué par défaut */
.mm-budget-widget{display:none;}
/* Toprow titre+valeur : colonne par défaut (desktop) */
.mm-budget-toprow{display:block;}
/* BUDGET WIDGET — styles de base globaux */
.mm-budget-widget{
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.25);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-radius:12px;
  padding:14px 14px 12px;
}
.mm-budget-title{
  font-family:'Outfit',sans-serif;
  font-size:.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;
  color:var(--accent);margin-bottom:10px;display:block;
}
.mm-budget-value{
  font-family:'Outfit',sans-serif;
  font-size:1.5rem;font-weight:800;
  color:#0d1f12;letter-spacing:-1px;
  text-align:center;margin-bottom:6px;display:block;
  transition:all .2s;
}
.mm-budget-slider{
  -webkit-appearance:none;appearance:none;
  width:100%;height:4px;
  border-radius:2px;outline:none;cursor:pointer;
  background:linear-gradient(90deg,var(--accent) var(--pct,20%),#d1e8d9 var(--pct,20%));
  margin-bottom:12px;
}
.mm-budget-slider::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;
  border-radius:50%;background:var(--accent);
  box-shadow:0 2px 6px rgba(26,107,60,.4);cursor:pointer;
  border:2px solid #fff;
}
.mm-budget-card{
  background:rgba(255,255,255,0.2);border-radius:8px;padding:10px 11px;
  border-left:3px solid var(--accent);
  transition:all .25s cubic-bezier(.25,.46,.45,.94);
}
.mm-budget-type{
  font-family:'Outfit',sans-serif;font-size:.72rem;
  font-weight:700;color:#0d1f12;margin-bottom:3px;display:block;
}
.mm-budget-service{
  font-family:'Outfit',sans-serif;font-size:.65rem;
  font-weight:400;color:var(--text-s);margin-bottom:6px;display:block;
}
.mm-budget-roi{
  display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(90deg,var(--accent),#2ecc71);
  color:#fff;border-radius:980px;
  padding:2px 8px;font-size:.6rem;font-weight:700;
  letter-spacing:.03em;
}
.mm-budget-cta{
  display:block;width:100%;margin-top:10px;
  text-align:center;background:var(--accent);color:#fff;
  border:none;border-radius:980px;padding:8px;
  font-family:'Josefin Sans',sans-serif;font-size:.65rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:background .2s;
}
.mm-budget-cta:hover{background:#155c2e;}
/* VIDEO ENCART — masqué partout dans le burger */
@media(min-width:969px){
  .mm-video-encart{display:none !important;}
  .mm-video-label{display:none !important;}
  .mm-video-caption{display:none !important;}
  .mm-video-caption{
    display:block;
    font-family:'Outfit',sans-serif;
    font-size:.72rem;font-weight:300;
    color:var(--text-l);
    line-height:1.5;
    margin-top:8px;
    text-align:center;
    font-style:italic;
  }
  .mm-budget-widget{display:block;margin-top:20px;}
}
@media(max-width:968px){
  .mm-avis-mobile{padding:5px 20px;}
  /* BUDGET WIDGET — ultra-compact mobile */
  .mm-budget-widget{
    display:block;
    margin-top:8px;
    padding:8px 10px 7px;
    border-radius:8px;
  }
  /* Titre puis valeur : deux lignes, alignées à gauche */
  .mm-budget-toprow{display:block;margin-bottom:4px;}
  .mm-budget-title{
    font-size:.5rem;
    margin-bottom:1px;
    display:block;
    text-align:left;
  }
  .mm-budget-value{
    font-size:1.05rem;
    margin-bottom:6px;
    display:block;
    text-align:left;
    letter-spacing:-.5px;
    line-height:1.1;
  }
  .mm-budget-slider{display:block;margin-top:2px;margin-bottom:5px;height:3px;}
  .mm-budget-slider::-webkit-slider-thumb{width:14px;height:14px;}
  /* Carte compacte: type ligne 1, roi ligne 2, service masqué */
  .mm-budget-card{
    padding:4px 7px;
    border-radius:5px;
    display:block;
  }
  .mm-budget-type{font-size:.6rem;margin-bottom:3px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mm-budget-service{display:none;}
  .mm-budget-roi{font-size:.5rem;padding:1px 5px;white-space:nowrap;display:block;}
  .mm-budget-cta{padding:5px;font-size:.55rem;margin-top:5px;border-radius:6px;}
}
/* BARRE HAUTE MENU BURGER : WA + Chat + Croix */
.mm-topbar{
  display:flex;align-items:center;gap:6px;
  padding:10px 12px 8px;
  border-bottom:1px solid var(--div);
  margin-bottom:4px;
}
.mm-quick-wa,.mm-quick-chat{
  flex:1;display:flex;align-items:center;justify-content:center;gap:5px;
  padding:9px 6px;border-radius:8px;
  font-family:'Julius Sans One',sans-serif;font-size:.82rem;font-weight:400;
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;
  transition:all .2s;white-space:nowrap;
}
.mm-quick-wa{
  background:rgba(37,211,102,.12);color:#128c3c;
  border:1px solid rgba(37,211,102,.4);
}
.mm-quick-wa:hover{background:#25d366;color:#fff;}
.mm-quick-chat{
  background:rgba(26,107,60,.08);color:var(--accent);
  border:1px solid rgba(26,107,60,.25);
}
.mm-quick-chat:hover{background:var(--accent);color:#fff;}
/* ─── Menu burger : les sous-menus fonctionnent sur tous les ecrans ───
   Une regle masquait ici « .mm-srv-toggle, .mm-srv-panel » au-dessus
   de 969 px, pour eviter un doublon avec le mega menu desktop.
   Deux consequences :
     · .mm-srv-panel est la classe des DEUX panneaux, Services et
       Realisations : les deux etaient en display:none ;
     · .mm-srv-toggle n'existe nulle part dans le HTML, donc les deux
       intitules restaient visibles et cliquables.
   Resultat : sur desktop, on cliquait sur un bouton qui basculait
   bien sa classe .open, mais sur un panneau invisible. Regle retiree :
   le burger reste accessible en desktop, il doit donc y fonctionner. */
/* Masquer les boutons flottants WA+Chat sur desktop quand menu ouvert */
@media(min-width:969px){
  body.mobile-menu-open .wa-btn,
  body.mobile-menu-open .chatbot-btn{
    opacity:0!important;
    pointer-events:none!important;
    transform:scale(.7)!important;
  }
}
/* SOCIAL BAR */
.social-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1030;height:56px;background:rgba(255,255,255,.06);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-top:1px solid rgba(255,255,255,.15);box-shadow:0 -1px 0 rgba(0,0,0,.04);}
.social-bar-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;font-size:.58rem;font-weight:700;letter-spacing:.03em;color:#333;transition:all .2s ease;position:relative;padding:6px 0;}
.social-bar-btn svg{width:22px;height:22px;flex-shrink:0;}
.social-bar-btn::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .2s;}
.social-bar-btn:active::before,.social-bar-btn:hover::before{opacity:1;}
.social-bar-btn + .social-bar-btn{border-left:1px solid rgba(0,0,0,.06);}
.social-ig svg{color:#E1306C;}
.social-yt svg{color:#FF0000;}
.social-tk svg{color:#000;}
.social-fb svg{color:#1877F2;}
.social-ig{color:rgba(193,53,132,.7);}
.social-ig:hover,.social-ig:active{color:#e1306c;}
.social-ig::before{background:linear-gradient(90deg,rgba(225,48,108,.05),rgba(245,133,41,.05));}
.social-yt{color:rgba(196,48,43,.7);}
.social-yt:hover,.social-yt:active{color:#ff0000;}
.social-yt::before{background:rgba(255,0,0,.04);}
.social-tk{color:rgba(17,17,17,.6);}
.social-tk:hover,.social-tk:active{color:#fe2c55;}
.social-tk::before{background:linear-gradient(90deg,rgba(37,244,238,.05),rgba(254,44,85,.05));}
.social-fb{color:rgba(24,119,242,.7);}
.social-fb:hover,.social-fb:active{color:#1251aa;}
.social-fb::before{background:rgba(24,119,242,.04);}
.social-bar .social-bar-btn{width:25%!important;}
body{padding-bottom:56px;}
/* === PAGES === */
.page{display:none;}.page.active{display:block;}
/* Encart devis — mobile */
@media(max-width:768px){
  #devis-encart{
    margin-left:var(--px-m,16px);
    margin-right:var(--px-m,16px);
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:16px;
  }
  #devis-encart a{
    justify-content:center;
    width:100%;
    box-sizing:border-box;
    text-align:center;
  }
  .devis-encart-sub{display:none;}
}

#page-sitemap.active { min-height:calc(100vh - 64px) !important; display:flex !important; flex-direction:column !important; }
/* === TYPOGRAPHIE DESIGN — Julius Sans One logo (A sans barre) + Josefin Sans titres === */
/* Logo principal : Julius Sans One — A géométrique ouvert sans barre horizontale */
.nav-logo{font-family:'Julius Sans One',sans-serif !important;font-weight:400;font-size:1.28rem !important;letter-spacing:.22em;text-transform:uppercase;color:#0a0a0a !important;-webkit-text-stroke:0.3px #0a0a0a;}
@media(max-width:968px){.nav-logo{font-size:.58rem!important;letter-spacing:.06em!important;padding:3px 7px!important;}}
.nav-logo span{font-family:'Julius Sans One',sans-serif;font-weight:400;letter-spacing:.22em;color:var(--accent) !important;-webkit-text-stroke:0.3px var(--accent);}
/* Hero — titre principal : weight 500 pour bien ressortir */
.hero h1:not(:where([data-ex-h2])){font-family:'Josefin Sans',sans-serif !important;font-weight:500;letter-spacing:.05em;text-transform:uppercase;line-height:1.08;color:#0a0a0a !important;}
/* Section headers : weight 600 — bien visible */
.section-header h2,.section-header h1:where([data-ex-h2]){font-family:'Josefin Sans',sans-serif !important;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#0a0a0a !important;}
/* Pages services */
.srv-hero h1:not(:where([data-ex-h2])){font-family:'Josefin Sans',sans-serif !important;font-weight:500;letter-spacing:.05em;text-transform:uppercase;}
/* CTA band */
.cta-band-content h2,.cta-band-content h1:where([data-ex-h2]){font-family:'Josefin Sans',sans-serif !important;font-weight:500;letter-spacing:.05em;text-transform:uppercase;}
/* Footer brand */
.footer-brand .nav-logo{font-family:'Julius Sans One',sans-serif;}

/* === HERO === */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:88px 40px 64px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-30%;left:50%;transform:translateX(-50%);width:900px;height:900px;background:radial-gradient(circle,rgba(26,107,60,0.07) 0%,transparent 70%);pointer-events:none;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.06;transform:scale(1.05);}
.hero-content{max-width:860px;position:relative;z-index:1;}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--accent-g);color:var(--accent);padding:8px 18px;border-radius:980px;font-size:0.78rem;font-weight:400;margin-bottom:32px;opacity:0;transform:translateY(20px);animation:fadeUp .8s var(--tr) .2s forwards;}
.hero-badge::before{content:'';width:6px;height:6px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.5);}}
.hero h1:not(:where([data-ex-h2])){font-family:'Outfit',sans-serif;font-size:clamp(1.85rem,5.5vw,5rem);font-weight:800;line-height:1.1;letter-spacing:clamp(-1px,-0.05em,-3px);word-break:normal;overflow-wrap:normal;margin-bottom:24px;opacity:0;transform:translateY(30px);animation:fadeUp .8s var(--tr) .4s forwards;}
.grad{background:linear-gradient(135deg,var(--accent) 0%,#2ea05a 50%,#7c3aed 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding-right:3px;}
.hero p{font-size:clamp(0.92rem,2vw,1.25rem);color:var(--text-s);max-width:580px;margin:0 auto 48px;line-height:1.7;font-weight:300;opacity:0;transform:translateY(30px);animation:fadeUp .8s var(--tr) .6s forwards;}
.hero-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;transform:translateY(30px);animation:fadeUp .8s var(--tr) .8s forwards;}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
/* === BUTTONS === */
.btn-p{background:var(--accent);color:var(--white);padding:16px 36px;border-radius:980px;font-family:'Josefin Sans',sans-serif;font-size:1rem;font-weight:600;letter-spacing:.12em;text-decoration:none;border:none;cursor:pointer;transition:all .3s var(--tr);display:inline-flex;align-items:center;gap:8px;}
.btn-p:hover{background:var(--accent-h);transform:translateY(-1px);box-shadow:var(--sh-g);}
.btn-s{background:transparent;color:var(--accent);padding:16px 36px;border-radius:980px;font-family:'Josefin Sans',sans-serif;font-size:1rem;font-weight:600;letter-spacing:.12em;text-decoration:none;border:none;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;gap:10px;}
.btn-s:hover{background:var(--accent-g);}
.guide-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#e8640a 0%,#f5971a 100%);color:#fff;flex-shrink:0;box-shadow:0 2px 8px rgba(232,100,10,.35);animation:guideWiggle 3.2s cubic-bezier(.4,0,.2,1) infinite;}
.guide-ico svg{width:17px;height:17px;display:block;}
@keyframes guideWiggle{0%,85%,100%{transform:rotate(0) scale(1);}88%{transform:rotate(-12deg) scale(1.08);}91%{transform:rotate(10deg) scale(1.08);}94%{transform:rotate(-6deg) scale(1.05);}97%{transform:rotate(0) scale(1);}}
.btn-d{background:var(--bg-dark);color:var(--white);padding:16px 36px;border-radius:980px;font-family:'Josefin Sans',sans-serif;font-size:1rem;font-weight:600;letter-spacing:.12em;text-decoration:none;border:none;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;gap:8px;}
.btn-d:hover{background:#333;transform:translateY(-1px);}
/* === SECTIONS === */
.section{padding:72px 40px;max-width:1280px;margin:0 auto;}
.section-header{text-align:center;max-width:650px;margin:0 auto 32px;}
.stag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:16px;}
.section-header h2,.section-header h1:where([data-ex-h2]){font-family:'Outfit',sans-serif;font-size:clamp(1.6rem,4vw,3.2rem);font-weight:700;letter-spacing:-0.8px;line-height:1.1;margin-bottom:20px;word-break:normal;overflow-wrap:normal;}
.section-header p{font-size:1.05rem;font-weight:300;color:var(--text-s);line-height:1.6;}
/* === METRICS === */
.metrics{padding:40px;max-width:1280px;margin:0 auto;}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--div);border-radius:var(--r);overflow:hidden;}
.metric-item{background:var(--card);padding:48px 32px;text-align:center;}
.metric-number{font-family:'Outfit',sans-serif;font-size:3.2rem;font-weight:800;letter-spacing:-2px;line-height:1;margin-bottom:8px;color:var(--accent);}
.metric-label{font-size:.88rem;color:var(--text-l);font-weight:300;}
/* === SERVICES ACCORDION GRID === */
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:960px;margin:0 8px;}
.service-accordion{background:var(--card);border:1px solid var(--card-b);border-radius:var(--r);overflow:hidden;transition:all .3s;}
.service-accordion:hover{box-shadow:var(--sh-m);}
.svc-header{padding:28px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;}
.svc-icon{width:44px;height:44px;border-radius:12px;background:var(--accent-g);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-right:16px;flex-shrink:0;}
.svc-header-left{display:flex;align-items:center;flex:1;}
.svc-header h3,
.svc-header ss-h3{color:var(--text);font-weight:400;font-family:'Outfit',sans-serif;font-size:1.05rem;letter-spacing:0.02em;}
.svc-arrow{color:var(--text-l);transition:transform .3s;font-size:1.2rem;margin-left:10px;flex-shrink:0;}
.service-accordion.expanded .svc-arrow{transform:rotate(180deg);}
.svc-content{display:none;padding:0 28px 28px;color:var(--text-s);font-size:.9rem;line-height:1.7;}
.service-accordion.expanded .svc-content{display:block;animation:slideDown .3s ease-out;}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
.svc-features{list-style:none;margin-top:16px;}
.svc-features li{padding:8px 0;border-bottom:1px solid var(--div);display:flex;align-items:center;gap:10px;font-size:.85rem;}
.svc-features li:last-child{border:none;}
.svc-features li::before{content:'✓';color:var(--accent);font-weight:700;}
.svc-cta{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.85rem;font-weight:500;color:var(--accent);cursor:pointer;transition:gap .2s;}
.svc-cta:hover{gap:10px;}
/* === VIDEO SLOTS === */
.video-slot{position:relative;background:linear-gradient(135deg,#1a1a1c 0%,#2a2a2d 100%);border:1px solid rgba(26,107,60,.25);border-radius:14px;overflow:hidden;aspect-ratio:16/9;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--tr);}
.video-slot:hover{border-color:var(--accent);box-shadow:0 8px 28px rgba(26,107,60,.2);transform:translateY(-2px);}
.video-slot::before{content:'';position:absolute;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.35);backdrop-filter:blur(4px);transition:all .3s;}
.video-slot::after{content:'';position:absolute;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;margin-left:5px;transition:all .3s;}
.video-slot:hover::before{background:var(--accent);border-color:var(--accent);transform:scale(1.08);}
.vslot-label{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:.7rem;color:rgba(255,255,255,.55);letter-spacing:.6px;text-transform:uppercase;font-weight:600;white-space:nowrap;}.video-slot.video-active::before,.video-slot.video-active::after{display:none!important;}.video-slot.video-active{cursor:default;display:block;padding:0;}.video-slot.video-active video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;display:block;background:#fff;}
/* === CAROUSEL === */
.carousel-section{padding:120px 0;overflow:hidden;}
.carousel-section .section-header{padding:0 40px;}
.carousel-wrap{position:relative;padding:0 40px;}
.carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:20px 0;}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track>*{scroll-snap-align:start;flex-shrink:0;}
.carousel-arrows{display:flex;gap:12px;justify-content:center;margin-top:32px;}
.carousel-arrow{width:44px;height:44px;border-radius:50%;background:var(--bg-deep);border:1px solid var(--div);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:1.1rem;color:var(--text-s);}
.carousel-arrow:hover{background:var(--accent-g);color:var(--accent);border-color:var(--accent);}
/* === TESTIMONIALS === */
.tcard{background:var(--card);border:1px solid var(--card-b);border-radius:var(--r);padding:18px 20px;width:380px;transition:all .3s;}
/* ════════ AVIS — CARTES COMPACTES & BALAYAGE ════════ */
@media(max-width:968px){
  /* le conteneur ne doit plus ajouter de marge : c'est la piste qui la porte */
  .carousel-wrap.avis-wrap{padding:0!important;margin:0!important;}
  #testiTrack{
    width:100%!important;max-width:100%!important;box-sizing:border-box;
    gap:12px!important;
    padding:20px 16px 6px!important;
    scroll-snap-type:x mandatory;
    scroll-padding:0 16px;
    overscroll-behavior-x:contain;
  }
  /* carte pleine largeur, gouttieres de 16px de chaque cote */
  #testiTrack .tcard{
    flex:0 0 100%!important;width:auto!important;max-width:none!important;min-width:0!important;
    box-sizing:border-box;
    padding:26px 18px 16px!important;
    scroll-snap-align:center;margin-top:12px;
  }
  #testiTrack .tcard blockquote{
    font-size:.79rem!important;line-height:1.5;margin:6px 0 8px;
    display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;
    text-align:left!important;
  }
  #testiTrack .tcard.ouvert blockquote{-webkit-line-clamp:unset;overflow:visible;}
  #testiTrack .tcard .stars{font-size:.8rem;letter-spacing:1px;}
  #testiTrack .tcard .ta{gap:10px;margin-top:12px;padding-top:11px;}
  #testiTrack .tcard .tav{width:32px;height:32px;font-size:.68rem;}
  #testiTrack .tcard .ta strong,
  #testiTrack .tcard .ta ss-b{font-size:.79rem;line-height:1.25;}
  #testiTrack .tcard .ta span{font-size:.65rem;line-height:1.4;color:var(--text-l);}
  .tc-plus{display:inline-block;margin-bottom:8px;background:none;border:none;padding:0;
    font-family:'Outfit',sans-serif;font-size:.68rem;font-weight:700;color:var(--accent);
    cursor:pointer;border-bottom:1px dotted currentColor;}
  .tcard.ouvert .tc-plus{opacity:.6;}
  /* points de defilement */
  /* pastille « Avis Google vérifié » : au-dessus du contenu, jamais dessus */
  .tcard[style*='position:relative']>div:first-child{
    top:-11px!important;left:14px!important;right:auto!important;
    font-size:.53rem!important;padding:3px 9px!important;
    max-width:calc(100% - 28px);white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;
  }
  .tcard .stars{margin-top:2px;}
  .carousel-track{padding-top:20px!important;}
  .tc-points{display:flex;justify-content:center;gap:7px;margin-top:6px;}
  .tc-point{width:7px;height:7px;border-radius:50%;border:none;padding:0;cursor:pointer;
    background:rgba(0,0,0,.16);transition:background .25s,transform .25s;}
  .tc-point.actif{background:var(--accent);transform:scale(1.4);}
  /* les fleches ne servent a rien au doigt */
  .carousel-wrap .carousel-arrows{display:none!important;}
}
@media(min-width:969px){.tc-points{display:none;}}
@media(prefers-reduced-motion:reduce){.tc-point{transition:none;}}

.tcard:hover{box-shadow:var(--sh-m);}
.tcard .stars{color:#fbbf24;font-size:.82rem;letter-spacing:2px;margin-bottom:8px;}
.tcard blockquote{font-size:.86rem;line-height:1.6;color:var(--text-s);font-style:italic;font-weight:300;margin-bottom:10px;}
.tcard .ta{display:flex;align-items:center;gap:11px;margin-top:14px;padding-top:12px;border-top:1px solid var(--div);}
.ta>div:last-child{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;}
.ta a{display:block;line-height:1.2;}
.ta strong,
.ta ss-b{display:block;font-size:.82rem;font-weight:600;line-height:1.25;}
.ta span{display:block;font-size:.7rem;color:var(--text-l);line-height:1.4;}
.tcard .tav{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent-g),#e8e0ff);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.74rem;color:var(--accent);flex-shrink:0;}
.tcard .ta strong,
.tcard .ta ss-b{font-size:.82rem;font-weight:600;display:block;}
.tcard .ta span{font-size:.7rem;color:var(--text-l);}
/* === AUDIENCES === */
.audiences{background:var(--bg-deep);padding:120px 40px;}
.audiences-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1280px;margin:0 auto;}
.audience-card{background:var(--card);border-radius:var(--r);padding:44px 32px;text-align:center;border:1px solid var(--card-b);transition:all .4s var(--tr);}
.audience-card:hover{transform:translateY(-4px);box-shadow:var(--sh-l);}
.ae{font-size:2.8rem;margin-bottom:20px;display:block;}
.audience-card h3,
.audience-card ss-h3{font-family:'Outfit',sans-serif;font-size:1.3rem;font-weight:700;margin-bottom:10px;}
.audience-card>p{font-size:.9rem;color:var(--text-s);line-height:1.65;font-weight:300;margin-bottom:20px;}
.af{list-style:none;text-align:left;}
.af li{padding:9px 0;font-size:.85rem;color:var(--text-s);border-bottom:1px solid var(--div);display:flex;align-items:center;gap:10px;}
.af li:last-child{border:none;}
.af li::before{content:'✓';color:var(--accent);font-weight:700;font-size:.75rem;}
/* === METHOD 4 STEPS === */
.method-recap{max-width:1280px;margin:0 auto;padding:60px 40px 20px;}
.method-recap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;}
.method-recap-grid::before{content:'';position:absolute;top:46px;left:8%;right:8%;height:2px;background:linear-gradient(90deg,rgba(26,107,60,0),rgba(26,107,60,.35) 15%,rgba(26,107,60,.35) 85%,rgba(26,107,60,0));z-index:0;}
.mr-card{position:relative;z-index:1;background:var(--card);border:1px solid var(--card-b);border-radius:18px;padding:22px 18px 20px;text-align:center;cursor:pointer;transition:all .35s var(--tr);display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:inherit;}
.mr-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 32px rgba(26,107,60,.14);}
.mr-icon{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,#fff,#f5f5f7);border:1.5px solid var(--card-b);display:flex;align-items:center;justify-content:center;font-size:1.9rem;box-shadow:0 4px 14px rgba(0,0,0,.04);transition:all .35s;}
.mr-card:hover .mr-icon{border-color:var(--accent);background:var(--accent);transform:scale(1.08);}
.mr-num{font-family:'Outfit';font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:1.2px;text-transform:uppercase;}
.mr-title{font-family:'Outfit';font-size:1.02rem;font-weight:700;letter-spacing:-.3px;color:var(--text);line-height:1.25;}
.mr-sub{font-size:.78rem;color:var(--text-s);line-height:1.45;font-weight:400;}
.mr-link{font-size:.72rem;color:var(--accent);font-weight:600;letter-spacing:.3px;margin-top:2px;}
/* === SHOP === */
.shop-hero{padding:140px 40px 60px;text-align:center;background:linear-gradient(180deg,var(--bg-deep) 0%,var(--bg) 100%);}
.shop-hero h1:not(:where([data-ex-h2])){font-family:'Outfit',sans-serif;font-size:clamp(1.6rem,5vw,3.8rem);font-weight:800;letter-spacing:-2px;margin-bottom:16px;}
.shop-hero p{font-size:1.1rem;color:var(--text-s);max-width:560px;margin:0 auto 8px;}
.product-full{display:flex;align-items:stretch;position:relative;overflow:hidden;}
.product-full:nth-child(even){flex-direction:row-reverse;}
.product-full-img{flex:0 0 280px;min-height:320px;overflow:hidden;position:relative;background:var(--bg-deep);}
/* ════════ FICHE PRODUIT — MISE EN PAGE ORDINATEUR ════════ */
.product-full-img{
  flex:0 0 360px;min-height:0;
  display:flex;align-items:center;justify-content:center;
  padding:52px 40px;background:transparent;position:relative;
}

/* ════════ FEUILLETAGE DES GUIDES ════════ */
.fl-overlay{position:fixed;inset:0;z-index:9600;display:none;flex-direction:column;background:rgba(6,14,10,.95);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .25s;}
.fl-overlay.open{display:flex;opacity:1;}
.fl-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;flex-shrink:0;}
.fl-titre{font-family:'Outfit',sans-serif;font-size:.9rem;font-weight:700;color:#fff;line-height:1.25;}
.fl-sous{font-size:.7rem;color:rgba(255,255,255,.5);margin-top:2px;}
.fl-close{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.14);
  color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,transform .2s;}
.fl-close:hover{background:rgba(255,255,255,.28);transform:scale(1.07);}
.fl-close:focus-visible{outline:2px solid #5dcaa5;outline-offset:3px;}
.fl-scene{flex:1;display:flex;align-items:center;justify-content:center;gap:16px;padding:0 16px 8px;min-height:0;}
.fl-page{max-height:100%;max-width:min(88vw,680px);width:auto;height:auto;border-radius:8px;background:#fff;
  box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.1);transition:opacity .18s;user-select:none;}
.fl-page.fade{opacity:0;}
.fl-nav{width:50px;height:50px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.13);
  color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,transform .2s;}
.fl-nav:hover:not(:disabled){background:rgba(255,255,255,.28);transform:scale(1.08);}
.fl-nav:disabled{opacity:.22;cursor:default;}
.fl-pied{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 18px 20px;flex-shrink:0;flex-wrap:wrap;}
.fl-points{display:flex;gap:6px;}
.fl-point{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.24);cursor:pointer;border:none;padding:0;transition:background .2s,transform .2s;}
.fl-point.actif{background:#5dcaa5;transform:scale(1.35);}
.fl-compteur{font-family:'Outfit',sans-serif;font-size:.76rem;color:rgba(255,255,255,.6);}
.fl-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#1a6b3c,#2ea05a);color:#fff;
  border:none;border-radius:980px;padding:11px 24px;font-family:'Outfit',sans-serif;font-size:.82rem;font-weight:700;
  cursor:pointer;box-shadow:0 4px 16px rgba(26,107,60,.5);transition:transform .2s,box-shadow .2s;}
.fl-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,107,60,.7);}
@media(max-width:768px){
  .fl-bar{padding:10px 12px;} .fl-titre{font-size:.8rem;}
  .fl-scene{padding:0 6px 6px;gap:6px;} .fl-page{max-width:94vw;}
  .fl-nav{width:40px;height:40px;font-size:1.2rem;} .fl-pied{padding:8px 12px 16px;gap:10px;}
}
@media(prefers-reduced-motion:reduce){.fl-overlay,.fl-page,.fl-nav,.fl-close,.fl-cta,.fl-point{transition:none;}}

.pfi-couv{
  width:auto;height:auto;max-width:100%;max-height:400px;
  aspect-ratio:640/905;object-fit:cover;object-position:top center;
  border-radius:10px;background:#fff;cursor:zoom-in;
  box-shadow:0 22px 50px rgba(0,0,0,.26),0 3px 10px rgba(0,0,0,.10),0 0 0 1px rgba(0,0,0,.06);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;
}
.product-full:hover .pfi-couv{
  transform:translateY(-6px) rotate(-.6deg);
  box-shadow:0 32px 66px rgba(0,0,0,.32),0 4px 14px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.07);
}
/* pastille « Feuilleter » au survol */
.pfi-feuille{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(17,24,39,.92);color:#fff;border-radius:980px;
  padding:9px 20px;font-family:'Josefin Sans',sans-serif;font-size:.75rem;font-weight:600;
  letter-spacing:.04em;white-space:nowrap;pointer-events:none;
  box-shadow:0 6px 20px rgba(0,0,0,.3);backdrop-filter:blur(4px);
  animation:flPulse 2.8s ease-in-out infinite;
}
@keyframes flPulse{
  0%,100%{box-shadow:0 6px 20px rgba(0,0,0,.3),0 0 0 0 rgba(46,160,90,.5);}
  50%{box-shadow:0 6px 20px rgba(0,0,0,.3),0 0 0 10px rgba(46,160,90,0);}
}
.product-full:hover .pfi-feuille{background:#1a6b3c;}
/* pastille sur la carte mobile */
.mc-couv-wrap{position:relative;align-self:center;display:inline-block;}
.mc-couv-badge{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:5px;background:rgba(17,24,39,.92);color:#fff;
  border-radius:980px;padding:6px 13px;font-family:'Outfit',sans-serif;font-size:.63rem;font-weight:700;
  letter-spacing:.03em;white-space:nowrap;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.3);
  animation:flPulse 2.8s ease-in-out infinite;}
.product-full-info{flex:1;min-width:0;padding:56px 56px 56px 8px;display:flex;flex-direction:column;justify-content:center;}
.product-full:nth-child(even) .product-full-info{padding:56px 8px 56px 56px;}
@media(max-width:1100px){
  .product-full-img{flex:0 0 300px;padding:44px 26px;}
  .pfi-couv{max-height:330px;}
  .product-full-info{padding:44px 40px 44px 8px;}
  .product-full:nth-child(even) .product-full-info{padding:44px 8px 44px 40px;}
}
@media(prefers-reduced-motion:reduce){
  .pfi-couv,.pfi-feuille{transition:none;}
  .product-full:hover .pfi-couv{transform:none;}
}
.mc-couv{width:104px;height:147px;object-fit:cover;border-radius:9px;box-shadow:0 6px 20px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.06);flex-shrink:0;align-self:center;margin-bottom:2px;}
/* ── Carrousel boutique mobile : une fiche = un écran, sans zone morte ──
   1. La couverture était figée à 104×147 px : le contenu ne remplissait
      qu'un tiers de la fiche, d'où le grand bloc vide sous le bouton.
      Elle occupe maintenant toute la hauteur restante (flex:1 1 0).
   2. Le body réserve 56 px pour la barre média, masquée dans la boutique :
      on annule cette réserve, plus la réserve de 44 px côté script.
   3. Tout doit tenir sans défilement : titre en haut, bouton d'achat en bas. */
@media(max-width:968px){
  body.boutique-mobile{padding-bottom:0!important;}
  #page-shop.has-mobile-cards{min-height:0;padding-bottom:0;}
  /* le padding bas réserve la place de « ↓ Guide suivant », qui est en
     position absolue : sans lui le bouton d'achat passait dessous */
  .mobile-card{overflow:hidden;padding:8px 20px 32px;gap:4px;min-height:100%;}
  .mc-title{font-size:1.02rem;}
  .mc-couv-wrap{flex:1 1 0;min-height:0;align-self:stretch;width:100%;
    display:flex;align-items:center;justify-content:center;margin:4px 0;}
  .mc-couv{height:100%;width:auto;max-width:100%;object-fit:contain;
    flex:0 1 auto;margin:0;}
  /* description bornée à 3 lignes : le bouton d'achat reste visible */
  .mc-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
    overflow:hidden;font-size:.78rem;line-height:1.4;margin:2px 0;}
  /* Mosaïque du pack : 2×2 couvertures A4 donnent un bloc au même rapport
     640/905 qu'une couverture seule. On lui impose donc l'encombrement
     exact d'une image unique — les 4 vignettes sont simplement réduites
     de moitié et l'ensemble tient dans le même cadre. */
  .mc-pack-wrap{width:100%;}
  .mc-pack-wrap .pack-couvs{height:100%;width:auto;aspect-ratio:640/905;
    max-width:100%;max-height:100%;margin:0 auto;gap:5px;
    grid-template-rows:1fr 1fr;}
  .mc-pack-wrap .pack-couvs img{width:100%;height:100%;aspect-ratio:auto;
    object-fit:cover;border-radius:5px;}
  .mc-pack-wrap .pack-couvs-tag{font-size:.58rem;padding:4px 10px;}
}
.product-full-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--tr);}
.product-full:hover .product-full-img img{transform:scale(1.03);}
.product-full-img .pfi-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;background:linear-gradient(135deg,var(--bg-deep),#e8f4ed);}

/* ── Pack Rénovation Complète : mosaïque des 4 pages de garde ──
   Remplace le pictogramme 📦 : le client voit ce qu'il achète. */
.pack-couvs{
  position:relative;display:grid;grid-template-columns:1fr 1fr;gap:9px;
  width:100%;max-width:268px;margin:0 auto;
}
.pack-couvs img{
  display:block;width:100%;aspect-ratio:640/905;object-fit:cover;
  border-radius:7px;background:#0a120d;
  box-shadow:0 7px 20px -5px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.07);
  transition:transform .25s var(--tr);
}
.pack-couvs:hover img:nth-child(1){transform:translate(-3px,-3px);}
.pack-couvs:hover img:nth-child(2){transform:translate(3px,-3px);}
.pack-couvs:hover img:nth-child(3){transform:translate(-3px,3px);}
.pack-couvs:hover img:nth-child(4){transform:translate(3px,3px);}
.pack-couvs-tag{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:'Outfit',sans-serif;font-size:.68rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:#fff;background:var(--accent);
  padding:6px 14px;border-radius:980px;white-space:nowrap;
  box-shadow:0 4px 14px rgba(0,0,0,.35),0 0 0 3px rgba(255,255,255,.9);
  pointer-events:none;
}
@media(max-width:968px){
  .pack-couvs{max-width:216px;gap:7px;}
  .pack-couvs-tag{font-size:.62rem;padding:5px 11px;}
}
.product-full-info{flex:1;padding:40px 48px;display:flex;flex-direction:column;justify-content:center;}
.product-full-info .pcat{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);margin-bottom:8px;}
.product-full-info h2,.product-full-info h1:where([data-ex-h2]){font-family:'Outfit',sans-serif;font-size:2rem;font-weight:800;letter-spacing:-1.5px;line-height:1.15;margin-bottom:10px;}
.product-full-info .pdesc{font-size:.92rem;color:var(--text-s);line-height:1.6;margin-bottom:16px;font-weight:300;}
.product-full-info .pmeta{display:flex;gap:20px;margin-bottom:20px;flex-wrap:wrap;}
.product-full-info .pmeta-item{font-size:.8rem;color:var(--text-l);display:flex;align-items:center;gap:6px;}
.product-full-info .pprice{font-family:'Outfit',sans-serif;font-size:2.6rem;font-weight:800;letter-spacing:-2px;margin-bottom:6px;color:var(--accent);}
.btn-buy .btn-ttc{font-size:.62em;font-weight:600;opacity:.72;margin-left:3px;vertical-align:.1em;letter-spacing:.02em;}
.product-full-info .pprice .cur{font-size:1.2rem;font-weight:600;}
.product-full-info .pprice .ht{font-size:.62rem;color:var(--text-l);font-weight:400;opacity:.55;letter-spacing:.04em;}
.product-full-info .pbadge{display:inline-block;padding:4px 12px;border-radius:980px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--white);margin-bottom:12px;}
.pbadge.bs{background:var(--warm);}
.pbadge.nw{background:var(--green);}
.pbadge.pk{background:var(--purple);}
.pbadge.pop{background:var(--accent);}
.btn-buy{background:var(--accent);color:var(--white);padding:16px 36px;border-radius:980px;font-size:1rem;font-weight:400;border:none;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;gap:8px;}
.btn-buy:hover{background:var(--accent-h);box-shadow:var(--sh-g);transform:translateY(-1px);}
.product-checklist{list-style:none;margin:10px 0 16px;}
.product-checklist li{padding:4px 0;border-bottom:1px solid var(--div);display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-s);}
.product-checklist li:last-child{border:none;}
.product-checklist li::before{content:'✓';color:var(--green);font-weight:700;}
/* === TRUST === */
.trust{padding:80px 40px;max-width:1280px;margin:0 auto;}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center;}
.trust-item .ti{font-size:2.2rem;margin-bottom:10px;}
.trust-item strong,
.trust-item ss-b{font-size:.9rem;font-weight:700;display:block;margin-bottom:4px;}
.trust-item span{font-size:.78rem;color:var(--text-l);}
/* === CART === */
.cart-panel{position:fixed;top:0;right:0;width:420px;height:100vh;background:var(--white);box-shadow:-10px 0 40px rgba(0,0,0,.1);z-index:2000;transform:translateX(100%);transition:transform .35s var(--tr);display:flex;flex-direction:column;}
.cart-panel.open{transform:translateX(0);}
.cart-header{padding:24px 28px;border-bottom:1px solid var(--div);display:flex;justify-content:space-between;align-items:center;}
.cart-header h3,
.cart-header ss-h3{font-family:'Outfit';font-size:1.2rem;font-weight:700;}
.cart-close{width:36px;height:36px;border-radius:50%;background:var(--bg-deep);border:none;font-size:1.1rem;cursor:pointer;}
.cart-items{flex:1;overflow-y:auto;padding:20px 28px;}
.cart-empty{text-align:center;color:var(--text-l);padding:60px 0;font-size:.95rem;}
.cart-item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--div);align-items:center;}
.cart-item-info{flex:1;}
.cart-item-info h4,
.cart-item-info ss-h4{font-size:.9rem;font-weight:600;margin-bottom:4px;}
.cart-item-info .ci-price{font-family:'Outfit';font-weight:700;color:var(--accent);font-size:1rem;}
.cart-item-remove{background:none;border:none;color:var(--text-l);cursor:pointer;font-size:.8rem;}
.cart-footer{padding:24px 28px;border-top:1px solid var(--div);background:var(--bg-deep);}
.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.cart-total strong,
.cart-total ss-b{font-family:'Outfit';font-size:1.6rem;font-weight:800;letter-spacing:-1px;}
.btn-checkout{width:100%;padding:16px;background:var(--accent);color:var(--white);border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;}
.btn-checkout:hover{background:var(--accent-h);}
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:1999;opacity:0;visibility:hidden;transition:all .3s;}
.cart-overlay.open{opacity:1;visibility:visible;}
/* === LEAD MAGNET === */
.lead-section{background:var(--bg-deep);padding:100px 40px;}
.lead-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
/* CORRECTIF débordement à droite du bloc « guide gratuit ».
   Les éléments d'une grille CSS ont min-width:auto par défaut : ils
   refusent de descendre sous la largeur mini de leur contenu. En dessous
   d'environ 360 px de large, .lead-visual et .lead-form dépassaient donc
   .lead-inner d'une dizaine de pixels et le texte comme les champs se
   retrouvaient coupés au bord droit de l'écran. */
.lead-inner{min-width:0;}
.lead-inner > *{min-width:0;max-width:100%;}
.lead-form,.lead-form .form-row,.lead-form .form-row > *{min-width:0;}
/* la pastille décorative en bas à droite est en position absolue :
   sans overflow:hidden elle sortait aussi du cadre */
.lead-visual{overflow:hidden;}
.lead-visual{background:var(--card);border-radius:var(--rl);padding:40px;text-align:center;box-shadow:var(--sh-m);border:1px solid var(--card-b);}
.lead-visual .badge{display:inline-block;background:var(--green);color:var(--white);padding:4px 12px;border-radius:980px;font-size:.68rem;font-weight:700;text-transform:uppercase;margin-bottom:14px;}
.lead-visual h3,
.lead-visual ss-h3{font-family:'Outfit';font-size:1.15rem;font-weight:700;margin-bottom:8px;}
.lead-visual p{font-size:.82rem;color:var(--text-s);}
.lead-visual .guide-cover{font-size:4rem;margin:16px 0 8px;display:block;}
.lead-form h2,.lead-form h1:where([data-ex-h2]){font-family:'Outfit';font-size:1.6rem;font-weight:700;letter-spacing:-.8px;margin-bottom:8px;color:#1d1d1f!important;}
.lead-form>p{font-size:.88rem;color:var(--text-s);margin-bottom:20px;}
.lead-form input{width:100%;padding:12px 16px;border:1.5px solid var(--div);border-radius:12px;font-family:'SF Pro Display';font-size:.88rem;color:var(--text);background:var(--white);margin-bottom:10px;outline:none;transition:border-color .2s;}
.lead-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-g);}
.lead-form label.consent{display:flex;align-items:flex-start;gap:8px;font-size:.72rem;color:var(--text-l);margin-bottom:14px;cursor:pointer;}
.lead-form label/* La case était étirée à 100 % par la règle globale des champs du formulaire :
   elle poussait le texte hors du cadre et la phrase se découpait en colonnes. */
.consent input[type=checkbox]{margin-top:2px;accent-color:var(--accent);
  flex:0 0 auto;width:16px;min-width:16px;height:16px;}
/* le libellé occupe tout l'espace restant et se coupe normalement */
.consent > span{flex:1 1 auto;min-width:0;text-align:left;}
.lead-select{width:100%;padding:12px 16px;border:1.5px solid var(--div);border-radius:12px;font-family:'SF Pro Display',sans-serif;font-size:.88rem;color:var(--text);background:var(--white);margin-bottom:10px;outline:none;transition:border-color .2s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;}
.lead-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-g);}
/* === CTA BANNER === */
.cta-banner{background:var(--bg-dark);padding:40px 40px;text-align:center;}
.cta-banner h2,.cta-banner h1:where([data-ex-h2]){font-family:'Outfit';font-size:clamp(1.3rem,3vw,2.5rem);font-weight:700;color:var(--white);letter-spacing:-1px;margin-bottom:16px;}
.cta-banner p{color:rgba(255,255,255,.92);font-size:1.05rem;margin-bottom:36px;}
.cta-banner .btn-p{background:var(--white);color:var(--text);}
/* === CONTACT === */
.contact-section{background:var(--bg-deep);padding:120px 40px;}
.contact-inner{max-width:1100px;margin:0 auto;}
.contact-form{background:var(--card);border-radius:var(--r);padding:48px 64px;box-shadow:var(--sh-s);border:1px solid var(--card-b);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.form-group{margin-bottom:20px;}
.form-group label{font-size:.82rem;font-weight:500;display:block;margin-bottom:8px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px 18px;border:1.5px solid var(--div);border-radius:12px;font-family:'SF Pro Display';font-size:.92rem;color:var(--text);background:var(--bg);transition:all .2s;outline:none;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-g);}
.form-group textarea{min-height:120px;resize:vertical;}
.form-submit{width:100%;padding:16px;background:var(--accent);color:var(--white);border:none;border-radius:14px;font-size:1rem;font-weight:400;cursor:pointer;transition:all .3s;margin-top:8px;}
.form-submit:hover{background:var(--accent-h);box-shadow:var(--sh-g);}
/* === FOOTER === */
footer{padding:60px 40px 110px;max-width:1320px;margin:0 auto;}

/* ── Bouton « Vidéo de présentation » — capsule néon (pied de page) ── */
.neon-video-btn{
  --nv:#2bff88;
  display:inline-flex;align-items:center;gap:11px;cursor:pointer;text-decoration:none;
  font-family:'Outfit',sans-serif;font-size:1.02rem;font-weight:700;letter-spacing:.01em;
  color:var(--nv);background:linear-gradient(160deg,#050607,#0c1410 70%,#08120d);
  border:1.5px solid rgba(43,255,136,.55);border-radius:980px;padding:15px 32px;
  text-shadow:0 0 10px rgba(43,255,136,.55);
  box-shadow:0 0 0 1px rgba(43,255,136,.10),0 0 22px rgba(43,255,136,.28),
             inset 0 1px 0 rgba(255,255,255,.07);
  animation:nvbPulse 2.8s ease-in-out infinite;
  transition:transform .18s cubic-bezier(.3,.7,.3,1),box-shadow .25s,border-color .25s;
}
.neon-video-btn .nvb-play{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;font-size:.62rem;line-height:1;
  color:#050607;background:var(--nv);box-shadow:0 0 14px rgba(43,255,136,.8);
  padding-left:2px;flex-shrink:0;
}
.neon-video-btn:hover{
  transform:translateY(-2px);border-color:var(--nv);
  box-shadow:0 0 0 1px rgba(43,255,136,.2),0 0 34px rgba(43,255,136,.5),
             inset 0 1px 0 rgba(255,255,255,.1);
}
.neon-video-btn:active{transform:translateY(1px) scale(.985);}
.neon-video-btn:focus-visible{outline:2px solid var(--nv);outline-offset:3px;}
@keyframes nvbPulse{
  0%,100%{box-shadow:0 0 0 1px rgba(43,255,136,.10),0 0 20px rgba(43,255,136,.24),inset 0 1px 0 rgba(255,255,255,.07);}
  50%    {box-shadow:0 0 0 1px rgba(43,255,136,.18),0 0 32px rgba(43,255,136,.44),inset 0 1px 0 rgba(255,255,255,.07);}
}
@media(prefers-reduced-motion:reduce){.neon-video-btn{animation:none;}}
@media(max-width:600px){
  .neon-video-btn{font-size:.94rem;padding:13px 24px;gap:9px;}
  .neon-video-btn .nvb-play{width:23px;height:23px;font-size:.56rem;}
}
.footer-top{display:grid;grid-template-columns:1fr 2.5fr;gap:48px;padding-bottom:40px;border-bottom:1px solid var(--div);margin-bottom:32px;align-items:flex-start;}
.footer-tagline{font-size:.85rem;color:var(--text-l);max-width:240px;line-height:1.55;margin-top:10px;}
.flg{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;}
.footer-col h4,
.footer-col ss-h4{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;color:var(--text);}
.footer-col a{display:block;font-size:.78rem;color:var(--text-s);text-decoration:none;padding:4px 0;cursor:pointer;transition:color .2s;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.footer-col{min-width:0;overflow:hidden;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.footer-bottom p{font-size:.75rem;color:var(--text-l);}
@media (max-width:1200px){.footer-top{grid-template-columns:1fr;gap:32px;}.flg{grid-template-columns:repeat(3,1fr);gap:24px;}}
@media (max-width:780px){.flg{grid-template-columns:repeat(2,1fr);gap:22px;}}
/* Footer 2 colonnes : on permute « Zones IDF » et « Ressources & guides »
   pour que les deux colonnes ZONES se retrouvent sur la même ligne. */
@media (max-width:780px){
  .flg > .footer-col:nth-child(1){order:1;}  /* Prestations            */
  .flg > .footer-col:nth-child(4){order:2;}  /* Ressources & guides    */
  .flg > .footer-col:nth-child(3){order:3;}  /* Zones 06 & Conseils    */
  .flg > .footer-col:nth-child(2){order:4;}  /* Zones IDF              */
  .flg > .footer-col:nth-child(5){order:5;}  /* Ressources & Entreprise*/
}
@media (max-width:520px){.flg{grid-template-columns:1fr;gap:18px;}}
/* === BLOG === */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px;}
.blog-card{background:var(--card);border-radius:var(--rl);overflow:hidden;box-shadow:var(--sh-s);border:1px solid var(--card-b);transition:all .4s var(--tr);cursor:pointer;}
.blog-card:hover{transform:translateY(-6px);box-shadow:var(--sh-m);}
.blog-card-img{width:100%;height:140px;background:linear-gradient(150deg,#0d1f12 0%,#123320 55%,#0a2416 130%);display:flex;align-items:center;justify-content:center;font-size:3.5rem;position:relative;overflow:hidden;}
.blog-card-body{padding:24px;}
.blog-tag{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:8px;}
.blog-card-body h3,
.blog-card-body ss-h3{font-family:'Outfit';font-size:1.05rem;font-weight:700;letter-spacing:-.5px;margin-bottom:8px;line-height:1.3;}
.blog-card-body p{font-size:.82rem;color:var(--text-s);line-height:1.5;margin-bottom:12px;}
.blog-date{font-size:.72rem;color:var(--text-l);}
/* === FAQ === */
.faq-list{max-width:800px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--div);overflow:hidden;}
.faq-q{display:flex;justify-content:space-between;align-items:center;padding:22px 0;cursor:pointer;font-family:'Outfit';font-size:1rem;font-weight:600;color:var(--text);transition:color .2s;}
.faq-q:hover{color:var(--accent);}
.faq-arrow{transition:transform .3s;font-size:.85rem;color:var(--text-l);}
.faq-q.open .faq-arrow{transform:rotate(180deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--tr);}
.faq-a.open{max-height:400px;padding-bottom:20px;}
.faq-a p{font-size:.9rem;color:var(--text-s);line-height:1.7;}
/* === SERVICE DETAIL PAGES === */
.srv-hero{padding:110px 40px 36px;position:relative;overflow:hidden;background:var(--bg-dark);}
.srv-hero-c{position:relative;z-index:1;max-width:720px;margin:0 auto;text-align:center;}
.srv-hero-c .stag{color:rgba(255,255,255,.9);}
.srv-hero-c h1:not(:where([data-ex-h2])),.srv-hero-c h2,.srv-hero-c h1:where([data-ex-h2]){font-family:'Outfit';font-size:clamp(1.6rem,5vw,3.8rem);font-weight:800;letter-spacing:-2px;line-height:1.1;color:var(--white);margin-bottom:16px;}
.srv-hero-c p{font-size:1.1rem;color:rgba(255,255,255,.95);line-height:1.7;margin-bottom:16px;font-weight:300;}
.back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:rgba(255,255,255,.12);color:var(--white);border-radius:980px;font-size:.82rem;font-weight:500;cursor:pointer;backdrop-filter:blur(10px);transition:all .2s;border:1px solid rgba(255,255,255,.1);margin-bottom:24px;}
.back-btn:hover{background:rgba(255,255,255,.22);}
.back-btn-l{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-deep);color:var(--text-s);border-radius:980px;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;margin-bottom:24px;}
.back-btn-l:hover{background:var(--accent-g);color:var(--accent);}
.step-detail{padding:32px 40px;max-width:1280px;margin:0 auto;}
.step-detail-grid{display:grid;grid-template-columns:3fr 2fr;gap:40px;align-items:center;}
.step-detail-grid.reverse{direction:rtl;}
.step-detail-grid.reverse>*{direction:ltr;}
.sdt h2,.sdt h1:where([data-ex-h2]){font-family:'Outfit';font-size:1.8rem;font-weight:700;letter-spacing:-1px;line-height:1.15;margin-bottom:10px;}
.sdt .step-num{font-family:'Outfit';font-size:3rem;font-weight:900;color:var(--accent-g);line-height:1;margin-bottom:4px;letter-spacing:-3px;}
.sdt p{font-size:.93rem;color:var(--text-s);line-height:1.65;margin-bottom:8px;font-weight:300;}
.sdt .feat{list-style:none;margin-top:12px;}
.sdt .feat li{padding:7px 0;border-bottom:1px solid var(--div);display:flex;align-items:flex-start;gap:12px;font-size:.87rem;}
.sdt .feat li:last-child{border:none;}
.sdt .feat .ck{width:20px;height:20px;border-radius:50%;background:var(--accent-g);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);font-size:.65rem;font-weight:700;margin-top:2px;}
.sdi{border-radius:var(--rl);overflow:hidden;aspect-ratio:1/1;max-height:220px;box-shadow:var(--sh-l);background:linear-gradient(135deg,#e8f4ed,#c8e6d2);display:flex;align-items:center;justify-content:center;font-size:4rem;}
/* === SCROLL ANIMATIONS === */
.slide-r{opacity:0;transform:translateX(60px);transition:all .8s var(--tr);}.slide-r.visible{opacity:1;transform:translateX(0);}
.slide-l{opacity:0;transform:translateX(-60px);transition:all .8s var(--tr);}.slide-l.visible{opacity:1;transform:translateX(0);}
.zoom-in{opacity:0;transform:scale(.95);transition:all .8s var(--tr);}.zoom-in.visible{opacity:1;transform:scale(1);}
/* === CHATBOT === */
.chatbot-btn{position:fixed;bottom:170px;right:28px;width:54px;height:54px;border-radius:50%;background:rgba(26,107,60,0.15);color:var(--accent);border:1.5px solid rgba(26,107,60,0.45);font-size:1.3rem;cursor:pointer;box-shadow:0 2px 8px rgba(26,107,60,.1);z-index:1500;transition:all .3s;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.chatbot-btn:hover{background:var(--accent);color:#fff;transform:scale(1.08);box-shadow:0 8px 24px rgba(26,107,60,.35);}
.chatbot-panel{position:fixed;bottom:70px;right:28px;width:420px;height:calc(100vh - 100px);max-height:800px;background:var(--white);border-radius:20px;box-shadow:0 16px 48px rgba(0,0,0,.12);z-index:1500;transform:translateY(20px) scale(.95);opacity:0;visibility:hidden;transition:all .3s var(--tr);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--div);}
.chatbot-panel.open{transform:translateY(0) scale(1);opacity:1;visibility:visible;}
.cb-header{padding:0;background:linear-gradient(135deg,#1a6b3c,#2ea05a);color:#fff;border-radius:20px 20px 0 0;overflow:hidden;}
.cb-header-inner{display:flex;align-items:center;gap:12px;padding:16px 18px 14px;}
.cb-avatars{display:flex;position:relative;flex-shrink:0;}
.cb-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:2px solid rgba(255,255,255,.3);}
.cb-avatar-1{background:rgba(255,255,255,.2);}
.cb-avatar-2{background:rgba(255,255,255,.15);margin-left:-12px;}
.cb-header-text{flex:1;}
.cb-header-title{font-family:'Outfit';font-size:.92rem;font-weight:700;letter-spacing:.01em;}
.cb-header-status{font-size:.72rem;color:rgba(255,255,255,.85);margin-top:2px;display:flex;align-items:center;gap:5px;}
.cb-dot{width:7px;height:7px;background:#4ade80;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px rgba(74,222,128,.3);}
.cb-close{position:absolute;top:12px;right:14px;background:rgba(255,255,255,.15);border:none;color:#fff;cursor:pointer;font-size:.85rem;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.cb-close:hover{background:rgba(255,255,255,.3);}
.cb-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 380px);background:#f8f9fa;}
.cb-msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:.82rem;line-height:1.5;}
.cb-msg.bot{background:#fff;color:#1a1a1a;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.cb-msg.user{background:linear-gradient(135deg,#1a6b3c,#2ea05a);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.cb-options{display:flex;flex-direction:column;gap:6px;padding:10px 14px 14px;background:#f8f9fa;}
.cb-opt{padding:9px 14px;border-radius:10px;border:1.5px solid #e0e0e0;background:#fff;color:#1a1a1a;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.cb-opt:hover{border-color:#1a6b3c;color:#1a6b3c;background:#f0faf4;}
.cb-divider{text-align:center;font-size:.72rem;color:#999;padding:6px 14px;position:relative;}
.cb-divider span{background:#f8f9fa;padding:0 8px;position:relative;z-index:1;}
.cb-divider::before{content:'';position:absolute;top:50%;left:14px;right:14px;height:1px;background:#e0e0e0;}
.cb-input-row{display:flex;gap:6px;padding:8px 12px 12px;background:#f8f9fa;align-items:flex-end;}
.cb-input-row textarea{flex:1;border:1px solid #e0e0e0;border-radius:10px;padding:10px 12px;font-size:.82rem;font-family:'Outfit',sans-serif;resize:none;outline:none;background:#fff;line-height:1.4;min-height:70px;}
.cb-input-row textarea:focus{border-color:#1a6b3c;}
.cb-send-btn{background:linear-gradient(135deg,#1a6b3c,#2ea05a);color:#fff;border:none;border-radius:10px;padding:8px 12px;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap;font-family:'Outfit',sans-serif;flex-shrink:0;transition:opacity .2s;}
.cb-send-btn:disabled{opacity:.5;cursor:not-allowed;}
.cb-typing{display:flex;gap:4px;align-self:flex-start;padding:10px 14px;background:#fff;border-radius:16px;border-bottom-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.cb-typing span{width:6px;height:6px;background:#1a6b3c;border-radius:50%;animation:typingDot .8s infinite;}
.cb-typing span:nth-child(2){animation-delay:.15s;}
.cb-typing span:nth-child(3){animation-delay:.3s;}
@keyframes countPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.2);opacity:.7;}}

/* ── Widget nouvel article : halo néon + bouton LinkedIn ── */
#articleToast{
  border:1px solid rgba(46,160,90,.55) !important;
  animation:toastNeon 3.4s ease-in-out infinite;
}
@keyframes toastNeon{
  0%,100%{box-shadow:0 10px 30px rgba(0,0,0,.28),
                     0 0 16px rgba(46,160,90,.38),
                     0 16px 38px -8px rgba(46,160,90,.42);}
  50%    {box-shadow:0 10px 30px rgba(0,0,0,.28),
                     0 0 30px rgba(46,160,90,.62),
                     0 22px 56px -8px rgba(46,160,90,.68);}
}
@media(prefers-reduced-motion:reduce){
  #articleToast{animation:none;
    box-shadow:0 10px 30px rgba(0,0,0,.28),0 0 22px rgba(46,160,90,.45) !important;}
}
.li-btn{
  display:inline-flex;align-items:center;gap:7px;
  background:#0A66C2;color:#fff !important;
  font-family:'Outfit',sans-serif;font-size:.75rem;font-weight:700;
  padding:8px 14px;border-radius:8px;text-decoration:none;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 2px 10px rgba(10,102,194,.55);
  transition:background .2s,box-shadow .2s,transform .2s;
}
.li-btn:hover{background:#004182;box-shadow:0 4px 16px rgba(10,102,194,.75);transform:translateY(-1px);}
.li-btn svg{flex-shrink:0;}
.toast-date{
  font-family:'Outfit',sans-serif;font-size:.66rem;font-weight:600;
  color:rgba(255,255,255,.72);letter-spacing:.02em;white-space:nowrap;
}

@keyframes pulseBadge{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.8;transform:scale(1.05);}}
@keyframes typingDot{0%,60%,100%{transform:translateY(0);}30%{transform:translateY(-5px);}}
/* === THEMES COULEUR PAR PRODUIT BOUTIQUE === */
/* 1 — Électricité : bleu électrique */
.product-full[data-theme="elec"]{background:linear-gradient(150deg,#f8faff 0%,#eff6ff 100%);}
.product-full[data-theme="elec"] .pfi-placeholder{background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%)!important;color:#fff;}
.product-full[data-theme="elec"] .pcat{color:#2563eb;}
.product-full[data-theme="elec"] .pprice{color:#2563eb;}
.product-full[data-theme="elec"] .pbadge{background:#2563eb!important;}
.product-full[data-theme="elec"] .btn-buy{background:linear-gradient(135deg,#1d4ed8,#3b82f6)!important;}
.product-full[data-theme="elec"] .btn-buy:hover{background:linear-gradient(135deg,#1e40af,#1d4ed8)!important;}
/* 2 — Salle de bain : teal aqua */
.product-full[data-theme="sdb"]{background:linear-gradient(150deg,#f8fdff 0%,#ecfeff 100%);}
.product-full[data-theme="sdb"] .pfi-placeholder{background:linear-gradient(135deg,#0c4a6e 0%,#0891b2 100%)!important;color:#fff;}
.product-full[data-theme="sdb"] .pcat{color:#0891b2;}
.product-full[data-theme="sdb"] .pprice{color:#0891b2;}
.product-full[data-theme="sdb"] .pbadge{background:#0891b2!important;}
.product-full[data-theme="sdb"] .btn-buy{background:linear-gradient(135deg,#0c4a6e,#0891b2)!important;}
.product-full[data-theme="sdb"] .btn-buy:hover{background:linear-gradient(135deg,#0e4e72,#0a7fa0)!important;}
/* 3 — Cuisine : orange terre cuite */
.product-full[data-theme="cui"]{background:linear-gradient(150deg,#fffbf8 0%,#fff7ed 100%);}
.product-full[data-theme="cui"] .pfi-placeholder{background:linear-gradient(135deg,#7c2d12 0%,#ea580c 100%)!important;color:#fff;}
.product-full[data-theme="cui"] .pcat{color:#ea580c;}
.product-full[data-theme="cui"] .pprice{color:#ea580c;}
.product-full[data-theme="cui"] .pbadge{background:#ea580c!important;}
.product-full[data-theme="cui"] .btn-buy{background:linear-gradient(135deg,#c2410c,#ea580c)!important;}
.product-full[data-theme="cui"] .btn-buy:hover{background:linear-gradient(135deg,#9a3412,#c2410c)!important;}
/* 4 — Isolation : vert forêt chaud */
.product-full[data-theme="iso"]{background:linear-gradient(150deg,#f6fdf8 0%,#ecfdf5 100%);}
.product-full[data-theme="iso"] .pfi-placeholder{background:linear-gradient(135deg,#14532d 0%,#16a34a 100%)!important;color:#fff;}
.product-full[data-theme="iso"] .pcat{color:#15803d;}
.product-full[data-theme="iso"] .pprice{color:#15803d;}
.product-full[data-theme="iso"] .pbadge{background:#16a34a!important;}
.product-full[data-theme="iso"] .btn-buy{background:linear-gradient(135deg,#14532d,#16a34a)!important;}
.product-full[data-theme="iso"] .btn-buy:hover{background:linear-gradient(135deg,#166534,#15803d)!important;}
/* 6 — Clients rénovation : violet marketing */
.product-full[data-theme="cli"]{background:linear-gradient(150deg,#faf8ff 0%,#f5f3ff 100%);}
.product-full[data-theme="cli"] .pfi-placeholder{background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 100%)!important;color:#fff;}
.product-full[data-theme="cli"] .pcat{color:#7c3aed;}
.product-full[data-theme="cli"] .pprice{color:#7c3aed;}
.product-full[data-theme="cli"] .pbadge{background:#7c3aed!important;}
.product-full[data-theme="cli"] .btn-buy{background:linear-gradient(135deg,#4c1d95,#7c3aed)!important;}
.product-full[data-theme="cli"] .btn-buy:hover{background:linear-gradient(135deg,#5b21b6,#6d28d9)!important;}
/* SB1 — Stratégie & Développement BTP : bleu marine corporate */
.product-full[data-theme="sb1"]{background:linear-gradient(150deg,#f0f4ff 0%,#e8eeff 100%);}
.product-full[data-theme="sb1"] .pfi-placeholder{background:linear-gradient(135deg,#1a237e 0%,#3949ab 100%)!important;color:#fff;}
.product-full[data-theme="sb1"] .pcat{color:#3949ab;}
.product-full[data-theme="sb1"] .pprice{color:#3949ab;}
.product-full[data-theme="sb1"] .pbadge{background:#3949ab!important;}
.product-full[data-theme="sb1"] .btn-buy{background:linear-gradient(135deg,#1a237e,#3949ab)!important;}
.product-full[data-theme="sb1"] .btn-buy:hover{background:linear-gradient(135deg,#1a237e,#283593)!important;}
/* SB2 — Second Oeuvre : ocre brique chantier */
.product-full[data-theme="sb2"]{background:linear-gradient(150deg,#fff8f0 0%,#fff3e0 100%);}
.product-full[data-theme="sb2"] .pfi-placeholder{background:linear-gradient(135deg,#bf360c 0%,#e64a19 100%)!important;color:#fff;}
.product-full[data-theme="sb2"] .pcat{color:#e64a19;}
.product-full[data-theme="sb2"] .pprice{color:#e64a19;}
.product-full[data-theme="sb2"] .pbadge{background:#e64a19!important;}
.product-full[data-theme="sb2"] .btn-buy{background:linear-gradient(135deg,#bf360c,#e64a19)!important;}
.product-full[data-theme="sb2"] .btn-buy:hover{background:linear-gradient(135deg,#b71c1c,#bf360c)!important;}
/* === WHATSAPP === */
.wa-btn{position:fixed;bottom:116px;right:28px;width:54px;height:54px;border-radius:50%;background:rgba(37,211,102,0.18);color:#128c3c;border:1.5px solid rgba(37,211,102,0.55);font-size:1.5rem;cursor:pointer;box-shadow:0 2px 8px rgba(37,211,102,.12);z-index:1500;transition:all .3s;display:flex;align-items:center;justify-content:center;text-decoration:none;backdrop-filter:blur(4px);}
.wa-btn:hover{background:#25d366;color:#fff;transform:scale(1.08);box-shadow:0 8px 24px rgba(37,211,102,.35);}
/* === STAR RATINGS & REVIEWS MODAL === */
.product-rating{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:14px;cursor:pointer;padding:10px 0 0;border-top:1px solid var(--div);}
.product-rating:hover .rating-link{text-decoration:underline;}
.stars-display{color:#f59e0b;font-size:.95rem;letter-spacing:1.5px;}
.rating-score{font-family:'Outfit',sans-serif;font-weight:700;font-size:.9rem;color:var(--text);}
.rating-count{font-size:.76rem;color:var(--text-l);}
.rating-link{font-size:.74rem;color:var(--accent);font-weight:600;margin-left:auto;}
.rev-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:3000;display:none;align-items:flex-end;justify-content:center;}
.rev-overlay.open{display:flex;}
.rev-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:680px;max-height:82vh;overflow-y:auto;padding:24px 24px 56px;}
.rev-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.rev-modal-head h3,
.rev-modal-head ss-h3{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--text);line-height:1.3;}
.rev-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-l);padding:4px;line-height:1;}
.rev-aggregate{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--bg-deep);border-radius:12px;margin-bottom:20px;}
.rev-big-score{font-family:'Outfit';font-size:2.8rem;font-weight:800;line-height:1;color:var(--text);}
.rev-big-stars{color:#f59e0b;font-size:1.2rem;display:block;margin-top:2px;}
.rev-big-total{font-size:.76rem;color:var(--text-l);margin-top:3px;}
.rev-card{padding:14px 0;border-bottom:1px solid var(--div);}
.rev-card:last-of-type{border-bottom:none;}
.rev-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;}
.rev-author{font-weight:600;font-size:.88rem;display:block;}
.rev-role{font-size:.72rem;color:var(--text-l);display:block;}
.rev-stars-sm{color:#f59e0b;font-size:.82rem;}
.rev-date{font-size:.7rem;color:var(--text-l);display:block;text-align:right;}
.rev-text{font-size:.85rem;color:var(--text-s);line-height:1.65;margin-top:4px;}
.rev-cta{margin-top:20px;padding:14px 16px;background:var(--accent-g);border-radius:10px;text-align:center;}
.rev-cta p{font-size:.82rem;color:var(--text-s);margin-bottom:8px;}
/* === MOBILE BOUTIQUE SNAP CARDS === */
.mobile-cards-snap{display:none;}
@media(max-width:768px){
  .svc-header{padding:10px 12px!important;}
  .svc-header-left h3,
  .svc-header-left ss-h3{font-size:.82rem!important;}
  .svc-icon{font-size:1.1rem!important;width:28px!important;height:28px!important;}
  .service-accordion{margin-bottom:4px!important;}
  #page-home .section, #page-home section { padding-left:8px!important; padding-right:8px!important; }
  #page-home [style*="padding:0 24px"] { padding-left:8px!important; padding-right:8px!important; }
  #page-home [style*="max-width:1100px"] { padding-left:8px!important; padding-right:8px!important; }
  #page-home [style*="max-width:960px"] { padding-left:8px!important; padding-right:8px!important; }
  #page-home [style*="padding:28px"] { padding-left:8px!important; padding-right:8px!important; }
  .mobile-cards-snap{display:block;scroll-snap-type:y mandatory;overflow-y:scroll;height:calc(100svh - 148px);margin-top:104px;-webkit-overflow-scrolling:touch;}
  .mobile-card{scroll-snap-align:start;min-height:calc(100svh - 148px);display:flex;flex-direction:column;justify-content:flex-start;padding:10px 22px 16px;position:relative;gap:5px;overflow:hidden;}
  .mc-badge{display:inline-block;padding:4px 10px;border-radius:980px;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:#fff;width:fit-content;margin-bottom:2px;}
  .mc-cat{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
  .mc-title{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;line-height:1.2;margin:0;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;}
  .mc-detail-link{font-size:.72rem;font-weight:600;opacity:.6;cursor:pointer;display:inline-flex;align-items:center;gap:4px;}
  .mc-desc{font-size:.80rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;}
  .mc-price{font-family:'Outfit',sans-serif;font-size:1.45rem;font-weight:800;margin:0;}
  .mc-rating{display:flex;align-items:center;gap:5px;cursor:pointer;}
  .mc-scroll-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:.63rem;color:rgba(0,0,0,.28);letter-spacing:.8px;white-space:nowrap;animation:mcB 1.8s ease-in-out infinite;}
  .mc-scroll-hint-light{color:rgba(255,255,255,.35);}
  @keyframes mcB{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(5px);}}
  #page-shop.has-mobile-cards>.product-full,
  #page-shop.has-mobile-cards>.digital-offer,
  #page-shop.has-mobile-cards>.trust,
  #page-shop.has-mobile-cards>.btp-crosssell,
  #page-shop.has-mobile-cards>.shop-hero{display:none!important;}
  .mc-btp{background:linear-gradient(135deg,#0a1e3d 0%,#0f2f5a 60%,#0a1e3d 100%);justify-content:center!important;gap:11px!important;text-align:center;align-items:center;}
  .mc-btp *{word-spacing:normal;}
  .mc-btp .mc-btp-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(0,113,227,.18);border:1px solid rgba(0,113,227,.4);border-radius:980px;padding:5px 14px;font-size:.63rem;font-weight:700;color:#60a5fa;letter-spacing:.06em;text-transform:uppercase;}
  .mc-btp h3,
  .mc-btp ss-h3{font-family:'Outfit',sans-serif;font-size:1.35rem;font-weight:800;color:#fff;letter-spacing:-.6px;line-height:1.2;margin:0;}
  .mc-btp p{font-size:.84rem;color:rgba(255,255,255,.72);line-height:1.55;margin:0;max-width:310px;text-align:left!important;word-spacing:normal;}
  .mc-btp ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;width:100%;max-width:316px;}
  .mc-btp li{
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
    column-gap:12px;row-gap:2px;
    background:rgba(255,255,255,.05);border:1px solid rgba(96,165,250,.22);
    border-radius:12px;padding:9px 13px;text-align:left!important;word-spacing:normal;
  }
  .mb-pages{grid-column:1/-1;font-size:.63rem;font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;color:rgba(147,197,253,.72);}
  .mb-titre{grid-column:1;grid-row:2;font-size:.79rem;font-weight:600;color:rgba(255,255,255,.9);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
  .mb-prix{grid-column:2;grid-row:2/4;align-self:center;color:#93c5fd;font-weight:800;
    font-size:.98rem;white-space:nowrap;letter-spacing:-.3px;}
  .mb-prix .ttc-mini{font-size:.55em;font-weight:600;opacity:.6;margin-left:2px;vertical-align:.1em;letter-spacing:0;}
  .mb-extrait{grid-column:1;grid-row:3;justify-self:start;display:inline-flex;align-items:center;gap:4px;
    font-size:.68rem;font-weight:700;color:#60a5fa;text-decoration:none;
    border-bottom:1px dotted rgba(96,165,250,.5);padding-bottom:1px;margin-top:1px;}
  .mb-extrait:active{color:#bfdbfe;}
  .mc-btp .mc-btp-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#0071e3,#005bb5);color:#fff;text-decoration:none;border-radius:980px;padding:13px 26px;font-family:'Outfit',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.04em;box-shadow:0 5px 0 #003d80,0 8px 22px rgba(0,113,227,.45);margin-top:6px;}
  .mc-btp .mc-btp-legal{font-size:.6rem;color:rgba(255,255,255,.4);line-height:1.4;max-width:316px;margin:4px 0 0;text-align:center;}
}
/* === MOBILE PRODUCT BOTTOM SHEET === */
.mc-sheet-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9000;backdrop-filter:blur(3px);}
.mc-sheet-overlay.open{display:block;}
.mc-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:24px 24px 0 0;padding:28px 24px 40px;z-index:9001;max-height:82vh;overflow-y:auto;transform:translateY(100%);transition:transform .3s cubic-bezier(.32,1,.23,1);}
.mc-sheet.open{transform:translateY(0);}
.mc-sheet-handle{width:40px;height:4px;background:rgba(0,0,0,.15);border-radius:2px;margin:0 auto 20px;}
.mc-sheet-badge{display:inline-block;padding:4px 10px;border-radius:980px;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:#fff;margin-bottom:10px;}
.mc-sheet-title{font-family:'Outfit',sans-serif;font-size:1.2rem;font-weight:700;line-height:1.25;margin-bottom:10px;color:#111;}
.mc-sheet-desc{font-size:.88rem;line-height:1.65;color:#444;margin-bottom:14px;}
.mc-sheet-checklist{list-style:none;margin:0 0 16px;padding:0;}
.mc-sheet-checklist li{font-size:.83rem;color:#333;padding:5px 0;border-bottom:1px solid rgba(0,0,0,.06);display:flex;align-items:flex-start;gap:8px;}
.mc-sheet-checklist li::before{content:'✓';color:var(--accent);font-weight:700;flex-shrink:0;}
.mc-sheet-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.mc-sheet-meta span{background:#f4f4f8;border-radius:980px;padding:4px 10px;font-size:.72rem;color:#555;}
.mc-sheet-price{font-family:'Outfit',sans-serif;font-size:1.8rem;font-weight:800;color:#111;margin-bottom:14px;}
.mc-sheet-price small{font-size:.7rem;font-weight:400;color:#888;margin-left:4px;}
.mc-sheet-btn{display:block;width:100%;padding:15px;border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;text-align:center;}
/* === FACEBOOK SOCIAL BAR === */
/* 4 boutons dans la social bar */
.social-bar-btn{width:25%!important;}
/* === IMMERSIVE === */
.immersive{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg-dark);}
.immersive::before{content:'';position:absolute;top:50%;left:50%;width:600px;height:600px;background:radial-gradient(circle,rgba(26,107,60,.2),transparent 70%);transform:translate(-50%,-50%);pointer-events:none;animation:breathe 6s ease-in-out infinite;}
@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.6;}50%{transform:translate(-50%,-50%) scale(1.3);opacity:1;}}
.immersive-content{position:relative;z-index:1;text-align:center;max-width:680px;padding:40px;}
.immersive-content h2,.immersive-content h1:where([data-ex-h2]){font-family:'Outfit';font-size:clamp(1.5rem,4.5vw,3.5rem);font-weight:800;color:var(--white);letter-spacing:-2px;line-height:1.08;margin-bottom:18px;}
.immersive-content p{font-size:1.1rem;color:rgba(255,255,255,.92);line-height:1.65;margin-bottom:36px;}
/* === LEGAL === */
.legal-content{max-width:800px;margin:0 auto;padding:140px 40px 80px;}
/* ════════ CGV : titre de page et date ════════ */
.legal-content h2.legal-page-title,.legal-content h1:where([data-ex-h2]).legal-page-title{font-family:'Outfit',sans-serif;font-size:clamp(1.7rem,3.4vw,2.25rem);font-weight:800;letter-spacing:-.9px;line-height:1.15;margin:10px 0 12px;}
.legal-content .legal-maj{font-size:.82rem;color:var(--text-l);margin:0 0 26px;padding-bottom:20px;border-bottom:1px solid var(--div);}

/* ════════ CGV MOBILE : compactage et repli des articles ════════ */
@media(max-width:768px){
  #page-cgv .legal-content{padding:104px 16px 48px!important;}
  #page-cgv p,#page-cgv li{font-size:.79rem!important;line-height:1.55!important;text-align:left!important;}
  #page-cgv p{margin:0 0 9px!important;}
  #page-cgv h2.cgv-toggle{
    font-size:.88rem!important;font-weight:700;line-height:1.3;
    margin:0!important;padding:13px 34px 13px 0;
    border-top:1px solid var(--div);cursor:pointer;position:relative;display:block;color:var(--text);
  }
  #page-cgv h2.cgv-toggle::after{
    content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);
    font-size:1.15rem;font-weight:400;color:var(--accent);line-height:1;
  }
  #page-cgv h2.cgv-toggle.ouvert::after{content:'−';}
  #page-cgv h2.cgv-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  #page-cgv .cgv-corps{display:none;padding:2px 0 14px;}
  #page-cgv .cgv-corps.ouvert{display:block;}
  #page-cgv .btn-p{padding:10px 18px!important;font-size:.82rem!important;margin-bottom:18px!important;}
  #page-cgv h2[id^="ss-art-"]{scroll-margin-top:96px;}
}

.legal-content h2[id^="ss-art-"],.legal-content h1:where([data-ex-h2])[id^="ss-art-"]{scroll-margin-top:110px;}
@media(max-width:768px){
  .legal-content h2.legal-page-title,.legal-content h1:where([data-ex-h2]).legal-page-title{font-size:1.45rem;letter-spacing:-.5px;}
}

.legal-content h1:not(:where([data-ex-h2])){font-family:'Outfit';font-size:2.5rem;font-weight:800;letter-spacing:-1.5px;margin-bottom:40px;}
.legal-content h2,.legal-content h1:where([data-ex-h2]){font-family:'Outfit';font-size:1.3rem;font-weight:700;margin:32px 0 12px;}
.legal-content p{font-size:.9rem;color:var(--text-s);line-height:1.8;margin-bottom:16px;}
.legal-content ul{font-size:.9rem;color:var(--text-s);line-height:1.75;margin:0 0 16px 0;padding-left:20px;}
.legal-content ul li{margin-bottom:6px;list-style:disc;}
/* === PHOTO BANNER === */
.photo-banner{position:relative;width:100%;min-height:420px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-dark);}
.photo-banner-content{position:relative;z-index:2;text-align:center;max-width:720px;padding:80px 40px;}
.photo-banner-content h2,.photo-banner-content h1:where([data-ex-h2]){font-family:'Outfit';font-size:clamp(1.3rem,4vw,2.8rem);font-weight:800;letter-spacing:-1.5px;line-height:1.1;margin-bottom:16px;color:#fff;}
.photo-banner-content p{font-size:1.1rem;line-height:1.7;color:rgba(255,255,255,.85);margin-bottom:24px;}
/* === DIGITAL OFFER === */
.digital-offer{background:linear-gradient(135deg,#0d1f12 0%,#122e1c 50%,#1a4028 100%);padding:100px 40px;position:relative;overflow:hidden;}
.digital-offer::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(26,107,60,.15),transparent 70%);pointer-events:none;}
.do-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.do-text .stag{color:rgba(255,255,255,.4);}
.do-text h2,.do-text h1:where([data-ex-h2]){font-family:'Outfit';font-size:2.2rem;font-weight:800;color:var(--white);letter-spacing:-1.5px;line-height:1.1;margin-bottom:16px;}
.do-text p{color:rgba(255,255,255,.92);font-size:1rem;line-height:1.7;margin-bottom:24px;}
.do-features{list-style:none;}
.do-features li{padding:8px 0;color:rgba(255,255,255,.95);font-size:.88rem;display:flex;align-items:center;gap:10px;}
.do-features li::before{content:'✓';color:var(--green);font-weight:700;}
.do-price .price{font-family:'Outfit';font-size:2.8rem;font-weight:800;color:var(--white);letter-spacing:-2px;}
.do-price .price-sub{font-size:.82rem;color:rgba(255,255,255,.4);}
.do-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:var(--rl);padding:36px;backdrop-filter:blur(12px);}
.do-card h3,
.do-card ss-h3{font-family:'Outfit';font-size:1.2rem;font-weight:700;color:var(--white);margin-bottom:10px;}
.do-card p{font-size:.85rem;color:rgba(255,255,255,.9);line-height:1.6;margin-bottom:18px;}
/* === CAPTCHA === */
.captcha-box{display:flex;align-items:center;gap:12px;background:var(--bg-deep);border-radius:12px;padding:10px 16px;margin:10px 0;border:1.5px solid var(--div);}
.captcha-box .captcha-q{font-family:'Outfit';font-size:.85rem;font-weight:600;white-space:nowrap;}
.captcha-box input{width:70px;padding:8px 12px;border:1.5px solid var(--div);border-radius:8px;font-size:.88rem;text-align:center;outline:none;}
.captcha-box input:focus{border-color:var(--accent);}
/* === SEARCH === */
.search-btn{font-size:1rem;color:var(--text-s);cursor:pointer;padding:0 10px;display:flex;align-items:center;transition:color .2s;}
.search-btn:hover{color:var(--accent);}
.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(12px);z-index:2000;opacity:0;visibility:hidden;transition:all .3s;display:flex;align-items:flex-start;justify-content:center;padding-top:120px;}
.search-overlay.open{opacity:1;visibility:visible;}
.search-box{background:var(--white);border-radius:20px;width:90%;max-width:640px;box-shadow:var(--sh-l);overflow:hidden;}
.search-input-wrap{display:flex;align-items:center;padding:20px 24px;gap:14px;border-bottom:1px solid var(--div);}
.search-input-wrap input{flex:1;border:none;outline:none;font-family:'SF Pro Display';font-size:1.1rem;color:var(--text);background:transparent;}
.search-results{max-height:320px;overflow-y:auto;padding:12px;}
.search-result-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;cursor:pointer;transition:background .15s;}
.search-result-item:hover{background:var(--accent-g);}
.sr-icon{width:36px;height:36px;border-radius:10px;background:var(--bg-deep);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.sr-title{font-weight:500;font-size:.9rem;}
.sr-desc{font-size:.75rem;color:var(--text-l);margin-top:2px;}
/* === PRESENTATION === */
.pres-hero{display:flex;align-items:center;justify-content:center;text-align:center;padding:110px 40px 28px;position:relative;overflow:hidden;background:linear-gradient(180deg,#f0f7f3 0%,var(--bg) 100%);}
.bm-section{padding:28px 40px 40px;max-width:1100px;margin:0 auto;}
.bm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:36px;}
.bm-card{background:var(--card);border-radius:14px;padding:18px 20px;box-shadow:var(--sh-s);border:1px solid var(--card-b);display:flex;flex-direction:row;align-items:flex-start;gap:16px;text-align:left;transition:all .3s var(--tr);}
.bm-card:hover{transform:translateY(-3px);box-shadow:var(--sh-m);}
.bm-card .bm-icon{font-size:1.8rem;flex-shrink:0;margin-top:2px;}
.bm-card-body{display:flex;flex-direction:column;}
.bm-card h3,
.bm-card ss-h3{font-family:'Outfit';font-size:1rem;font-weight:700;margin-bottom:4px;letter-spacing:-.3px;}
.bm-card p{font-size:.83rem;color:var(--text-s);line-height:1.5;margin:0;}
/* === MOBILE === */
/* old hamburger removed */
/* old mobile-menu removed */
.mobile-cta{display:block;margin-top:20px;text-align:center;background:var(--accent);color:#fff!important;border-radius:980px;padding:16px 32px!important;font-size:1rem!important;text-transform:none!important;}
@media (max-width:968px){
  .nav-links{display:none;}
  .metrics-grid{grid-template-columns:repeat(2,1fr);}
  .services-grid{grid-template-columns:1fr;}
  .audiences-grid{grid-template-columns:1fr;}
  .blog-grid{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
  .method-recap-grid{grid-template-columns:repeat(2,1fr);}
  .method-recap-grid::before{display:none;}
  .method-recap{padding:40px var(--px-m) 10px;}
  .mr-card{padding:16px 14px 14px;gap:7px;}
  .mr-icon{width:52px;height:52px;font-size:1.4rem;}
  .mr-title{font-size:.9rem;}
  .mr-sub{font-size:.75rem;}
  .lead-inner{grid-template-columns:1fr;}
  .do-inner{grid-template-columns:1fr;}
  .step-detail-grid{grid-template-columns:1fr;}
  .step-detail-grid.reverse{direction:ltr;}
  .bm-grid{grid-template-columns:1fr;gap:10px;}
  .bm-section{padding:40px var(--px-m);}
  .bm-card{padding:14px var(--px-m);}
  .product-full{flex-direction:column!important;min-height:auto;}
  .product-full-img{flex:none;width:100%;height:300px;}
  .product-full-info{padding:28px var(--px-m);}
  .form-row{grid-template-columns:1fr;}
  .flg{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;}
  .footer-top{flex-direction:column;gap:28px;}
  /* VALEUR UNIQUE pour toutes les sections — var(--px-m) = 16px */
  .section{padding:72px var(--px-m);}
  .hero{padding:80px var(--px-m) 48px;min-height:auto;}
  .audiences{padding:80px var(--px-m);}
  .lead-section{padding:64px var(--px-m);}
  .shop-hero{padding:80px var(--px-m) 32px;}
  .contact-form{padding:24px var(--px-m);}
  #avisFormWrap{padding:20px var(--px-m)!important;}
  .carousel-section{padding:72px 0;}
  .carousel-section .section-header{padding:0 var(--px-m);}
  .carousel-wrap{padding:0 var(--px-m);}
  .btp-bridge{margin:0 var(--px-m) 48px;padding:40px var(--px-m);}
  .reco-encart{padding:18px var(--px-m);gap:14px;margin-left:var(--px-m);margin-right:var(--px-m);}
  .reco-logo{width:64px;}
  .form-group{margin-bottom:8px!important;}
  .form-group label{margin-bottom:3px!important;font-size:.78rem!important;}
  .form-group input,.form-group select,.form-group textarea{padding:7px 12px!important;border-radius:8px!important;font-size:.86rem!important;}
  .form-group textarea{min-height:60px!important;height:70px!important;}
  .flg{gap:8px 12px;}
  .cart-panel{width:100%;max-width:420px;}
  .tcard{width:clamp(240px,78vw,340px);}
  .social-bar{height:56px;}
  body{padding-bottom:56px;}
  .nav-slogan{display:none;}
  .nav-inner{padding:0 12px;}
  .nav-logo{font-size:.58rem!important;letter-spacing:.06em!important;padding:3px 7px!important;}
  .section-header{margin-bottom:48px;}
  [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:1fr!important;}
  /* métriques */
  .metrics{padding:40px var(--px-m);}
  .metric-item{padding:24px 12px;}
  .metric-number{font-size:2.2rem;letter-spacing:-1px;}
  .metric-label{font-size:.78rem;}
  /* services */
  .svc-header{padding:14px var(--px-m);}
  .svc-icon{width:32px;height:32px;border-radius:8px;font-size:1rem;margin-right:10px;}
  .svc-header h3,
  .svc-header ss-h3{font-size:.88rem;}
  .services-grid{gap:6px;}
  .svc-content{padding:0 var(--px-m) var(--px-m);}
  /* boutique */
  .shop-hero h1:not(:where([data-ex-h2])){font-size:1.6rem;letter-spacing:-1px;margin-bottom:8px;}
  .shop-hero p{font-size:.85rem;}
  .product-full-img{min-height:0!important;max-height:none!important;height:auto!important;padding:26px 20px 8px!important;}
  .pfi-couv{max-height:210px;border-radius:8px;}
  .pfi-feuille{bottom:14px;font-size:.66rem;padding:7px 14px;}
  .product-full-info{padding:8px var(--px-m) 26px!important;}
  .product-full-img .pfi-placeholder{font-size:2.4rem;min-height:120px;max-height:140px;}
  .product-full-info{padding:var(--px-m);}
  .product-full-info h2,.product-full-info h1:where([data-ex-h2]){font-size:1.1rem;letter-spacing:-.5px;margin-bottom:6px;}
  .product-full-info .pdesc{font-size:.8rem;line-height:1.5;margin-bottom:10px;}
  .product-full-info .pmeta{gap:10px;margin-bottom:12px;}
  .product-full-info .pmeta-item{font-size:.72rem;}
  .product-full-info .pprice{font-size:1.6rem;letter-spacing:-1px;margin-bottom:4px;}
  .product-full-info .pcat{font-size:.64rem;margin-bottom:5px;}
  /* sticky bar masquée */
  .sticky-guide{display:none!important;}
  /* wrappers avec padding 40px inline → standardisés */
  .inner-pad{padding-left:var(--px-m)!important;padding-right:var(--px-m)!important;}
  .real-grid{padding:0 var(--px-m)!important;grid-template-columns:1fr 1fr;gap:12px!important;}
  /* Sur mobile <600px → 1 colonne (règle dans le media 600px prime) */
  .carousel-wrap{padding:0 var(--px-m)!important;}
  /* pourquoi nous */
  .reassurance-grid{grid-template-columns:1fr 1fr;gap:8px;}
  /* pages zones */
  .zone-hero{padding:88px var(--px-m) 48px;}
  .zone-content{padding:48px var(--px-m);}
  .zone-section{padding:48px var(--px-m);}
  /* pages articles */
  .art-body{padding:40px var(--px-m);}
  .art-hero{padding:100px var(--px-m) 48px;}
}
@media (max-width:520px){
  .metrics-grid{grid-template-columns:1fr 1fr;}
  .method-recap-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .mr-card{padding:14px 10px 12px;gap:6px;border-radius:14px;}
  .mr-icon{width:44px;height:44px;font-size:1.2rem;}
  .mr-num{font-size:.62rem;}
  .mr-title{font-size:.82rem;}
  .mr-sub{font-size:.7rem;}
  .mr-link{font-size:.65rem;}
  .trust-grid{grid-template-columns:1fr 1fr;}
  .hero{padding:110px var(--px-m) 28px;min-height:auto;}
  .hero-badge{display:none!important;}
  .hero h1:not(:where([data-ex-h2])){letter-spacing:-1.5px;margin-bottom:14px;}
  .hero p{margin-bottom:24px;}
  .hero-buttons{flex-direction:column;align-items:center;gap:10px;}
  .hero-buttons .btn-p{width:80%;max-width:280px;}
  .hero-buttons .btn-s{width:80%;max-width:280px;justify-content:center;white-space:nowrap;font-size:.78rem;}
  .btn-p,.btn-s,.btn-d{width:100%;max-width:280px;justify-content:center;padding:13px 28px;font-size:.88rem;}
  .section{padding:56px var(--px-m);}
  .section-header h2,.section-header h1:where([data-ex-h2]){font-size:1.8rem;letter-spacing:-0.8px;}
  h2[style*="clamp(1.8rem"],h1:where([data-ex-h2])[style*="clamp(1.8rem"]{font-size:1.8rem!important;}
  .art-newsletter{margin:16px 0 0!important;padding:16px 12px!important;border-radius:0!important;border-left:none!important;border-right:none!important;}
  .art-newsletter [id^="nl-form"]{flex-direction:column!important;flex-wrap:nowrap!important;gap:8px!important;align-items:stretch!important;}
  .art-newsletter input{min-width:0!important;max-width:none!important;width:100%!important;font-size:.88rem!important;padding:11px 14px!important;box-sizing:border-box!important;flex:none!important;}
  .art-newsletter button{width:100%!important;font-size:.88rem!important;padding:11px 14px!important;border-radius:8px!important;white-space:nowrap!important;}
  .services-grid{gap:14px;}
  .btp-bridge{padding:32px var(--px-m);margin-left:var(--px-m);margin-right:var(--px-m);}
  .btp-bridge-text h2,.btp-bridge-text h1:where([data-ex-h2]){font-size:1.6rem;}
  .reco-encart{margin-left:var(--px-m);margin-right:var(--px-m);}
  .nav-cta{display:none;}
  /* pages zones */
  .zone-hero{padding:88px var(--px-m) 40px;}
  .zone-content{padding:40px var(--px-m);}
  .zone-section{padding:40px var(--px-m);}
}

@media (max-width:400px){
  .metrics{padding:32px var(--px-m);}
  .metrics-grid{gap:1px;}
  .metric-item{padding:20px 8px;}
  .metric-number{font-size:1.9rem;letter-spacing:-.5px;}
  .metric-label{font-size:.72rem;}
  .reassurance-grid{grid-template-columns:1fr 1fr;gap:6px;}
  .reassurance-pill{padding:8px 10px;}
  .rp-text{font-size:.63rem;}
}
/* === VIDEO VIGNETTES + LIGHTBOX RÉALISATIONS === */
.vid-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:780px;margin:0 auto;}
.vid-thumb{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;border:1px solid rgba(255,255,255,.08);}
.vid-thumb:hover{transform:translateY(-3px);box-shadow:0 10px 32px rgba(0,0,0,.4);}
.vid-thumb-play{position:absolute;bottom:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;transition:background .2s;}
.vid-thumb:hover .vid-thumb-play{background:var(--accent);border-color:var(--accent);}
.real-thumb-badge{position:absolute;top:8px;left:8px;font-size:.56rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.95);background:rgba(255,255,255,.12);backdrop-filter:blur(4px);border-radius:6px;padding:3px 7px;}
.real-thumb-title{position:absolute;top:50%;left:10px;right:50px;transform:translateY(-60%);font-family:'Outfit',sans-serif;font-size:.82rem;font-weight:700;color:#fff;line-height:1.25;text-shadow:0 1px 6px rgba(0,0,0,.6);}
.real-thumb-meta{position:absolute;bottom:10px;left:10px;font-size:.58rem;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:.04em;}
/* Overlay */
.vid-light-overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:2000;opacity:0;visibility:hidden;transition:all .25s;}
.vid-light-overlay.open{opacity:1;visibility:visible;}
/* Lightbox réalisation */
.real-light-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-48%) scale(.95);z-index:2001;width:min(94vw,760px);max-height:88vh;border-radius:20px;overflow-y:auto;background:var(--card);box-shadow:0 32px 80px rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:all .28s cubic-bezier(.25,.46,.45,.94);}
.real-light-box.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
.vid-light-close{position:sticky;float:right;top:12px;right:12px;z-index:10;background:var(--bg-deep);border:none;color:var(--text);width:32px;height:32px;border-radius:50%;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;margin:12px 12px 0 0;}
.vid-light-close:hover{background:var(--accent);color:#fff;}
.real-light-inner{padding:0 28px 32px;}
.rl-hero{height:140px;border-radius:14px;margin-bottom:20px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 20px;position:relative;overflow:hidden;}
.rl-hero-badge{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);background:rgba(255,255,255,.15);backdrop-filter:blur(4px);border-radius:6px;padding:4px 10px;margin-bottom:7px;display:inline-block;}
.rl-hero h3,
.rl-hero ss-h3{font-family:'Outfit',sans-serif;font-size:1.4rem;font-weight:800;color:#fff;line-height:1.15;text-shadow:0 2px 8px rgba(0,0,0,.4);}
.rl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px;}
.rl-stat{background:var(--bg-deep);border-radius:10px;padding:12px 8px;text-align:center;}
.rl-stat-val{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:800;color:var(--accent);display:block;line-height:1;}
.rl-stat-lbl{font-size:.57rem;font-weight:600;color:var(--text-l);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;display:block;line-height:1.2;}
.rl-ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;}
.rl-ba-col{border-radius:10px;padding:14px 16px;}
.rl-ba-col.before{background:#fff5f5;border:1px solid rgba(200,40,40,.1);}
.rl-ba-col.after{background:#f0faf4;border:1px solid rgba(26,107,60,.15);}
.rl-ba-label{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;display:block;}
.rl-ba-col.before .rl-ba-label{color:#c0392b;}
.rl-ba-col.after .rl-ba-label{color:var(--accent);}
.rl-ba-list{list-style:none;padding:0;margin:0;}
.rl-ba-list li{font-size:.78rem;color:var(--text-s);padding:3px 0 3px 16px;position:relative;line-height:1.4;}
.rl-ba-col.before .rl-ba-list li::before{content:'✗';position:absolute;left:0;color:#c0392b;font-size:.7rem;}
.rl-ba-col.after .rl-ba-list li::before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:700;font-size:.7rem;}
.rl-desc{font-size:.87rem;color:var(--text-s);line-height:1.7;margin-bottom:16px;}
.rl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;}
.rl-tag{font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;background:var(--accent-g);color:var(--accent);border-radius:6px;padding:4px 10px;}
.rl-cta{display:block;width:100%;margin-top:20px;text-align:center;background:linear-gradient(135deg,var(--accent),#2ea05a);color:#fff;border:none;border-radius:980px;padding:13px;font-family:'Josefin Sans',sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:opacity .2s;}
.rl-cta:hover{opacity:.88;}
@media(max-width:600px){
  .vid-thumbs{gap:8px;}
  /* Lightbox compacte mobile */
  .real-light-box{width:96vw;border-radius:16px;max-height:92vh;}
  .real-light-inner{padding:0 12px 16px;}
  .vid-light-close{width:28px;height:28px;font-size:.75rem;margin:8px 8px 0 0;}
  .rl-hero{height:80px;border-radius:10px;margin-bottom:10px;padding:10px 12px;}
  .rl-hero-badge{font-size:.52rem;padding:2px 7px;margin-bottom:4px;}
  .rl-hero h3,
  .rl-hero ss-h3{font-size:.88rem;}
  .rl-stats{grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px;}
  .rl-stat{padding:7px 4px;border-radius:7px;}
  .rl-stat-val{font-size:.82rem;}
  .rl-stat-lbl{font-size:.5rem;margin-top:2px;}
  .rl-ba{gap:6px;margin-bottom:10px;}
  .rl-ba-col{padding:8px 10px;border-radius:8px;}
  .rl-ba-label{font-size:.54rem;margin-bottom:5px;}
  .rl-ba-list li{font-size:.68rem;padding:2px 0 2px 13px;line-height:1.3;}
  .rl-desc{font-size:.76rem;line-height:1.55;margin-bottom:10px;}
  .rl-tags{gap:4px;margin-bottom:2px;}
  .rl-tag{font-size:.54rem;padding:3px 7px;}
  .rl-cta{margin-top:12px;padding:10px;font-size:.68rem;}
  .real-thumb-title{font-size:.72rem;}
}
/* === PLATEFORMES GRID === */
.platforms-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  width:100%;
}
.platform-btn{
  display:flex;align-items:center;gap:8px;
  background:var(--card);border:1px solid var(--card-b);
  border-radius:12px;padding:10px 14px;
  text-decoration:none;
  transition:transform .2s,box-shadow .2s;
  box-shadow:var(--sh-s);
  min-width:0;
}
.platform-text{display:flex;flex-direction:column;text-align:left;line-height:1;min-width:0;overflow:hidden;}
.platform-name{font-size:.72rem;font-weight:700;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.platform-sub{font-size:.60rem;color:var(--text-l);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:900px){
  .platforms-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:600px){
  .platforms-grid{
    grid-template-columns:1fr;
    gap:8px;
    width:100%;
    max-width:300px;
    margin-left:auto;
    margin-right:auto;
  }
  .platform-btn{
    padding:11px 16px;
    gap:12px;
    border-radius:12px;
    width:100%;
    box-sizing:border-box;
    justify-content:flex-start;
  }
  .platform-name{font-size:.76rem;}
  .platform-sub{font-size:.62rem;}
}
/* Description et CTA — masqués sur desktop */
.real-thumb-desc{display:none;font-size:.8rem;color:rgba(255,255,255,.95);line-height:1.5;margin-top:8px;}
.real-thumb-cta{display:none;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.15);border-radius:980px;padding:6px 14px;margin-top:10px;width:fit-content;border:1px solid rgba(255,255,255,.25);}
/* === RÉALISATIONS MOBILE — 1 colonne === */
@media(max-width:600px){
  .vid-thumbs{grid-template-columns:1fr!important;gap:14px;}
  .vid-thumb.real-thumb{
    aspect-ratio:auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-end!important;
    padding:16px var(--px-m) 18px!important;
    border-radius:16px!important;
    min-height:160px!important;
    position:relative;
  }
  .real-thumb-badge{position:absolute!important;top:12px;left:var(--px-m);font-size:.6rem;}
  .real-thumb-title{font-size:1.15rem;font-weight:800;line-height:1.2;margin-bottom:2px;color:#fff;}
  .real-thumb-meta{font-size:.75rem;color:rgba(255,255,255,.95);margin-bottom:0;}
  .real-thumb-desc{display:block!important;font-size:.76rem;color:rgba(255,255,255,.95);margin-top:6px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .real-thumb-cta{display:inline-block!important;margin-top:12px;font-size:.66rem;}
  .vid-thumb-play{display:none!important;}
  /* Lightbox compacte */
  .real-light-box{width:96vw;border-radius:16px;max-height:92vh;}
  .real-light-inner{padding:0 var(--px-m) 24px;}
  .rl-hero{height:80px;}
  .rl-hero h3,
  .rl-hero ss-h3{font-size:1rem;}
  .rl-stats{grid-template-columns:repeat(4,1fr);gap:4px;}
  .rl-stat{padding:8px 4px;}
  .rl-stat-val{font-size:.85rem;}
  .rl-stat-lbl{font-size:.48rem;}
}
/* === GRILLE RÉASSURANCE === */
.reassurance-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.reassurance-pill{
  display:flex;align-items:center;gap:9px;
  background:var(--bg-deep);
  border:1px solid var(--div);
  border-radius:12px;
  padding:11px 16px;
  transition:border-color .2s,box-shadow .2s;
}
.reassurance-pill:hover{border-color:var(--accent);box-shadow:0 2px 12px var(--accent-g);}
.rp-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--green);flex-shrink:0;
  box-shadow:0 0 6px rgba(48,209,88,.5);
}
.rp-text{
  font-size:.74rem;font-weight:600;
  color:var(--text-s);letter-spacing:.01em;
  line-height:1.3;
}
@media(max-width:768px){
  .reassurance-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .reassurance-pill{padding:9px 12px;border-radius:10px;}
  .rp-text{font-size:.68rem;}
}
@media(max-width:400px){
  .reassurance-grid{grid-template-columns:1fr 1fr;gap:6px;}
  .reassurance-pill{padding:8px 10px;}
  .rp-text{font-size:.63rem;}
}
/* === SHOP PREVIEW CARDS (page accueil) === */
.shop-preview-card{background:var(--card);border:1px solid var(--card-b);border-radius:var(--r);padding:28px;cursor:pointer;transition:all .3s;}
.spc-icon{font-size:2.5rem;margin-bottom:14px;}
.spc-cat{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.spc-title{font-family:'Outfit';font-weight:700;margin-bottom:8px;letter-spacing:-.3px;font-size:1rem;color:var(--text);}
.spc-desc{font-size:.85rem;color:var(--text-s);margin-bottom:14px;line-height:1.5;}
.spc-price{font-family:'Outfit';font-size:1.4rem;font-weight:800;color:var(--accent);}
@media(max-width:968px){
  .shop-preview-grid{grid-template-columns:1fr!important;}
  .shop-preview-card{display:flex;align-items:center;gap:14px;padding:14px 16px;}
  .spc-icon{font-size:1.6rem;margin-bottom:0;flex-shrink:0;}
  .spc-cat{font-size:.6rem;margin-bottom:3px;}
  .spc-title{font-size:.84rem;margin-bottom:4px;}
  .spc-desc{font-size:.75rem;margin-bottom:0;line-height:1.4;display:none;}
  .spc-price{font-size:1.1rem;margin-left:auto;flex-shrink:0;}
  /* wrapper texte */
  .shop-preview-card > *:not(.spc-icon):not(.spc-price){flex:1;min-width:0;}
}
/* === CORPS D'ÉTAT GRID === */
.corps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto;}
.corps-card{background:var(--card);border:1px solid var(--card-b);border-radius:var(--r);padding:32px 28px;transition:all .3s;}
.corps-card:hover{box-shadow:var(--sh-m);transform:translateY(-3px);}
.corps-icon{font-size:2.2rem;margin-bottom:16px;}
.corps-card h3,
.corps-card ss-h3{font-family:'Outfit',sans-serif;font-size:1.15rem;font-weight:400;letter-spacing:0.02em;margin-bottom:10px;}
.corps-card p{font-size:0.88rem;color:var(--text-s);line-height:1.5;margin-bottom:14px;}
.corps-list{list-style:none;padding:0;}
.corps-list li{font-size:0.8rem;color:var(--text-s);padding:4px 0;padding-left:16px;position:relative;}
.corps-list li::before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:700;}

@media(max-width:768px){
  .corps-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){
  .corps-grid{grid-template-columns:1fr;}
}



/* === APERÇU BOUTIQUE — cartes « page de garde » ===
   Traitement repris de la boutique SquaredSphere PRO (surface sombre,
   couverture dominante, prix en accent), décliné aux couleurs
   Squared Sphere. La carte « Pro » garde l'orange SquaredSphere PRO. */
.covshop{
  position:relative;overflow:hidden;max-width:1280px;margin:0 auto 56px;
  padding:56px 40px 48px;border-radius:var(--rl);
  background:linear-gradient(166deg,#0f1a14 0%,#0a120d 54%,#132a1d 132%);
}
.covshop::before{
  content:'';position:absolute;top:-35%;right:-8%;width:560px;height:560px;pointer-events:none;
  background:radial-gradient(circle,rgba(48,209,88,.16) 0%,transparent 68%);
}
.covshop .section-header{position:relative;z-index:1;margin-bottom:34px;}
/* La règle globale `.section-header h2` impose color:#0a0a0a !important
   (ligne ~1373) : sur ce fond sombre le titre devenait noir sur vert.
   Il faut donc repasser en !important, ici uniquement. */
.covshop .section-header h2,.covshop .section-header h1:where([data-ex-h2]){color:#fff !important;-webkit-text-fill-color:#fff !important;}
.covshop .section-header h2 .grad,.covshop .section-header h1:where([data-ex-h2]) .grad{
  background:linear-gradient(90deg,#4ade80,#8affc0) !important;
  -webkit-background-clip:text !important;background-clip:text !important;
  -webkit-text-fill-color:transparent !important;color:transparent !important;
}
.covshop .section-header p{color:rgba(255,255,255,.62) !important;}
.covshop .stag{color:#4ade80 !important;}
.cov-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1000px;margin:0 auto;}
.cov-card{
  display:flex;flex-direction:column;text-decoration:none;cursor:pointer;overflow:hidden;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);border-radius:18px;
  transition:transform .25s var(--tr),background .25s,border-color .25s,box-shadow .25s;
}
.cov-card:hover{transform:translateY(-5px);background:rgba(255,255,255,.09);
  border-color:rgba(48,209,88,.45);box-shadow:0 22px 44px -26px rgba(0,0,0,.8);}
.cov-card:focus-visible{outline:2px solid #4ade80;outline-offset:3px;}
/* Les couvertures sont elles-mêmes très sombres : on les pose sur un
   passe-partout clair, sinon elles se fondent dans la carte. */
.cov-img{position:relative;aspect-ratio:640/905;overflow:hidden;padding:9px;
  background:linear-gradient(158deg,#f7f7f9 0%,#e8e8ee 100%);}
.cov-img img{width:100%;height:100%;object-fit:contain;display:block;border-radius:5px;
  box-shadow:0 10px 22px -8px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.08);}
.cov-badge{
  position:absolute;top:8px;left:8px;font-family:'Outfit',sans-serif;
  font-size:.58rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  padding:4px 9px;border-radius:980px;color:#8df0b0;background:rgba(5,12,8,.74);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.cov-body{display:flex;flex-direction:column;gap:4px;padding:12px 13px 14px;flex:1;}
.cov-title{font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:700;color:#fff;line-height:1.25;letter-spacing:-.01em;}
.cov-meta{font-size:.68rem;color:rgba(255,255,255,.42);}
.cov-price{margin-top:auto;padding-top:6px;font-family:'Outfit',sans-serif;font-weight:800;font-size:1.15rem;color:#4ade80;}
.cov-card-pro .cov-badge{color:#ffb694;background:rgba(20,8,3,.74);}
.cov-card-pro:hover{border-color:rgba(255,107,53,.5);}
.cov-card-pro .cov-price{color:#ff8151;}
.cov-cta{position:relative;z-index:1;text-align:center;margin-top:34px;}
@media(max-width:900px){
  .covshop{padding:44px 24px 38px;margin:0 auto 44px;}
  .cov-grid{grid-template-columns:repeat(3,1fr);gap:14px;}
}
@media(max-width:640px){
  .covshop{padding:30px var(--px-m) 26px;margin:0 var(--px-m) 32px;border-radius:22px;}
  .covshop .section-header{margin-bottom:18px;}
  .cov-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .cov-card{border-radius:14px;}
  .cov-body{padding:9px 10px 11px;gap:3px;}
  .cov-title{font-size:.78rem;line-height:1.22;}
  .cov-meta{font-size:.63rem;}
  .cov-price{font-size:1rem;padding-top:4px;}
  .cov-badge{font-size:.52rem;padding:3px 7px;top:6px;left:6px;}
  .cov-cta{margin-top:20px;}
}

/* === SQUAREDSPHERE PRO BRIDGE === */
.btp-bridge{margin:0 0 80px;padding:72px 40px;background:var(--bg-dark);border-radius:var(--rl);position:relative;overflow:hidden;max-width:1280px;margin-left:auto;margin-right:auto;}
.btp-bridge::before{content:'';position:absolute;top:-40%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(26,107,60,0.18) 0%,transparent 70%);pointer-events:none;}
.btp-bridge-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.btp-bridge-text .btp-tag{font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:0.14em;color:var(--accent);margin-bottom:16px;display:block;}
.btp-bridge-text h2,.btp-bridge-text h1:where([data-ex-h2]){font-family:'Outfit',sans-serif;font-size:clamp(1.3rem,3vw,2.6rem);font-weight:700;letter-spacing:-1px;line-height:1.1;color:#fff;margin-bottom:16px;}
.btp-bridge-text h2 span,.btp-bridge-text h1:where([data-ex-h2]) span{color:var(--accent);}
.btp-bridge-text p{font-size:0.95rem;font-weight:300;color:rgba(255,255,255,0.55);line-height:1.65;margin-bottom:28px;}
.btp-logo-ext{display:inline-flex;align-items:center;gap:10px;font-family:'Outfit',sans-serif;font-weight:800;font-size:1rem;color:#fff;padding:8px 18px;border-radius:12px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);}
.btp-logo-ext span{color:var(--accent);}
.btp-bridge-cards{display:flex;flex-direction:column;gap:12px;}
.btp-card{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:16px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);text-decoration:none;transition:all .25s;cursor:pointer;}
.btp-card:hover{background:rgba(26,107,60,0.15);border-color:rgba(26,107,60,0.4);transform:translateX(4px);}
.btp-card-icon{width:42px;height:42px;border-radius:12px;background:rgba(26,107,60,0.25);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.btp-card-text strong,
.btp-card-text ss-b{display:block;font-family:'Outfit',sans-serif;font-size:0.9rem;font-weight:500;color:#fff;margin-bottom:3px;}
.btp-card-text span{font-size:0.75rem;color:rgba(255,255,255,0.4);font-weight:300;}
.btp-card-arrow{margin-left:auto;color:rgba(255,255,255,0.3);font-size:0.9rem;transition:transform .2s;}
.btp-card:hover .btp-card-arrow{color:var(--accent);transform:translateX(3px);}
@media(max-width:968px){
  .btp-bridge-inner{grid-template-columns:1fr;gap:28px;}
  .btp-bridge{padding:40px var(--px-m);margin:0 var(--px-m) 48px;}
}
@media(max-width:768px){
  .btp-bridge-inner{grid-template-columns:1fr;gap:24px;}
  .btp-bridge{padding:36px var(--px-m);margin:0 var(--px-m) 40px;}
  .btp-card{padding:14px var(--px-m);gap:12px;}
  .btp-card-icon{width:36px;height:36px;font-size:1rem;}
  .btp-card-text strong,
  .btp-card-text ss-b{font-size:.84rem;}
  .btp-card-text span{font-size:.7rem;}
}

/* ── Passerelle : code couleurs SquaredSphere PRO (bleu nuit + orange) ──
   Variables locales reprises du site squaredspherepro.com, pour que l'encart
   soit visuellement identifié comme l'autre univers de la marque. */
.btp-bridge{
  --pbtp-nuit:#060b18;
  --pbtp-nuit-2:#0a1122;
  --pbtp-indigo:#12245c;
  --pbtp-bleu:#1d4ed8;
  --pbtp-lavande:#93c5fd;
  --pbtp-accent:#ff6b35;
  background:linear-gradient(158deg,var(--pbtp-nuit) 0%,var(--pbtp-nuit-2) 52%,var(--pbtp-indigo) 130%);
}
.btp-bridge::before{
  background:radial-gradient(circle,rgba(29,78,216,.34) 0%,transparent 70%);
}
.btp-bridge::after{
  content:'';position:absolute;bottom:-30%;left:-12%;width:520px;height:520px;pointer-events:none;
  background:radial-gradient(circle,rgba(255,107,53,.16) 0%,transparent 68%);
}
.btp-bridge-text .btp-tag{color:var(--pbtp-accent);}
.btp-bridge-text h2 span,.btp-bridge-text h1:where([data-ex-h2]) span{color:var(--pbtp-lavande);}
.btp-logo-ext{background:rgba(255,255,255,.07);border-color:rgba(147,197,253,.22);}
.btp-logo-ext span{color:var(--pbtp-accent);}
.btp-card:hover{background:rgba(29,78,216,.20);border-color:rgba(147,197,253,.42);}
.btp-card-icon{background:rgba(29,78,216,.32);}
.btp-card:hover .btp-card-arrow{color:var(--pbtp-accent);}


.deco-card-clickable:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.15); transition: transform .2s, box-shadow .2s; }

/* === ENCART RECOMMANDATION MARQUE === */
.reco-encart{max-width:960px;margin:0 auto 60px;padding:28px 32px;background:#fff;border-radius:20px;border:1px solid var(--card-b);box-shadow:var(--sh-s);display:flex;align-items:center;gap:28px;position:relative;overflow:hidden;}
.reco-encart::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent);border-radius:4px 0 0 4px;}
.reco-encart-badge{position:absolute;top:14px;right:16px;font-size:0.58rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-l);background:var(--bg-deep);padding:3px 8px;border-radius:6px;}
.reco-logo{width:76px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.reco-logo img{width:100%;height:auto;object-fit:contain;border-radius:8px;}
.reco-logo-fallback{width:90px;height:56px;background:linear-gradient(135deg,#e8b000 0%,#f5c400 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-size:0.7rem;font-weight:800;color:#3d2a00;text-align:center;line-height:1.2;padding:6px;}
.reco-sep{width:1px;height:60px;background:var(--div);flex-shrink:0;}
.reco-content{flex:1;}
.reco-content strong,
.reco-content ss-b{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:600;color:var(--text);display:block;margin-bottom:5px;}
.reco-content p{font-size:0.83rem;color:var(--text-s);line-height:1.5;font-weight:300;margin-bottom:10px;}
.reco-stars{color:#f5a623;font-size:0.85rem;letter-spacing:2px;margin-bottom:4px;}
.reco-tag{display:inline-flex;align-items:center;gap:5px;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent);background:var(--accent-g);padding:3px 10px;border-radius:6px;}
@media(max-width:600px){
  .reco-encart{flex-direction:column;align-items:flex-start;gap:16px;padding:22px 20px;}
  .reco-encart .reco-logo{margin-top:20px;}
  .reco-sep{display:none;}
}

@media(max-width:768px){
  .shop-preview-grid{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:480px){
  .shop-preview-grid{grid-template-columns:1fr!important;}
}

/* Prevent title overflow on small screens */
h1:not(:where([data-ex-h2])),h2,h1:where([data-ex-h2]),h3,ss-h3{word-break:normal;overflow-wrap:normal;}
.hero h1:not(:where([data-ex-h2])){hyphens:none;}
@media(max-width:400px){
  .hero h1:not(:where([data-ex-h2])){font-size:1.6rem;letter-spacing:-0.5px;line-height:1.15;}
  .section-header h2,.section-header h1:where([data-ex-h2]){font-size:1.4rem;letter-spacing:-0.3px;}
  .hero p{font-size:0.88rem;}
  .hero-badge{font-size:0.7rem;padding:6px 14px;}
}

.corps-shop-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--accent);text-decoration:none;cursor:pointer;padding:5px 0;border-bottom:1px dashed rgba(26,107,60,0.3);transition:all .2s;}
.corps-shop-link:hover{border-bottom-color:var(--accent);gap:9px;}
.corps-shop-link svg{width:11px;height:11px;flex-shrink:0;}

/* === CTA BAND === */
.cta-band{background:linear-gradient(135deg,var(--accent) 0%,#0d4a27 100%);padding:80px 40px;text-align:center;}
.cta-band-content{max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;}
.cta-band-content h2,.cta-band-content h1:where([data-ex-h2]){font-family:'Outfit',sans-serif;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;color:#fff;line-height:1.15;letter-spacing:-0.5px;}
.cta-band-content p{font-size:1rem;font-weight:300;color:rgba(255,255,255,0.75);line-height:1.6;max-width:500px;}
@media(max-width:520px){
  .cta-band{padding:52px 20px;}
  .cta-band-content h2,.cta-band-content h1:where([data-ex-h2]){font-size:1.4rem;}
  .cta-band-content p{font-size:.88rem;}
}

/* ======================================================
   RESPONSIVE COMPLÉMENTAIRE — mobile/tablette
   ====================================================== */

/* footer bottom links wrapping */
.footer-bottom{flex-wrap:wrap;gap:10px;}
.footer-bottom-links{display:flex;flex-wrap:wrap;gap:8px 16px;}
.footer-bottom-links a{font-size:.75rem;color:var(--text-l);text-decoration:none;cursor:pointer;}
.footer-bottom-links a:hover{color:var(--accent);}

@media(max-width:600px){
  .footer-bottom{flex-direction:column;gap:12px;}
  .footer-bottom-links{gap:6px 12px;}
  .footer-bottom-links a{font-size:.68rem;}
}

@media(max-width:520px){
  /* btp-bridge overflow fix */
  .btp-bridge{padding:28px 14px;margin:0 8px 40px;}
  .btp-bridge-text h2,.btp-bridge-text h1:where([data-ex-h2]){font-size:clamp(1.2rem,5vw,1.6rem);}
  .btp-bridge-text p{font-size:.85rem;}
  .btp-logo-ext{font-size:.85rem;padding:6px 12px;}
  /* bloc "Vous êtes professionnel" */
  .btp-bridge-inner{gap:24px;}
  .btp-card{padding:14px 14px;}
  .btp-card-text strong,
  .btp-card-text ss-b{font-size:.82rem;}
  .btp-card-text span{font-size:.7rem;}
  /* lead form / guide gratuit */
  .lead-section{padding:48px 14px;}
  .lead-visual{padding:24px 16px;}
  .lead-visual .guide-cover{font-size:3rem;}
  .lead-form h2,.lead-form h1:where([data-ex-h2]){font-size:1.3rem;}
  /* footer flg 2 col on very small */
  .footer-col h4,
  /* footer flg 2 col on very small */
  .footer-col ss-h4{font-size:.62rem;margin-bottom:8px;letter-spacing:.8px;}
  .footer-col a{font-size:.68rem;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
  .flg{gap:6px 10px;}
  footer{padding:32px 14px 20px!important;}
  /* carousel card */
  .tcard{width:clamp(220px,82vw,300px);}
  .carousel-section{padding:52px 0;}
  .tcard blockquote{font-size:.82rem;}
  /* corps grid already 1col at 480px */
  /* section padding */
  .section{padding:48px 14px;}
}

@media(max-width:400px){
  .lead-form h2,.lead-form h1:where([data-ex-h2]){font-size:1.15rem;letter-spacing:-0.4px;}
  .btp-bridge-text h2,.btp-bridge-text h1:where([data-ex-h2]){font-size:1.1rem;}
  .flg{grid-template-columns:1fr 1fr;gap:5px 8px;}
  .footer-col h4,
  .footer-col ss-h4{font-size:.58rem;margin-bottom:6px;}
  .footer-col a{font-size:.62rem;padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .tcard{width:clamp(200px,86vw,280px);}
}

/* ── MODE PAYSAGE (téléphone horizontal) ── */
@media(max-height:480px) and (orientation:landscape){
  .hero{padding:80px var(--px-m) 28px;min-height:auto;}
  .hero h1{font-size:clamp(1.4rem,4vw,2rem);}
  .section{padding:40px 20px;}
  .lead-section{padding:40px 20px;}
  .carousel-section{padding:40px 0;}
  .btp-bridge{padding:32px 20px;margin:0 12px 40px;}
  nav{height:52px;}
  .nav-inner{height:52px;}
  .mobile-menu{padding-top:48px;}
}

/* === SHOP PANEL (panneau tiroir boutique) === */
#shopPanel{position:fixed;bottom:44px;left:0;right:0;z-index:996;display:none;flex-direction:column;box-shadow:0 -8px 40px rgba(0,0,0,0.14);border-radius:16px 16px 0 0;overflow:hidden;}
/* Espace réservé en bas de page boutique pour que le contenu ne disparaisse pas derrière le panneau fixe */
#page-shop{padding-bottom:160px;}

/* En-tête cliquable (toujours visible quand panel actif) */
.sp-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#fff;border-top:2.5px solid var(--accent);cursor:pointer;user-select:none;}
.sp-header-left{display:flex;align-items:center;gap:10px;}
.sp-header-left .sp-icon{font-size:1.1rem;}
.sp-header-left .sp-title{font-family:'Josefin Sans',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.sp-header-right{display:flex;align-items:center;gap:12px;}
.sp-total-preview{font-family:'Outfit',sans-serif;font-size:.78rem;font-weight:700;color:var(--accent);background:var(--accent-g);padding:3px 10px;border-radius:980px;transition:all .2s;}
.sp-toggle-arrow{font-size:1.1rem;color:var(--text-s);transition:transform .2s;font-weight:400;}
#shopPanel.open .sp-toggle-arrow{transform:none;}
/* sp-footer masqué quand panel fermé */
#shopPanel .sp-footer{display:none;}
#shopPanel.open .sp-footer{display:block;}

/* Corps du panneau (caché par défaut) */
.sp-body{background:#fff;border-top:1px solid var(--div);max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);}
#shopPanel.open .sp-body{max-height:260px;}

/* Grille 2 colonnes — compressée */
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:4px 12px 2px;}

/* Item produit — compact */
.sp-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;cursor:pointer;transition:background .15s;position:relative;}
.sp-item:hover{background:var(--accent-g);}
.sp-item input[type=checkbox]{display:none;}
.sp-check{width:16px;height:16px;min-width:16px;border-radius:4px;border:2px solid var(--div);background:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.sp-item.checked .sp-check{background:var(--accent);border-color:var(--accent);}
.sp-item.checked .sp-check::after{content:'✓';color:#fff;font-size:.6rem;font-weight:700;}
.sp-item-name{font-family:'Outfit',sans-serif;font-size:.74rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;}
.sp-item-price{font-family:'Outfit',sans-serif;font-size:.68rem;font-weight:700;color:var(--accent);flex-shrink:0;min-width:28px;}
.sp-item.checked .sp-item-name{color:var(--accent);}

/* Ligne séparatrice */
.sp-divider{grid-column:1/-1;height:1px;background:var(--div);margin:1px 0;}

/* Pied de panneau : prix centré + bouton compact */
.sp-footer{padding:7px 14px 10px;background:#fff;border-top:1px solid var(--div);flex-shrink:0;}
.sp-footer-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:7px;}
.sp-total-label{font-family:'Outfit',sans-serif;font-size:.75rem;color:var(--text-s);}
.sp-total-amount{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:800;color:var(--accent);}
.sp-cart-btn{width:100%;padding:10px;border-radius:980px;background:linear-gradient(135deg,var(--accent),#2ea05a);color:#fff;font-family:'Josefin Sans',sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s;box-shadow:0 4px 16px rgba(26,107,60,.3);}
.sp-cart-btn:hover{background:linear-gradient(135deg,var(--accent-h),#35b564);transform:translateY(-1px);box-shadow:0 6px 20px rgba(26,107,60,.4);}
.sp-cart-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}

@media(max-width:520px){
  /* Grille : 1 colonne pleine largeur */
  .sp-grid{grid-template-columns:1fr;padding:2px 10px 2px;gap:0;}
  .sp-divider{display:none;}

  /* Chaque item : ligne unique [coche] [titre flex:1] [prix] — compact */
  .sp-item{
    display:flex;align-items:center;gap:10px;
    padding:8px 10px;
    border-bottom:1px solid var(--div);
    border-radius:0;
  }
  .sp-item:last-child{border-bottom:none;}
  .sp-check{width:18px;height:18px;min-width:18px;border-radius:5px;}

  /* Ligne : [coche] [prix] [titre flex:1] — direct children, no wrapper */
  .sp-item-name{
    font-size:.85rem;font-weight:600;
    white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis;flex:1;min-width:0;line-height:1.3;
  }
  .sp-item-price{
    font-size:.85rem;font-weight:800;
    flex-shrink:0;min-width:28px;color:var(--accent);
  }

  /* Hauteur panel adaptée au contenu compressé */
  #shopPanel.open .sp-body{max-height:300px;overflow-y:auto;}
}


/* === EXIT INTENT POPUP === */
.exit-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2100;opacity:0;visibility:hidden;transition:all .3s;backdrop-filter:blur(10px);}
.exit-overlay.show{opacity:1;visibility:visible;}
.exit-popup{
  position:fixed;top:50%;left:50%;
  transform:translate(-50%,-46%) scale(.94);
  z-index:2101;width:min(94vw,540px);
  background:rgba(4,12,7,.45);
  backdrop-filter:saturate(200%) blur(60px);
  -webkit-backdrop-filter:saturate(200%) blur(60px);
  border-radius:28px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:
    0 60px 120px rgba(0,0,0,.7),
    0 20px 60px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(0,0,0,.3);
  opacity:0;visibility:hidden;
  transition:all .38s cubic-bezier(.25,.46,.45,.94);
  overflow:hidden;
}
.exit-popup.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
/* Reflet lumineux en haut */
.exit-popup::before{
  content:'';position:absolute;top:0;left:10%;right:10%;
  height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  z-index:1;
}
/* Hero */
.exit-popup-hero{
  background:linear-gradient(155deg,rgba(15,80,45,.6) 0%,rgba(5,30,15,.4) 100%);
  padding:32px 32px 24px;position:relative;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.exit-popup-hero::before{
  content:'';position:absolute;top:-60px;right:-60px;
  width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(48,209,88,.12),transparent 70%);
}
.exit-popup-hero::after{
  content:'';position:absolute;bottom:-40px;left:-40px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(26,107,60,.15),transparent 70%);
}
.exit-popup-close{
  position:absolute;top:14px;right:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.92);width:30px;height:30px;
  border-radius:50%;font-size:.78rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;z-index:3;
  backdrop-filter:blur(4px);
}
.exit-popup-close:hover{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.25);}
.exit-popup-tag{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(110,232,154,.8);
  background:rgba(110,232,154,.1);
  border:1px solid rgba(110,232,154,.2);
  border-radius:980px;padding:4px 12px;margin-bottom:14px;
}
.exit-popup-title{
  font-family:'Outfit',sans-serif;font-size:1.55rem;font-weight:800;
  color:#fff;line-height:1.15;margin-bottom:8px;letter-spacing:-.03em;
  position:relative;z-index:1;
  text-shadow:0 2px 20px rgba(0,0,0,.4);
}
.exit-popup-title span{
  color:#6ee89a;
  text-shadow:0 0 30px rgba(110,232,154,.4);
}
.exit-popup-sub{font-size:.84rem;color:rgba(255,255,255,.55);line-height:1.55;position:relative;z-index:1;}
/* Badge gratuit */
.exit-popup-free{
  position:absolute;top:18px;right:52px;
  background:linear-gradient(135deg,#f59e0b,#e8640a);
  color:#fff;font-family:'Josefin Sans',sans-serif;
  font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:980px;transform:rotate(2deg);
  box-shadow:0 3px 14px rgba(232,100,10,.5),inset 0 1px 0 rgba(255,255,255,.2);
}
/* Body */
.exit-popup-body{padding:22px 32px 26px;background:rgba(0,0,0,.1);}
.exit-popup-bullets{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;}
.exit-popup-bullets li{font-size:.78rem;color:rgba(255,255,255,.95);padding:3px 0 3px 18px;position:relative;line-height:1.4;}
.exit-popup-bullets li::before{content:'✓';position:absolute;left:0;color:#6ee89a;font-weight:700;font-size:.8rem;}
.exit-popup-form{display:flex;gap:8px;margin-bottom:10px;}
.exit-popup-input{
  flex:1;padding:13px 16px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:980px;font-size:.82rem;
  color:#fff;outline:none;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(4px);
  transition:border-color .2s,background .2s;
}
.exit-popup-input::placeholder{color:rgba(255,255,255,.35);}
.exit-popup-input:focus{
  border-color:rgba(110,232,154,.5);
  background:rgba(255,255,255,.12);
  box-shadow:0 0 0 3px rgba(110,232,154,.1);
}
.exit-popup-btn{
  background:linear-gradient(135deg,var(--accent),#2ea05a);
  color:#fff;border:none;border-radius:980px;
  padding:13px 22px;font-size:.75rem;font-weight:700;
  cursor:pointer;white-space:nowrap;
  transition:all .2s;
  font-family:'Josefin Sans',sans-serif;letter-spacing:.05em;text-transform:uppercase;
  box-shadow:0 4px 20px rgba(26,107,60,.5),inset 0 1px 0 rgba(255,255,255,.2);
}
.exit-popup-btn:hover{transform:translateY(-1px);box-shadow:0 6px 26px rgba(26,107,60,.6);}
.exit-popup-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;}
.exit-popup-trust{font-size:.66rem;color:rgba(255,255,255,.35);display:flex;align-items:center;gap:5px;}
.exit-popup-skip{font-size:.68rem;color:rgba(255,255,255,.3);cursor:pointer;text-decoration:underline;transition:color .2s;}
.exit-popup-skip:hover{color:rgba(255,255,255,.92);}

/* === STICKY BAR GUIDE === */
.sticky-guide{position:fixed;bottom:56px;left:0;right:0;z-index:1025;background:rgba(10,35,20,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid rgba(255,255,255,.12);border-bottom:none;padding:8px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;transform:translateY(100%);transition:transform .45s cubic-bezier(.25,.46,.45,.94);box-shadow:0 -6px 32px rgba(0,0,0,.25);}
body.mobile-menu-open .sticky-guide{transform:translateY(200%)!important;opacity:0!important;}
body.mobile-menu-open .social-bar{opacity:0!important;}
body.mobile-menu-open,html:has(body.mobile-menu-open){overflow:hidden!important;height:100%!important;}
.sticky-guide.show{transform:translateY(0);}
.sticky-guide-text{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}
.sticky-guide-icon{font-size:1.35rem;flex-shrink:0;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4));line-height:1;}
.sticky-guide-msg{font-size:.76rem;color:rgba(255,255,255,.95);line-height:1.35;font-weight:400;letter-spacing:.01em;display:flex;flex-direction:column;justify-content:center;}
.sticky-guide-msg strong,
.sticky-guide-msg ss-b{color:#fff;font-weight:700;font-size:.82rem;display:block;margin-bottom:1px;letter-spacing:-.01em;}
.sticky-guide-btn{background:linear-gradient(135deg,var(--accent),#2ea05a);color:#fff;border:none;border-radius:980px;padding:10px 20px;font-size:.72rem;font-weight:700;cursor:pointer;white-space:nowrap;font-family:'Josefin Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;transition:all .2s;box-shadow:0 3px 12px rgba(26,107,60,.45);align-self:center;}
.sticky-guide-btn:hover{background:linear-gradient(135deg,#12943a,#1a7a40);box-shadow:0 4px 18px rgba(26,107,60,.6);transform:translateY(-1px);}
.sticky-guide-close{background:none;border:none;color:rgba(255,255,255,.35);font-size:.85rem;cursor:pointer;padding:6px;flex-shrink:0;transition:color .2s;line-height:1;}
.sticky-guide-close:hover{color:rgba(255,255,255,.8);}
@media(max-width:520px){
  .sticky-guide{padding:6px 10px;gap:8px;bottom:44px;flex-wrap:nowrap;}
  .sticky-guide-icon{font-size:1rem;}
  .sticky-guide-msg{font-size:.62rem;}
  .sticky-guide-msg strong,
  .sticky-guide-msg ss-b{font-size:.68rem;}
  .sticky-guide-btn{padding:6px 12px;font-size:.6rem;}
  .sticky-guide-close{order:-1;flex-shrink:0;font-size:.75rem;padding:4px 6px;}
  /* Popup mobile — compact + transparent */
  /* Popup mobile — ultra transparent, formulaire en colonne */
  .exit-overlay{background:rgba(0,0,0,.5);backdrop-filter:blur(12px);}
  .exit-popup{
    border-radius:22px;
    background:rgba(5,15,8,.55);
    backdrop-filter:saturate(200%) blur(48px);
    -webkit-backdrop-filter:saturate(200%) blur(48px);
    border:1px solid rgba(255,255,255,.15);
    box-shadow:
      0 40px 80px rgba(0,0,0,.7),
      inset 0 1px 0 rgba(255,255,255,.12),
      inset 0 -1px 0 rgba(0,0,0,.3);
    width:min(94vw,360px);
  }
  .exit-popup-hero{
    padding:16px 18px 12px;
    background:rgba(255,255,255,.03);
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .exit-popup-hero::before,.exit-popup-hero::after{display:none;}
  .exit-popup-tag{font-size:.56rem;padding:3px 9px;margin-bottom:8px;}
  .exit-popup-title{font-size:.98rem;margin-bottom:4px;}
  .exit-popup-sub{display:none;}
  .exit-popup-free{top:12px;right:44px;font-size:.54rem;padding:3px 8px;}
  .exit-popup-close{top:10px;right:10px;width:26px;height:26px;font-size:.7rem;}
  .exit-popup-body{padding:12px 18px 16px;background:rgba(0,0,0,.05);}
  .exit-popup-bullets{
    grid-template-columns:1fr 1fr;
    gap:4px 10px;
    margin-bottom:14px;
  }
  .exit-popup-bullets li{font-size:.7rem;padding:2px 0 2px 14px;color:rgba(255,255,255,.95);}
  .exit-popup-bullets li::before{color:#6ee89a;}
  /* FORMULAIRE EN COLONNE — bouton pleine largeur, jamais coupé */
  .exit-popup-form{
    flex-direction:column;
    gap:8px;
    margin-bottom:10px;
  }
  .exit-popup-input{
    width:100%;
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.18);
    color:#fff;
    padding:10px 14px;
    font-size:.78rem;
  }
  .exit-popup-input::placeholder{color:rgba(255,255,255,.35);}
  .exit-popup-btn{
    width:100%;
    padding:11px;
    font-size:.72rem;
    text-align:center;
  }
  .exit-popup-trust{color:rgba(255,255,255,.35);font-size:.6rem;}
  .exit-popup-skip{color:rgba(255,255,255,.3);font-size:.63rem;}
}
.scroll-top-btn{position:fixed;top:50%;right:28px;margin-top:-21px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,0.10);color:rgba(10,10,10,0.78);border:1.5px solid rgba(0,0,0,0.30);cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,0.10);z-index:1498;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;opacity:0;visibility:hidden;transform:translateX(10px);transition:all .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:none;-webkit-backdrop-filter:none;}
.scroll-top-btn.visible{opacity:1;visibility:visible;transform:translateX(0);}
.scroll-top-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateX(-2px);box-shadow:0 4px 16px rgba(26,107,60,0.3);}
.scroll-down-btn{position:fixed;top:50%;right:28px;margin-top:21px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,0.10);color:rgba(10,10,10,0.78);border:1.5px solid rgba(0,0,0,0.30);cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,0.10);z-index:1498;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;opacity:0;visibility:hidden;transform:translateX(10px);transition:all .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:none;-webkit-backdrop-filter:none;}
.scroll-down-btn.visible{opacity:1;visibility:visible;transform:translateX(0);}
.scroll-down-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateX(-2px);box-shadow:0 4px 16px rgba(26,107,60,0.3);}
@media(max-width:520px){.scroll-top-btn{right:10px;width:36px;height:36px;margin-top:-18px;font-size:.95rem;}.scroll-down-btn{right:10px;width:36px;height:36px;margin-top:18px;font-size:.95rem;}}
@media(max-width:600px){
  .wa-btn{width:42px;height:42px;font-size:1.15rem;right:10px;bottom:72px;}
  .chatbot-btn{width:42px;height:42px;font-size:1.05rem;right:10px;bottom:120px;}
  .chatbot-panel{top:64px;right:8px;left:8px;width:auto;max-width:none;bottom:62px;height:auto;max-height:none;}
  .cb-header-inner{padding:10px 12px 8px;}
  .cb-avatar{width:28px;height:28px;font-size:.8rem;}
  .cb-header-title{font-size:.82rem;}
  .cb-header-status{font-size:.65rem;}
  .cb-body{max-height:none;flex:1;padding:8px 10px;}
  .cb-body .cb-msg{max-width:100%;box-sizing:border-box;}
  .cb-msg.bot:first-child{max-width:100%;width:100%;font-size:.8rem;line-height:1.45;box-sizing:border-box;}
  .cb-options{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:6px 10px 6px;}
  .cb-opt{padding:6px 8px;font-size:.72rem;border-radius:8px;text-align:center;}
  .cb-input-row{flex-direction:column;gap:6px;padding:6px 10px 10px;}
  .cb-input-row textarea{font-size:.85rem;padding:10px 12px;min-height:90px;width:100%;box-sizing:border-box;}
  .cb-send-btn{width:100%;padding:10px;font-size:.85rem;border-radius:8px;}
}
/* === FLOATING BTNS — déplacement menu burger ouvert (portrait mobile) === */
@media(orientation:portrait) and (max-width:767px){
  .wa-btn,.chatbot-btn{
    transition:top .35s cubic-bezier(.25,.46,.45,.94),
               right .35s cubic-bezier(.25,.46,.45,.94),
               bottom .35s cubic-bezier(.25,.46,.45,.94),
               width .3s,height .3s,border-radius .3s !important;
  }
  body.mobile-menu-open .chatbot-btn,
  body.mobile-menu-open .wa-btn{
    opacity:0!important;
    pointer-events:none!important;
    transform:scale(.7)!important;
  }
}

/* === BLOG ARTICLES === */
.art-hero{background:linear-gradient(135deg,#0c1b10 0%,#1a3d24 100%);padding:120px 40px 60px;text-align:center;}
.art-hero .art-tag{display:inline-block;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 14px;border-radius:980px;margin-bottom:20px;}
.art-hero h1:not(:where([data-ex-h2])),.art-hero h2,.art-hero h1:where([data-ex-h2]){font-family:'Josefin Sans',sans-serif;font-weight:600;font-size:clamp(1.6rem,4vw,2.6rem);color:#fff;letter-spacing:.03em;text-transform:uppercase;max-width:780px;margin:0 auto 20px;line-height:1.15;}
.art-meta{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;font-size:.78rem;color:#8bbf9a;margin-top:16px;}
.art-meta span{display:flex;align-items:center;gap:5px;}
.art-body{max-width:760px;margin:0 8px;padding:64px 40px;}
.art-body h2,.art-body h1:where([data-ex-h2]){font-family:'Josefin Sans',sans-serif;font-size:1.3rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin:48px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--accent);}
.art-body h3,
.art-body ss-h3{font-size:1.05rem;font-weight:700;color:var(--text);margin:32px 0 10px;}
.art-body p{font-size:.95rem;color:var(--text-s);line-height:1.8;margin-bottom:16px;}
.art-body ul{margin:0 0 16px 0;padding-left:0;list-style:none;}
.art-body ul li{font-size:.92rem;color:var(--text-s);line-height:1.7;padding:4px 0 4px 22px;position:relative;}
.art-body ul li::before{content:'→';color:var(--accent);position:absolute;left:0;font-weight:700;}
.art-tip{background:var(--accent-g);border-left:4px solid var(--accent);border-radius:0 10px 10px 0;padding:18px 22px;margin:28px 0;}
.art-tip strong,
.art-tip ss-b{display:block;color:var(--accent);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;}
.art-tip p{margin:0;font-size:.88rem;color:var(--text);line-height:1.7;}
.art-warn{background:#fff7ed;border-left:4px solid #f97316;border-radius:0 10px 10px 0;padding:18px 22px;margin:28px 0;}
.art-warn strong,
.art-warn ss-b{display:block;color:#f97316;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;}
.art-warn p{margin:0;font-size:.88rem;color:var(--text);line-height:1.7;}
.art-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:.88rem;}
.art-table th{background:var(--accent);color:#fff;padding:10px 14px;text-align:left;font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;}
.art-table td{padding:10px 14px;border-bottom:1px solid var(--div);color:var(--text-s);}
.art-table tr:last-child td{border-bottom:none;}
.art-table tr:nth-child(even) td{background:var(--bg-deep);}
.art-interview{background:rgba(26,107,60,0.06);border:1px solid rgba(26,107,60,0.18);border-radius:16px;padding:36px;margin:40px 0;}
.art-interview h3,
.art-interview ss-h3{font-family:'Josefin Sans',sans-serif;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 24px;}
.art-qa{margin-bottom:24px;}
.art-qa:last-child{margin-bottom:0;}
.art-qa p{font-size:.9rem;color:var(--text-s);line-height:1.78;margin-bottom:8px;padding-left:14px;}
.art-qa p strong,
.art-qa p ss-b{color:var(--text);font-weight:700;display:block;margin-bottom:4px;border-left:3px solid var(--accent);padding-left:11px;margin-left:-14px;}
.art-checklist{background:var(--card);border:1px solid var(--card-b);border-radius:14px;padding:28px;margin:28px 0;}
.art-checklist h3,
.art-checklist ss-h3{font-size:.9rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin:0 0 16px;}
.art-checklist li{list-style:none;padding:7px 0 7px 28px;position:relative;font-size:.88rem;color:var(--text-s);border-bottom:1px solid var(--div);}
.art-checklist li:last-child{border-bottom:none;}
.art-checklist li::before{content:'☐';position:absolute;left:0;color:var(--accent);font-size:1rem;}
.art-cta{background:linear-gradient(135deg,var(--accent) 0%,#0d4a27 100%);border-radius:16px;padding:40px;text-align:center;margin:48px 0 0;}
.art-cta h3,
.art-cta ss-h3{font-family:'Josefin Sans',sans-serif;font-size:1.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#fff;margin:0 0 12px;}
.art-cta p{color:#c0e8d0;font-size:.9rem;margin:0 0 24px;}
@media(max-width:768px){.art-body{padding:40px 20px;}.art-hero{padding:100px 20px 48px;}}

@media(max-width:600px){.video-slot{aspect-ratio:9/16;}.video-slot[style*="aspect-ratio:4/3"]{aspect-ratio:9/16!important;}}
/* ─── RÉALISATIONS PAGE ─── */
.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1160px;margin:0 auto;padding:0 40px;}
.real-card{background:var(--card);border:1px solid var(--card-b);border-radius:var(--rl);overflow:hidden;transition:all .35s var(--tr);cursor:pointer;text-decoration:none;display:block;color:inherit;}
.real-card:hover{transform:translateY(-7px);box-shadow:0 20px 60px rgba(26,107,60,.15);}
.real-card-img{width:100%;height:210px;object-fit:cover;display:block;transition:transform .5s var(--tr);}
.real-card:hover .real-card-img{transform:scale(1.04);}
.real-card-body{padding:20px 22px 22px;}
.real-card-badge{display:inline-block;background:var(--accent-g);color:var(--accent);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:3px 11px;border-radius:10px;margin-bottom:11px;}
.real-card h3,
.real-card ss-h3{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;margin-bottom:6px;color:var(--text);}
.real-card-loc{font-size:.8rem;color:var(--text-l);margin-bottom:12px;}
.real-card-stats{display:flex;gap:0;border-top:1px solid var(--card-b);padding-top:14px;margin-top:4px;}
.real-card-stat{flex:1;text-align:center;border-right:1px solid var(--card-b);}
.real-card-stat:last-child{border-right:none;}
.real-card-stat-v{font-size:.95rem;font-weight:800;color:var(--accent);}
.real-card-stat-l{font-size:.6rem;color:var(--text-l);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.real-card-cta{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:.8rem;font-weight:600;color:var(--accent);opacity:.9;}
.real-card:hover .real-card-cta{opacity:1;}
@media(max-width:900px){.real-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){
  /* 1 seule colonne — cartes empilées */
  .real-grid{
    grid-template-columns:1fr!important;
    padding:0 var(--px-m)!important;
    gap:16px!important;
  }
  /* Carte : photo plus petite, texte lisible */
  .real-card-img{height:160px!important;}
  .real-card-body{padding:14px var(--px-m) 16px!important;}
  .real-card h3,
  .real-card ss-h3{font-size:.95rem!important;}
  .real-card-loc{font-size:.74rem!important;margin-bottom:10px!important;}
  .real-card-stats{padding-top:10px!important;}
  .real-card-stat-v{font-size:.85rem!important;}
  .real-card-stat-l{font-size:.56rem!important;}
  .real-card-cta{margin-top:10px!important;font-size:.78rem!important;}
}
/* === TYPO MANUSCRITE ÉLÉGANTE === */
.script-bold,span.script-bold,h1:not(:where([data-ex-h2])) .script-bold{font-family:'Caveat',cursive !important;font-weight:600;letter-spacing:.005em;line-height:.95;display:inline-block}
.script-elegant, span.script-elegant, h1:not(:where([data-ex-h2])) .script-elegant, .nav-slogan .script-elegant{font-family:'Pinyon Script',cursive !important;font-weight:400;letter-spacing:.005em;line-height:1.1;display:inline-block}
/* === TYPO APPLE-STYLE — surcouche Inter === */
body, p, li, span:not(.tn-g):not(.nav-logo span):not(.grad):not(.script):not(.script-elegant):not(.script-bold), 
input, textarea, select, button:not(.nav-logo button) {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', sans-serif !important;
  font-feature-settings: 'cv02','cv03','cv04','cv11';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-weight: 400;
  letter-spacing: -.003em;
  line-height: 1.55;
}
/* Titres : Inter en 600-700, letter-spacing négatif */
h1:not(:where([data-ex-h2])), h2, h1:where([data-ex-h2]), h3, h4, h5, h6 , ss-h3, ss-h4{
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', sans-serif !important;
  letter-spacing: -.025em;
}
h1:not(:where([data-ex-h2])) { font-weight: 700; letter-spacing: -.035em; line-height: 1.08; }
h2 ,h1:where([data-ex-h2]) { font-weight: 600; letter-spacing: -.028em; line-height: 1.12; }
h3 ,
ss-h3 { font-weight: 600; letter-spacing: -.018em; }
h4, h5 ,
ss-h4{ font-weight: 500; letter-spacing: -.012em; }

/* Paragraphes, leads et descriptions : graisse 400 standard, 300 pour les leads/hero */
p { font-weight: 400; letter-spacing: -.005em; line-height: 1.6; }
.hero-content p, .hero p, .lead, .srv-hero-c p, .sub, [class*='hero'] p, [class*='lead'] {
  font-weight: 300 !important; letter-spacing: -.011em; line-height: 1.5;
}
/* Boutons : graisse 500, radius pill Apple */
button, .btn-p, .btn-s, .btn-cta, [class*='btn'] {
  font-weight: 500 !important; letter-spacing: -.005em;
}
/* Badges et tags */
.stag, .hero-badge, [class*='badge'], [class*='tag'] {
  font-weight: 500; letter-spacing: .02em;
}
/* Préserver les polices décoratives spécifiques */
.nav-logo, .tn-logo, .logo, [class*='dancing'] {
  font-family: inherit;
}


/* === ANIMATION FLÈCHE AVIS GOOGLE === */
@keyframes grSwayArrow {
  0%,100% { transform: translateY(-50%) rotate(-2deg); }
  50%     { transform: translateY(-50%) rotate(3deg); }
}
@keyframes grPulseText {
  0%,100% { opacity: .85; }
  50%     { opacity: 1; }
}
.gr-pointer {
  animation: grSwayArrow 2.8s ease-in-out infinite, grPulseText 2.8s ease-in-out infinite;
  transform-origin: right center;
}
.gr-pointer:hover, .gr-pointer.gr-stop { animation: none !important; }

/* Masque la flèche sur écrans étroits où elle gênerait */
@media (max-width: 768px) {
  .gr-pointer { display: none !important; }
  .gr-pointer ~ a { position:static!important; }
}

/* === ANIMATIONS SCROLL ENRICHIES === */
/* Apparition douce des sections au scroll */
.scroll-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
.scroll-fade.in-view {
  opacity: 1;
  transform: translateY(0);
}
/* Variante latérale */
.scroll-fade-left  { transform: translateX(-30px); }
.scroll-fade-right { transform: translateX(30px); }
.scroll-fade-left.in-view,
.scroll-fade-right.in-view { transform: translateX(0); }
/* Variante zoom doux */
.scroll-zoom {
  opacity: 0;
  transform: scale(.96);
  transition: opacity .8s ease-out, transform .8s cubic-bezier(.22,.61,.36,1);
}
.scroll-zoom.in-view { opacity: 1; transform: scale(1); }

/* Compteur animé pour les stats */
.count-anim { display: inline-block; }

/* Si réduction de mouvement activée — accessibilité */
@media (prefers-reduced-motion: reduce) {
  .gr-pointer, .scroll-fade, .scroll-fade-left, .scroll-fade-right, .scroll-zoom,
  .hero-badge, .hero h1, .hero p, .hero-buttons,
  .reveal, .slide-r, .slide-l, .zoom-in {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ═══ SECTION ZONES D'INTERVENTION ═══ */
.zones-section{padding:90px 40px 60px;max-width:1320px;margin:0 auto;}
.zones-header{text-align:center;max-width:760px;margin:0 auto 56px;}
.zones-header .stag{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:2.2px;color:var(--accent);text-transform:uppercase;margin-bottom:14px;}
.zones-header h2,.zones-header h1:where([data-ex-h2]){font-family:'Outfit',sans-serif;font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:800;letter-spacing:-1.4px;line-height:1.15;margin-bottom:14px;color:var(--text);}
.zones-header p{font-size:1.02rem;color:var(--text-s);line-height:1.55;}
.zones-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.zones-col h3,
.zones-col ss-h3{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:700;letter-spacing:-.3px;color:var(--accent);margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid var(--accent-g);}
.zone-cards{display:flex;flex-direction:column;gap:10px;}
.zone-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--div);border-radius:14px;text-decoration:none;color:var(--text);transition:all .25s var(--tr);position:relative;overflow:hidden;min-width:0;box-sizing:border-box;}
.zone-card::after{content:'→';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.2rem;color:var(--accent);opacity:0;transition:all .3s var(--tr);}
.zone-card:hover{border-color:var(--accent);transform:translateX(2px);box-shadow:0 6px 22px rgba(26,107,60,.12);padding-right:36px;}
.zone-card:hover::after{opacity:1;right:14px;}
.zone-card .zone-emoji{font-size:1.6rem;flex-shrink:0;}
.zone-text{display:flex;flex-direction:column;min-width:0;overflow:hidden;flex:1;}
.zone-card .zone-name{font-family:'Outfit',sans-serif;font-weight:700;font-size:.98rem;letter-spacing:-.2px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.zone-card .zone-detail{font-size:.78rem;color:var(--text-s);display:block;margin-top:2px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.zone-card.zone-paris,.zone-card.zone-nice{background:linear-gradient(135deg,#f7faf8 0%,#eaf3ed 100%);border-color:var(--accent);}
.zone-card.zone-region{background:linear-gradient(135deg,#fef9ed 0%,#fef3e2 100%);border-color:var(--ambre,#f59e0b);}

@media (max-width:980px){.zones-grid{grid-template-columns:1fr 1fr;gap:28px;}}
@media (max-width:660px){
  .zones-section{padding:40px 16px 28px;overflow:hidden;}
  .zones-grid{grid-template-columns:1fr;gap:16px;width:100%;}
  .zones-header{margin-bottom:28px;}
  .zones-header h2,.zones-header h1:where([data-ex-h2]){font-size:1.4rem;}
  .zones-col h3,
  .zones-col ss-h3{font-size:.82rem;margin-bottom:10px;padding-bottom:7px;}
  .zone-cards{gap:5px;width:100%;}
  .zone-card{padding:8px 10px;gap:8px;border-radius:10px;width:100%;box-sizing:border-box;}
  .zone-card .zone-emoji{font-size:1rem;width:20px;text-align:center;flex-shrink:0;}
  .zone-text{min-width:0;overflow:hidden;}
  .zone-card .zone-name{font-size:.78rem;}
  .zone-card .zone-detail{font-size:.65rem;margin-top:0;}
  .zone-card::after{display:none;}
}


@media(max-width:968px){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .est-star{animation:none!important;}
  .hero::before{display:none;}
  .particle,.particles{display:none!important;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
}



/* ═══ MOBILE PLEINE LARGEUR ═══ */
@media(max-width:768px){
  .section,.section-inner{padding-left:var(--px-m)!important;padding-right:var(--px-m)!important;}
  p,li,.card p,.tcard p,.srv-desc{text-align:justify!important;}
  h1,h2,h3,h4,ss-h3,ss-h4{text-align:left!important;}
  .card,.srv-card,.tcard,.zone-card{width:100%!important;margin-left:0!important;margin-right:0!important;}
  .wrap,.container{max-width:100%!important;}
}

/* ═══ ACCESSIBILITÉ ═══ */
:focus-visible{outline:3px solid var(--accent)!important;outline-offset:3px!important;}
img{height:auto;}

/* Photos équipe */
.team-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:32px 0;}
.team-photo-card{border-radius:16px;overflow:hidden;position:relative;background:#f0ede8;}
.team-photos{align-items:start;} .team-photo-card img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;background:#f0ede8;display:block;}
.team-photo-card .tp-cap{background:rgba(15,28,20,.82);color:#fff;padding:9px 14px;font-size:.78rem;font-weight:500;text-align:center;}
@media(max-width:768px){
  .team-photos{grid-template-columns:1fr;}
  .team-photos{max-width:420px;margin-left:auto;margin-right:auto;} .team-photo-card img{aspect-ratio:auto;height:auto;object-fit:contain;background:#f0ede8;}
}

/* ═══════════════════════════════════════════════
   MOBILE PORTRAIT — PLEINE LARGEUR FORCÉE
   Corrige tous les paddings latéraux excessifs
   ═══════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Tous les conteneurs principaux → padding 16px */
  .section, .section-header, .hero, .srv-hero, .zone-hero,
  .cta-banner, .cta-band, .audiences, .trust, .metrics,
  .lead-section, .lead-visual, .bm-section, .btp-bridge,
  .real-grid, .shop-hero, .carousel-section, .carousel-wrap,
  .method-recap, .art-hero, .art-body, .art-cta, .art-interview,
  .contact-section, .footer-top, .zone-section, .zone-content,
  .zones-section, .pres-hero, .immersive-content, .digital-offer,
  .step-detail, .product-full-info, .legal-content, .photo-banner-content,
  .mc-sheet, .zone-section, .section-body {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  
  /* Conteneurs intérieurs → pleine largeur */
  .section-inner, .content-wrap, .article-body, .page-inner,
  .srv-inner, .zone-inner, .real-inner, .shop-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  
  /* Styles inline padding:X 40px → overridés */
  [style*="padding:0 40px"],
  [style*="padding: 0 40px"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  
  /* Max-width des wrappers → 100% sur mobile */
  .wrap, .container, .inner, .content {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  
  /* Textes pleine largeur */
  p, li, blockquote { 
    text-align: justify !important;
    max-width: 100% !important;
  }
  
  h1, h2, h3, h4 , ss-h3, ss-h4 {
    text-align: left !important;
  }
  
  /* Grilles → colonne unique */
  .about-grid, .srv-grid, .zone-grid, .cards-grid,
  .tcard-grid, .features-grid, .step-grid, .real-grid-inner {
    grid-template-columns: 1fr !important;
  }
  
  /* Footer */
  footer, .footer-top, .footer-bottom {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

@media (max-width: 480px) {
  .section, .srv-hero, .zone-hero, .art-hero, .art-body,
  .cta-banner, .lead-section, .contact-section, .pres-hero {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* Burger — centrage boutons principaux */
.mm-srv-toggle {
  justify-content: center !important;
  text-align: center !important;
}
.mm-srv-toggle span:first-child {
  flex: 0 !important;
}

/* ═══ PAGE DÉCO — MOBILE RESPONSIVE ═══ */
@media(max-width:768px){
  /* Style haussmannien : 2 colonnes → 1 colonne */
  #page-deco [style*="grid-template-columns:1fr 1fr"],
  #page-deco [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* Tendances : 3 colonnes → 1 colonne */
  #page-deco [style*="grid-template-columns:repeat(3,1fr)"],
  #page-deco [style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
  /* Matériaux : 4 colonnes → 2 colonnes */
  #page-deco [style*="grid-template-columns:repeat(4,1fr)"],
  #page-deco [style*="grid-template-columns: repeat(4, 1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }
  /* Confort thermique : 2 colonnes → 1 */
  #page-deco .iso-grid {
    grid-template-columns: 1fr !important;
  }
  /* Home lifting items → 1 colonne */
  #page-deco .homelift-grid {
    grid-template-columns: 1fr !important;
  }
  /* Images dans grilles 2 colonnes → pleine largeur */
  #page-deco [style*="grid-template-columns:1fr 1fr"] img,
  #page-deco [style*="grid-template-columns: 1fr 1fr"] img {
    max-height: 220px !important;
  }
  /* Padding des sections déco */
  #page-deco section [style*="padding:0 var(--px-m)"],
  #page-deco section > div {
    padding-left: var(--px-m) !important;
    padding-right: var(--px-m) !important;
  }
}

.footer-indy{display:flex;align-items:center;gap:10px;font-size:.78rem;color:rgba(255,255,255,.95);padding:14px 0;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.08);margin:8px 0 12px;}
.footer-indy a{color:rgba(255,255,255,.95);font-weight:600;}
.footer-indy span:first-child{font-size:1rem;flex-shrink:0;}

/* Portrait fondateur — résiste aux CSS img globaux */
img[src*="fondateur_portrait"] {
  width: 110px !important;
  max-width: 110px !important;
  min-width: 110px !important;
  height: 136px !important;
  object-fit: cover !important;
  object-position: top center !important;
  float: left !important;
  display: block !important;
  margin: 3px 14px 6px 0 !important;
  border-radius: 12px !important;
  flex: none !important;
}

/* Bloc fondateur — desktop: côte à côte / mobile: empilé */
.fondateur-block {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
/* Zone défilante du bloc fondateur.
   overscroll-behavior:contain empêche le scroll de « déborder » sur la page
   quand on atteint le bas — sans lui, le doigt emporte toute la page.
   Le dégradé en pied signale qu'il reste du contenu à lire. */
.fondateur-scroll {
  max-height: 300px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 12px;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%);
          mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent 100%);
  scrollbar-width: thin;
  scrollbar-color: var(--accent) rgba(0,0,0,.07);
}
.fondateur-scroll::-webkit-scrollbar { width: 7px; }
.fondateur-scroll::-webkit-scrollbar-track { background: rgba(0,0,0,.06); border-radius: 4px; }
.fondateur-scroll::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 4px; }
.fondateur-scroll::-webkit-scrollbar-thumb:hover { background: var(--accent-h); }
/* Arrivé en bas, le dégradé n'a plus lieu d'être : on le retire au focus
   clavier pour ne jamais masquer un élément en cours de navigation. */
.fondateur-scroll:focus-within { -webkit-mask-image: none; mask-image: none; }

/* Section « Qui vous accompagne » de l'accueil : deux colonnes,
   empilées sous 780 px pour que le portrait ne comprime pas le texte. */
@media (max-width: 780px) {
  .fondateur-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    padding: 22px !important;
  }
  .fondateur-grid img { max-width: 170px !important; margin: 0 auto; }
  .fondateur-grid > div:first-child { align-items: center; text-align: center; }
  .fondateur-scroll { max-height: 260px; }
}
.fondateur-img {
  width: 110px !important;
  max-width: 110px !important;
  min-width: 110px !important;
  height: 136px !important;
  object-fit: cover !important;
  object-position: top center !important;
  border-radius: 12px !important;
  display: block !important;
  flex-shrink: 0 !important;
  border: 2px solid #c8e5d0 !important;
}
@media (max-width: 768px) {
  .fondateur-block {
    flex-direction: column !important;
    align-items: center !important;
  }
  .fondateur-img {
    width: 120px !important;
    max-width: 120px !important;
    min-width: 120px !important;
    height: 148px !important;
    margin-bottom: 12px !important;
  }
}

/* ============ BOUTONS « BULLE DE VERRE » (même design que SquaredSphere PRO) ============
   Relief fin en haut + ombre douce et enfoncement réel au clic (:active). */
.btn-p,.btn-s,.btn-d,.btn-buy,.btn-checkout,.nav-cta{-webkit-tap-highlight-color:transparent;
  transition:transform .16s cubic-bezier(.3,.7,.3,1),box-shadow .18s ease,background .25s ease !important}
.btn-p,.btn-d,.btn-buy,.btn-checkout{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),inset 0 -2px 6px rgba(0,0,0,.16),0 12px 26px -8px rgba(0,0,0,.30) !important}
.btn-p:hover,.btn-d:hover,.btn-buy:hover,.btn-checkout:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 6px rgba(0,0,0,.16),0 18px 40px -10px rgba(0,0,0,.42) !important}
.btn-s{border:1px solid var(--accent-g,rgba(46,160,90,.32)) !important}
.btn-p:active,.btn-d:active,.btn-buy:active,.btn-checkout:active,.btn-s:active,.nav-cta:active{
  transform:translateY(1px) scale(.985) !important;
  box-shadow:inset 0 2px 8px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.15) !important}

/* ─────────────────────────────────────────────── */

#scroll-progress{position:fixed;top:64px;left:0;width:0%;height:3px;background:linear-gradient(90deg,#34c759,#0071e3);z-index:1100;transition:width .1s linear;border-radius:0 2px 2px 0;pointer-events:none;}@media(max-width:968px){#scroll-progress{top:90px;}}


/* Bouton retour — toujours visible desktop ET mobile */
.tn-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: var(--brand, #1a6b3c) !important;
  color: #fff !important;
  font-weight: 500 !important;
  font-size: .82rem !important;
  padding: 9px 18px !important;
  border-radius: 980px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
@media(max-width:640px) {
  .topnav-inner {
    padding: 10px 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  .tn-logo {
    font-size: .78rem !important;
    padding: 5px 10px !important;
    letter-spacing: .14em !important;
  }
  .tn-tagline { display: none !important; }
  .tn-back {
    font-size: .72rem !important;
    padding: 7px 12px !important;
    flex-shrink: 0 !important;
  }
  .tn-back-full { display: none !important; }
  .tn-back-short { display: inline !important; }
  .tn-wa { width: 32px !important; height: 32px !important; }
}

/* ─────────────────────────────────────────────── */

#vitrine{
  --vneon:#2bff88;--vnoir:#050607;
  position:relative;margin:0 calc(50% - 50vw) 0;width:100vw;
  min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(96px,14vh,150px) clamp(20px,6vw,64px) clamp(70px,10vh,96px);
  background:
    radial-gradient(ellipse 70% 55% at 78% 8%,rgba(43,255,136,.16),transparent 62%),
    radial-gradient(ellipse 60% 50% at 12% 92%,rgba(26,107,60,.20),transparent 65%),
    var(--vnoir);
  overflow:hidden;color:#e9efec;
  font-family:'Outfit',-apple-system,BlinkMacSystemFont,sans-serif;
}
#vitrine::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(43,255,136,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(43,255,136,.055) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 80% 65% at 50% 40%,#000 30%,transparent 78%);
  mask-image:radial-gradient(ellipse 80% 65% at 50% 40%,#000 30%,transparent 78%);
}
#vitrine::after{
  content:'';position:absolute;top:-25%;right:-15%;
  width:min(720px,92vw);height:min(720px,92vw);border-radius:50%;
  background:radial-gradient(circle,rgba(43,255,136,.13),transparent 60%);
  filter:blur(28px);animation:vit-derive 16s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes vit-derive{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(-70px,50px,0) scale(1.12)}
}
#vitrine .vit-in{max-width:1080px;width:100%;margin:0 auto;position:relative;z-index:2;
  text-align:center}
/* Ta feuille de style impose « p{text-align:justify} » et
   « h1,h2,h3,h4,ss-h3,ss-h4{text-align:left} ». Ces regles s'appliquent
   directement aux elements et ecrasent donc l'heritage du
   centrage pose sur le conteneur. On les neutralise ici,
   uniquement a l'interieur de #vitrine. */
#vitrine .vit-h1,
#vitrine .vit-lead,
#vitrine .vit-sur,
#vitrine .vit-stat,
#vitrine p,
#vitrine li{text-align:center}
#vitrine .vit-lead{margin-left:auto;margin-right:auto}
#vitrine .vit-actions{justify-content:center}
#vitrine .vit-stats{margin-left:auto;margin-right:auto;text-align:center}

#vitrine .vit-embleme{
  width:clamp(140px,22vw,210px);height:clamp(140px,22vw,210px);
  margin:0 auto clamp(18px,3vw,26px);display:block;overflow:visible;
}
#vitrine .vit-carre{fill:none;stroke:var(--vneon);stroke-width:1.6;opacity:.6;
  filter:drop-shadow(0 0 8px rgba(43,255,136,.55))}

/* ══ Trajectoire de progression — traînée de comète ═══════════════════
   L'animation est entièrement décrite dans le dessin (voir le SVG plus
   bas). Il ne reste ici que l'apparence : couleur, épaisseur, halo.

   Trois voiles de longueurs décroissantes glissent ensemble le long du
   chemin — court et vif près de la pointe, long et ténu derrière. C'est
   ce dégradé qui fait la poussière d'étoiles ; un trait unique dégradé
   n'est pas possible le long d'une courbe. */
#vitrine .vit-trace{fill:none;stroke:#e3b23c;stroke-linecap:round}
#vitrine .vt1{stroke-width:2.2;filter:drop-shadow(0 0 5px rgba(240,193,75,.75))}
#vitrine .vt2{stroke-width:1.7}
#vitrine .vt3{stroke-width:1.1}

#vitrine .vit-globe{filter:drop-shadow(0 0 11px rgba(43,255,136,.5))}
/* Anneau façon Saturne : volontairement dans une autre couleur que la sphère,
   pour qu'on lise deux objets distincts et non un trait de plus du globe. */
#vitrine .vit-anneau{--vor:#e3b23c;filter:drop-shadow(0 0 9px rgba(227,178,60,.45))}
/* .vit-orbe : l'ellipse n'est plus dessinée, la règle est retirée pour
   qu'elle ne réapparaisse pas par mégarde si la classe était remise. */
#vitrine .vit-pointe{fill:var(--vor);stroke:none;
  filter:drop-shadow(0 0 6px rgba(227,178,60,.9))}
#vitrine .vit-globe circle,#vitrine .vit-globe ellipse{fill:none;stroke:var(--vneon)}
#vitrine .vit-contour{stroke-width:1.5;opacity:.9}
#vitrine .vit-mer,#vitrine .vit-par{stroke-width:1;opacity:.42}
#vitrine .vit-noyau{fill:var(--vneon);stroke:none}

#vitrine .vit-sur{
  display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center;
  font-size:.74rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--vneon);border:1px solid rgba(43,255,136,.3);background:rgba(43,255,136,.06);
  padding:8px 18px;border-radius:980px;margin-bottom:clamp(20px,3.4vw,30px);
}
#vitrine .vit-sur b,
#vitrine .vit-sur ss-b{font-weight:500}
#vitrine .vit-sur em{font-style:normal;opacity:.8}
/* Le séparateur n'existe qu'en une seule ligne : il disparaît avec le passage
   à deux lignes, sinon il pendrait en fin de première ligne. */
#vitrine .vit-sur b::after, sinon il pendrait en fin de première ligne. */
#vitrine .vit-sur ss-b::after{content:"—";margin-left:9px;opacity:.55}
@keyframes vit-pouls{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}

#vitrine .vit-h1{
  font-size:clamp(2.4rem,7.6vw,5.4rem);font-weight:700;color:#fff;
  letter-spacing:-.04em;line-height:1;margin:0 0 clamp(20px,3vw,28px);
}
#vitrine .vit-h1 em{
  font-style:normal;display:block;
  background:linear-gradient(96deg,var(--vneon) 0%,#8affc0 45%,#ffffff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 34px rgba(43,255,136,.34));
}
#vitrine .vit-brille{
  display:inline-block;
  /* Teinte de base lisible sur le noir de la vitrine, traversee par
     un eclat blanc. -webkit-text-fill-color est indispensable :
     sans lui, Safari repeint la couleur du texte par-dessus le
     degrade et l'animation devient invisible. */
  background:linear-gradient(108deg,
    #2f8f5b 0%,   #2f8f5b 36%,
    #7fe6ab 45%,  #ffffff 50%,  #7fe6ab 55%,
    #2f8f5b 64%,  #2f8f5b 100%);
  background-size:300% 100%;
  background-position:100% 0;
  background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  will-change:background-position;
  animation:vit-balayage 4s cubic-bezier(.5,0,.5,1) infinite;
}
/* Balayage puis temps de pause : les deux extremites du degrade
   portent la meme teinte, le retour en boucle est donc invisible. */
@keyframes vit-balayage{
  0%{background-position:100% 0}
  45%,100%{background-position:0% 0}
}

#vitrine .vit-lead{
  font-size:clamp(.92rem,1.85vw,1.12rem);color:rgba(233,239,236,.44);
  max-width:560px;font-weight:200;margin:0 0 clamp(28px,4.4vw,40px);line-height:1.62;
  letter-spacing:.004em;
}
/* La phrase reste lisible mais cesse de concurrencer le titre et les boutons :
   même graisse fine que le reste, simplement un peu moins effacée. */
#vitrine .vit-lead b, simplement un peu moins effacée. */
#vitrine .vit-lead ss-b{font-weight:300;color:rgba(255,255,255,.66)}

#vitrine .vit-actions{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:clamp(40px,6vw,64px)}
#vitrine .vit-btn{
  display:inline-flex;align-items:center;gap:10px;padding:15px 32px;border-radius:980px;
  font-size:.95rem;font-weight:500;white-space:nowrap;cursor:pointer;
  background:transparent;border:1px solid;text-decoration:none;
  transition:all .35s cubic-bezier(.22,.61,.36,1);
}
#vitrine .vit-btn-p{border-color:var(--vneon);color:var(--vneon);
  box-shadow:0 0 22px rgba(43,255,136,.14),0 0 30px rgba(43,255,136,.07) inset}
#vitrine .vit-btn-p:hover{transform:translateY(-2px);background:rgba(43,255,136,.09);
  box-shadow:0 0 40px rgba(43,255,136,.34)}
#vitrine .vit-btn-s{border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.9)}
#vitrine .vit-btn-s:hover{border-color:var(--vneon);color:var(--vneon);transform:translateY(-2px)}

#vitrine .vit-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:clamp(18px,3.4vw,40px);padding-top:clamp(24px,3.4vw,32px);
  border-top:1px solid rgba(43,255,136,.16);max-width:840px;
}
#vitrine .vit-stat b,
#vitrine .vit-stat ss-b{display:block;font-size:clamp(1.6rem,4.2vw,2.4rem);font-weight:700;
  letter-spacing:-.035em;line-height:1;color:var(--vneon);
  text-shadow:0 0 26px rgba(43,255,136,.42)}
#vitrine .vit-stat span{font-size:.78rem;color:rgba(233,239,236,.45);font-weight:200}

#vitrine .vit-suite{
  position:absolute;left:0;right:0;bottom:26px;text-align:center;z-index:3;
  color:rgba(233,239,236,.4);font-size:.76rem;letter-spacing:.06em;
  animation:vit-flotte 2.6s ease-in-out infinite;
}
#vitrine .vit-suite span{display:block;font-size:1.3rem;line-height:1;margin-top:4px}
@keyframes vit-flotte{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(7px);opacity:1}}

@media (max-width:760px){
  #vitrine .vit-btn{flex:1 1 auto;justify-content:center;min-width:210px}
  #vitrine .vit-stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:400px){
  #vitrine .vit-stats{grid-template-columns:1fr}
  #vitrine .vit-btn{min-width:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  #vitrine::after,#vitrine .vit-suite,#vitrine .vit-pointe{animation:none}
  #vitrine .vit-brille{animation:none;background:linear-gradient(105deg,#8affc0,#eafff2);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent}
  #vitrine .vit-carre,#vitrine .vit-contour{stroke-dashoffset:0!important}
}

/* ─────────────────────────────────────────────── */

/* ═══ Navigation mobile : rubriques révélées après la vitrine ═══
   Tant que le premier écran occupe l'affichage, « Services » et
   « Zones » restent en retrait. Ils apparaissent en fondu dès que
   le visiteur atteint le contenu du site. Le panier et le burger
   ne bougent jamais : ce sont des accès, pas des rubriques. */
@media (max-width:968px){
  .nav-apres-vitrine{
    transition:opacity .45s ease,transform .45s ease,max-width .45s ease;
  }
  html[data-vitrine="visible"] .nav-apres-vitrine{
    opacity:0;pointer-events:none;
    transform:translateY(-6px);
    max-width:0;padding-left:0;padding-right:0;
    margin-left:0;margin-right:0;border-width:0;overflow:hidden;
  }
}
@media (prefers-reduced-motion:reduce){
  .nav-apres-vitrine{transition:none}
}

/* ═══ Vitrine mobile : barre fixe compacte, social bar en retrait ═══
   Tant que le premier ecran occupe l'affichage :
     - la 2e ligne de la barre fixe (Services / Zones) se replie
       entierement, la nav ne fait plus qu'une seule ligne ;
     - la vitrine recupere l'espace libere et remonte ;
     - la barre sociale du bas s'efface.
   Tout revient a la normale au meme instant, des que le visiteur
   atteint le bloc de contenu clair situe sous la vitrine. */
@media (max-width:968px){

  .nav-mobile-row{
    max-height:64px;overflow:hidden;
    transition:max-height .45s cubic-bezier(.22,.61,.36,1),
               opacity .3s ease,
               padding .45s cubic-bezier(.22,.61,.36,1),
               margin .45s cubic-bezier(.22,.61,.36,1),
               border-color .3s ease;
  }
  html[data-vitrine="visible"] .nav-mobile-row{
    max-height:0;opacity:0;pointer-events:none;
    padding-top:0;padding-bottom:0;margin-top:0;
    border-top-color:transparent;
  }

  /* La vitrine respire : retrait haut reduit en permanence.
     Volontairement NON conditionne a data-vitrine : la barre etant en
     position fixe, replier sa 2e ligne ne decale rien dans le flux.
     Faire varier ce padding au seuil de defilement provoquerait un
     saut visible du contenu — c'est exactement ce qu'il faut eviter. */
  #vitrine{padding-top:clamp(54px,8vh,86px) !important}

}
@media (prefers-reduced-motion:reduce){
  .nav-mobile-row,.social-bar{transition:none}
}
/* Premier rendu : aucun mouvement. L'etat compact est deja pose par
   le script d'amorce du <head>, la barre ne doit donc pas s'animer
   au chargement — seulement au defilement. */
html[data-vitrine-init] .nav-mobile-row,
html[data-vitrine-init] .social-bar{transition:none !important}

/* ─────────────────────────────────────────────── */

/* ═══ Liens de navigation « Blog » et « FAQ » ═══
   Auparavant colorés en style en ligne, donc impossibles à adapter
   au fond sombre de la vitrine. Passés sur classe. */
.nav-lien-txt{
  position:relative;
  font-size:.78rem;font-weight:700;
  padding:0 13px;cursor:pointer;white-space:nowrap;
  text-transform:uppercase;letter-spacing:.07em;
  color:#1a1a1a;
  transition:color .32s cubic-bezier(.22,.61,.36,1);
}
/* Filet qui se dessine sous le mot au survol */
.nav-lien-txt::after{
  content:'';position:absolute;left:13px;right:13px;bottom:-5px;height:1.5px;
  background:currentColor;border-radius:2px;
  transform:scaleX(0);transform-origin:left center;
  transition:transform .34s cubic-bezier(.22,.61,.36,1);
}
.nav-lien-txt:hover::after,.nav-lien-txt:focus-visible::after{transform:scaleX(1)}
.nav-lien-txt:hover,.nav-lien-txt:focus-visible{color:var(--accent)}

/* Par-dessus la vitrine : blanc, survol néon */
html[data-vitrine="visible"] .nav-lien-txt{color:#fff}
html[data-vitrine="visible"] .nav-lien-txt:hover,
html[data-vitrine="visible"] .nav-lien-txt:focus-visible{
  color:#2bff88;
  text-shadow:0 0 14px rgba(43,255,136,.55);
}

@media (prefers-reduced-motion:reduce){
  .nav-lien-txt,.nav-lien-txt::after{transition:none}
}

/* ═══ Mot « rénovation » : rampe lumineuse, en boucle ═══
   Une crete blanche parcourt le mot de gauche a droite, lettre par
   lettre, puis chaque lettre redescend a sa teinte verte de repos.

   Cadence 160 ms entre deux lettres : la lumiere met 1,6 s a
   traverser le mot. Cycle de 6 s : environ 2 s de passage, puis 4 s
   ou le mot reste vert et immobile. Ce temps mort est ce qui rend la
   boucle supportable sur une page qu'on lit.

   Aucune dependance : ni script, ni attribut. L'animation demarre au
   chargement et ne peut pas echouer silencieusement.

   Les lettres sont des <span> et non des <i> : <i> est en italique
   par defaut et une regle typographique du site pourrait le
   reimposer. Un <span> ne porte aucun style propre. */
#vitrine .vit-rampe{display:inline-block;white-space:nowrap}
#vitrine .vit-rampe > span{
  display:inline-block;
  font-style:normal;
  color:#2f8f5b;
  will-change:color,text-shadow;
  animation:vit-rampe 8s ease-in-out infinite;
}
@keyframes vit-rampe{
  0%      {color:#2f8f5b;text-shadow:none}
  6%      {color:#ffffff;
           text-shadow:0 0 20px rgba(43,255,136,.95),0 0 44px rgba(43,255,136,.45)}
  16%     {color:#8affc0;text-shadow:0 0 9px rgba(43,255,136,.45)}
  30%,100%{color:#2f8f5b;text-shadow:none}
}
#vitrine .vit-rampe > span:nth-child(1){animation-delay:0.10s}
#vitrine .vit-rampe > span:nth-child(2){animation-delay:0.26s}
#vitrine .vit-rampe > span:nth-child(3){animation-delay:0.42s}
#vitrine .vit-rampe > span:nth-child(4){animation-delay:0.58s}
#vitrine .vit-rampe > span:nth-child(5){animation-delay:0.74s}
#vitrine .vit-rampe > span:nth-child(6){animation-delay:0.90s}
#vitrine .vit-rampe > span:nth-child(7){animation-delay:1.06s}
#vitrine .vit-rampe > span:nth-child(8){animation-delay:1.22s}
#vitrine .vit-rampe > span:nth-child(9){animation-delay:1.38s}
#vitrine .vit-rampe > span:nth-child(10){animation-delay:1.54s}
#vitrine .vit-rampe-b > span:nth-child(1){animation-delay:1.70s}
#vitrine .vit-rampe-b > span:nth-child(2){animation-delay:1.86s}
#vitrine .vit-rampe-b > span:nth-child(3){animation-delay:2.02s}
#vitrine .vit-rampe-b > span:nth-child(4){animation-delay:2.18s}
#vitrine .vit-rampe-b > span:nth-child(5){animation-delay:2.34s}
#vitrine .vit-rampe-b > span:nth-child(6){animation-delay:2.50s}
#vitrine .vit-rampe-b > span:nth-child(7){animation-delay:2.66s}
#vitrine .vit-rampe-b > span:nth-child(8){animation-delay:2.82s}
#vitrine .vit-rampe-b > span:nth-child(9){animation-delay:2.98s}
#vitrine .vit-rampe-b > span:nth-child(10){animation-delay:3.14s}
#vitrine .vit-rampe-b > span:nth-child(11){animation-delay:3.30s}
#vitrine .vit-rampe-b > span:nth-child(12){animation-delay:3.46s}
#vitrine .vit-rampe-b > span:nth-child(13){animation-delay:3.62s}
#vitrine .vit-rampe-b > span:nth-child(14){animation-delay:3.78s}
/* ═══ Exceptions ciblees aux deux regles globales du fichier ═══
   Deux regles balaient toutes les animations du site :

     @media(max-width:968px){ *{animation-duration:.01ms!important;
                               animation-iteration-count:1!important} }
     @media(prefers-reduced-motion:reduce){ *{animation:none!important} }

   La premiere applique le remede « mouvement reduit » a TOUS les
   ecrans de moins de 968 px — donc a tous les mobiles, quel que soit
   le reglage du visiteur. C'est tres probablement un copier-coller :
   ce motif en .01ms est celui que l'on ecrit normalement sous
   prefers-reduced-motion, pas sous une largeur d'ecran.

   On ne touche pas a ces regles, mais on en exempte la rampe. On
   redeclare les proprietes une a une, jamais le raccourci
   « animation » : celui-ci remettrait animation-delay a zero et les
   dix lettres s'allumeraient en meme temps. */
#vitrine .vit-rampe > span{
  animation-name:vit-rampe !important;
  animation-duration:8s !important;
  animation-timing-function:ease-in-out !important;
  animation-iteration-count:infinite !important;
  animation-fill-mode:none !important;
}
@media(max-width:968px){
  #vitrine .vit-rampe > span{
    animation-name:vit-rampe !important;
    animation-duration:8s !important;
    animation-timing-function:ease-in-out !important;
    animation-iteration-count:infinite !important;
  }
}
@media(prefers-reduced-motion:reduce){
  #vitrine .vit-rampe > span{
    animation-name:vit-rampe !important;
    animation-duration:8s !important;
    animation-timing-function:ease-in-out !important;
    animation-iteration-count:infinite !important;
  }
}

/* ═══ Pourquoi cette animation n'est PAS desactivee sous
       prefers-reduced-motion ═══
   Ce reglage vise le MOUVEMENT : parallaxe, zooms, blocs qui
   glissent — ce qui provoque vertiges et nausees chez les personnes
   sensibles. La rampe lumineuse ne deplace rien et ne redimensionne
   rien : seules la couleur et la lueur varient. Il n'y a aucun
   mouvement a reduire.

   Le seuil de risque pour la photosensibilite est de 3 clignotements
   par seconde ; on est ici a une montee douce toutes les 6 secondes.

   Tout ce qui se DEPLACE reellement sur la vitrine — battement de la
   mini fleche, repli de la barre de menu, glissement de la barre
   sociale et de la banniere — continue de respecter le reglage.
   Voir les blocs @media (prefers-reduced-motion:reduce) plus bas. */

/* ═══ Vitrine : le premier ecran se degage ═══
   Les deux bulles de contact et les deux fleches laterales de
   defilement se retirent tant que la vitrine occupe l'affichage.
   Une seule mini fleche les remplace, en bas a droite.

   Tout revient au meme instant que la barre sociale et les rubriques
   du menu : meme attribut data-vitrine, donc synchronisation garantie. */
.chatbot-btn,.wa-btn,.scroll-top-btn,.scroll-down-btn{
  transition:opacity .4s ease,transform .4s cubic-bezier(.22,.61,.36,1),visibility .4s;
}
html[data-vitrine="visible"] .chatbot-btn,
html[data-vitrine="visible"] .wa-btn,
html[data-vitrine="visible"] .scroll-top-btn,
html[data-vitrine="visible"] .scroll-down-btn{
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(22px) scale(.86);
}

/* La mini fleche : presente uniquement sur la vitrine */
.vit-fleche{
  /* 124 px : la barre sociale occupe 0-56 px et la banniere du
     guide 56-116 px. La fleche doit passer au-dessus des deux. */
  position:fixed;right:22px;bottom:124px;z-index:1499;
  width:44px;height:44px;padding:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(43,255,136,.07);
  border:1px solid rgba(43,255,136,.42);
  color:#2bff88;cursor:pointer;
  box-shadow:0 0 18px rgba(43,255,136,.16);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .45s ease,transform .45s cubic-bezier(.22,.61,.36,1),
             visibility .45s,background .25s,box-shadow .25s;
}
html[data-vitrine="visible"] .vit-fleche{
  opacity:1;visibility:visible;transform:translateY(0);
}
.vit-fleche:hover{background:rgba(43,255,136,.17);box-shadow:0 0 28px rgba(43,255,136,.34)}
.vit-fleche:focus-visible{outline:2px solid #2bff88;outline-offset:3px}
.vit-fleche svg{width:19px;height:19px;animation:vit-fleche-bat 2.3s ease-in-out infinite}
@keyframes vit-fleche-bat{
  0%,100%{transform:translateY(-2px)}
  50%{transform:translateY(3px)}
}
@media(max-width:968px){
  .vit-fleche{right:12px;bottom:20px;width:38px;height:38px}
  .vit-fleche svg{width:17px;height:17px}
}
@media (prefers-reduced-motion:reduce){
  .chatbot-btn,.wa-btn,.scroll-top-btn,.scroll-down-btn,.vit-fleche{transition:none}
  .vit-fleche svg{animation:none}
}

/* ═══ Vitrine : premier ecran entierement degage ═══
   Sur ordinateur comme sur mobile, tout ce qui flotte par-dessus la
   vitrine se retire : barre sociale, banniere du guide, toast
   « nouvel article », bulles de contact et fleches laterales.
   Seule subsiste la mini fleche de defilement, en bas a droite.

   Tout revient au meme instant, pilote par le meme attribut
   data-vitrine : aucun risque de desynchronisation. */
.social-bar,.sticky-guide,#articleToast{
  transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .35s ease;
  will-change:transform;
}
html[data-vitrine="visible"] .social-bar,
html[data-vitrine="visible"] .sticky-guide{
  transform:translateY(120%);opacity:0;pointer-events:none;
}
/* Le toast porte son affichage en style en ligne : il faut !important */
html[data-vitrine="visible"] #articleToast{
  opacity:0 !important;
  transform:translateX(30px) !important;
  pointer-events:none !important;
}
/* La mini fleche peut redescendre : plus rien en dessous d'elle */
.vit-fleche{bottom:30px !important}
/* Mobile : fleche descendue d'environ 5 mm (20px -> 6px).
   env(safe-area-inset-bottom) evite qu'elle passe sous la barre
   d'accueil des iPhone, qui occupe ~34 px en bas d'ecran. */
@media(max-width:968px){
  .vit-fleche{bottom:calc(6px + env(safe-area-inset-bottom, 0px)) !important}
}

@media (prefers-reduced-motion:reduce){
  .social-bar,.sticky-guide,#articleToast{transition:none}
}

/* ═══ Second groupe : « enfin pilotée. » ═══
   La crete poursuit sa course sur la deuxieme ligne, sans rupture :
   les delais continuent la sequence du premier groupe, de la 11e a
   la 24e lettre.

   Teinte de repos plus claire que « renovation », pour conserver la
   hierarchie visuelle d'origine — la deuxieme ligne restait la plus
   lumineuse. L'ancien degrade en background-clip est retire : il
   rendait le texte transparent, ce qui aurait masque la couleur
   animee de chaque lettre. */
#vitrine .vit-h1 em.vit-rampe-b{
  font-style:normal;display:block;
  background:none;
  -webkit-text-fill-color:currentColor;
  color:#8affc0;
  filter:drop-shadow(0 0 26px rgba(43,255,136,.26));
}
#vitrine .vit-rampe-b > span{
  display:inline-block;
  font-style:normal;
  color:#8affc0;
  will-change:color,text-shadow;
  animation-name:vit-rampe-b !important;
  animation-duration:8s !important;
  animation-timing-function:ease-in-out !important;
  animation-iteration-count:infinite !important;
  animation-fill-mode:none !important;
}
@keyframes vit-rampe-b{
  0%      {color:#8affc0;text-shadow:none}
  6%      {color:#ffffff;
           text-shadow:0 0 22px rgba(43,255,136,.95),0 0 46px rgba(43,255,136,.45)}
  16%     {color:#d6fee8;text-shadow:0 0 10px rgba(43,255,136,.45)}
  30%,100%{color:#8affc0;text-shadow:none}
}
@media(max-width:968px){
  #vitrine .vit-rampe-b > span{
    animation-name:vit-rampe-b !important;animation-duration:8s !important;
    animation-timing-function:ease-in-out !important;animation-iteration-count:infinite !important;}
}
@media(prefers-reduced-motion:reduce){
  #vitrine .vit-rampe-b > span{
    animation-name:vit-rampe-b !important;animation-duration:8s !important;
    animation-timing-function:ease-in-out !important;animation-iteration-count:infinite !important;}
}

/* ═══ Accroche du 31/10/2026 ═══
   Trois lignes de même taille : « Votre rénovation » / « résidentielle,
   coordonnée » / « comme vous le méritez. ». Le groupe nominal garde la
   vague verte de « rénovation », la promesse garde le vert clair de
   l'ancienne deuxième ligne. Mots insécables : une ligne ne se coupe
   jamais au milieu d'un mot. La phrase complète est lue par les lecteurs
   d'écran et les moteurs (.vit-sr), les lettres animées leur sont masquées. */
#vitrine .vit-h1-3 .vit-ligne{display:block}
#vitrine .vit-h1-3 .vm{display:inline-block;white-space:nowrap}
#vitrine .vit-h1-3 .va,#vitrine .vit-h1-3 .vl{display:inline-block;font-style:normal;will-change:color,text-shadow;animation-duration:8s !important;animation-timing-function:ease-in-out !important;animation-iteration-count:infinite !important;animation-fill-mode:none !important}
#vitrine .vit-h1-3 .va{color:#2f8f5b;animation-name:vit-rampe !important}
#vitrine .vit-h1-3 .vl{color:#8affc0;animation-name:vit-rampe-b !important}
#vitrine .vit-h1-3 .vit-ligne:nth-child(n+2){filter:drop-shadow(0 0 26px rgba(43,255,136,.18))}
#vitrine .vit-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ═══ Toast « nouvel article » : pilotage par classe ═══
   La version precedente reperait l'etat ouvert avec un selecteur
   d'attribut sur le style en ligne — fragile et le navigateur
   reecrit ce style a sa facon. On passe par une classe, que le
   script pose et retire. Le style en ligne du HTML n'a plus aucun
   role dans l'animation. */
#articleToast{will-change:transform}

/* Ordinateur : arrive par la droite, comme avant */
@media(min-width:969px){
  #articleToast{transform:translateX(380px) !important}
  #articleToast.toast-on{transform:translateX(0) !important}
}

/* Mobile : bandeau bas pleine largeur, qui monte */
@media(max-width:968px){
  #articleToast{
    left:12px !important; right:12px !important;
    width:auto !important; max-width:none !important;
    bottom:calc(70px + env(safe-area-inset-bottom, 0px)) !important;
    padding:15px 17px !important;
    transform:translateY(220%) !important;
    transition:transform .55s cubic-bezier(.175,.885,.32,1.275) !important;
  }
  #articleToast.toast-on{transform:translateY(0) !important}
  #articleToast p{font-size:.86rem !important}
}

/* Bulles de defilement : fond plus transparent.
   Le flou est augmente pour compenser — sans lui, le chevron devient
   illisible des que la bulle passe sur une photo chargee. */
.scroll-top-btn:hover,.scroll-down-btn:hover{
  background:var(--accent) !important;color:#fff !important;border-color:var(--accent) !important;
}

/* Bandeau superieur des cartes de blog : reduit des trois quarts en
   mobile. 140 px occupaient une part demesuree de l'ecran pour un
   simple pictogramme decoratif — le titre et le resume passaient
   sous la ligne de flottaison. */
@media(max-width:968px){
  .blog-card-img{
    height:35px !important;
    font-size:1.35rem !important;
  }
  .blog-card-body{padding:16px 18px !important}
}

/* ═══ Sommaire du blog ═══
   Construit a partir des cartes elles-memes, jamais ecrit en dur :
   ajouter un article suffit, la liste se met a jour seule. */
.blog-sommaire{
  background:var(--card);border:1px solid var(--card-b);border-radius:var(--rl);
  padding:22px 26px;margin:0 0 26px;box-shadow:var(--sh-s);
}
.blog-sommaire h3,
.blog-sommaire ss-h3{
  font-family:'Outfit',sans-serif;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.11em;color:var(--accent);
  margin:0 0 14px;
}
.blog-sommaire ol{list-style:none;margin:0;padding:0;counter-reset:som}
.blog-sommaire li{
  counter-increment:som;border-bottom:1px solid var(--div);
}
.blog-sommaire li:last-child{border-bottom:0}
.blog-sommaire a{
  display:flex;align-items:baseline;gap:12px;padding:10px 2px;
  text-decoration:none;color:var(--text);transition:color .2s,padding-left .2s;
}
.blog-sommaire a::before{
  content:counter(som,decimal-leading-zero);
  font-family:'Outfit',sans-serif;font-size:.72rem;font-weight:700;
  color:var(--accent);opacity:.55;flex-shrink:0;min-width:20px;
}
.blog-sommaire a:hover{color:var(--accent);padding-left:5px}
.blog-sommaire .som-titre{flex:1;font-size:.92rem;font-weight:600;line-height:1.35}
.blog-sommaire .som-date{
  font-size:.72rem;color:var(--text-l);white-space:nowrap;flex-shrink:0;
}
.blog-sommaire .som-li{
  display:inline-block;background:#0077b5;color:#fff;font-size:.58rem;font-weight:700;
  padding:1px 6px;border-radius:20px;margin-left:7px;vertical-align:1px;letter-spacing:.04em;
}
/* La carte visee doit s'arreter sous la barre fixe */
.blog-card{scroll-margin-top:100px}
.blog-card.som-vise{
  outline:2px solid var(--accent);outline-offset:3px;
  transition:outline-color .4s;
}
@media(max-width:968px){
  .blog-sommaire{padding:16px 18px;margin-bottom:18px}
  .blog-sommaire .som-titre{font-size:.85rem}
  .blog-sommaire .som-date{display:none}
  .blog-card{scroll-margin-top:130px}
}
@media (prefers-reduced-motion:reduce){
  .blog-sommaire a{transition:none}
}

/* ═══ Bulles de defilement : teinte adaptee au bloc survole ═══
   data-fond-cote est pose par le script de mesure, a la hauteur reelle
   des bulles — pas sous la barre de menu, qui survole d'autres blocs. */
.scroll-top-btn,.scroll-down-btn,.uf-scroll{
  transition:background-color .3s ease,color .3s ease,border-color .3s ease;
}
html[data-fond-cote="sombre"] .scroll-top-btn,
html[data-fond-cote="sombre"] .scroll-down-btn,
html[data-fond-cote="sombre"] .uf-scroll{
  background:rgba(255,255,255,.07) !important;
  color:rgba(255,255,255,.94) !important;
  border-color:rgba(255,255,255,.45) !important;
  box-shadow:0 1px 5px rgba(0,0,0,.10) !important;
}
html[data-fond-cote="sombre"] .scroll-top-btn:hover,
html[data-fond-cote="sombre"] .scroll-down-btn:hover{
  background:#2bff88 !important;color:#05130b !important;border-color:#2bff88 !important;
}
@media (prefers-reduced-motion:reduce){
  .scroll-top-btn,.scroll-down-btn,.uf-scroll{transition:none}
}

/* ═══ Apercu Facebook — chargement differe ═══
   Le cadre d'origine deposait des cookies Meta des l'ouverture de la
   page, alors que la politique de confidentialite du site affirme le
   contraire. Ici rien n'est charge avant un clic explicite et le
   visiteur sait ce qu'il declenche. Motif recommande par la CNIL.

   Effet secondaire utile : ce bloc etant notre HTML, sa typographie
   est justifiee comme le reste du site — ce qu'un cadre externe
   n'autorise jamais. */
.fb-apercu{
  background:var(--card);border:1px solid var(--card-b);border-radius:14px;
  padding:20px 22px;text-align:left;box-shadow:var(--sh-s);
}
.fb-tete{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.fb-tete img{border-radius:50%;object-fit:cover;flex-shrink:0}
.fb-nom{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:.95rem;line-height:1.2}
.fb-meta{display:block;font-size:.74rem;color:var(--text-l);margin-top:2px}
.fb-texte{
  text-align:justify;hyphens:auto;font-size:.9rem;line-height:1.65;
  color:var(--text-s);margin:0 0 16px;
}
.fb-note{
  background:rgba(0,119,181,.07);border-left:3px solid #0077b5;
  border-radius:8px;padding:12px 14px;margin-bottom:16px;
}
.fb-note strong,
.fb-note ss-b{display:block;font-size:.8rem;margin-bottom:4px;color:#0077b5}
.fb-note span{display:block;font-size:.78rem;line-height:1.5;color:var(--text-l);text-align:justify}
.fb-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fb-btn{
  background:#1877f2;color:#fff;border:0;border-radius:9px;cursor:pointer;
  font-family:'Outfit',sans-serif;font-size:.84rem;font-weight:700;padding:10px 18px;
  transition:background .2s;
}
.fb-btn:hover{background:#0f5fce}
.fb-lien{font-size:.82rem;color:var(--accent);text-decoration:none;font-weight:600}
.fb-lien:hover{text-decoration:underline}
@media(max-width:520px){
  .fb-apercu{padding:16px 16px}
  .fb-actions{flex-direction:column;align-items:stretch}
  .fb-btn{width:100%}
  .fb-lien{text-align:center}
}

/* ══════════════════════════════════════════════════════════════════
   ACCUEIL MOBILE — compactage du scroll (portée : #page-home seul)
   Aucun contenu masqué. Rien en dehors de la page d'accueil n'est
   affecté : tous les sélecteurs sont préfixés #page-home ou #vitrine.
   ══════════════════════════════════════════════════════════════════ */
@media(max-width:640px){
  /* — rythme général des sections — */
  #page-home .section{padding-top:34px!important;padding-bottom:34px!important}
  #page-home .section-header{margin-bottom:20px!important}
  #page-home .section-header h2{font-size:clamp(1.4rem,5.6vw,1.78rem)!important;line-height:1.2!important;margin-bottom:8px!important}
  #page-home .section-header p{font-size:.84rem!important;line-height:1.5!important}
  #page-home .stag{font-size:.62rem!important;margin-bottom:6px!important}

  /* — écran d'intro : plus de min-height, stats en 2×2 — */
  #vitrine{min-height:0!important;padding-top:46px!important;padding-bottom:22px!important}
  #vitrine svg{max-height:88px!important}
  #vitrine .vit-sur{font-size:.63rem!important;flex-direction:column!important;
    gap:2px!important;padding:7px 16px!important;line-height:1.35!important;
    letter-spacing:.13em!important;text-align:center!important}
  #vitrine .vit-sur b::after,
  #vitrine .vit-sur ss-b::after{content:""!important;margin:0!important}
  #vitrine .vit-h1{font-size:clamp(1.75rem,7.6vw,2.3rem)!important;line-height:1.12!important;margin-bottom:10px!important}
  #vitrine .vit-lead{font-size:.8rem!important;line-height:1.5!important;
    color:rgba(233,239,236,.4)!important;font-weight:200!important}
  #vitrine .vit-actions{gap:9px!important}
  #vitrine .vit-btn{padding:12px 18px!important;font-size:.82rem!important}
  #vitrine .vit-stats{grid-template-columns:1fr 1fr!important;gap:9px!important;padding-top:16px!important}
  #vitrine .vit-stat b,
  #vitrine .vit-stat ss-b{font-size:1.25rem!important}
  #vitrine .vit-stat span{font-size:.68rem!important;line-height:1.3!important}
  #vitrine .vit-suite{position:static!important;margin-top:16px!important}

  /* — hero — */
  #page-home .hero{padding-top:82px!important;padding-bottom:20px!important}
  #page-home .hero h1{font-size:clamp(1.7rem,7.4vw,2.25rem)!important;line-height:1.14!important;margin-bottom:10px!important}
  #page-home .hero-lede{font-size:.88rem!important;line-height:1.5!important;margin-bottom:8px!important}
  #page-home .hero-content > p{font-size:.8rem!important;line-height:1.45!important}
  #page-home .hero-buttons{gap:8px!important;margin-top:14px!important}
  #page-home .hero-buttons .btn-p,#page-home .hero-buttons .btn-s{padding:11px 16px!important;font-size:.82rem!important;min-height:0!important}

  /* — Pourquoi nous : 4 cartes en icône + libellé sur une ligne — */
  #page-home .pn-grid{gap:9px!important;margin-bottom:18px!important}
  #page-home .pn-card{padding:11px 12px!important;display:grid!important;
    grid-template-columns:38px 1fr;grid-template-areas:"ico tag" "ttl ttl" "txt txt";
    column-gap:10px;row-gap:4px;align-items:center}
  #page-home .pn-card > div:nth-of-type(2){grid-area:ico;width:38px!important;height:38px!important;font-size:1.1rem!important;margin-bottom:0!important;border-radius:10px!important}
  #page-home .pn-card > div:nth-of-type(3){grid-area:tag;margin:0!important;font-size:.54rem!important;justify-self:start}
  #page-home .pn-card h3,
  #page-home .pn-card ss-h3{grid-area:ttl;font-size:.9rem!important;margin-bottom:0!important}
  #page-home .pn-card h3 br,
  #page-home .pn-card ss-h3 br{display:none}
  #page-home .pn-card p{grid-area:txt;font-size:.73rem!important;line-height:1.36!important}

  #page-home .reassurance-grid{grid-template-columns:1fr 1fr!important;gap:4px!important}
  #page-home .reassurance-pill{padding:5px 8px!important;font-size:.64rem!important;line-height:1.25!important}
  #page-home .rp-text{line-height:1.25!important}
  #page-home .platforms-grid{grid-template-columns:1fr 1fr!important;gap:6px!important}
  #page-home .platform-btn{padding:8px 7px!important}
  #page-home .platform-name{font-size:.72rem!important;line-height:1.2!important}
  #page-home .platform-sub{font-size:.6rem!important;line-height:1.2!important}

  /* — projets types : on garde 1 colonne pleine largeur, les photos
       sont l'argument de vente. On ne gagne que sur le chapô et le gap. — */
  #page-home .dark-section .section-header{margin-bottom:16px!important}
  #page-home .dark-section .section-header p{font-size:.8rem!important;line-height:1.45!important}
  #page-home .vid-thumbs{gap:10px!important}

  /* — méthode — */
  #page-home .method-recap{padding-top:8px!important}
  #page-home .method-recap-grid{gap:8px!important}
  #page-home .mr-card{padding:10px 11px!important}
  #page-home .mr-card h4,#page-home .mr-card h3,
  #page-home .mr-card ss-h4,#page-home .mr-card ss-h3{font-size:.8rem!important;margin-bottom:5px!important}
  #page-home .mr-card p{font-size:.7rem!important;line-height:1.34!important}

  /* — confiance — */
  #page-home .trust-grid{gap:10px!important}
  #page-home .trust-item{padding:11px 7px!important}
  #page-home .trust-item .ti{width:40px!important;height:40px!important;margin-bottom:8px!important}
  #page-home .trust-item strong,
  #page-home .trust-item ss-b{font-size:.8rem!important;line-height:1.25!important}
  #page-home .trust-item span{font-size:.66rem!important;line-height:1.3!important}

  /* — zones : les communes en 2 colonnes — */
  #page-home .zones-header{margin-bottom:16px!important}
  #page-home .zones-header p{font-size:.82rem!important;line-height:1.45!important}
  #page-home .zones-grid{gap:12px!important}
  #page-home .zones-col h3,
  #page-home .zones-col ss-h3{font-size:.9rem!important;margin-bottom:7px!important}
  #page-home .zone-cards{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important}
  #page-home .zone-card{padding:8px 10px!important}
  #page-home .zone-name{font-size:.78rem!important}
  #page-home .zone-detail{font-size:.66rem!important;line-height:1.3!important}

  /* — guide offert — */
  #page-home .lead-inner{gap:12px!important}
  #page-home .lead-visual{padding:14px 14px 12px!important}
  #page-home .lead-visual h3,
  #page-home .lead-visual ss-h3{font-size:.95rem!important;margin-bottom:6px!important}
  #page-home .lead-visual p{font-size:.78rem!important;line-height:1.4!important}
  #page-home .lead-form{padding:16px 14px!important}
  #page-home .lead-form h3,
  #page-home .lead-form ss-h3{font-size:1rem!important}
  #page-home .lead-form p{font-size:.78rem!important;line-height:1.4!important}
  #page-home .consent{font-size:.66rem!important;line-height:1.35!important}

  /* — boutique & passerelle BTP — */
  /* (l'aperçu boutique a ses propres règles mobile, voir .covshop) */
  #page-home .btp-bridge-inner{gap:14px!important}
  #page-home .btp-bridge-text p{font-size:.82rem!important;line-height:1.45!important}
  #page-home .btp-bridge-cards{gap:9px!important}
  #page-home .btp-card{padding:10px 12px!important}
  #page-home .btp-card p{font-size:.7rem!important;line-height:1.38!important}
  #page-home .cta-banner{padding-top:34px!important;padding-bottom:34px!important}
}

/* Mobile : la justification crée des trous béants sur colonnes étroites —
   on repasse à gauche, avec césure douce. */
@media(max-width:700px){
  p, li, .lead { text-align: left !important; hyphens: auto; }
}
